Ayuda con Clustering Heartbeat!! Los servicios no se levantan en el slave......

Forums: 

Como estan amigos de EcuaLug!!

Necesito que me ayuden con esto.... estoy configurando un cluster con Heartbeat, este me parece mucho mas sencillo de configurar y de aplicar.

El problema que tengo es el siguiente. Lo estoy haciendo en un ambiente virtualizado bajo WMware solo por cuestiones de prueba. La distribucion que estoy usando es Centos 5.3. El cluster esta creado por dos servidores (master/slave) con las IPs 192.168.1.10 y 192.168.1.20, la ip virtual es la 192.168.1.22. Ambos tienen instalado los servicios de apache y asterisk.

Hice las configuraciones del cluster, asigne el servidor master y el slave, levante la ip virtual, hice ping a la ip virtual, realice la prueba de que un servidor se levantara haciendo que al otro el servicio de red se caiga. Hasta ahi todo perfecto!!!!!! Hasta ahi bien por el lado del hardware, si responde como deberia ser.

Ahora lo que no puedo hacer es que responda a nivel de aplicaciones. Por ejemplo quiero hacer el cluster para Asterisk, pero por ejemplo cuando en un servidor hago caer el servicio de httpd en el otro no pasa nada, no toma automaticamente la ip virtual ni nada (pero en el servidor slave si esta abajo el servicio de httpd lo que me indica que si esta funcionando hasta cierto apecto). Cuando hago que se muera por completo el servidor master... ahi recien se levanta el slave e inicia el demonio de httpd y todo perfecto. Pero la cuestion no es asi, se supone que si en un servidor se cae un servicio al cual se le esta dando el "high availability"... el servidor slave debe agarrar los privilegios de master del cluster... pero no se que pasa.

aca les dejo la configuracion que tengo hecha:

--------------------------------------------------------------------------------
# more /etc/hosts

server1-cluster 192.168.1.20
server2-cluster 192.168.1.10

--------------------------------------------------------------------------------

# more /etc/ha.d/authkeys

auth 2
2 sha1 password

--------------------------------------------------------------------------------
#more /etc/ha.d/ha.cf

logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth0
udpport 694
auto_failback on
node server1-cluster
node server2-cluster

--------------------------------------------------------------------------------
# more /etc/ha.d/haresources

------------------ opcion 1 ----------------------------
server1-cluster IPaddr::192.168.1.22/24/eth0 httpd

------------------ opcion 2 ----------------------------
server1-cluster IPaddr::192.168.1.22/24/eth0 asterisk

ACA TENGO OTRO PROBLEMA cuando dejo configurado solo con httpd (opcion-1) el cluster por lo menos esta en pie y no da ningun problema,
solo queda el problema que les comente que deberia funcionar a nivel de aplicaciones y no pasa asi.

Pero cuando le dejo con la configuracion con asterisk (opcion-2) el cluster solo se levanta por unos 30 segundos y luego se muere, la
IP Virtual deja de aparecer, no responde los pings ni nada. Y EN REALIDAD esta es la que mas me interesa porque quiero levantar el cluster
para asterisk. En realidad no se que esta pasando, si Asterisk esta dando conflictos o algo???

--------------------------------------------------------------------------------

Cabe recalcar que ambos servidores tienen la misma configuración, con excepcion del archivo hosts claro esta, dejando solo la ip que corresponde a cada uno.

--------------------------------------------------------------------------------

Necesito que me ayuden, me la he pasado por todo google buscando manuales y en todos me dicen lo mismo y que segun asi como esta configurado ahora deberia funcionar pero nada.

Les agradesco de antemano por la paciencia que tuvieron al leer todo este relato pero trate de ser lo mas claro posible.

Gracias, estare esperando sus comentarios.

Ahh tambien les dejo una parte del log de heartbeat:
**********************************************************************************************************

