Bitácora de EleKtR0

English - Italiano - Deutsch - Français - Português - русский

21 de enero de 2015

Instalar un cluster en Debian desde 0

1º Instalar Corosync y Pacemaker
aptitude install corosync pacemaker
Esto crea un usuario hacluster en un grupo llamado haclient

2º Modificaremos en /etc/corosync/corosync.conf la ip de la interfaz de red que usará el cluster para comunicarse. Por defecto podemos encontrar 127.0.0.1 en bindnetaddr Si vamos a usar multicast para la comunicación y localización de nodos en el cluster podemos dejar la ip por defecto en mcastaddr si no tenemos otros servidores que vayan a usarla.
        interface {
                # The following values need to be set based on your environment
                ringnumber: 0
                bindnetaddr: 192.168.1.81  # ip de la interfaz a usar por el cluster
                mcastaddr: 226.94.1.1
                mcastport: 5405
        }

Aprovecharemos para configurar el log en un fichero separado puesto que el cluster generará mucha información y hará que el log del sistema sea inmanejable. Para ellos pondremos en el apartado logging de /etc/corosync/corosync.conf lo siguiente:
 to_syslog: no     # cambiar el valor por defecto yes a no  
 to_logfile: yes   # cambiar el valor por defecto no a yes para desviar la salida a un fichero
 logfile: /var/log/cluster.log  # esta línea no existe y hay que añadirla para indicar el nombre del fichero de log
3º Para que el servicio arranque, pondremos START=yes en /etc/default/corosync y ejecutaremos:
 service corosync start 
4º Configurar el resto de nodos del cluster de la misma forma si no lo hemos hecho en los pasos anteriores y arrancar el servicio corosync.

5º El servicio gestor de recursos del cluster pacemaker no arranca si no indicamos un recurso stonith antes pero temporalmente podemos poner en las propiedades del cluster con el comando crm configure edit la propiedad stonith-enabled="false" para que nos deje arrancar el servicio pacemaker. Ejemplo:
property $id="cib-bootstrap-options" \
        dc-version="1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff" \
        cluster-infrastructure="openais" \
        expected-quorum-votes="2" \
        no-quorum-policy="ignore" \
        stonith-enabled="false"
Si tenemos un cluster de sólo dos nodos es necesaria la propiedad no-quorum-policy="ignore" para que al fallar un nodo se mantengan levantados los servicios en otro nodo ya que se pierde el quorum. Si tenemos más de un nodo no es necesario y además contrapropucente porque puede darse una situación de split brain. El comando crm_verify -L nos mostrará errores de configuración del cluster si no arranca algún servicio. En versiones anteriores de Pacemaker se arrancaba el servicio con el script en /etc/init.d pero en la versión actual, incluida en Debian Wheezy el servicio pacemaker es ejecutado como plugin de Corosync y no hay que ejecutarlo como servicio del sistema.

6º Probaremos a configurar manualmente una ip flotante en el cluster. Recomendable usar alguna herramienta gráfica, como Hawk o crm_gui, para configurar los recursos. Para configurarla manualmente añadimos estas líneas con crm configure edit
primitive ip-apache ocf:heartbeat:IPaddr2 \
 params cidr_netmask="24" ip="192.168.1.88" \
 op stop interval="0" timeout="20s" \
 op start interval="0" timeout="20s" \
 op monitor interval="10s" timeout="20s"
Con el comando crm_mon podremos comprobar que se está ejecutando el recurso en uno de los nodos (con un ping se puede probar que la ip del ejemplo, 192.168.1.88, responde). Ahora podemos añadir/quitar recursos en el cluster y configurar el recurso stonith para que un servidor inestable se reinicie o apague. No nos olvidemos de poner la propiedad stonith-enabled="true" cuando configuremos stonith.

Etiquetas: , ,

0 comentarios:

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]



<< Inicio