Aller au contenu

Créer un cluster, Corosync multi-liens, nœud QDevice

Day 1 · DéployerNiveau 2 · OpérerProcédureRédigé · à valider en lab

Créer un cluster Proxmox VE avec deux liens Corosync sur des réseaux physiques distincts, joindre les nœuds, puis ajouter un QDevice quand le nombre de nœuds est pair (cas type : 2 nœuds ZFS répliqués).

Avant de toucher la prod

  • Tous les nœuds installés dans la même version (pveversion), à jour, heure synchronisée.
  • Nœuds à joindre vides : aucune VM ni CT. Leur /etc/pve sera écrasé par celui du cluster.
  • Résolution de noms correcte : hostname -i renvoie l'IP de management sur chaque nœud.
  • Deux réseaux Corosync prévus : link0 dédié (ex. 10.10.10.0/24), link1 de secours sur un autre switch (ex. management 192.168.1.0/24).
  • Latence entre nœuds inférieure à 5 ms sur chaque lien (ping -c 100).
  • Nom de cluster choisi : il ne peut pas être changé ensuite.
  • Pour le QDevice : machine externe Debian (ou PBS) joignable en TCP 5403, accès root SSH temporaire.

La création du cluster et le QDevice touchent Corosync : pour les contrats N2 et N3, cette procédure est exécutée par le MSP.

Étapes

1. Créer le cluster sur pve01

Datacenter → Cluster → Create Cluster. Saisir le nom (clu-client), choisir Link 0 = 10.10.10.1, cliquer Add pour Link 1 = 192.168.1.11. Valider.

pvecm create clu-client \
  --link0 10.10.10.1,priority=20 \
  --link1 192.168.1.11,priority=10
pvecm status

Le lien de plus haute priorité porte seul le trafic Corosync ; l'autre prend le relais en cas de panne. Corosync accepte jusqu'à 8 liens (--link0 à --link7).

2. Joindre pve02 et pve03

Sur pve01 : Datacenter → Cluster → Join Information → Copy Information. Sur pve02 : Datacenter → Cluster → Join Cluster, coller l'information, saisir le mot de passe root de pve01, choisir les adresses locales de Link 0 (10.10.10.2) et Link 1 (192.168.1.12). Valider. Attendre la fin avant de joindre pve03.

# sur pve02, en désignant un nœud déjà membre
pvecm add 10.10.10.1 --link0 10.10.10.2 --link1 192.168.1.12
# sur pve03
pvecm add 10.10.10.1 --link0 10.10.10.3 --link1 192.168.1.13

L'authentification passe par l'API (mot de passe root et empreinte du certificat). Joindre un nœud à la fois.

3. Ajouter un QDevice (nombre pair de nœuds)

Cas type : pve01 + pve02, arbitre sur qdev01 (192.168.1.50).

# sur qdev01 (hors cluster)
apt install corosync-qnetd
# sur TOUS les nœuds du cluster
apt install corosync-qdevice
# sur un seul nœud, tous les nœuds en ligne
pvecm qdevice setup 192.168.1.50

La commande copie les clés SSH et les certificats vers qdev01. L'accès root SSH peut ensuite être retiré sur qdev01.

Vérifications

pvecm status
# Transport:  knet
# Secure auth: on
# Quorate:    Yes
# Expected votes: 3     (2 nœuds + QDevice)
# Quorum:         2
# Flags:          Quorate Qdevice
#   Nodeid  Votes  Qdevice Name
#   0x1     1      A,V,NMW 10.10.10.1 (local)
#   0x0     1              Qdevice
corosync-cfgtool -s
# LINK ID 0 ... connected ; LINK ID 1 ... connected pour chaque nœud

Les drapeaux A (connecté à qnetd) et V (vote accordé) doivent apparaître sur chaque nœud.

Rollback

  • QDevice : pvecm qdevice remove, puis désinstaller corosync-qdevice si besoin.
  • Nœud joint par erreur : il ne se « déjoint » pas simplement. Suivre Ajouter, retirer, réinstaller un nœud.
  • Lien Corosync mal choisi : modification de /etc/pve/corosync.conf (incrémenter config_version), opération réservée au MSP.

Pièges vus en support

  • link1 sur le même switch que link0 : la redondance n'existe que sur le papier.
  • Corosync sur le réseau Ceph ou de migration en lien principal : pertes de quorum sous charge.
  • Joindre un nœud contenant déjà des VM : refus, ou VMID en conflit.
  • Ajouter ou retirer un nœud avec un QDevice actif : retirer d'abord le QDevice (pvecm qdevice remove), puis le reconfigurer.
  • QDevice installé dans une VM hébergée par le cluster lui-même.
  • Bond Corosync en balance-rr ou balance-alb : préférer deux liens Corosync séparés, ou active-backup.

Quand ouvrir un ticket iTop

Toute création de cluster sur un contrat N2/N3 : demande planifiée P4. Échec de pvecm add, lien Corosync disconnected, QDevice en NA ou NV : P2. Joindre pvecm status, corosync-cfgtool -s, journalctl -u corosync -u pve-cluster --since "1 hour ago".

Ouvrir un ticket iTop

Pour aller plus loin