heartbeat[8249]: 2010/03/24_23:18:22 info: Initial resource acquisition complete (T_RESOURCES(us))
IPaddr[8330]: 2010/03/24_23:18:22 INFO: Resource is stopped
heartbeat[8294]: 2010/03/24_23:18:22 info: Local Resource acquisition completed.
harc[8381]: 2010/03/24_23:18:22 info: Running /etc/ha.d/rc.d/ip-request-resp ip-request-resp
ip-request-resp[8381]: 2010/03/24_23:18:22 received ip-request-resp IPaddr::192.168.1.22/24/eth0 OK yes
ResourceManager[8402]: 2010/03/24_23:18:23 info: Acquiring resource group: server1-cluster IPaddr::192.168.1.22/24/eth0 asterisk
IPaddr[8429]: 2010/03/24_23:18:23 INFO: Resource is stopped
heartbeat[8249]: 2010/03/24_23:18:23 info: remote resource transition completed.
ResourceManager[8402]: 2010/03/24_23:18:23 info: Running /etc/ha.d/resource.d/IPaddr 192.168.1.22/24/eth0 start
IPaddr[8527]: 2010/03/24_23:18:24 INFO: Using calculated netmask for 192.168.1.22: 255.255.255.0
IPaddr[8527]: 2010/03/24_23:18:24 INFO: eval ifconfig eth0:0 192.168.1.22 netmask 255.255.255.0 broadcast 192.168.1.255
IPaddr[8498]: 2010/03/24_23:18:24 INFO: Success
ResourceManager[8402]: 2010/03/24_23:18:24 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:24 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:24 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:24 CRIT: Giving up resources due to failure of asterisk
ResourceManager[8402]: 2010/03/24_23:18:24 info: Releasing resource group: server1-cluster IPaddr::192.168.1.22/24/eth0 asterisk
ResourceManager[8402]: 2010/03/24_23:18:24 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:24 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:25 info: Retrying failed stop operation [asterisk]
ResourceManager[8402]: 2010/03/24_23:18:26 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:26 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:27 info: Retrying failed stop operation [asterisk]
ResourceManager[8402]: 2010/03/24_23:18:27 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:27 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:28 info: Retrying failed stop operation [asterisk]
ResourceManager[8402]: 2010/03/24_23:18:28 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:28 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:29 info: Retrying failed stop operation [asterisk]
ResourceManager[8402]: 2010/03/24_23:18:29 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:29 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:30 info: Retrying failed stop operation [asterisk]
ResourceManager[8402]: 2010/03/24_23:18:30 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:30 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:31 info: Retrying failed stop operation [asterisk]
ResourceManager[8402]: 2010/03/24_23:18:31 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:31 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:32 info: Retrying failed stop operation [asterisk]
ResourceManager[8402]: 2010/03/24_23:18:33 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:33 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:34 info: Retrying failed stop operation [asterisk]
ResourceManager[8402]: 2010/03/24_23:18:34 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:34 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:35 info: Retrying failed stop operation [asterisk]
ResourceManager[8402]: 2010/03/24_23:18:35 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:35 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:36 info: Retrying failed stop operation [asterisk]
ResourceManager[8402]: 2010/03/24_23:18:36 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:36 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:36 ERROR: Cannot locate resource script asterisk
ResourceManager[8402]: 2010/03/24_23:18:36 ERROR: Resource script for asterisk probably not LSB-compliant.
ResourceManager[8402]: 2010/03/24_23:18:36 WARN: it (asterisk) MUST succeed on a stop when already stopped
ResourceManager[8402]: 2010/03/24_23:18:36 WARN: Machine reboot narrowly avoided!
ResourceManager[8402]: 2010/03/24_23:18:36 info: Running /etc/ha.d/resource.d/IPaddr 192.168.1.22/24/eth0 stop
IPaddr[9011]: 2010/03/24_23:18:37 INFO: ifconfig eth0:0 down
IPaddr[8982]: 2010/03/24_23:18:37 INFO: Success
hb_standby[11687]: 2010/03/24_23:19:07 Going standby [foreign].
heartbeat[8249]: 2010/03/24_23:19:07 info: server1-cluster wants to go standby [foreign]
heartbeat[8249]: 2010/03/24_23:19:07 info: standby: server2-cluster can take our foreign resources
heartbeat[11788]: 2010/03/24_23:19:07 info: give up foreign HA resources (standby).
heartbeat[11788]: 2010/03/24_23:19:08 info: foreign HA resource release completed (standby).
heartbeat[8249]: 2010/03/24_23:19:08 info: Local standby process completed [foreign].
heartbeat[8249]: 2010/03/24_23:19:08 WARN: 1 lost packet(s) for [server2-cluster] [43:45]
heartbeat[8249]: 2010/03/24_23:19:08 info: remote resource transition completed.
heartbeat[8249]: 2010/03/24_23:19:08 info: No pkts missing from server2-cluster!
heartbeat[8249]: 2010/03/24_23:19:08 info: Other node completed standby takeover of foreign resources.
heartbeat[8249]: 2010/03/24_23:21:12 info: Heartbeat shutdown in progress. (8249)
heartbeat[3166]: 2010/03/24_23:21:12 info: Giving up all HA resources.
ResourceManager[3181]: 2010/03/24_23:21:12 info: Releasing resource group: server1-cluster IPaddr::192.168.1.22/24/eth0 asterisk
ResourceManager[3181]: 2010/03/24_23:21:12 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:12 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:13 info: Retrying failed stop operation [asterisk]
ResourceManager[3181]: 2010/03/24_23:21:13 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:13 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:14 info: Retrying failed stop operation [asterisk]
ResourceManager[3181]: 2010/03/24_23:21:14 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:14 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:15 info: Retrying failed stop operation [asterisk]
ResourceManager[3181]: 2010/03/24_23:21:15 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:15 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:16 info: Retrying failed stop operation [asterisk]
ResourceManager[3181]: 2010/03/24_23:21:16 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:16 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:17 info: Retrying failed stop operation [asterisk]
ResourceManager[3181]: 2010/03/24_23:21:17 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:17 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:18 info: Retrying failed stop operation [asterisk]
ResourceManager[3181]: 2010/03/24_23:21:18 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:18 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:19 info: Retrying failed stop operation [asterisk]
ResourceManager[3181]: 2010/03/24_23:21:19 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:19 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:21 info: Retrying failed stop operation [asterisk]
ResourceManager[3181]: 2010/03/24_23:21:21 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:21 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:22 info: Retrying failed stop operation [asterisk]
ResourceManager[3181]: 2010/03/24_23:21:22 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:22 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:23 info: Retrying failed stop operation [asterisk]
ResourceManager[3181]: 2010/03/24_23:21:23 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:23 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:23 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:23 ERROR: Resource script for asterisk probably not LSB-compliant.
ResourceManager[3181]: 2010/03/24_23:21:23 WARN: it (asterisk) MUST succeed on a stop when already stopped
ResourceManager[3181]: 2010/03/24_23:21:23 WARN: Machine reboot narrowly avoided!
ResourceManager[3181]: 2010/03/24_23:21:23 info: Running /etc/ha.d/resource.d/IPaddr 192.168.1.22/24/eth0 stop
IPaddr[5430]: 2010/03/24_23:21:23 INFO: Success
heartbeat[3166]: 2010/03/24_23:21:23 info: All HA resources relinquished.
heartbeat[8249]: 2010/03/24_23:21:25 info: killing HBFIFO process 8251 with signal 15
heartbeat[8249]: 2010/03/24_23:21:25 info: killing HBWRITE process 8252 with signal 15
heartbeat[8249]: 2010/03/24_23:21:25 info: killing HBREAD process 8253 with signal 15
heartbeat[8249]: 2010/03/24_23:21:25 info: killing HBWRITE process 8254 with signal 15
heartbeat[8249]: 2010/03/24_23:21:25 info: killing HBREAD process 8255 with signal 15
heartbeat[8249]: 2010/03/24_23:21:25 info: Core process 8255 exited. 5 remaining
heartbeat[8249]: 2010/03/24_23:21:25 info: Core process 8253 exited. 4 remaining
heartbeat[8249]: 2010/03/24_23:21:25 info: Core process 8254 exited. 3 remaining
heartbeat[8249]: 2010/03/24_23:21:25 info: Core process 8252 exited. 2 remaining
heartbeat[8249]: 2010/03/24_23:21:25 info: Core process 8251 exited. 1 remaining
heartbeat[8249]: 2010/03/24_23:21:25 info: server1-cluster Heartbeat shutdown complete.
heartbeat[9770]: 2010/03/24_23:34:41 info: Version 2 support: false
heartbeat[9770]: 2010/03/24_23:34:41 WARN: Logging daemon is disabled --enabling logging daemon is recommended
heartbeat[9770]: 2010/03/24_23:34:41 info: **************************
heartbeat[9770]: 2010/03/24_23:34:41 info: Configuration validated. Starting heartbeat 2.1.3
heartbeat[9771]: 2010/03/24_23:34:41 info: heartbeat: version 2.1.3
heartbeat[9771]: 2010/03/24_23:34:41 info: Heartbeat generation: 1269490691
heartbeat[9771]: 2010/03/24_23:34:42 info: glib: UDP Broadcast heartbeat started on port 694 (694) interface eth0
heartbeat[9771]: 2010/03/24_23:34:42 info: glib: UDP Broadcast heartbeat closed on port 694 interface eth0 - Status: 1
heartbeat[9771]: 2010/03/24_23:34:42 info: glib: ucast: write socket priority set to IPTOS_LOWDELAY on eth0
heartbeat[9771]: 2010/03/24_23:34:42 info: glib: ucast: bound send socket to device: eth0
heartbeat[9771]: 2010/03/24_23:34:42 info: glib: ucast: bound receive socket to device: eth0
heartbeat[9771]: 2010/03/24_23:34:42 info: glib: ucast: started on port 694 interface eth0 to 192.168.1.10
heartbeat[9771]: 2010/03/24_23:34:42 info: glib: ping heartbeat started.
heartbeat[9771]: 2010/03/24_23:34:42 info: G_main_add_TriggerHandler: Added signal manual handler
heartbeat[9771]: 2010/03/24_23:34:42 info: G_main_add_TriggerHandler: Added signal manual handler
heartbeat[9771]: 2010/03/24_23:34:42 info: G_main_add_SignalHandler: Added signal handler for signal 17
heartbeat[9771]: 2010/03/24_23:34:42 info: Local status now set to: 'up'
heartbeat[9771]: 2010/03/24_23:34:43 info: Link 192.168.1.254:192.168.1.254 up.
heartbeat[9771]: 2010/03/24_23:34:43 info: Status update for node 192.168.1.254: status ping
heartbeat[9771]: 2010/03/24_23:34:43 info: Link server1-cluster:eth0 up.
heartbeat[9771]: 2010/03/24_23:34:51 info: Link server2-cluster:eth0 up.
heartbeat[9771]: 2010/03/24_23:34:51 info: Status update for node server2-cluster: status up
harc[9782]: 2010/03/24_23:34:51 info: Running /etc/ha.d/rc.d/status status
heartbeat[9771]: 2010/03/24_23:34:51 info: Comm_now_up(): updating status to active
heartbeat[9771]: 2010/03/24_23:34:51 info: Local status now set to: 'active'
heartbeat[9771]: 2010/03/24_23:34:52 info: Status update for node server2-cluster: status active
harc[9801]: 2010/03/24_23:34:52 info: Running /etc/ha.d/rc.d/status status
heartbeat[9771]: 2010/03/24_23:35:03 info: remote resource transition completed.
heartbeat[9771]: 2010/03/24_23:35:03 info: remote resource transition completed.
heartbeat[9771]: 2010/03/24_23:35:03 info: Initial resource acquisition complete (T_RESOURCES(us))
IPaddr[9854]: 2010/03/24_23:35:03 INFO: Resource is stopped
heartbeat[9818]: 2010/03/24_23:35:03 info: Local Resource acquisition completed.
harc[9905]: 2010/03/24_23:35:04 info: Running

