[Tuto] Haute disponibilité avec Heartbeat

Afin d’obtenir un objectif de haute disponibilité pour un serveur web, nous allons mettre en place un fail-over via un cluster heartbeat pour le service apache.
Ce cluster sera constitué de deux machines virtuelles Linux Debian 7 avec Apache et Heartbeat. Le cluster répondra à l’IP virtuelle 172.16.20.159/17 et c’est avec cette adresse que l’on pourra on observer la bascule lors de l’indisponibilité de l’un de nos serveurs.

1 – Préparation des serveurs
2 – Installation d’Apache2 et Heartbeat
3 – Configuration de Heartbeat
4 – Lancement et vérification de Heartbeat

.

$ sudo -s
password :
#

Préparation des serveurs

Il faut dans un premier temps il faut donner un nom de machine aux serveurs.

Serveur 1 :

# vim /etc/hosts
127.0.0.1		node1
172.16.20.153	node2

# vim /etc/hostname
node1

# vim /etc/hosts
127.0.0.1		node2
172.16.20.157	node1

# vim /etc/hostname
node2

.

Installation d’Apache2 et Heartbeat

Les paquets sont à installer sur les deux serveurs !

# aptitude install apache2 heartbeat

Apache2 : Serveur WEB
Heartbeat : Cluster

.

Configuration de Heartbeat

# vim /etc/heartbeat/ha.cf

# Fichier de log
logfacility local7
logfile /var/log/ha-log
debugfile /var/log/ha-debug
use_logd no

# Utilisation d’un port UDP 694
udpport 694

# keepalive: Temps de vérification de la connectivité entre les deux serveurs
keepalive 2

# deadtime: Temps nécessaire pour déclarer qu’un serveur est défaillant
deadtime 20
initdead 5
auto_failback off

# Mise en place des noeuds composant le cluster
node node1
node node2

# Permet de vérifier la connectivité avec Apache2
ucast eth0 172.16.20.157
ucast eth0 172.16.20.153
crm yes

# vim /etc/heartbeat/haresources

node1 IPaddr::172.16.20.159/17

# vim /etc/ha.d/authkeys

auth 3
3 md5 azerty

# chmod 600 / etc/ha.d/authkeys

.

Lancement et vérification de Heartbeat

# service heartbeat start
# service heartbeat status

Doit renvoyer ? heartbeat OK [pid 2338 et al] is running on node1 [node1]...

# crm_verify -L -V ==> renvoie les erreurs relatives à STONITH
# crm configure property stonith-enabled=false
# crm configure property no-quorum-policy="ignore"

# crm_verify -L -V ==> ne renvoie plus d'erreurs

# crm configure primitive IPFailover ocf:heartbeat:IPaddr2 params ip="172.16.20.160" cidr_netmask="255.255.128.0" nic="eth0" op monitor interval="10s" timeout="20s" op start timeout="30s"op stop timeout="40s"

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *