Nodes du cluster Proxmox absents de l’interface

Skip to main content
Du bist hier:
Drucken

Nodes du cluster Proxmox absents de l’interface

Dans Proxmox VE, les nodes ne sont plus affichés dans l’interface web ou apparaissent avec une croix rouge. Cela est souvent causé par un état corosync corrompu, par ex. après une fuite de mémoire ou un crash.

Important : TOUS les nodes doivent être complètement arrêtés. Si même un seul node continue avec un état corrompu, il infectera tous les autres au rejoin.

1. Vérifier l’accès SSH entre tous les nodes

Depuis chaque node, se connecter en SSH à chaque autre node (surtout le master) et accepter les clés :

# Depuis le master :
ssh server2
ssh server3

# Depuis chaque autre node vers le master :
ssh server1

Tous les nodes doivent se faire confiance mutuellement — aucune demande de clé SSH ne doit rester, sinon le script ou la procédure manuelle se bloquera.

2. Arrêter TOUS les services sur TOUS les nodes

Sur chaque node y compris le master, arrêter tous les services du cluster :

killall -9 corosync
systemctl stop pve-cluster
systemctl stop pvedaemon
systemctl stop pveproxy
systemctl stop pvestatd

Attendre que tous les nodes soient complètement arrêtés. Les VMs en cours d’exécution ne sont pas affectées — les processus KVM fonctionnent indépendamment.

3. Attendre 60 secondes

Donner à tous les nodes le temps de libérer complètement l’état du cluster.

4. Démarrer le node master en premier

Uniquement sur le node master :

service corosync start
sleep 5
pvecm expected 1
systemctl start pve-cluster
systemctl start pvedaemon
systemctl start pveproxy
systemctl start pvestatd

La commande pvecm expected 1 définit temporairement les votes attendus à 1, permettant au master d’atteindre le quorum seul. Se réinitialise automatiquement.

5. Attendre 60 secondes

Laisser le master se stabiliser complètement.

6. Démarrer les nodes restants un par un

Sur chaque autre node, un par un :

service corosync start
systemctl start pve-cluster
systemctl start pvedaemon
systemctl start pveproxy
systemctl start pvestatd

Attendre quelques secondes entre chaque node.

7. Vérification

Sur n’importe quel node :

pvecm status
pvecm nodes

Tous les nodes devraient apparaître avec un statut vert.


Script automatisé

Au lieu de le faire manuellement, exécuter ce script sur le master. Remplacer VOTRE_MOT_DE_PASSE d’abord.

PW="VOTRE_MOT_DE_PASSE"
REMOTE=$(pvecm nodes | grep -oP "\S+$" | grep -v "(local)" | grep -v "Name")
for n in $REMOTE; do echo -n "$n stop: "; sshpass -p "$PW" ssh -4 -o StrictHostKeyChecking=no root@$n "killall -9 corosync; systemctl stop pve-cluster pvedaemon pveproxy pvestatd" 2>/dev/null && echo OK || echo FAIL; done
echo "Arret du master..."; killall -9 corosync; systemctl stop pve-cluster pvedaemon pveproxy pvestatd
echo "Attente 60s..."; sleep 60
echo "Demarrage du master..."; service corosync start; sleep 5; pvecm expected 1; systemctl start pve-cluster; sleep 3; systemctl start pvedaemon pveproxy pvestatd
echo "Attente 60s..."; sleep 60
for n in $REMOTE; do echo -n "$n start: "; sshpass -p "$PW" ssh -4 -o StrictHostKeyChecking=no root@$n "service corosync start; systemctl start pve-cluster pvedaemon pveproxy pvestatd" 2>/dev/null && echo OK || echo FAIL; sleep 5; done
echo "Termine!"; sleep 5; pvecm status | grep -E "Nodes:|Quorate"; pvecm nodes

Notes importantes

  • Les VMs ne sont pas affectées. Les processus KVM sont indépendants des services cluster.
  • Ne pas redémarrer les serveurs — uniquement les services.
  • TOUS les nodes doivent être arrêtés d’abord. Un node avec un état corosync corrompu transmettra son état cassé.
  • pvecm expected 1 permet au master d’atteindre le quorum seul. Se réinitialise automatiquement.
  • Si un node refuse de rejoindre : vérifier que /var/lib/pve-cluster/config.db a la même version. Sinon : arrêter pve-cluster, supprimer config.db et redémarrer.
Related Post