Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/02/2013, à 09:43

soume86

Heartbeat et DRBD

Bonjout à tous,

J'ai installé heartbeat + Drbd sur mes deux serveurs (serv-maitre et serv-slave) et ça tourne super bien.

Par contre j'ai remarqué un truc pas normal en faisant des tests, je m'explique:
Lorsque j'arrête la machine serv-slave, serv-maître redémarre le heartbeat et mon service apache alors qu'il est maître. Voici les logs du serv-maitre quand je redémarre serv-slave.

Feb 20 17:03:54 serv-maitre heartbeat: [3133]: info: Received shutdown notice from 'serv-slave'.
Feb 20 17:03:54 serv-maitre heartbeat: [3133]: info: Resources being acquired from serv-slave.
Feb 20 17:03:54 serv-maitre heartbeat: [5715]: info: acquire local HA resources (standby).
Feb 20 17:03:54 serv-maitre ResourceManager[5741]: info: Acquiring resource group: serv-maitre drbddisk::r0 Filesystem::/dev/drbd0::/home::ext3 IPaddr::172.16.150.53/16/eth0:0 IPaddr::193.201.26.53/27/eth2:0
Feb 20 17:03:54 serv-maitre heartbeat: [5716]: info: Local Resource acquisition completed.
Feb 20 17:03:54 serv-maitre Filesystem[5808]: INFO:  Running OK
Feb 20 17:03:54 serv-maitre IPaddr[5868]: INFO:  Running OK
Feb 20 17:03:54 serv-maitre IPaddr[5933]: INFO:  Running OK
Feb 20 17:03:54 serv-maitre RessourceManager[7118]: info:  Running /etc/ha.d/ressource.d/apache start
Feb 20 17:03:54 serv-maitre heartbeat: [5715]: info: local HA resource acquisition completed (standby).
Feb 20 17:03:54 serv-maitre heartbeat: [3133]: info: Standby resource acquisition done [foreign].
Feb 20 17:03:54 serv-maitre harc[5987]: info: Running /etc/ha.d/rc.d/status status
Feb 20 17:03:54 serv-maitre mach_down[6003]: info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
Feb 20 17:03:54 serv-maitre mach_down[6003]: info: mach_down takeover complete for node serv-slave.
Feb 20 17:03:54 serv-maitre heartbeat: [3133]: info: mach_down takeover complete.
Feb 20 17:03:57 serv-maitre kernel: drbd0: peer( Secondary -> Unknown ) conn( Connected -> TearDown ) pdsk( UpToDate -> DUnknown )
Feb 20 17:03:57 serv-maitre kernel: drbd0: meta connection shut down by peer.
Feb 20 17:03:57 serv-maitre kernel: drbd0: asender terminated
Feb 20 17:03:57 serv-maitre kernel: drbd0: Terminating asender thread
Feb 20 17:03:57 serv-maitre kernel: drbd0: Creating new current UUID
Feb 20 17:03:57 serv-maitre kernel: drbd0: Connection closed
Feb 20 17:03:57 serv-maitre kernel: drbd0: conn( TearDown -> Unconnected )
Feb 20 17:03:57 serv-maitre kernel: drbd0: receiver terminated
Feb 20 17:03:57 serv-maitre kernel: drbd0: Restarting receiver thread
Feb 20 17:03:57 serv-maitre kernel: drbd0: receiver (re)started
Feb 20 17:03:57 serv-maitre kernel: drbd0: conn( Unconnected -> WFConnection )
Feb 20 17:04:25 serv-maitre heartbeat: [3133]: WARN: node serv-slave: is dead
Feb 20 17:04:25 serv-maitre heartbeat: [3133]: info: Dead node serv-slave gave up resources.
Feb 20 17:04:25 serv-maitre heartbeat: [3133]: info: Link serv-slave:eth0 dead.

Est ce que y'a une option à passer à heartbeat pour pas qu'il redémarre mes scripts lorsque le slave est arrêté??
PS: Voici les 4 lignes qui me font penser que serv-maitre redémarre apache.

Feb 20 17:03:54 serv-maitre Filesystem[5808]: INFO:  Running OK
Feb 20 17:03:54 serv-maitre IPaddr[5868]: INFO:  Running OK
Feb 20 17:03:54 serv-maitre IPaddr[5933]: INFO:  Running OK
Feb 20 17:03:54 serv-maitre RessourceManager[7118]: info:  Running /etc/ha.d/ressource.d/apache start 

Merci d'avance.

Hors ligne

#2 Le 21/02/2013, à 10:13

tiramiseb

Re : Heartbeat et DRBD

Salut,

D'abord, un conseil : abandonne Heartbeat (obsolète) et passe à Corosync. Toujours avec Pacemaker en gestionnaire de ressource.

Ensuite, es-tu certain que les services étaient sur le serveur que tu appelles "maitre" avant le shutdown ?

Hors ligne

#3 Le 21/02/2013, à 10:26

soume86

Re : Heartbeat et DRBD

Merci pour le conseil, pour l'instant je reste sur heartbeat parce que j'ai tous mes serveurs qui tournes dessus.

Pour répondre à ta question, l'adresse IP virtuelle, les ressources et les services sont bien sûr monté sur le serveur maître.

Je comprends plus rien, le fait que le svale soit redémarrer ne devrait pas poser de problèmes? non je me trompe??

Des réponses, des idées???
Merci d'avance!

Hors ligne

#4 Le 21/02/2013, à 10:40

tiramiseb

Re : Heartbeat et DRBD

l'adresse IP virtuelle, les ressources et les services sont bien sûr monté sur le serveur maître.

Je préfère demander.

Car, comme toi beaucoup de gens parlent en terme de "maitre" et d'"esclave" alors qu'il n'en est rien : pour la haute disponibilité, les services peuvent être indifféremment sur l'un ou l'autre. C'est pour ça que quand j'installe des clusters de haute dispo je n'appelle jamais un serveur maitre et l'autre esclave.
Appeler un serveur "maitre" fait croire que quand les deux sont allumés les services sont obligatoirement sur celui qui s'appelle "maitre", ce qui est faux : dans la logique des clusters de haute disponibilité, les services sont où ils sont et il n'y a pas de raison pour les déplacer, même si le serveur porte le nom "esclave" ou "slave"...

Mais si tu confirmes formellement qu'avant d'arrêter le serveur que tu appelles esclave tu as bien vérifié que les services étaient sur le serveur que tu appelles maitre, alors le problème doit être ailleurs. Il faut donc les logs qui précèdent ceux que tu as montrés.

Je comprends plus rien, le fait que le svale soit redémarrer ne devrait pas poser de problèmes? non je me trompe??

Tu ne te trompes pas. Si tu redémarres un serveur qui n'a aucune ressource active, il n'y a aucune raison que le ou les autre(s) serveur(s) du cluster réagisse(nt).

Dernière modification par tiramiseb (Le 21/02/2013, à 10:41)

Hors ligne

#5 Le 21/02/2013, à 10:43

soume86

Re : Heartbeat et DRBD

Je vais faire propre.

Je redémarre les deux serveurs et poster les logs tout de suite!!

Crld.

Hors ligne

#6 Le 21/02/2013, à 11:25

soume86

Re : Heartbeat et DRBD

Voilà, j'ai redémarré mes deux serveurs en désactivant heartbeat au démarrage.

Je le démarre sur serv-maître et je vois bien que mon /home est monté, mes adresses aussi et mon script.sh est exécuté, tout sur le maître:

Feb 21 10:57:54 serv-maitre heartbeat: [4741]: info: Link serv-slave:eth0 up.
Feb 21 10:57:54 serv-maitre heartbeat: [4741]: info: Status update for node serv-slave: status up
Feb 21 10:57:54 serv-maitre harc[4748]: info: Running /etc/ha.d/rc.d/status status
Feb 21 10:57:54 serv-maitre heartbeat: [4741]: info: Comm_now_up(): updating status to active
Feb 21 10:57:54 serv-maitre heartbeat: [4741]: info: Local status now set to: 'active'
Feb 21 10:57:54 serv-maitre heartbeat: [4741]: info: Status update for node serv-slave: status active
Feb 21 10:57:54 serv-maitre harc[4765]: info: Running /etc/ha.d/rc.d/status status
Feb 21 10:58:05 serv-maitre heartbeat: [4741]: info: local resource transition completed.
Feb 21 10:58:05 serv-maitre heartbeat: [4741]: info: Initial resource acquisition complete (T_RESOURCES(us))
Feb 21 10:58:05 serv-maitre heartbeat: [4783]: info: Local Resource acquisition completed.
Feb 21 10:58:05 serv-maitre harc[4825]: info: Running /etc/ha.d/rc.d/ip-request-resp ip-request-resp
Feb 21 10:58:05 serv-maitre ip-request-resp[4825]: received ip-request-resp drbddisk::r0 OK yes
Feb 21 10:58:05 serv-maitre ResourceManager[4846]: info: Acquiring resource group: serv-maitre drbddisk::r0 Filesystem::/dev/drbd0::/home::ext3 IPaddr::172.16.1.5/16/eth0:0 
IPaddr::192.2.2.5/16/eth2:0 script.sh
Feb 21 10:58:05 serv-maitre ResourceManager[4846]: info: Running /etc/ha.d/resource.d/drbddisk r0 start
Feb 21 10:58:05 serv-maitre kernel: drbd0: role( Secondary -> Primary )
Feb 21 10:58:05 serv-maitre Filesystem[4914]: INFO:  Resource is stopped
Feb 21 10:58:05 serv-maitre ResourceManager[4846]: info: Running /etc/ha.d/resource.d/Filesystem /dev/drbd0 /home ext3 start
Feb 21 10:58:05 serv-maitre Filesystem[4995]: INFO: Running start for /dev/drbd0 on /home
Feb 21 10:58:05 serv-maitre kernel: kjournald starting.  Commit interval 5 seconds
Feb 21 10:58:05 serv-maitre kernel: EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
Feb 21 10:58:05 serv-maitre kernel: EXT3 FS on drbd0, internal journal
Feb 21 10:58:05 serv-maitre kernel: EXT3-fs: mounted filesystem with ordered data mode.
Feb 21 10:58:05 serv-maitre Filesystem[4984]: INFO:  Success
Feb 21 10:58:05 serv-maitre IPaddr[5063]: INFO:  Resource is stopped
Feb 21 10:58:05 serv-maitre ResourceManager[4846]: info: Running /etc/ha.d/resource.d/IPaddr 172.16.1.5/16/eth0:0 start
Feb 21 10:58:05 serv-maitre IPaddr[5161]: INFO: Using calculated netmask for 172.16.1.5: 255.255.0.0
Feb 21 10:58:05 serv-maitre IPaddr[5161]: INFO: eval ifconfig eth0:0 172.16.1.5 netmask 255.255.0.0 broadcast 172.16.255.255
Feb 21 10:58:05 serv-maitre avahi-daemon[3273]: Registering new address record for 172.16.1.5 on eth0.
Feb 21 10:58:05 serv-maitre IPaddr[5132]: INFO:  Success
Feb 21 10:58:05 serv-maitre IPaddr[5271]: INFO:  Resource is stopped
Feb 21 10:58:05 serv-maitre ResourceManager[4846]: info: Running /etc/ha.d/resource.d/IPaddr 192.2.2.5/16/eth2:0 start
Feb 21 10:58:05 serv-maitre heartbeat: [4741]: info: remote resource transition completed.
Feb 21 10:58:05 serv-maitre IPaddr[5369]: INFO: Using calculated netmask for 192.2.2.5: 255.255.255.224
Feb 21 10:58:05 serv-maitre IPaddr[5369]: INFO: eval ifconfig eth2:0 192.2.2.5 netmask 255.255.255.224 broadcast 193.201.26.63
Feb 21 10:58:05 serv-maitre avahi-daemon[3273]: New relevant interface eth2.IPv4 for mDNS.
Feb 21 10:58:05 serv-maitre avahi-daemon[3273]: Joining mDNS multicast group on interface eth2.IPv4 with address 192.2.2.5.
Feb 21 10:58:05 serv-maitre avahi-daemon[3273]: Registering new address record for 192.2.2.5 on eth2.
Feb 21 10:58:05 serv-maitre avahi-daemon[3273]: Withdrawing address record for 192.2.2.5 on eth2.
Feb 21 10:58:05 serv-maitre avahi-daemon[3273]: Leaving mDNS multicast group on interface eth2.IPv4 with address 192.2.2.5.
Feb 21 10:58:05 serv-maitre avahi-daemon[3273]: iface.c: interface_mdns_mcast_join() called but no local address available.
Feb 21 10:58:05 serv-maitre avahi-daemon[3273]: Interface eth2.IPv4 no longer relevant for mDNS.
Feb 21 10:58:05 serv-maitre IPaddr[5340]: INFO:  Success
Feb 21 10:58:05 serv-maitre avahi-daemon[3273]: New relevant interface eth2.IPv4 for mDNS.
Feb 21 10:58:06 serv-maitre avahi-daemon[3273]: Joining mDNS multicast group on interface eth2.IPv4 with address 192.2.2.5.
Feb 21 10:58:06 serv-maitre avahi-daemon[3273]: Registering new address record for 192.2.2.5 on eth2.
Feb 21 10:58:06 serv-maitre ResourceManager[4846]: info: Running /etc/ha.d/resource.d/script.sh  start

Quand je redémarre serv-slave:

Feb 21 11:05:34 serv-maitre heartbeat: [4741]: info: Received shutdown notice from 'serv-slave'.
Feb 21 11:05:34 serv-maitre heartbeat: [4741]: info: Resources being acquired from serv-slave.
Feb 21 11:05:34 serv-maitre heartbeat: [5635]: info: acquire local HA resources (standby).
Feb 21 11:05:34 serv-maitre ResourceManager[5661]: info: Acquiring resource group: serv-maitre drbddisk::r0 Filesystem::/dev/drbd0::/home::ext3 IPaddr::172.16.1.5/16/eth0:0 
IPaddr::192.2.2.5/16/eth2:0 script.sh
Feb 21 11:05:34 serv-maitre heartbeat: [5636]: info: Local Resource acquisition completed.
Feb 21 11:05:34 serv-maitre Filesystem[5728]: INFO:  Running OK
Feb 21 11:05:35 serv-maitre IPaddr[5788]: INFO:  Running OK
Feb 21 11:05:35 serv-maitre IPaddr[5853]: INFO:  Running OK
Feb 21 11:05:35 serv-maitre ResourceManager[5661]: info: Running /etc/ha.d/resource.d/script.sh  start
Feb 21 11:05:35 serv-maitre heartbeat: [5635]: info: local HA resource acquisition completed (standby).
Feb 21 11:05:35 serv-maitre heartbeat: [4741]: info: Standby resource acquisition done [all].
Feb 21 11:05:35 serv-maitre harc[5986]: info: Running /etc/ha.d/rc.d/status status
Feb 21 11:05:35 serv-maitre mach_down[6002]: info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
Feb 21 11:05:35 serv-maitre mach_down[6002]: info: mach_down takeover complete for node serv-slave.
Feb 21 11:05:35 serv-maitre heartbeat: [4741]: info: mach_down takeover complete.
Feb 21 11:05:38 serv-maitre kernel: drbd0: peer( Secondary -> Unknown ) conn( Connected -> TearDown ) pdsk( UpToDate -> DUnknown )
Feb 21 11:05:38 serv-maitre kernel: drbd0: Creating new current UUID
Feb 21 11:05:38 serv-maitre kernel: drbd0: meta connection shut down by peer.
Feb 21 11:05:38 serv-maitre kernel: drbd0: asender terminated
Feb 21 11:05:38 serv-maitre kernel: drbd0: Terminating asender thread
Feb 21 11:05:38 serv-maitre kernel: drbd0: Connection closed
Feb 21 11:05:38 serv-maitre kernel: drbd0: conn( TearDown -> Unconnected )
Feb 21 11:05:38 serv-maitre kernel: drbd0: receiver terminated
Feb 21 11:05:38 serv-maitre kernel: drbd0: Restarting receiver thread
Feb 21 11:05:38 serv-maitre kernel: drbd0: receiver (re)started
Feb 21 11:05:38 serv-maitre kernel: drbd0: conn( Unconnected -> WFConnection )
Feb 21 11:06:05 serv-maitre heartbeat: [4741]: WARN: node serv-slave: is dead
Feb 21 11:06:05 serv-maitre heartbeat: [4741]: info: Dead node serv-slave gave up resources.
Feb 21 11:06:05 serv-maitre heartbeat: [4741]: info: Link serv-slave:eth0 dead.

Et quand le slave revient:

Feb 21 11:06:05 serv-maitre heartbeat: [4741]: WARN: node serv-slave: is dead
Feb 21 11:06:05 serv-maitre heartbeat: [4741]: info: Dead node serv-slave gave up resources.
Feb 21 11:06:05 serv-maitre heartbeat: [4741]: info: Link serv-slave:eth0 dead.
Feb 21 11:08:15 serv-maitre kernel: drbd0: Handshake successful: DRBD Network Protocol version 86
Feb 21 11:08:15 serv-maitre kernel: drbd0: conn( WFConnection -> WFReportParams )
Feb 21 11:08:15 serv-maitre kernel: drbd0: Starting asender thread (from drbd0_receiver [3057])
Feb 21 11:08:15 serv-maitre kernel: drbd0: drbd_sync_handshake:
Feb 21 11:08:15 serv-maitre kernel: drbd0: self C36310DA9F662EC9:A869E60CF141DCA3:79512AAD026BA27E:DBC74CE7E9916881
Feb 21 11:08:15 serv-maitre kernel: drbd0: peer A869E60CF141DCA2:0000000000000000:79512AAD026BA27F:DBC74CE7E9916881
Feb 21 11:08:15 serv-maitre kernel: drbd0: uuid_compare()=1 by rule 7
Feb 21 11:08:15 serv-maitre kernel: drbd0: peer( Unknown -> Secondary ) conn( WFReportParams -> WFBitMapS ) pdsk( DUnknown -> UpToDate )
Feb 21 11:08:15 serv-maitre kernel: drbd0: conn( WFBitMapS -> SyncSource ) pdsk( UpToDate -> Inconsistent )
Feb 21 11:08:15 serv-maitre kernel: drbd0: Began resync as SyncSource (will sync 16 KB [4 bits set]).
Feb 21 11:08:15 serv-maitre kernel: drbd0: Resync done (total 1 sec; paused 0 sec; 16 K/sec)
Feb 21 11:08:15 serv-maitre kernel: drbd0: conn( SyncSource -> Connected ) pdsk( Inconsistent -> UpToDate )
Feb 21 11:08:19 serv-maitre heartbeat: [4741]: info: Heartbeat restart on node serv-slave
Feb 21 11:08:19 serv-maitre heartbeat: [4741]: info: Link serv-slave:eth0 up.
Feb 21 11:08:19 serv-maitre heartbeat: [4741]: info: Status update for node serv-slave: status init
Feb 21 11:08:19 serv-maitre heartbeat: [4741]: info: Status update for node serv-slave: status up
Feb 21 11:08:19 serv-maitre harc[6043]: info: Running /etc/ha.d/rc.d/status status
Feb 21 11:08:19 serv-maitre harc[6059]: info: Running /etc/ha.d/rc.d/status status
Feb 21 11:08:21 serv-maitre heartbeat: [4741]: info: Status update for node serv-slave: status active
Feb 21 11:08:21 serv-maitre harc[6075]: info: Running /etc/ha.d/rc.d/status status
Feb 21 11:08:21 serv-maitre heartbeat: [4741]: info: remote resource transition completed.
Feb 21 11:08:21 serv-maitre heartbeat: [4741]: info: serv-maitre wants to go standby [foreign]
Feb 21 11:08:22 serv-maitre heartbeat: [4741]: info: standby: serv-slave can take our foreign resources
Feb 21 11:08:22 serv-maitre heartbeat: [6091]: info: give up foreign HA resources (standby).
Feb 21 11:08:22 serv-maitre heartbeat: [6091]: info: foreign HA resource release completed (standby).
Feb 21 11:08:22 serv-maitre heartbeat: [4741]: info: Local standby process completed [foreign].
Feb 21 11:08:22 serv-maitre heartbeat: [4741]: WARN: 1 lost packet(s) for [serv-slave] [10:12]
Feb 21 11:08:22 serv-maitre heartbeat: [4741]: info: remote resource transition completed.
Feb 21 11:08:22 serv-maitre heartbeat: [4741]: info: No pkts missing from serv-slave!
Feb 21 11:08:22 serv-maitre heartbeat: [4741]: info: Other node completed standby takeover of foreign resources.

