domingo, 10 de marzo de 2013

HA Cluster de apache2 con pacemaker y corosync



Introducción


En esta pequeña práctica aprenderemos a como configurar básicamente un clúster en alta disponibilidad sobre apache2 con corosync y pacemaker .

Para la simulación utilizaremos dos máquinas Debían:
Debían1: 192.168.50.2 (host principal)
Debían 2: 192.168.168.50.3


Instalación y configuración de servidor web Apache2


Empezaremos instalando apache2

sudo apt-get install apache2

Creación de los sitios virtuales


Una vez instalado crearemos un host virtual con el siguiente contenido:

Para esta práctica modificamos el sitio default y añadimos las siguientes líneas:




Esto deberemos hacerlo tanto en debian1 como en debian2. Una opción que tenemos es que cuando hayamos acabado en debian1 copiemos el archivo por scp a debian2.

Instalación y configuración de corosync pacemaker

A continuación deberemos instalar pacemaker y corosync:

sudo apt-get install pacemaker corosync


Instalado, crearemos la clave en Debían1 uno para ello escribiremos lo siguiente:


corosync-keygen


Y esta clave la pasaremos por scp a Debian2


Scp  /etc/corosync/authkey usuario@maquina:/etc/corosync/authkey

Una vez copiado, editaremos los archivos corosync.conf y corosync en ambas máquinas del siguiente modo.


Cuando terminemos de editar reiniciamos el servicio en ambas máquinas.

service corosync restart


Comprobamos que este sincronizamos los host:



A continuación desactivamos STONITH:

crm configure property stonith-enabled=false

Creación del recurso FAILOVER-ADDR

Y configuraremos un recurso para host  (a partir de ahora todo lo que se configure de crm en un nodo se replicará al otro):

crm configure primitive FAILOVER-ADDR ocf:heartbeat:IPaddr2 params ip="192.168.50.11." nic="eth0" op monitor interval="10s" meta is-managed="true"


Y comprobamos que este corriendo el recurso con un crm_mon.




Creación del recurso P_APACHE

Comprobado que funciona el recurso anterior añadiremos el recurso de Apache.

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

Y comprobamos como el anterior:



Asignación del orden de los recursos y maquinas

Pondremos el orden en el que se mirara el estado

crm configure order START_ORDER inf: FAILOVER-ADDR P_APACHE

Marcaremos ambos nodos como el primero y el segundo para los dos recursos:

crm configure location  L_IP_NODE001 FAILOVER-ADDR 100: debian1crm configure location  L_IP_NODE002 FAILOVER-ADDR 100: debian2crm configure location  L_APACHE_NODE001  P_APACHE 100: debian1crm configure location  L_APACHE_NODE002  P_APACHE 100: debian2

Hacemos crm_mon para comprobar que todo va bien:






Testeo

Ahora desde el navegador vamos a la url 192.168.50.11


Como vemos nos esta respondiendo el servidor de debian1.
Ahora comprobaremos que pasa si debian1 cae. Para ello pasamos a standby el host de la siguiente manera:

crm node standby Debian1

Y probamos de nuevo:


Como podemos comprobar al estar caído debian1 debian2 pasa a responder las peticiones de Aapache











3 comentarios :

Al menos ponlo con tus palabras.., es libre pero hay que ser humilde y reconocer el trabajo de otro o mencionarlo.

Primero compara con el manual del q e sacado informacion y veras q no es 100% igual y segundo pondre la fuente del blog de donde lo saque pero como era de una practica de instituto no le di importancia.

Se ve de lejos q estudias en el gonzalez nazareno ;)

Publicar un comentario