Pacemaker y corosync: IP Failover + Apache + DRBD
En esta ocasión, no sólo vamos a verificar el funcionamiento del clúster, sino que además vamos a terminar de configurar dos recursos para utilizar drbd como sistema de almacenamiento sincronizado entre los dos nodos.
-
Accede al directorio HA-IPfailover+Apache+MySQL+DRBD
-
Levanta las máquinas con vagrant: vagrant up
-
Configura el escenario con ansible: ansible-playbook escenario.yaml
-
Edita el fichero /etc/resolv.conf de tu equipo y añade como servidor DNS primario el nodo "dns" que tiene la dirección IP 10.1.1.103
-
Comprueba la conectividad con los nodos del cluster con ping
-
Utiliza dig para resolver el nombre www.example.com
$ dig @10.1.1.103 www.example.com
Comprueba que la dirección www.example.com está asociada a la dirección IP 10.1.1.100, que en este escenario es la IP virtual que estará asociada en todo momento al nodo que esté en modo maestro -
Accede a node1 por ssh y comprueba que existe un disco adicional /dev/sdb (con fdisk por ejemplo). Vamos a utilizar este disco adicional como dispositivo de DRBD sincronizado entre ambos nodos y crearemos un recurso en pacemaker que lo gestione en alta disponibilidad y asocie el directorio /var/www a este dispositivo.
-
Realiza los siguientes pasos en node1 para crear un dispositivo para DRBD:
- Inicializamos wwwdata:
# drbdadm create-md wwwdata
- Cargamos el módulo drbd en memoria:
# modprobe drbd
- Levantamos wwwdata:
# drbdadm up wwwdata
- Comprobamos el estado del dispositivo /dev/drbd:
# cat /proc/drbd
- Inicializamos wwwdata:
-
Repite los mismos pasos en el nodo2
-
Ejecuta la siguiente instrucción en nodo1:
# drbdadm -- --overwrite-data-of-peer primary wwwdata
Y comprueba como se va sincronizando el dispositivo:# cat /proc/drbd
-
Formateamos el dispositivo desde node1:
# mkfs.ext4 /dev/drbd1
Ya tenemos el dispositivo DRBD sincronizado y formateado en los dos nodos. Ahora vamos a crear los recursos del clúster para este dispositivo -
Monta /dev/drbd1 en /mnt en node1 y crea un fichero index.html
-
Ejecuta las siguientes instrucciones en node1 para crear el recurso DRBD:
# crm
crm(live) # cib new drbd
crm(drbd) # configure primitive WebData ocf:linbit:drbd params drbd_resource=wwwdata \
op monitor interval=60s
crm(drbd) # configure ms WebDataClone WebData meta master-max=1 master-node-max=1 \
clone-max=2 clone-node-max=1 notify=true
crm(drbd) # cib commit drbd
-
-
Ejecuta las siguientes instrucciones en node1 para crear un recurso para el sistema de ficheros:
# crm
crm(live) # cib new fs
crm(fs) # configure primitive WebFS ocf:heartbeat:Filesystem \
params device="/dev/drbd/by-res/wwwdata" directory="/var/www" fstype="ext4"
crm(fs) # configure colocation fs_on_drbd inf: WebFS WebDataClone:Master
crm(fs) # configure order WebFS-after-WebData inf: WebDataClone:promote WebFS:start
crm(fs) # configure colocation WebSite-with-WebFS inf: WebSite WebFS
crm(fs) # configure order WebSite-after-WebFS inf: WebFS WebSite
crm(fs) # cib commit fs
-
Verifica el funcionamiento correcto parando uno de los nodos
-
Levanta el nodo parado y comprueba que el cluster vuelve a estar consistente y los datos de DRBD sincronizados
Last modified: Thursday, 19 September 2013, 5:32 PM