Table des matières

HA-CLUSTER

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.

Installation du service

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

Configuration du service

Les fichiers

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.

Procédure

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 :

  1. Installer le service
  2. Créer et configurer le fichier ha.cf
  3. Enregistrer les associations [nom des nœuds / IP] dans le fichier /etc/hosts
  4. Créer et configurer le fichier haresources
  5. Créer et configurer le fichier authkeys et en restreindre l'accès
  6. Répliquer la configuration sur les autres membres (en pensant à adapter le fichier hosts sur chaque machine)
  7. Relancer le service heartbeat

Syntaxe du fichier ha.cf

# 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

Fichier /etc/hosts

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  

Syntaxe du fichier haresources

 <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 

Syntaxe du fichier authkeys

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