Como base para un cluster de alta disponibilidad, la combinación Corosync+Pacemaker cumple perfectamente con los requerimientos y funcionalidades necesarios
En cada nodo del cluster necesitaremos al menos 2 interfaces de red, 1 para la comunicación directa entre nodos y otra para los servicios ofrecidos al exterior.
Aunque sería posible trabajar con una única interfaz, es muy recomendable hacerlo de esta manera por motivos de estabilidad, seguridad, escalabilidad, etc..
El reparto de IPs puede verse en el esquema, con las interfaces que son:
eth0 para atender a los clientes.
eth1 para la red interna de comunicación entre nodos.
Nodo 1: 172.18.2.35
Nodo 2: 172.18.2.78
IPV: 172.18.2.101 (que alternativamente será asignada al nodo1 y al nodo 2)
Instalacion
# apt-get install pacemaker openais
Luego de la insalacion tendremos instalado el corosync quien se convierte en el demonio para pacemaker, debemos de hacer los siguientes cambios:
En el directorio /etc/corosync/ el archivo corosync.conf
interface {
# The following values need to be set based on your environment
ringnumber: 0
bindnetaddr: 127.0.0.1
mcastaddr: 226.94.1.1
mcastport: 5405
}
}
Lo modificamos por:
interface {
# The following values need to be set based on your environment
ringnumber: 0
bindnetaddr: 172.18.2.0
mcastaddr: 226.94.1.1
mcastport: 5405
}
}
En el archivo /etc/default/corosync
# start corosync at boot [yes|no]
START=no
Modificamos por:
# start corosync at boot [yes|no]
START=yes
Reiniciamos corosync
# /etc/init.d/corosync restart
Con los comandos de administracion:
CRM -> Cluster Resouce Manager. Es el software que provee del control sobre los recursos desplegados en el cluster. Hablamos de pacemaker mediante la herramienta CRM Shell.
CIB -> Cluster Information Base. Es el fichero XML donde se refleja la configuración de los recursos que se ha hecho mediante el CRM. Se genera y se propaga automáticamente a todos los nodos del cluster cuando es modificado. Está muy escondido y no recomendable tocarlo a mano.
Mediante la herramienta "crm" se interacciona con Pacemaker. Realmente, manejamos el cib.xml (cluster information base).
Las instrucciones de crm pueden introducirse en cualquier nodo, y serán propagadas automáticamente por todo el cluster.
Primero, indicamos a Pacemaker que nuestro cluster, por ahora, solo tiene 2 nodos. Necesitamos una configuración un poco especial para ello, dado que Pacemaker viene preparado para trabajar con muchos nodos.
Para dos nodos stonith lo deshabilitamos, pues empezara a generar warnings
# crm
# configure
# property stonith-enabled=false
De igual manera para dos nodos el quorum de debe ignorar para evitar warnings
# crm
# configure
# property no-quorum-policy=ignore
root@nodo1:~# crm configure property no-quorum-policy=ignore
root@nodo1:~# crm configure rsc_defaults resource-stickiness=100