Como montar un cluster de Alta Disponibilidad con Pacemaker y Corosync

En esta entrada les voy a mostrar un proyecto en el cual vengo laburando hace un tiempo y es sobre Como montar un cluster de Alta Disponibilidad con Pacemaker y Corosync

montar un cluster con pacemaker y corosync

Como verán la red es bastante sencilla (aunque esta es para explicar ya que la real es un verdadero kilombo). Tiene un switch para las pc del area contable, un pequeño router, el switch de la red de servidores y 4 servidores que se conectan al switch pero que ademas se conectan entre si dependiendo la infraestructura que tengamos, esto quiere decir que se puede usar un switch de servidores o bien si fuera virtual tendríamos que dedicar una red a interconectar solo los servidores.

Utilizaremos como nodos del clúster los equipos SRV1 (192.168.0.3) y SRV2 (192.168.0.2), ambos con debian y como dirección IP virtual (la que usaremos como un recurso en alta disponibilidad) utilizaremos la 192.168.0.11.

En un cluster de HA siempre es recomendable que los nodos estén interconectados por interfaces dedicadas en otro segmento de red diferente del que se utiliza para ofrecer los recursos, aunque nosotros por simplicidad utilizaremos el mismo.

Para realizar las pruebas de esta entrada denominada Como montar un cluster de Alta Disponibilidad con Pacemaker y Corosync, no lo voy a hacer en un entorno físico pero si en uno virtual con debian 8.7

Lo primero que instalaremos en ambos servidores son los siguientes paquetes:

El problema es que pacemaker se encuentra dentro de los backsports por lo tanto hay que editar el archivo:

Agregar:

Actualizar (no se preocupen si da un error referido a los 64bit). y luego para instalarlo si antes no pudieron:

Ahora en el SRV1 creamos la clave de autenticación de corosync y la copiamos a SRV2

Si no logran copiar el archivo de un servidor a otro y recién arrancan tendrían que instalar ssh y mc como para poder copiar de un lado a otro de manera gráfica.

Luego damos los permisos en el SRV2:

Editamos el fichero de configuración de corosync (/etc/corosync/corosync.conf) de ambos servidores y añadimos la red que se va a utilizar para controlar la visión entre los servidores (en nuestro caso va a ser la misma por la que se ofrecen los recursos, pero lo habitual sería que fuese una interfaz dedicada):

Además para que corosync se inicie de forma automática al arrancar la máquina, marcamos a “yes” el parámetro START del fichero de configuración del demonio (/etc/default/corosync) en ambos nodos.

Ahora vamos a reiniciar corosync en los dos servidores con el siguiente comando:

Para comprobar el estado del cluster, podremos ejecutar el siguiente comando:

debe devolver algo similar a:

============
Last updated: Sun Mar  8 01:00:15 2017
Current DC: NONE
0 Nodes configured, unknown expected votes
0 Resources configured.
============
 Luego de unos minutos volveremos a ejecutar el comando y veremos:
============
Last updated: Sun Mar  8 01:03:40 2017
Stack: openais
Current DC: srv1 - partition with quorum
2 Nodes configured, 2 expected votes
0 Resources configured.
============
Online: [ srv1 srv2 ]

De esta manera podemos ver que los dos servidores se encuentran conectados pero sin recursos configurados.

Si llegaste hasta aca es por que vamos genial con este instructivo de Como montar un cluster de Alta Disponibilidad con Pacemaker y Corosync

Ahora pasaremos a configurar una ip virtual que sera la que responda como recurso.

El recurso que vamos a configurar en este ejemplo va a ser una dirección IP 192.168.0.254, para ello en primer lugar desactivamos el mecanismo de STONITH (Shoot The Other Node In The Head), que se utiliza para parar un nodo que esté dando problemas y así evitar un comportamiento inadecuado del cluster:

Mucho cuidado con el siguiente comando. Verifiquen bien el nombre de la red si es eth0 o cual en su caso:

A continuación y como es un cluster de dos servidores debemos quitar el CUORUM a srv2. Esto es por que al apagar al srv1 el srv2 no seguira funcionando ya que el cuorum se gana por votación y quedaría sin votar. Para esto:

De esta manera y si realizaron el paso a paso tal como esta pueden comprar por medio de ping y chequeando la mac que responde el funcionamiento del cluster.

Si a esto le montamos un servidor web con un dominio virtual que responda a la ip del recurso en ambos servidores vamos a contar un servidor web sencillo y con alta disponibilidad al fallo. Apaguen un servidor, vean que pasa con la mac que respondera. Luego enciéndalo y apaguen el otro.

Es bastante sencillo y le agradezco a alberto molina (prof. de informática en sevilla) por un tutorial que tiene publicado sobre lo mismo, pero como ya tenia sus años lo quise actualizar y generar videos para que quede mas visible. (proximamente video publicado)

 

 

 

 

 

  3 comments for “Como montar un cluster de Alta Disponibilidad con Pacemaker y Corosync

  1. Christian
    6 Junio, 2017 at 2:16 pm

    Hola muy bueno el tutorial! Gracias!!
    Cuando ejecuto
    crm configure primitive FAILOVER-ADDR ocf:heartbeat:IPaddr2 params ip=”192.168.0.254″ nic=”eth0″ op monitor interval=”10s” meta is-managed=”true”
    me sale este error
    ERROR: running cibadmin -Ql: Signon to CIB failed: Transport endpoint is not conected
    Init failed, could not perform requested operations
    ERROR: configure: Missing requirements

    Gracias!!

    • Luis Zambrana
      7 Junio, 2017 at 4:21 am

      Christian en algun lugarsito le erraste, de lo contrario se conectaria y no te daria error.

  2. Adrian
    19 Julio, 2017 at 11:02 pm

    Excelente Tutorial.
    Gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *