Quorum et votes : 2, 3, 4, 5 nœuds¶
Un cluster Proxmox VE ne fonctionne normalement que si une majorité stricte des votes est présente : c'est le quorum. Sans quorum, /etc/pve passe en lecture seule, aucune VM ne peut être démarrée ou modifiée, et la haute disponibilité redémarre (fence) les nœuds qui portent des ressources HA.
Notions clés¶
- Chaque nœud dispose par défaut d'1 vote.
- Quorum = majorité stricte des votes attendus :
floor(votes / 2) + 1. - QDevice : vote externe fourni par un démon
corosync-qnetdhébergé hors du cluster (VM sur un autre site, petit serveur, PBS). Il sert d'arbitre. - Split-brain : deux partitions qui se croient chacune légitimes. Le quorum l'empêche : une seule partition peut avoir la majorité.
| Nœuds | Votes | Quorum | Pannes tolérées | Avec QDevice | Verdict MSP |
|---|---|---|---|---|---|
| 2 | 2 | 2 | 0 | 3 votes, quorum 2, 1 panne tolérée | QDevice obligatoire |
| 3 | 3 | 2 | 1 | Déconseillé (le QDevice reçoit 2 votes) | Standard Ceph HCI |
| 4 | 4 | 3 | 1 | 5 votes, quorum 3, 2 pannes tolérées | QDevice recommandé |
| 5 | 5 | 3 | 2 | Déconseillé | Bon compromis |
Avec un nombre pair de nœuds, le QDevice apporte 1 vote : il départage. Avec un nombre impair, il recevrait N-1 votes et deviendrait un point de défaillance critique : la documentation officielle le déconseille.
flowchart TB
subgraph SiteA[Salle A]
P1[pve01 · 1 vote]
end
subgraph SiteB[Salle B]
P2[pve02 · 1 vote]
end
subgraph Ext[Site tiers ou PBS]
Q[corosync-qnetd · 1 vote]
end
P1 <-->|Corosync| P2
P1 -.->|TCP 5403| Q
P2 -.->|TCP 5403| Q
Ce qui se passe à la perte de quorum¶
| Composant | Comportement |
|---|---|
/etc/pve (pmxcfs) |
Lecture seule : pas de création, modification, démarrage de VM |
| VM déjà démarrées | Continuent de tourner (hors HA) |
| Ressources HA | Le watchdog redémarre le nœud isolé au bout d'environ 60 s |
| GUI | Nœuds grisés ou point d'interrogation, erreurs « cluster not ready - no quorum? » |
Ceph a son propre quorum¶
En Ceph HCI, les moniteurs (MON) forment un second quorum, indépendant de Corosync. Trois MON tolèrent la perte d'un seul. Les deux quorums doivent être sains. Voir Ceph en images.
Recommandations MSP¶
- Architecture 2 nœuds ZFS répliqué : QDevice obligatoire, hébergé hors des deux nœuds (idéalement sur le PBS local ou une VM du MSP).
- Ne jamais modifier les votes d'un nœud (
quorum_votes) ni activertwo_nodeà la main : c'est une opération Corosync réservée au MSP. pvecm expected 1est une commande de secours, jamais un mode de fonctionnement. Elle se fait sous la conduite du MSP (RB-09).
Pièges vus en support
- Cluster de 2 nœuds sans QDevice : le redémarrage d'un nœud pour une mise à jour bloque tout le cluster.
- QDevice hébergé dans une VM du cluster lui-même : il disparaît avec le nœud qui le porte.
pvecm expected 1lancé sur les deux moitiés d'un cluster coupé en deux : split-brain, configurations divergentes.- Cluster de 4 nœuds réparti 2+2 sur deux salles sans arbitre : la coupure du lien inter-salles arrête les deux côtés.
Lab : observer le quorum¶
Cluster de test uniquement
Ce lab coupe volontairement des nœuds. Ne jamais le dérouler sur la production.
Prérequis : cluster de test de 3 nœuds (pve01, pve02, pve03), éventuellement imbriqué, sans ressource HA.
Objectifs : lire pvecm status, constater la perte de quorum, comprendre Expected votes.
-
Sur
pve01, relever l'état initial. -
Éteindre
pve03(shutdown -h now). Relancer la commande surpve01. Tenter de créer une VM de test. - Éteindre
pve02. Relancer la commande surpve01. Tentertouch /etc/pve/test. - Rallumer
pve02puispve03. Observer le retour du quorum.
Questions
- Q1. À l'étape 2, quelles valeurs affichent
Total votesetQuorum? - Q2. À l'étape 3, que répond
touch /etc/pve/test? - Q3. Combien de votes faut-il pour retrouver le quorum ?
Corrigé
- Q1.
Expected votes: 3,Total votes: 2,Quorum: 2,Flags: Quorate. La création de VM fonctionne. - Q2.
Permission denied: pmxcfs est en lecture seule.pvecm statusafficheActivity blocked. - Q3. 2 votes : dès que
pve02rejoint, le cluster redevient quorate.
Testez-vous¶
-
Combien de pannes de nœud tolère un cluster de 4 nœuds sans QDevice ?
Réponse
Une seule : 4 votes, quorum de 3. Le 4e nœud n'ajoute pas de tolérance par rapport à 3 nœuds.
-
Pourquoi ajouter un QDevice à un cluster de 3 nœuds est-il déconseillé ?
Réponse
Avec un nombre impair de nœuds, le QDevice reçoit N-1 votes (2 ici). Si le QDevice tombe, la perte d'un seul nœud suffit à perdre le quorum.
-
Une VM non HA tourne sur un nœud qui perd le quorum. Que devient-elle ?
Réponse
Elle continue de tourner, mais on ne peut ni la modifier, ni l'arrêter proprement via la GUI, ni la migrer tant que le quorum n'est pas revenu.
-
Quel port doit être ouvert vers le serveur QDevice ?
Réponse
TCP 5403, celui du démon
corosync-qnetd.