RSS

Alta disponibilidad: Como configurar un Cluster (HA linux) con corosync y pacemaker con recurso apache2

28 Feb

HA alta disponibilidad

Como configurar un HA cluster con corosync y pacemaker

Escenario:

Cluster de dos servidores Linux: HA1 y HA2

apache hearbeat
Empezamos con adaptador puente para conexión a Internet

HA cluster, net configuration

Instala la utilidad corosync y pacemaker en ambas servidores

#  apt-get update && apt-get upgrade
#  apt-get install corosync pacemaker

instala corosync y pacemaker

Veras este aviso a final de la instalación

aviso hacluster

 

Configurar los nodos
Cambies propietario del directorio en ambas nodos.

chown hacluster:haclient

4

Cambia la configuración de red en ambas nodos por adaptador solo anfitrión para poder realizar las comprobaciones en un entorno controlado.
Para la maquina real

adaptador solo anfitrion

Para los nodos

HA nodos

Baja la interfaz

# ifdown nombre_interfaz : para baja un interfaz de red

baja interfaz de red en linux

Asigna una IP static del rango con

# nano /etc/network/interfaces

asigna IP en linux server

9

Volva a subir la interfaz

# ifup nombre_interfaz : para subir una interfaz de red

subir interfaz de red en linux

subir interfaz de red en un servidor ubuntu

Comprobar si se ven los nodos

ping IP virtual de cluster

Tambien desde la anfitriona

Crear clave de autentificación:

Creamos en HA1 la clave de autenticación de corosync y la copiamos a HA2:

# corosync-keygen

genera clave corosync

Pulsa cualquera teclas para qye se genera la clave

clave corosync para HA Linux

Copia la clave a segundo nodo
Ya que Ubuntu no admite inicia sesión como root, nos copiamos al directorio del usuario admin.

copia clave entre nodos de un cluster

Ve a nodo HA2 y mover la clave a directorio corosync

mover clave corosync

Asegurar que solo root puede leer este archivo

cambia propietario de un archivo en linux

Configurar corosync en los nodos

Editamos el fichero de configuración de corosync (/etc/corosync/corosync.conf) de ambos nodos y añadimos la red que se va a utilizar para controlar el latido entre los nodos, la subred privada. En línea 42

red de latido

Antes de poder iniciar corosync, tenemos que editar / etc / default / corosync y activar cambiando el no al yes:

como se inicia corosync

Reiniciamos los dos nodos: a partir de aquí todos hechos se replican en el otro
Cuando estén completamente arrancados, inicia pacemaker en ambos

# service pacemaker start

como se inicia pacemaker

Comprobar el funcionamiento de los nodos del clúster
Después de iniciar pacemaker y han pasado unos segundos, los nodos deben ser parte de la agrupación del cluster. Para comprobar esto lo hacemos de la siguiente manera: cuando los nodos del clúster se unen al clúster:

# crm_mon

comprobar funcionamiento de un cluster HA linux

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

# crm configure property stonith-enabled=false

desabilitar stonith de pacemaker

Ahora configuramos el recurso de la IP virtual (10.0.0.4)

# crm configure primitive FAILOVER-ADDR ocf:heartbeat:IPaddr2 params ip=”10.0.0.4″ nic=”eth0″ op monitor interval=”10s” meta is-managed=”true”

Al monitorizar ahora el cluster, veremos que aparece el recurso FAILOVER-ADDR asociado en este momento a HA1 y HA2 como respalda.

IP HA

Desde un equipo de la red de latido probamos
Haga ping a la 10.0.0.4 y verificamos la dirección MAC que responde

ping cluster

Desabilitar quorum

Sin embargo HA2 no pasa a ofrecer el recurso directamente porque no hay cuórum en el cluster. El cuórum (quorum) es una propiedad que utiliza pacemaker para tomar las decisiones apropiadas mediante consultas consensuadas a todos los nodos, pero no tiene razón de ser en un cluster de solo dos nodos, ya que sólo habrá quorum cuando los dos nodos estén operativos, así que ignoramos las decisiones basadas en cuórum:

# crm configure property no-quorum-policy=ignore

desabilitar quorum

Ahora probamos el funcionamiento del cluster apagando HA1 y monitorizamos el cluster desde HA2:

nodo dos

HA cluster de apache2

En este pequeño tutorial os mostraré como configurar básicamente un cluster en alta disponibilidad sobre apache2 con corosync y pacemaker.
Volvemos a adaptador puente e instala apache2 en ambas nodos

# apt-get update
# apt-get install apache2

Personalizar los sitios en cada nodo

index.html en apache2

34

Recarga el servicio apache en ambos

# service apache2 reload

Configurar el recurso para apache:

# crm configure primitive P_APACHE ocf:heartbeat:apache params configfile=”/etc/apache2/apache2.conf” statusurl=”http://localhost/server-status” op monitor interval=”40s”

recurso apache en un cluster

Reinicia servicio corosync y pacemaker en ambas nodos y verificar el funcionamiento de los nodos

funcionamiento de cluster con apache2

Comprobar el funcionamiento:
Hemos visto que el nodo HA2 sí que está ofreciendo servicio apache comprobamos desde la maquina real para ver si es correcto poniendo la IP de cluster 10.0.0.4 en el navegador

HA nodo 1

Ahora guarda o baja la interfaz de red en el nodo HA2, ya versa como el HA1 toma mando inmediatamente

funcionamiento de latido en un cluster

Refrescar la página para ver quien está en mando

38

Así, hemos alcanzado a montar un cluster de dos nodos y tres recursos. Algunos comandos que pueden servir.

Para mirar la configuración que hemos hecho, ejecutar el siguiente comando

# crm configure show

crm configure show

Para saber más como administra Linux HA: Aquí
Para actualidad de pacemaker., mira página oficial
Para más elaboraciones de otros recursos HA, subscribe en este blog

pacemaker

Anuncios
 

Etiquetas: , , ,

2 Respuestas a “Alta disponibilidad: Como configurar un Cluster (HA linux) con corosync y pacemaker con recurso apache2

  1. David Moya

    23 mayo, 2015 at 18:15

    Hola estoy haciendo mi proyecto para final de grado superior de administración de sistemas y he programado una pequeña aplicación web en jsp para conectarme a una base de datos cassandra, pero tengo en problema que solo me conecto a un nodo por lo tanto si esta cae no consigo HA. Estoy intentando conseguirlo con corosync y pacemaker pero cuando pongo la ip virtual en mi programa me falla la conexión.¿Alquien podria ayudarme?Gracias un saludo.

    Me gusta

     
  2. Werther

    13 octubre, 2016 at 08:50

    Hola Soy nuevo en esto, me gustaría saber si dentro hearbeat se puede establecer algún tipo de algoritmo de balanceo de carga como round robin entre otros … Muchas gr acias saluds

    Me gusta

     

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: