En este pequeño tutorial os mostraré como configurar básicamente un cluster en alta disponibilidad sobre apache2 con corosync y pacemaker.
Para montarla tenemos dos maquinas:
churchill: 192.168.1.13 (nodo principal)
clinton: 192.168.1.254
Para empezar instalaremos apache2
aptitude install apache2
Y crearemos un virtualhost (si no sabeos mirad este enlace http://enunlugardealcala.blogspot.com.es/2012/10/virtualhosting-en-apache.html) en ambos hosts con el siguiente contenido :
<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@localhost.com
ServerName localhost
ErrorLog /var/log/apache2/nodo.error_log
CustomLog /var/log/apache2/nodo.access_log common
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
</VirtualHost>
Este host será el que le indique al otro nodo como esta este nodo.
Ahora instalaremos corosync y pacemaker en ambos nodos:
aptitude install pacemaker corosync
Crearemos una clave en el nodo principal:
corosync-keygen
En el caso de que no tengamos interfaz gráfico o estemos en un entorno virtualizado, usaremos estos comandos antes de generar la clave:
mknod /dev/newrandom c 1 9
chmod --reference=/dev/random /dev/random
mv -f /dev/newrandom /dev/random
Después pasaremos al otro nodo la clave generada:
scp /etc/corosync/authkey clinton:/etc/corosync/authkey
Editaremos el fichero de configuración de ambos nodos (/etc/corosync/corosync.conf) y añadimos la red en el que se van a sincronizar:
bindnetaddr: 192.168.1.0
También tendremos que configurar el fichero /etc/default/corosync para que reconozca el demonio, esto se consigue poniéndolo a yes:
START=yes
Se reinicia el servicio en ambos nodos:
service corosync restart
Y ahora se tendrán que sincronizar ambos nodos:
============
Last updated: Sat Mar 2 15:09:02 2013
Last change: Sat Mar 2 14:03:03 2013 via crm_attribute on clinton
Stack: openais
Current DC: clinton - partition with quorum
Version: 1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff
2 Nodes configured, 2 expected votes
0 Resources configured.
============
Online: [ clinton churchill ]
A continuación desactivaremos el STONITH:
crm configure property stonith-enabled=false
Y configuraremos un recurso para los nodos ( a partir de ahora todo lo que se configure de crm en un nodo se replicará al otro):
crm configure primitive ClusterIP ocf:heartbeat:IPaddr2 params ip=192.168.1.101 cidr_netmask=32 op monitor interval=30s
Podremos comprobarlo haciendo un crm_mon:
============
Last updated: Sat Mar 2 15:09:02 2013
Last change: Sat Mar 2 14:03:03 2013 via crm_attribute on clinton
Stack: openais
Current DC: clinton - partition with quorum
Version: 1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff
2 Nodes configured, 2 expected votes
1 Resources configured.
============
Online: [ clinton churchill ]
ClusterIP (ocf::heartbeat:IPaddr2): Started churchill
Después configuraremos 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"
Pondremos el orden en el que mirara el estado
crm configure order START_ORDER inf: ClusterIP P_APACHE
Marcaremos ambos nodos comoel primero y el segundo
crm configure location L_IP_NODE001 ClusterIP 100: churchill
crm configure location L_IP_NODE002 ClusterIP 100: clinton
Haremos un crm_mon y veremos que el recurso de apache está configurado:
============
Last updated: Sat Mar 2 15:26:36 2013
Last change: Sat Mar 2 15:26:34 2013 via cibadmin on churchill
Stack: openais
Current DC: clinton - partition with quorum
Version: 1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff
2 Nodes configured, 2 expected votes
2 Resources configured.
============
Online: [ clinton churchill ]
ClusterIP (ocf::heartbeat:IPaddr2): Started churchill
P_APACHE (ocf::heartbeat:apache): Started churchill
Podremos ver quien sirve la web:
Pararemos un nodo con crm node standby:
crm node standby churchill
Volveremos a monitorizarlo con cmr_mon:
============
Last updated: Sat Mar 2 15:54:45 2013
Last change: Sat Mar 2 15:54:40 2013 via crm_attribute on churchill
Stack: openais
Current DC: clinton - partition with quorum
Version: 1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff
2 Nodes configured, 2 expected votes
2 Resources configured.
============
Node churchill: standby
Online: [ clinton ]
ClusterIP (ocf::heartbeat:IPaddr2): Started clinton
P_APACHE (ocf::heartbeat:apache): Started clinton
Y esto es todo, aunque me gustaría citar algunos comandos que pueden servir.
Para mirar la configuración que hemos ido añadiendo , nos basta con ejecutar crm configure show
Si queremos editar a mano esa configuración, nos bastaría con crm configure edit y si queremos modificar el editor de texto con el que lo abre, solo tendremos que cambiar la variable de entorno, export EDITOR="sur/bin/nano"
Para mirar la configuración que hemos ido añadiendo , nos basta con ejecutar crm configure show
Si queremos editar a mano esa configuración, nos bastaría con crm configure edit y si queremos modificar el editor de texto con el que lo abre, solo tendremos que cambiar la variable de entorno, export EDITOR="sur/bin/nano"
No hay comentarios:
Publicar un comentario