Cette page décrit comment déployer un votant externe (External Voter), connu sous le nom de Corosync Quorum Device (QDevice), dans un cluster Proxmox VE. Lorsqu’il est correctement configuré, le cluster peut résister à davantage de défaillances de nœuds sans compromettre les propriétés de sécurité de la communication du cluster, augmentant ainsi significativement la haute disponibilité (HA), même dans les petites configurations (par exemple, 2 nœuds avec 1 QDevice, soit 2+1).
Le support de vote externe repose sur l’interaction entre deux services :
Le QDevice est un démon qui fournit un nombre configuré de votes au sous-système de quorum du cluster, en se basant sur la décision d’un arbitre tiers externe. Son rôle principal est de permettre au cluster de maintenir le quorum après la défaillance d’un nœud.
Le mécanisme garantit la sécurité en deux étapes :
Actuellement, seul QDevice Net est pris en charge comme arbitre tiers.
QDevice Net est le démon de vote externe. Il est conçu pour supporter plusieurs clusters et est particulièrement facile à déployer :
corosync-qnetd (disponible pour les hôtes basés sur Debian et autres distributions Linux).L’utilisation du QDevice est fortement dépendante du nombre de nœuds du cluster en raison de la manière dont les votes sont attribués.
| Nombre de Nœuds | Recommandation | Votes du QDevice | Conséquence principale |
|---|---|---|---|
| Nombre pair (ex. 2, 4, 6) | Recommandé. | 1 vote additionnel. | Augmente la disponibilité. En cas de panne du QDevice, le cluster se retrouve dans la même position que sans QDevice (avec la nécessité d’une majorité). |
| Cluster de 2 nœuds | Fortement recommandé pour la HA (configuration 2+1). | 1 vote additionnel. | Permet au nœud restant de conserver le quorum (1 nœud + 1 QDevice = 2 voix sur 3). |
| Nombre impair (ex. 3, 5, 7) | Déconseillé (sauf si les inconvénients sont compris). | votes (où est le nombre de nœuds). | Permet de survivre à pannes de nœuds (ex. 1 nœud restant dans un cluster de 3). |
Pour les clusters de taille impaire, le QDevice fournit votes pour éviter un scénario de split-brain. Bien que cela permette théoriquement de tolérer pannes de nœuds, deux inconvénients majeurs existent :
Vous devez comprendre ces implications et inconvénients avant de décider d’utiliser cette technologie dans une configuration de cluster de taille impaire.
Il est recommandé d’exécuter tout démon fournissant des votes à corosync-qdevice en tant qu’utilisateur non privilégié. Les paquets fournis par Proxmox VE et Debian sont déjà configurés pour cela. Le trafic entre le démon et le cluster doit être chiffré pour garantir une intégration sécurisée.
Installez le paquet corosync-qnetd sur votre serveur externe :
external# apt install corosync-qnetd
Installez le paquet corosync-qdevice sur tous les nœuds du cluster Proxmox VE :
pve# apt install corosync-qdevice
Assurez-vous que tous les nœuds du cluster sont en ligne à cette étape.
Exécutez la commande suivante sur un seul des nœuds Proxmox VE pour configurer le QDevice :
pve# pvecm qdevice setup <IP-DU-QDEVICE>
L’adresse IP doit être celle de votre serveur externe où
corosync-qnetdest installé.Note : La clé SSH du cluster sera automatiquement copiée vers le QDevice. Assurez-vous d’avoir configuré l’accès par clé pour l’utilisateur root sur votre serveur externe, ou autorisez temporairement la connexion root par mot de passe pendant cette phase de configuration. Si vous rencontrez une erreur telle que
Host key verification failed., l’exécution depvecm updatecertssur le nœud pourrait résoudre le problème.
Une fois l’installation et la configuration terminées avec succès (« Done »), vous pouvez vérifier le statut du QDevice avec la commande :
pve# pvecm status
Le statut devrait afficher le QDevice ainsi que son vote, comme illustré dans cet exemple de sortie :
...
Votequorum information
~~~~~~~~~~~~~~~~~~~~~
Expected votes: 3
Highest expected: 3
Total votes: 3
Quorum: 2
Flags: Quorate Qdevice
Membership information
~~~~~~~~~~~~~~~~~~~~~~
Nodeid Votes Qdevice Name
0x00000001 1 A,V,NMW 192.168.22.180 (local)
0x00000002 1 A,V,NMW 192.168.22.181
0x00000000 1 Qdevice
Dans la section Votequorum information, la ligne Flags: Quorate Qdevice confirme que le QDevice est actif et participe au quorum. De plus, le QDevice apparaît avec un Nodeid de 0x00000000 et un vote dans la section Membership information.