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



Heartbeat utilise 3 fichiers de configuration, que vous devrez créer lors d'une première utilisation.
Un point très important, ces trois fichiers devront être identique sur les deux serveurs.



Le fichier "/etc/ha.d/ha.cf"

Le fichier de configuration principal "ha.cf" contient les paramètres de heartbeat.
Si le fichier n'existe pas créez le.

nano /etc/ha.d/ha.cf



Voici un exemple du fichier commenté:

# 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





Fichier "/etc/ha.d/haresources"

Le fichier "/etc/ha.d/haresources" indique quels sont les services à rendre hautement disponibles.
PS: Si le fichier n'existe pas créez le.
Vous devez commencer la ligne par le nom du serveur maitre.
Suivi par la description des services rendus par le cluster.
Pour cela on devra utiliser les scripts présents dans /etc/ha.d/resource.d ou /etc/init.d/.
Chaque champs sont séparé par un espace et leur paramètres par quatre points "::".

Exemple:

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



Pour définir l'adresse IP virtuel "192.168.1.25" du cluster avec le masque de réseau "24" et l'interface réseau a utiliser.
IPaddr::192.168.1.25/24/eth0

Permet de choisir la ressource de DRBD a utiliser, ici c'est "data".
drbddisk::data

Ici on monte la partition "/dev/drbd0" de DRBD sur le point de montage "/mnt/data" du type "ext3".
Filesystem::/dev/drbd0::/mnt/data::ext3

Suivi des services a démmarer, ici "apache2".

Envoyer un mail pour avertir du changement de serveur.
MailTo::admin@domain.fr::Warning_changement_de_serveur

IPaddr, drbddisk, Filesystem sont des scripts contenu dans le répertoire "/etc/ha.d/resource.d".



Le fichier "/etc/ha.d/authkeys"

Ce fichier contient la méthode d'encryptage utilisée pour la communication des serveurs.
Pour créer le fichier "/etc/ha.d/authkeys" avec un encryptage en md5 :

# ( echo -ne "auth 1\n1 sha1 "; dd if=/dev/urandom bs=512 count=1 | openssl md5 ) > /etc/ha.d/authkeys



Mêttre le root en tant que propriétaire:

# chwon root:root /etc/ha.d/authkeys



Puis lui attribuer que le droit de lecture/écriture par le root.

# chmod 0600 /etc/ha.d/authkeys



Il est pas conseillé de démarrer manuellement Heartbeat, sous peine d'avoir des messages d'erreurs.
Il est préférable d'arrêter au démarage du système les services concernés et de redémarrer le serveur pour que "Heartbeat" ce lance sans problème.



Par O.Cédric
Sur www.octetmalin.net

Article publié le:
20/12/2011 09:00





Cette page vous à plus?

Dîtes que vous l'aimez en cliquant sur le bouton Facebook.