Linux
HA
Administration

Pacemaker + Corosync : mettre en place une haute disponibilité générique (VIP, watchdog, fencing)

16 décembre 2025

4 min de lecture

Pacemaker (gestionnaire de ressources) et Corosync (messagerie de cluster) forment une stack de haute disponibilité (HA) très flexible pour protéger des services variés (base de données, NFS, services web, etc.).
L’objectif : détecter la panne d’un nœud, redémarrer la ressource ailleurs et publier une IP virtuelle (VIP) pour une continuité transparente.

Plan de l’article

  • Prérequis & architecture
  • Installation (Debian/Ubuntu & RHEL)
  • Configuration de Corosync (anneau, quorum)
  • Configuration de Pacemaker (ressources, contraintes)
  • Fencing/STONITH & watchdog
  • Tests de bascule et vérifications
  • Bonnes pratiques & supervision
  • Conclusion

Intégration avec d'autres solutions

Prérequis & architecture

  • 2 à 3 nœuds (au moins 2 pour la redondance, 3 recommandé pour un quorum robuste).
  • Un réseau fiable entre nœuds (latence faible).
  • Une IP virtuelle (VIP) qui sera déplacée entre nœuds.
  • Des données partagées si nécessaire (DRBD, NFS, SAN) selon le service protégé.
  • Accès root/admin et pare-feu ajusté pour les ports Corosync/Pacemaker.

Installation

Debian/Ubuntu
sudo apt update
sudo apt install pacemaker corosync pcs fence-agents
RHEL/CentOS/Rocky
sudo yum install pacemaker corosync pcs fence-agents-all
sudo systemctl enable --now pcsd
echo "motdepasse" | sudo passwd --stdin hacluster   # RHEL-like

Synchroniser l’heure (chrony/ntp) et configurer la résolution DNS/hosts pour tous les nœuds.


Configuration de Corosync

Fichier /etc/corosync/corosync.conf minimal (transport unicast UDP) :

totem {
  version: 2
  secauth: on
  cluster_name: ha-cluster
  transport: udpu
}
nodelist {
  node { ring0_addr: node1; name: node1; nodeid: 1; }
  node { ring0_addr: node2; name: node2; nodeid: 2; }
}
quorum { provider: corosync_votequorum; two_node: 1; }
logging { to_syslog: yes; }

Activer et démarrer :

sudo systemctl enable --now corosync pacemaker

Vérifier le cluster :

pcs status        # ou crm_mon -1

Configuration de Pacemaker (VIP + service)

Créer une IP virtuelle (ex. 192.168.1.50/24 sur eth0) et une ressource service (ex. apache/httpd) :

pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.1.50 cidr_netmask=24 nic=eth0 op monitor interval=20s
pcs resource create web systemd:httpd op monitor interval=30s timeout=20s

Définir l’ordre (la VIP doit suivre le service ou l’inverse selon le design) et l’emplacement :

pcs constraint order start web then vip
pcs constraint colocation add vip with web INFINITY

Variante : si vous préférez publier la VIP même quand le service est up, inversez l’ordre et ajustez la colocation.


Fencing / STONITH & watchdog

Le fencing (STONITH) évite les split-brain : le nœud défaillant est mis hors ligne de façon sûre.
Exemple générique (IPMI/iDRAC/ILO) :

pcs stonith create fence-node1 fence_ipmilan pcmk_host_list="node1" ipaddr="10.0.0.11" login="admin" passwd="secret" lanplus="1"
pcs stonith create fence-node2 fence_ipmilan pcmk_host_list="node2" ipaddr="10.0.0.12" login="admin" passwd="secret" lanplus="1"
pcs property set stonith-enabled=true
pcs property set no-quorum-policy=stop

Option watchdog (soft fencing) si disponible :

modprobe softdog
pcs property set stonith-watchdog-timeout=10s

Tests de bascule et vérifications

  • Arrêt du service sur le nœud actif : Pacemaker redémarre ailleurs.
  • Coupure réseau (simulée) : vérifier le comportement du quorum.
  • Arrêt du nœud : la VIP et la ressource migrent automatiquement.

Commandes utiles :

pcs status
pcs resource move web node2           # migration manuelle (test)
pcs resource clear web                # nettoyage des contraintes temporaires

Bonnes pratiques & supervision

  • Toujours activer STONITH et tester les scénarios de panne.
  • Versionner la configuration (pcs config backup), documenter les procédures de DR.
  • Surveiller avec Prometheus (exporter pacemaker), crm_mon -1, journaux journalctl -u pacemaker.
  • Éviter les dépendances cachées (montages, DNS, pare-feu).
  • Ajuster les timeouts et op monitor selon le service protégé.

Conclusion

Avec Pacemaker + Corosync, vous mettez en place une HA générique et robuste : détection de panne, bascule automatique, fencing et VIP pour une continuité transparente.
Cette stack s’adapte à de nombreux services (bases, NFS, web) et reste une valeur sûre en production.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets d'infrastructure et d'infogérance.

Contactez-nous

Articles similaires