Linux
Réseaux
Heartbeat
Gérer des services de haute disponibilité au sein d'un cluster
Pour : Linux
Le cluster est une adresse IP virtuel où les clients vont ce diriger pour accèder aux services.
Le principe est d'avoir les même services d'installé sur chaque serveur mais une seule machine fournira les ressources pour faire marcher le cluster.
C'est la que Heartbeat rentre en jeu, il va permettre d'envoyer un signal régulié par la connexion LAN(et/ou serie) entre les deux serveurs pour vérifier leur état de fonctionnement.
Pourquoi? Dans le but de relayer les ressources du serveur maitre au serveur esclave dans le cas où celui tomberait en panne et ainsi permettre de ne pas interrompre les services liés au cluster.
De plus Heartbeat associés au logiciel DRBD, permettre d'améliorer le service de haute disponibilité, voir ce tutoriel:
DRBD - Installation et configuration
Installation depuis les dépôts:
apt-get install heartbeat
nano /etc/ha.d/ha.cf
# Fichier log de débugage debugfile /var/log/ha-debug # Fichier log logfile /var/log/ha-log # Temps en seconde entre chaque battement de coeur keepalive 2 # Au bout de 10s sans battement de coeur, la machine est considéré comme morte # Si c'est le maître, les services seront basculé vers l'esclave. deadtime 10 # Au bout de 7s sans battement de coeur # une alerte sera générée dans les logs warntime 7 # Interface réseau utilisé pour les battements de coeur. bcast eth0 #Lors du crash du maitre, les ressources sont basculées vers l'esclave. #Ce paramètre mi sur "on" demande de renvoyer les ressources sur le maitre dès sa réapparition. #Sur "off" les ressources reste sur l'esclave malgré la réaparition du maître. #PS: Sur off, dans le cas ou l'esclave tomberai en panne mais que le maitre était en standby, celui-ci reprendrai les ressources. auto_failback off # Augmentation de 90s du deadtime en cas de redémarrage de la machine initdead 90 # Port UDP par défault pour communiquer les battements de coeur. udpport 694 # Lien par le port serie pour communiquer les battements de coeur serial /dev/ttyS0 # Le nom de chaque serveur obtenu avec uname -n node serveur1 node serveur2
pc-toto IPaddr::192.168.1.25/24/eth0 drbddisk::toto Filesystem::/dev/drbd1::/data::ext3 apache2 MailTo::admin@domain.fr::Warning_changement_de_serveur
# ( echo -ne "auth 1\n1 sha1 "; dd if=/dev/urandom bs=512 count=1 | openssl md5 ) > /etc/ha.d/authkeys
# chwon root:root /etc/ha.d/authkeys
# chmod 0600 /etc/ha.d/authkeys