Table des matières

HA-CLUSTER

Principes

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 clustering en mode actif/passif.

Le cluster Heartbeat assure une tolérance de panne en assurant la bascule automatique vers un autre serveur disposant des mêmes services et données

Principe

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

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. Enregistrer les associations [nom des nœuds / IP] dans le fichier /etc/hosts
  3. se placer dans le dossier de configuration cd /etc/heartbeat/
  4. Créer et configurer le fichier ha.cf
  5. Créer et configurer le fichier haresources
  6. Créer et configurer le fichier authkeys et en restreindre l'accès
  7. Répliquer la configuration sur les autres membres (en pensant à adapter le fichier hosts sur chaque machine)
  8. Relancer le service heartbeat

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.

Interventions dans les fichiers

Fichier /etc/hosts

Le nom des noeuds à enregistrer dans la clause node et dans le fichier hosts 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.

nano /etc/hosts

On ne supprimera pas les informations existantes dans ce fichier. La syntaxe ressemblera à cela

....
# à ajouter après les lignes existantes 
<ip maître> <noeudMaître>      
<ip secondaire> <noeudSecondaire>

Exemple

#*******Penser à adapter les valeurs exemple ********
172.28.10.110  B3-WEB110
172.28.10.111  B3-WEB111

Pour la suite, on se placera dans le dossier de Heartbeat où tous les fichiers doivent être créés.

cd /etc/heartbeat

Syntaxe du fichier ha.cf

Aide Paramétrage: https://blog.foulquier.info/tutoriels/systeme/mise-en-place-dun-cluster-heartbeat-apache

# 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

Exemple pour la ligne node :

node B3-WEB110 B3-WEB111

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) :

 B3-WEB110 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 (changer le mot de passe) :

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