Aller au contenu

Quorum et votes : 2, 3, 4, 5 nœuds

Day 0 · ConcevoirNiveau 2 · OpérerCours + labRédigé · à valider en lab

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-qnetd hé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 activer two_node à la main : c'est une opération Corosync réservée au MSP.
  • pvecm expected 1 est 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 1 lancé 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.

  1. Sur pve01, relever l'état initial.

    pvecm status | grep -E 'Expected votes|Total votes|Quorum:|Flags'
    
  2. Éteindre pve03 (shutdown -h now). Relancer la commande sur pve01. Tenter de créer une VM de test.

  3. Éteindre pve02. Relancer la commande sur pve01. Tenter touch /etc/pve/test.
  4. Rallumer pve02 puis pve03. Observer le retour du quorum.

Questions

  • Q1. À l'étape 2, quelles valeurs affichent Total votes et Quorum ?
  • 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 status affiche Activity blocked.
  • Q3. 2 votes : dès que pve02 rejoint, le cluster redevient quorate.

Testez-vous

  1. 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.

  2. 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.

  3. 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.

  4. Quel port doit être ouvert vers le serveur QDevice ?

    Réponse

    TCP 5403, celui du démon corosync-qnetd.

Pour aller plus loin