HEARTBEAT + PACEMAKER
1. Créer un nouveau réseau privé virtuel.
Sur une machine DEBIAN 7 (wheezy) avec 2 cartes réseau (1 dans la DMZ et l’autre sur le réseau privé virtuel)
Installer LAMP
Installer les paquets heartbeat pacemaker ntpdate
Désactiver le démarrage automatique d’Apache Insserv -r -v apache2
CLONER LA MACHINE
APRES CLONAGE:
Vérifier les adresses IP des deux machines (eth0 et eth1)
exemple:
SrvApache1
eth0 192.168.10.4 /29 10.0.0.1/30
SrvApache2
eth0 192.168.10.5 /29 10.0.0.2/30
Modifier les fichiers hosts et hostname pour les deux machines et vérifier leur résolution mutuelle (ping srvapache1 sur srvapache2 et l’inverse)
Les noms d’hôte seront les noms des nodes (noeuds du cluster)
synchroniser les machines avec avec ntpdate ntp.internet-fr.net
Désactiver le démarrage automatique d’Apache Insserv -r -v apache2
Configurer /etc/Ha.d/Ha.cf et /etc/Ha.d/authkeys fichiers identiques, créer sur 1 et copier en scp vers la deuxième machine) (modèles sur /usr/share/doc/heartbeat)
Attention au fichier authkeys “sha1” tout attaché et donner droit root:root et chmod 600 IMPORTANT sinon heartbeat ne démarre pas !
#Optionnel prévoir ip Table pour ouverture du port 694
lancer heartbeat (sur les deux machines)
service heartbeat restart
vérifier le génération du fichier xml /var/lib/heartbeat/crm/cib.xml
désactiver stonith et quorum:
crm configure property stonith-enabled=”false”
pour désactiver quorum:
crm configure property no-quorum-policy=”ignore”
vérifier le fonctionnement de hearbeat en lançant la commande crm_mon sur une machine, et en désactivant un des noeuds avec crm node standby srvapache2 (ou srvapache1)
Créer une ressource primitive dans la CIB: cela correspond à l’IP virtuelle du cluster.
crm configure primitive IPFailover ocf:hearbeat:IPaddr2 params ip=”192.168.10.3” cidr_netmask=”255,255,255,248” nic=”eth0” iflabel=”VIP”
On vérifie que la ressource a été créée en tapant la commande: crm configure show
on vérifie l’adresse ip du cluster: ip addr show
et on vérifie la création d’une interface virtuelle sur SrvApache1: ifconfig: eth0:VIP
A ce stade, l’IP du cluster (192.168.10.3) répond à la commande PING
On vérifie le mise en service du cluster avec la commande: crm_mon
On teste le changement de node du cluster avec l’un des serveurs sur crm_mon et sur l’autre on désactive le noeud srvapache1 ou srvapache2:
crm node standby SrvApache1 (ou SrvApache2)
on vérifie le changement d’état puis on redémarre le node srvapache1:
crm node online SrvApache1
Si cela fonctionne, on configure la primitive ServiceWeb:
crm configure primitive serviceWeb ocf:hearbeat:apache params configfile=”/etc/apache2/apache2.conf” op monitor interval=60 op start timeout=40 op stop timeout=60
Effectuer les vériffications comme pour IPFailover
on établie une préférence pour le noeud1 IPFAILover SrvApache1
on groupe les primitives pour qu’elles migrent ensemble et ne soient pas réparties suivant la charge:
crm configure group cluster-ha IpFailover serviceWeb meta migration-threshold=’5′
On vérifie ensuite le basculement des serveurs web lorsque l’on stoppe un des noeuds du cluster après l’arrêt du node srvapache1, on bascule sur srvapache2:
On finalise le teste en se connectant sur http://ww2.booktic17.local en on vérifie le basculement d’un site à l’autre.
Optionnel: on peut modifier la directive ucast dans le fichier ha.cf afin d’indiquer les adresses de la carte réseau eth1 (réseau 10.0.0.0) des deux machines virtuelles pour permettre d’isoler les échanges liés à la surveillance de l’état du cluster du reste du réseau de la DMZ.
AUTRES OUTILS:
Il existe une « console crm », accessible par la commande :
crm configure
En cas de problème pour nettoyer les nœuds, on utilise la procedure suivante:
arrêter le service heartbeat sur les 2 machines
supprimer dans /var/lib/heartbeat les fichiers hostcache et hb_uuid (sur les deux machines)
supprimer dans /var/lib/heartbeat/crm les fichiers cib.xml
redémarrer heartbeat
on peut également éditer la configuration avec la commande crm configure edit et resource cleanup srvWeb ou IPFailover
FIN