Dans cette documentation nous allons voir ensemble comment configurer le quorum dans un cluster Proxmox avec deux nœuds.
Elle fait suite à la documentation concernant la création d'un Cluster Proxmox avec deux nœuds sans HA ni Qdevice.
Puisque cette architecture est fragile en raison de l’absence d’arbitrage et de haute disponibilité, l’objectif ici sera donc de corriger ces faiblesses en :
l'architecture ciblée après la configuration sera celle-ci :
Soit un total de votes égal à 3 et un quorum égal à 2.
L'environnement Proxmox que j'utilise pour faire cette documentation est un environneent virtuel.
C'est à dire que les serveurs Proxmox que je vais utiliser sont des VMs cependant la procédure reste identique avec du matériel physique.
apt install corosync-qnetd
Valider la demande d'installation en tapant "o" (ou "y" si l'OS est en anglais) lorsque ce sera demandé.

systemctl enable corosync-qnetd && systemctl start corosync-qnetd

systemctl status corosync-qnetd

Le service doit être à l'état "active (running)".
Si ce n'est pas le cas vous avez un problème qu'il faudra corriger.
ss -tulnp | grep 5403

Nous allons devoir faire les manipulations suivantes sur les deux serveurs PVE qui composent actuellement le Cluster.
apt install corosync-qdevice
Valider la confirmation des packages en tapant soit "o" soit "y" selon la langue de l'OS.

pvecm qdevice setup <IP_QDEVICE>

Valider par yes puis entrer le password root du Qdevice

Cette commande effectue plusieurs actions importantes :
Nous allons à présent vérifier le fichier "corosync.conf" et s'assurer que tout est en order.
Ouvrir le fichier "corosync.conf"
cat /etc/pve/corosync.conf
Après l'ajout du service dans le cluster Proxmox le fichier devrait comporter ces lignes :

Pour information : Cette section indique que le cluster utilise un vote externe.
Pour vérifier la configuration globale du Cluster il faudra taper cette commande :
pvecm status
Nous devrions avoir ce résultat :

Les certificats sont stockés dans :
/etc/corosync/qdevice/net/

Ils permettent l’authentification entre les nœuds et le QDevice.
Pour simuler une panne je vais éteindre le premier serveur Proxmox du Cluster.
shutdown now
Puis, depuis le second serveur Proxmox, je vais vérifier l'état du Cluster.
pvecm status
Si tout c'est correctement passé le quorum doit être maintenu grâce au QDevice.

Rallumer le premier serveur Proxmox.
Pour tester le réseau et vérifier que tout fonctionne correctement en cas de panne nous allons simuler une coupure réseau vers un nœud.
Depuis le premier serveur Proxmox taper la commande suivante :
ip link set vmbr1 down
Si tout se passe correctement, le Cluster fonctionne toujours.
systemctl enable pve-ha-lrm
systemctl enable pve-ha-crm
systemctl start pve-ha-lrm
systemctl start pve-ha-crm
systemctl status pve-ha-lrm
systemctl status pve-ha-crm
Les services doivent être actifs.

Tous les fichiers du HA sont dans le répertoire /etc/pve/ha/
/etc/pve/ha/resources.cfg/etc/pve/ha/manager_statusJe n'ai pas créé de VM pour cette documentation, je ne ferai donc pas de carpture d'écran.
Je me contenterai de donner les commandes en exemple
ha-manager add vm:100
ha-manager status
ha-manager set vm:100 --max_restart 5 --max_relocate 2
CRM (Cluster Resource Manager)
LRM (Local Resource Manager)
Ces composants communiquent via Corosync.
journalctl -u corosync
journalctl -u pve-ha-lrm
journalctl -u pve-ha-crm
corosync-qdevice-tool -s