HA-Cluster (high-availability cluster) est un gestionnaire de grappes sous Linux qui permet d'assurer les messages de synchronisation entre machines participant au cluster grâce à l'outil heartbeat et d'offrir des fonctions de partage de ressources grâce à un gestionnaire dédié (comme par exemple l'outil Pacemaker, non traité ici).
Nous traiterons ici uniquement du paramétrage de l'outil heartbeat qui permet du cluster en mode actif/passif.
L'outil heartbeat fait partie des paquetages supportés par Debian et Ubuntu. Après une mise à jour (update/upgrade) de la machine, on procèdera à l'installation comme suit :
apt install heartbeat
La configuration de heartbeat passe par le paramétrage de 3 fichiers (présents dans le dossier /etc/heartbeat/ ou /etc/ha.d/ ). Ces fichiers peuvent être à créer.
La configuration doit être identique sur tous les membres du cluster. On pourra configurer une machine et recopier les fichiers sur l'autre.
La démarche est la suivante :
# mode de gestion des journaux d'activité logfacility local0 # temps entre deux interrogations secondaire/maitre keepalive 2 # temps au bout duquel le maître ou le secondaire est considéré hors jeu deadtime 10 # mode de synchronisation maître/secondaire (ici en broadcast sur la carte eth0) bcast eth0 # liste des noeuds participant au cluster (l'ordre dans lequel on les place définit la hiérarchie) node <noeudMaitre> <noeudSecondaire> # mode de gestion du retour à la normale auto_failback off # commandes pour gérer les actions en cas de défaillance respawn hacluster /usr/libexec/heartbeat/ipfail apiauth ipfail gid=haclient uid=hacluster
Aide Paramétrage: http://www.foulquier.info/tutoriaux/mise-en-place-dun-cluster-heartbeat-apache
Le nom des noeuds à enregistrer dans la clause node est celui de la machine que l'on peut consulter en tapant la commande sur chaque nœud :
hostname
Les nœuds participant au cluster doivent tous être renseignés dans le fichier /etc/hosts avec l'adresse IP de la carte réseau sur laquelle ils seront contactés. On ne supprimera pas les informations existantes dans ce fichier.
La syntaxe ressemblera à cela
.... # à ajouter après les lignes existantes #*******Penser à adapter les valeurs exemple ******** 172.30.0.199 srvMaitre 172.30.0.200 srvSecondaire
<noeudMaitre> IPaddr::<ip_virtuelle_cluster>/<masque>/<carte_reseau>:<numVirtuel> <service(s)_à_inclure>
Le fichier haresources définit les éléments suivants :
Exemple (valeurs à adapter) :
srvMaitre IPaddr::172.30.0.201/24/eth0:0 apache2 mysql
Le fichier authkeys contient les informations de sécurité permettant aux noeuds de se synchroniser. Il doit donc être protégé contre un accès à des utilisateurs autres que root.
Contenu du fichier
auth <num_ligne> <num_ligne> <algorithme> <passphrase>
L'<algorithme> pourra être md5 (mal sécurisé) ou sha1.
Exemple :
auth 2 2 sha1 textCQr1T3
Paramétrage des droits sur le fichier authkeys
On modifiera les droits d'accès pour limiter la lecture du contenu au compte root.
chmod 600 /etc/ha.d/authkeys