El heartbeat solo sensa que

Imagen de antares

El heartbeat solo sensa que el otro servidor esté arriba, no chequea por servicios, es decir cuando no responde al ping lo da de baja y sube el nodo secundario. Cuando el nodo principal responde nuevamente al ping, entonces lo declara activo y le devuelve la ip flotante.

Con respecto a tu configuración no veo nada sobre drbd, supongo que lo tienes configurado correctamente. Te dejo un documento para que lo revises.

Saludos,

antares

mmmmm

Hola antares, gracias por tu ayuda.

Pero si al principio cuando comence a configurarlo y ver que tal era, yo tambien pense que ese era el proposito de este, solo sensar que un servidor este levantado, caso contrario el otro lo remplaza automaticamente tomando la ip virtual del cluster. Eso es verdad.

Pero no se si te has preguntado el porque se pone un demonio al final de esta linea??

master IPadd::192.168.1.1/24/eth0 httpd asterisk mysql

Hasta donde me canse de leer, y ya llevo dos semanas con esto, me dice lo siguiente: heartbeat le da "high availability" a estos servicios o demonios como se les quiera llamar, entonces que pasa, Perfecto puede que el hardware, la red... todo este bien pero que pasa si el servicio de http se cae y este no hace nada... entonces no serviria de nada, entonces ahi entra heartbeat tambien... por eso ponemos estos demonios porque el tambien los va a estar monitoreando y si uno de estos se cae el otro servidor lo remplaza, asi la red o el hardware del equipo este en perfectas condiciones y responda incluso hasta el ping.

