HomePage
Materiel
Photo Système et réseau Sous Debian Gnu Linux... ... et Ubuntu Gestion de projet ...informatique Cours Divers Private edit SideBar |
Heart BeatContinuité de service : créer un cluster de machines avec Heartbeat et DRBD<< DRBD | Index | Mon >>Basculer les services avec HeartbeatConfigurationFichier /etc/ha.d/ha.cf# interface pour le heartbeat bcast eth0 # délai entre deux battements de pouls keepalive 2 # Temps d'attente avant de passer sur le deuxieme deadtime 10 # Temps avant de diffuser un avertissement pour les pouls en retard warntime 6 # deadtime spécifique pour les configurations ou le réseau est lent initdead 60 # port de prise de pouls udpport 694 # Identification des noeuds du cluster node server1 node server2 # On interdit le rebasculement automatique vers le maitre lorsque celui-ci redeviendra UP auto_failback off # utilisation du démon logd use_logd yesPensez à ouvrir les ports utilisés par HeartBeat dans le fichier iptables : -A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -j ACCEPT Fichier /etc/ha.d/haresourceserver1 IPaddr::192.168.0.50 drbddisk::r0 Filesystem::/dev/drbd0::/mnt/mirroir::ext3::defaults httpd mysqld smb cups MailTo::rootInformations :
Fichiers à personnaliser après un clonageSi vous avez opté pour le clonage d'un serveur vers l'autre (attention à drbd), vous devrez personnaliser ces fichiers sur chaque serveur :
Redémarrage de HeartbeatExécuter les opérations suivantes dans l'ordre. Sur le serveur 2 :# /etc/init.d/heartbeat stop
Sur le serveur 1 : # /etc/init.d/heartbeat stop
Sur le serveur 1 : # /etc/init.d/heartbeat start
Sur le serveur 2 : # /etc/init.d/heartbeat start
TestsBasculer sur le serveur 2Sur le serveur 2 :# /etc/init.d/heartbeat restart
TroubleshootingEn cas de problème pensez toujours à consulter les logs de DRBD / Heartbeat dans /var/log/messages (ou ailleurs si vous avez défini des logs spécifiques).Gestion manuelle des servicesLa règle est la suivante :
# /etc/init.d/heartbeat stop 2
# /etc/init.d/heartbeat stop 1
# /etc/init.d/drbd stop 2
# /etc/init.d/drbd stop 1
Split-brainJ'ai repris tel quel l'explication faite sur ce tuto. En cas de coupure réseau, les 2 machines deviennent primaires et obtiennent la même adresse ip de la machine virtuelle ! Lorsque la connection est rétablie cela entraine un "split-brain" que l'on ne peut résoudre que manuellement.Statut de DRBD 0: cs:StandAlone st:Primary/Unknown ld:Consistent 1
0: cs:StandAlone st:Secondary/Unknown ld:Inconsistent 2
L'état des noeuds est passé en "Unknown".
Résolution# drbdadm connect r0 sur les 2 machines démarre la synchro du primaire vers le secondaire
# drbdadm invalidate r0 sur la machine secondaire : invalide les données et force une resynchronisation.
Problème de reconnaissance des machines entre-ellesSi au redémarrage d'un serveur les services DRBD ne se reconnaissent plus.Statut de DRBD sur les serveurs : 0: cs:StandAlone st:Primary/Unknown ds:UpToDate/DUnknown r--- 1
0: cs:StandAlone st:Secondary/Unknown ds:UpToDate/DUnknown r--- 2
Résolution du problème# drbdadm -- --discard-my-data connect r0 (sur le node avec les données corrompues)
# drbdadm connect r0 (sur le node avec les données correctes)
Les nodes doivent ensuite se reconnaitre et renvoyer un statut correct (st:Primary/Secondary ds:UpToDate/UpToDate).
Synchronisation forcéePour forcer la synchronisation d'un des nodes taper une des commandes suivantes :
|