Para la instalación del programa de sincronización heartbeat, usaremos los repositorios, ya que este programa se encuentra disponible en ellos.
aptitude install heartbeat-2
Procedimiento de arranque y parada manual
- Arrancar el servicio:
Desde el directorio /etc/init.d # ./heartbeat start
- Parar el servicio
Desde el directorio /etc/init.d # ./heartbeat stop
- Monitorización de HeartBeat.
Para el correcto funcionamiento de la aplicación HeartBeat la ejecución de este script debe dar como resultado 0
/etc/init.d/heartbeat status
Si se detectara una salida distinta de 0 habría que reiniciar la aplicación, por medio del script /etc/init.d/heartbear restart, en el nodo donde se detectará el error.
- Configuración
Una vez que que hemos instalado el software de HeartBeat siguiendo los pasos descritos en el Procedimiento de Instalación de HeartBeat, debemos copiar en la ruta /etc/ha.d/ las plantillas de los archivos de configuración que se ubican en la siguiente ruta: /usr/share/doc/heartbeat-2
cp /usr/share/doc/heartbeat-2/haresources cp /usr/share/doc/heartbeat-2/authkeys cp /usr/share/doc/heartbeat-2/ha.cf /etc/ha.d/ cp /usr/share/doc/heartbeat-2/ha_logd.cf /etc/logd.cf Descomentamos la línea logfacility y la dejamos así: logfacility daemon
Una vez tengamos los archivos copiados se deben editar y definir las caracteristicas del servicio del HeartBeat ha.cf
Este archivo le dice a HeartBeat qué tipos de interfaces a utilizar para comunicarse con el/los otro/s nodo/s del cluster. También define los nodos que van a formar el cluster y los archivos de log donde se registraran las trazas de la aplicación. Habrá que descomentar las siguientes líneas configurándolas con los valores que se indican:
#Archivos de log de HB debugfile /var/log/HA-LOG/ha-debug logfile /var/log/HA-LOG/ha-log keepalive 2 # tiempo en segundos en el que se considera un sistema como 'muerto' si no responde deadtime 30 # puerto de comunicacion por la interfaz de red udpport 694 #velocidad de comunicacion por el puerto serie baud 1920 # Esto solo sería necesario en el aso de que el cluster dispusiera de puerto serie. # Configuracion del puerto serie para el heartbeat serial /dev/ttySx # interfaz de red para el heartbeat bcast ethx # se define el auto_failback en off para que el servicio solo se balanceé ante el fallo de uno de los nodos auto_failback off # definicion de nodos del cluster node nodo1 node nodo2 # definimos la IP donde se realiza ping constantemente para comprobar la correcta conectividad del nodo ping default_gateway # Definimos la aplicación pingd que se encargará de actualizar el CRM al detectar cualquier fallo de conectividad respawn hacluster /usr/lib/heartbeat/pingd -m 100 -d 5s #Habilitamos el CRM crm yes
Haresources
En este archivo se definen los recursos que son gestionados por HeartBeat. Los recursos son script Linux Standars Base (LSB) como los que se usan para arrancar o parar servicios al arrancar el sistema en los diferentes runlevels. Heartbeat buscará estos scripts en estas dos rutas: /etc/rc.d/init.d y /etc/ha.d/resource.d, así que se debe alojar el script al menos en una de las dos.
Nodo1 IPServicio Filesystem::/dev/mapper/volumen /ruta/a/montar:: reiserfs servicio
La secuencia que sigue HeartBeat a la hora de levantar el servicio es la siguiente: Primero comprueba que el nodo donde definimos que se debe arrancar el servicio (Nodo1) está operativo, una vez comprobado, levanta un alias con la dirección del servicio que le indiquemos en puerto serie del servidor Activo, luego, si lo definimos así, montar el filesystem indicado, que debe estar en un disco compartido, en la ruta a montar y por ultimo arranca el servicio. Si hubiera más de un servicio los arrancaría de forma secuencial, esto es, de izquierda a derecha.
Authkeys
En este archivo se define el nivel de seguridad con la que se mandaran información los nodos del cluster Heartbeat. Existen tres tipos: crc, md5 y sha1. Siendo el más seguro el sha1 y el más inseguro el crc. Nosotros escogeremos el tipo intermedio md5. Para ello habrá que definir en el archivo lo siguiente.
auth 3 3 md5 clave
Donde clave es la palabra que tenemos que definir en ambos nodos para que sirva de clave entre ellos. Una vez definida se debe cambiar los permisos de este fichero a 600 con "chmod 600 /etc/ha.d/authkeys". Una vez modificados estos ficheros habrá que ejecutar lo siguiente en cada nodo: /usr/lib/heartbeat/haresources2cib.py /etc/ha.d/haresources Esto nos crea el archivo de configuración del CRM en /var/lib/heartbeat/crm/cib.xml Una vez creado este archivo lo editaremos y añadiremos esto en la sección "constraints":
rsc_location id="group_1:connected" rsc="group_1" rule id="group_1:connected:rule" score_attribute="pingd" expression id="group_1:connected:expr:defined" attribute="pingd" operation="defined"/ /rule /rsc_location Una vez ejecutado renombraremos el archivo /etc/ha.d/haresources a /etc/ha.d/haresources_old Ahora cambiaremos el usuario y grupos propietarios de los directorios de HeartBeat: chown -R hacluster:haclient /var/run/heartbeat chown -R hacluster:haclient /var/lib/heartbeat chown -R hacluster:haclient /usr/lib/heartbeat
/etc/hosts
A parte de los ficheros de configuración de HeartBeat hay que definir en el archivo hosts de todos los servidores del cluster las ip series y los nombres tanto de los nodos del cluster como de los alias del servicio.
ipnodo1 nombrenodo1 nombrenodo1.dominio ipnodo2 nombrenodo2 nombrenodo2.dominio ipservicio nombreservicio nombreservicio.dominio
Sincronización Horaria
Para el correcto funcionamiento de HeartBeat se recomienda que todos los nodos del cluster tengan la fecha y hora sincronizadas
Comandos y usos de Heartbeat
Arrancar HeartBeat:
Para arrancar HB es necesario ejecutar el siguiente script con root: /etc/init.d/heartbeat start
Para comprobar que Heartbeart ha arrancado correctamente ejecutar:
/etc/init.d/heartbeat status La salida de este comando debería ser: heartbeat OK [pid xxxxx et al] is running on xxxx [xxxx]...
Parar Heartbeat
Para parar HeartBeat habrá que ejecutar este script con root /etc/init.d/heartbeat stop
Para comprobar que Heartbeat ha parado correctamente se debe ejecutar el siguiente comando:
ps -ef | grep heartbeat | grep -v grep
Si este comando devuelve que aún se está ejecutando algún proceso volver a ejecutar el script de parada y si aún así persistiera algún proceso, habrá que proceder a matarlo con un kill -9
Comprobar qué servicios hay en un cluster:
Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar: crm_resource -L | grep Group Resource Group: group_1
Comprobar en qué nodo se encuentra el servicio:
Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar: # crm_resource -W -r group_1 -t group resource group_1is running on: emanel2
Arrancar un servicio
Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar: # crm_resource -r group_1-t group -p target_role -v started Comprobar que el servicio ha arrancado en el nodo primario
Parar un servicio
Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar: # crm_resource -r group_1-t group -p target_role -v stopped Comprobar que el servicio ya no está corriendo en ningún nodo.
Migrar el servicio a otro nodo
Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar: # crm_resource -M -r group_1 -t group -H dsusanita Comprobar que el servicio se ha realocado al nodo indicado
Migrar el servicio al nodo primario
Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar: # crm_resource -U -r group_1 -t group
Dejar un Nodo en Standby
Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar: # crm_resource -H dsusanita -v on
Poner un Nodo OnLine
Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar: # crm_resource -H dsusanita -v off
Monitorizar el estado del Cluster
Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar: # crm_mon -i2










No entiendo y espero me lo puedas aclarar, ( porque me está complicando !!! ) al tener habilitado el crm, no se supone que el archivo haresources no se lee ??
agradezco desde ya cualquier aporte.