Bueno hasta ahi el concepto todo bien pero en la practica no funciona... entonces esa era mi pregunta, como poder resolver ese problema cuando se supone que heartbeat si lo hace!!!!!! Y hasta estos momentos sigo dandole pero no lo soluciono.

Gracias antares... si llegas a encontrar algo al respecto a esto te lo agradeceria bastante que me avisaras.

------------------------------------------------------------------------------------------

Otra cosa mas... no se porque me salen estos errores cuando pongo a asterisk como uno de esos demonios que quiero que monitorize heartbeat:

ResourceManager[3181]: 2010/03/24_23:21:15 ERROR: Cannot locate resource script asterisk
ResourceManager[3181]: 2010/03/24_23:21:15 ERROR: Cannot locate resource script asterisk

Cita: master

Imagen de deathUser

[quote]master IPadd::192.168.1.1/24/eth0 httpd asterisk mysql
...
no se porque me salen estos errores cuando pongo a asterisk como uno de esos demonios que quiero que monitorize heartbeat:
[/quote]

normalmente lo que va después de "eth0" son scripts que deben estar en /etc/init.d/ y deben poder ser llamados con start|stop como parámetros, para que puedan ser detenidos y levantados por el demonio que controla el cluster, seguramente asterisk no cumple con esos criterios.

bye
;)

Hearbeat

Buenos tardes amigo, este link te ayudará bastante, yo armé un cluster para DNS que soporta 60000 querys por minuto. http://www.ultramonkey.org/

Rommel

muchas gracias

Muchas gracias a todos por la ayuda.

Gracias rcarrillo por el link, le di una ojeada y vi configuraciones que me podrian servir bastante. Este fin de semana me pasare metido de cabeza en eso y les cuento la proxima semana que tal me fue. Y por lo de asterisk pues si vi que no se puede porque este no se maneja por scripts en "init.d" ahora no se como le hare ja ja ja bueno ahi nos vemos.

Gracias.