En la continuación del
artículo "Pacemaker Cluster Storage + DRBD (Dual primary) + ctdb", presento una versión completamente terminada y funcional de las bolas de archivo del clúster HA para 2-4 nodos para centos 6 y centos 7. Si desea implementar esto, usted es un pervertido o usted No dieron ninguna opción, y es necesario implementarlo de alguna manera.
Simplemente describiré el pastel de hojaldre que recogeremos:
En el dispositivo de bloque, cree la tabla gpt => una partición para todo el espacio bajo lvm => grupo de volúmenes lvm para todo el espacio disponible => volumen lvm para todo el espacio disponible => dispositivo drbd => dlm => márquelo como el volumen físico de lvm para todo el espacio disponible => en él un grupo de volúmenes de lvm => volumen de lvm en todo el espacio disponible => marque fs gfs2 => conéctese al punto de montaje.
Y todo esto será impulsado por marcapasos con una dirección IP virtual.
Si aún quieres continuar, sigue leyendo debajo del corte.
De la fuente necesitamos lo siguiente:CPU 1 núcleo
1 GB mínimo de memoria de acceso aleatorio
15 GB de disco + el lugar donde almacenará los datos
Los discos pueden ser cualquier número, incluso uno.
Si tiene una unidad, es mejor particionarla de la siguiente manera:
Tabla de particiones gpt => Partición de 200 MB para efi (opcional) => Partición de 1 GB para / boot => todo lo demás bajo lvm.
En un volumen lvm, debe crear 2 grupos de volúmenes. El primer grupo de volúmenes bajo el sistema operativo es 10 GB + dos veces el tamaño de RAM, pero no más de 4 GB.
Quien haya dicho eso, pero el intercambio a veces ayuda mucho, por lo que en el grupo lvm creamos una partición lvm para el intercambio igual al doble del tamaño de RAM, pero no más de 4 GB y el espacio restante se asigna a la raíz del sistema operativo.
El segundo grupo de lvm para almacenamiento de datos. Cree una sección lvm para el espacio restante.
Según los términos, nos dieron 2 máquinas virtuales y eso es todo. Es mejor poner Ceph para que funcione correctamente en 6 nodos, al menos 4, y sería bueno tener algo de experiencia con él, de lo contrario funcionará como un ratón en la nube. Gluster para cientos de miles de archivos pequeños en términos de rendimiento no funcionará, se debilita en la inmensidad del Habré muchas veces. ipfs, lustre y similares tienen los mismos requisitos que ceph o incluso más.
¡Comencemos la batalla! Tenía dos máquinas virtuales en CentOS 7 con 2 discos.
1) Pacemaker versión 1.1 no funciona con ip correctamente, por lo que para mayor confiabilidad agregamos entradas a / etc / hosts:
192.168.0.1 node1 192.168.0.2 node2
2) No hay DRBD en los repositorios estándar, por lo que debe conectar uno de terceros.
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org yum localinstall -y http://ftp.nluug.nl/os/Linux/distr/elrepo/elrepo/el7/x86_64/RPMS/$(curl -s http://ftp.nluug.nl/os/Linux/distr/elrepo/elrepo/el7/x86_64/RPMS/ | grep -oP ">elrepo-release.*rpm" | cut -c 2-)
3) Instalar drbd versión 8.4
yum install -y kmod-drbd84 drbd84-utils
4) Activar y habilitar el módulo de kernel drbd en el inicio
modprobe drbd echo drbd > /etc/modules-load.d/drbd.conf
5) Crear una partición de disco y configurar lvm
echo -e "g\nn\n\n\n\nt\n8e\nw\n" | fdisk /dev/sdb vgcreate drbd_vg /dev/sdb1 lvcreate -l +100%FREE --name r0 drbd_vg
6) Cree el archivo de configuración para el recurso drbd /etc/drbd.d/r0.res
resource r0 { protocol C; device /dev/drbd1; meta-disk internal; disk /dev/mapper/drbd_vg-r0; net { allow-two-primaries; } disk { fencing resource-and-stonith; } handlers { fence-peer "/usr/lib/drbd/crm-fence-peer.sh"; after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh"; } startup { become-primary-on both; } on node1 { address 192.168.0.1:7788; } on node2 { address 192.168.0.2:7788; }
7) Eliminamos el servicio drbd de la carga automática (luego el marcapasos se encargará de ello), creamos metadatos para el disco drbd, aumentamos el recurso
systemctl disable drbd drbdadm create-md r0 drbdadm up r0
8) En el primer nodo, haga que el recurso sea primario
drbdadm primary --force r0
9) Pon el marcapasos
yum install -y pacemaker corosync pcs resource-agents fence-agents-all
10) Establezca una contraseña para el grupo de usuarios para la autorización en los nodos
echo CHANGEME | passwd --stdin hacluster
11) Ejecute pcsd en ambos nodos
systemctl enable pcsd systemctl start pcsd
12) Inicie sesión en el clúster. Desde esta etapa, hacemos todo en un nodo
pcs cluster auth node1 node2 -u hacluster -p CHANGEME --force
13) Crear un clúster llamado samba_cluster
pcs cluster setup --force --name samba_cluster node1 node2
14) activar nodos y agregar servicios al inicio e iniciarlos
pcs cluster enable --all pcs cluster start --all systemctl start corosync pcsd pacemaker systemctl enable corosync pcsd pacemaker
15) Dado que tenemos máquinas virtuales como servidores, desactivamos el mecanismo STONITH, ya que no tenemos ningún mecanismo para administrarlos. También tenemos solo 2 autos, por lo que también deshabilitamos el quórum, solo funciona con 3 o más máquinas.
pcs property set stonith-enabled=false pcs property set no-quorum-policy=ignore
16) Crear VIP
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.0.10 cidr_netmask=32 nic=eth0 clusterip_hash=sourceip-sourceport op monitor interval=1s
17) Crear un recurso drbd
pcs resource create DRBD1 ocf:linbit:drbd drbd_resource=r0 op monitor interval=60s master master-max=2 master-node-max=1 clone-node-max=1 clone-max=2 notify=true op start interval=0s timeout=240 promote interval=0s timeout=130 monitor interval=150s role=Master monitor interval=155s role=Slave
18) Instale los paquetes necesarios para clvm y prepare clvm
yum install -y lvm2-cluster gfs2-utils /sbin/lvmconf --enable-cluster
19) Agregue el recurso dlm y clvd al marcapasos
pcs resource create dlm ocf:pacemaker:controld allow_stonith_disabled=true clone meta interleave=true pcs resource create clvmd ocf:heartbeat:clvm clone meta interleave=true
20) Prohibimos que LVM escriba un caché y lo borre. En ambos nodos
sed -i 's/write_cache_state = 1/write_cache_state = 0/' /etc/lvm/lvm.conf rm /etc/lvm/cache/*
21) Crear una partición CLVM. Hacemos solo en una nota
vgcreate -A y -cy cl_vg /dev/drbd1 lvcreate -l 100%FREE -n r0 cl_vg
22) Marcamos la sección en gfs2, aquí es importante que la tabla de bloqueo tenga el mismo nombre que nuestro clúster en pacificador. Hacemos solo en una nota
mkfs.gfs2 -j 2 -p lock_dlm -t samba_cluster:r0 /dev/cl_vg/r0
23) Luego, agregue el montaje de esta sección en marcapasos y dígale que arranque después de clvmd
pcs resource create fs ocf:heartbeat:Filesystem device="/dev/cl_vg/r0" directory="/mnt" fstype="gfs2" clone interleave=true
24) Ahora es el turno de ctdb que ejecutará samba
yum install -y samba ctdb cifs-utils
25) Edite la configuración /etc/ctdb/ctdbd.conf
CTDB_RECOVERY_LOCK="/mnt/ctdb/.ctdb.lock" CTDB_NODES=/etc/ctdb/nodes CTDB_MANAGES_SAMBA=yes CTDB_LOGGING=file:/var/log/ctdb.log CTDB_DEBUGLEVEL=NOTICE
26) Cree un archivo con una lista de nodos / etc / ctdb / nodo
ATENCION! Después de cada dirección en la lista debe haber un avance de línea. De lo contrario, el nodo no se encenderá durante la inicialización.
192.168.0.1 192.168.0.2
27) Finalmente, cree el recurso ctdb
pcs resource create samba systemd:ctdb clone meta interleave=true
28) Configuramos la cola de carga y las dependencias de recursos para ejecutar
pcs constraint colocation add dlm-clone with DRBD1-master pcs constraint colocation add clvmd-clone with dlm-clone pcs constraint colocation add fs-clone with clvmd-clone pcs constraint colocation add samba-clone with fs-clone pcs constraint colocation add virtual_ip with samba-clone pcs constraint order promote DRBD1-master then dlm-clone pcs constraint order start dlm-clone then clvmd-clone pcs constraint order start clvmd-clone then fs-clone pcs constraint order start fs-clone then samba-clone
29) Establecemos la cola para detener los recursos, sin esto su máquina puede congelarse en el momento del apagado
pcs constraint order stop fs-clone then stop clvmd-clone pcs constraint order stop clvmd-clone then stop dlm-clone pcs constraint order stop dlm-clone then stop DRBD1-master pcs constraint order stop samba-clone then stop fs-clone
PS
La bola en sí puede estar en nfs y en samba, pero conectarse a ellos es una conmutación por error por IP, aunque el almacenamiento HA en sí. Si desea HA completo, entonces, en lugar de samba y nfs, necesita instalar iSCSI y conectarse a través de múltiples rutas. Además, puede obtener splitbrain si uno de los nodos muere, y cuando el maestro se eleva, no lo hará. Verifiqué que si el sistema operativo se apaga correctamente, luego de levantar el nodo cuando no hay un maestro, pasa al modo desactualizado y no se convierte en el maestro para evitar cerebros divididos. Las opciones de quórum (DRBD y / o marcapasos) y cualquier distorsión de las construcciones en cascada de DRBD después de que su configuración sea insostenible debido a su alta complejidad, otro administrador tardará mucho tiempo en descubrirlo. Aunque con lo que escribí no mejor, no lo hagas.
Referencias
Hay una instrucción similar con sintaxis para marcapasos 1.0.