PS: tous les logs viennent du maître.

Alors, vous avez des idées??

Hors ligne

#7 Le 21/02/2013, à 11:34

tiramiseb

Re : Heartbeat et DRBD

Cette fois-ci, dans les logs il n'y a pas "Running /etc/ha.d/ressource.d/apache start" ; il n'a donc pas tenté de redémarrer Apache2.

Par contre il relance "script.sh". Ce script gère-t-il bien l'argument "status" ?

Il y a des chances que le gestionnaire de cluster exécuter "script.sh status" pour connaître son état et le lancer si nécessaire.

Hors ligne

#8 Le 21/02/2013, à 11:49

soume86

Re : Heartbeat et DRBD

J'avais mit apache mais concrètement c'est script.sh que j'essaie d’exécuter et il gère bien l'argument status.

Et je vois bien, qu'il le démarre de nouveau quand je redémarre le slave:

Feb 21 11:05:34 serv-maitre Filesystem[5728]: INFO:  Running OK
Feb 21 11:05:35 serv-maitre IPaddr[5788]: INFO:  Running OK
Feb 21 11:05:35 serv-maitre IPaddr[5853]: INFO:  Running OK
Feb 21 11:05:35 serv-maitre ResourceManager[5661]: info: Running /etc/ha.d/resource.d/script.sh  start

Y'a pas une option pour pas que heartbeat le relance??

Hors ligne

#9 Le 21/02/2013, à 11:56

tiramiseb

Re : Heartbeat et DRBD

Désolé, ça fait tellement d'années que je n'utilise plus Heartbeat, tellement d'années qu'il est obsolète au profit de Corosync+Pacemaker que je ne saurais te répondre sur ce point...


Ce qui est clair c'est qu'on voit que le filesystem et les adresses IP sont ok, donc ce n'est pas global à Heartbeat mais lié spécifiquement à ce script...

Hors ligne

#10 Le 21/02/2013, à 13:33

soume86

Re : Heartbeat et DRBD

Je confirme tiramiseb, c'est bien lié à mon script qui ne sait pas géré l'argument status!!

Je donne pas au gestionnaire ce qu'il attend en retour dans le status.
Est ce que quelqu'un saurait comment le gestionnaire de cluster vérifie le statut d'un service??

En gros, comment codé la partie status pour qu'elle renvoie la bonne valeur au gestionnaire du cluster?
Merci d'avance.

Hors ligne

#11 Le 21/02/2013, à 19:05

tiramiseb

Re : Heartbeat et DRBD

C'est selon le code de retour :
0 pour "OK"
n'importe quoi (par exemple 1) d'autre pour erreur

(donc tu dois avoir un "exit 0" ou un "exit 1" dans le script)

Hors ligne

#12 Le 22/02/2013, à 21:05

soume86

Re : Heartbeat et DRBD

Hi all,

Apparemment c'est pas le cas, il regarde pas le code retour mais autre chose, quoi?? (je sais pas)
Est ce que quelqu'un a une idée?? ou un script qui est monté par heartbeat??

Crld.

Hors ligne

#13 Le 22/02/2013, à 21:20

tiramiseb

Re : Heartbeat et DRBD

Il semble que je m'ai un peu trompé...

http://linux-ha.org/wiki/Heartbeat_Resource_Agents :
« The status operation has to really report status correctly, AND, it has to print either OK or running when the resource is active, and it CANNOT print either of those when it's inactive. For the status operation, we ignore the return code. »

Donc il faut retourner "OK" ou "running" sur la sortie standard...

Dernière modification par tiramiseb (Le 22/02/2013, à 21:20)

Hors ligne