Beruflich Dokumente
Kultur Dokumente
Pacemaker est un gestionnaire de ressources de cluster . Il gère tous les services de cluster
( ressources ) et utilise les fonctionnalités de messagerie et d'adhésion du moteur de
cluster sous-jacent . Nous utiliserons Corosync comme moteur de cluster. Les ressources ont
un agent de ressources , qui est un programme externe qui résume le service.
Dans un cluster actif-passif, tous les services s'exécutent sur un système principal. Si le système
principal échoue, tous les services sont déplacés vers le système de sauvegarde. Un cluster actif-
passif permet d'effectuer des travaux de maintenance sans interruption.
Dans ce TP, vous allez apprendre à créer un cluster actif-passif Apache à haute
disponibilité. Le cluster Web sera adressé par son adresse IP virtuelle et basculera
automatiquement en cas de défaillance d'un nœud.
Vos utilisateurs accéderont à votre application Web par l’adresse IP virtuelle gérée par
Pacemaker. Le service Apache et l'adresse IP virtuelle sont toujours situés sur le même
hôte. Lorsque cet hôte échoue, ils sont migrés vers le deuxième hôte et vos utilisateurs ne
remarqueront pas la panne.
Elies Jebri Page 1 sur 9
ISET Radès TP HA
Elies Jebri Page 2 sur 9
ISET Radès TP HA
<Location /server-status>
SetHandler server-status
Require local
</Location>Enregistrez et fermez le fichier.
Puis créez le VirtualHost visible par les utilisateurs
nano /etc/httpd/conf.d/site.conf
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName www.domaine.local
</VirtualHost>
Puis
echo "<b>Site clustérisé</b>" > /var/www/html/index.html
Étape 3 - Installation de Pacemaker
Nous allons maintenant installer la pile Pacemaker.
Vous devez effectuer cette étape sur les deux hôtes.
Installez la pile Pacemaker et le shell de cluster pcs. Nous utiliserons ce dernier plus tard pour
configurer le cluster.
yum install pacemaker pcs
Nous devons maintenant démarrer le démon pcs, utilisé pour la synchronisation de la
configuration de Corosync sur les nœuds.
systemctl start pcsd.service
Pour que le démon soit lancé après chaque redémarrage, nous activerons également le service.
systemctl enable pcsd.service
Une fois ces packages installés, il y aura un nouvel utilisateur sur votre système appelé
hacluster. Après l'installation, la connexion à distance est désactivée pour cet utilisateur. Pour
des tâches telles que la synchronisation de la configuration ou le démarrage des services sur
d'autres nœuds, nous devons définir le même mot de passe pour cet utilisateur.
passwd hacluster
Elies Jebri Page 3 sur 9
ISET Radès TP HA
On peut aussi faire les étapes suivantes pour que Pacemaker et corosync se lancent au
démarrage, nous devons activer les services sur les deux hôtes.
systemctl enable corosync.service
systemctl enable pacemaker.service
Nous pouvons maintenant vérifier le statut du cluster en exécutant la commande suivante sur
l'un des hôtes.
pcs status
Elies Jebri Page 4 sur 9
ISET Radès TP HA
Vérifiez que les deux hôtes sont marqués comme en ligne dans la sortie.
. . .
Online: [ node1 node2 ]
PCSD Status:
node1: Online
node2: Online
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
Remarque: après la première installation, il peut s'écouler un certain temps avant que les
nœuds soient marqués comme en ligne.
Étape 6 - Désactiver STONITH, ignorer le quorum et désactiver le auto failback
Qu'est-ce que STONITH ?
Vous verrez un avertissement à la sortie pcs status indiquant qu'aucun périphérique STONITH
n'est configuré et que STONITH n'est pas désactivé :
Attention
. . .
WARNING: no stonith devices and stonith-enabled is not false
. . .
Qu'est-ce que cela signifie et pourquoi devriez-vous vous en soucier ?
Lorsque le gestionnaire de ressources en cluster ne peut pas déterminer l'état d'un nœud ou d'une
ressource sur un nœud, le fencing est utilisé pour ramener le cluster à un état connu.
Le fencing au niveau des ressources garantit principalement l’absence de corruption des
données en cas de panne en configurant une ressource. Vous pouvez utiliser le fencing au
niveau des ressources, par exemple, avec DRBD (Distributed Replicated Block Device) pour
marquer le disque d'un nœud comme étant obsolète lorsque le lien de communication est arrêté.
Le fencing de niveau de noeud garantit qu'un nœud n'exécute aucune ressource. Cela se fait en
réinitialisant le nœud et son implémentation s'appelle STONITH (ce qui signifie "tire l'autre
nœud dans la tête"). Pacemaker prend en charge une grande variété de dispositifs de clôture,
par exemple une alimentation sans coupure ou des cartes d'interface de gestion pour serveurs.
Étant donné que la configuration de la clôture au niveau du nœud dépend fortement de votre
environnement, nous allons le désactiver pour ce TP.
pcs property set stonith-enabled=false
Elies Jebri Page 5 sur 9
ISET Radès TP HA
Elies Jebri Page 6 sur 9
ISET Radès TP HA
Les ressources peuvent avoir des méta-attributs et des attributs d'instance . Les méta-attributs
ne dépendent pas du type de ressource; Les attributs d'instance sont spécifiques à l'agent de
ressources. Le seul attribut d'instance requis de cet agent de ressources est ip (l'adresse IP
virtuelle), mais dans un souci de clarté nous définirons également (le masque de sous-réseau en
notation CIDR) cidr_netmask,.
Les opérations sur les ressources sont des actions que le cluster peut effectuer sur une ressource
(par exemple, démarrer start, arrêter stop, surveiller status). Ils sont indiqués par le mot
clé op. Nous allons ajouter l'opération monitor avec un intervalle de 20 secondes afin que le
cluster vérifie toutes les 20 secondes si la ressource est toujours saine. Ce qui est considéré
comme sain dépend de l'agent de ressource.
Tout d'abord, nous allons créer la ressource d'adresse IP virtuelle. Ici, nous allons
utiliser 192.168.70.100 comme adresse IP virtuelle et Cluster_VIP le nom de la ressource.
sudo pcs resource create Cluster_VIP ocf:heartbeat:IPaddr2 ip=192.168
.70.100 cidr_netmask=24 nic=ens33 op monitor interval=20s
Elies Jebri Page 7 sur 9
ISET Radès TP HA
L'ordre des ressources dans la définition de contrainte est important. Ici, nous spécifions que la
ressource Apache (WebServer) doit être exécutée sur les mêmes hôtes sur lesquels l’IP virtuel
(Cluster_VIP) est actif. Cela signifie également que WebServer n'est pas autorisé à s'exécuter
nulle part si Cluster_VIP n'est pas actif.
Il est également possible de définir l'ordre dans lequel les ressources doivent être exécutées en
créant des contraintes d'ordre ou de préférer certains hôtes pour certaines ressources en créant
des contraintes d'emplacement.
pcs constraint order Cluster_VIP then Webserver
Vérifiez que les deux ressources s'exécutent sur le même hôte.
pcs status
...
Full list of resources:
Elies Jebri Page 8 sur 9
ISET Radès TP HA
Vérifiez ensuite les adresses IP sur chacun des nœuds et retrouvez celui qui dispose de la
ressource Cluster_VIP.
[root@node1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN g
roup default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP group default qlen 1000
link/ether 00:0c:29:d8:80:68 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.51 /24 brd 10.0.0.255 scope global noprefixroute dyna
mic ens33
valid_lft 1670sec preferred_lft 1670sec
inet 192.168.70.100/24 scope global ens33
valid_lft forever preferred_lft forever
Après vérification, rétablissez le nœud qui était à l’arrêt et observez ce qui se passe.
[root @ node01 ~] # pcs cluster start node1.domaine.local
Conclusion
Vous avez configuré un cluster actif-passif Apache à deux nœuds, accessible par l'adresse IP
virtuelle. Vous pouvez maintenant configurer Apache de façon plus avancée, mais assurez-vous
de synchroniser la configuration sur les hôtes.
Si vous souhaitez distribuer les fichiers de votre application Web parmi les hôtes, vous pouvez
configurer un volume DRBD ou utiliser un LUN commun.
Elies Jebri Page 9 sur 9