Proxmox Cluster Nodes nicht mehr im GUI

Skip to main content
Du bist hier:
Drucken

Proxmox Cluster Nodes nicht mehr im GUI

In Proxmox VE werden Nodes nicht mehr in der Web-Oberfläche angezeigt oder erscheinen mit einem roten X. Ursache ist meist ein kaputter Corosync-Zustand, z.B. nach einem Memory Leak oder Crash.

Wichtig: ALLE Nodes müssen komplett gestoppt werden. Wenn auch nur ein Node mit kaputtem Zustand weiterläuft, infiziert er alle anderen beim Rejoin.

1. SSH-Zugang zwischen allen Nodes sicherstellen

Von jedem Node aus per SSH auf jeden anderen Node verbinden (besonders auf den Master) und Host-Keys bestätigen:

# Vom Master:
ssh server2
ssh server3

# Von jedem anderen Node zum Master:
ssh server1

Alle Nodes müssen sich gegenseitig vertrauen — es dürfen keine SSH Host-Key-Abfragen mehr kommen, sonst hängt das Script oder die manuelle Prozedur.

2. ALLE Dienste auf ALLEN Nodes stoppen

Auf jedem einzelnen Node inklusive dem Master alle Cluster-Dienste stoppen:

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

Warten, bis alle Nodes vollständig gestoppt sind. Laufende VMs sind nicht betroffen — KVM-Prozesse laufen unabhängig von den Cluster-Diensten.

3. 60 Sekunden warten

Allen Nodes Zeit geben, den Cluster-Status vollständig freizugeben.

4. Master-Node zuerst starten

Nur auf dem Master-Node:

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

Der Befehl pvecm expected 1 setzt die erwarteten Stimmen temporär auf 1, damit der Master alleine Quorum erreichen kann. Setzt sich automatisch zurück wenn andere Nodes beitreten.

5. 60 Sekunden warten

Den Master vollständig stabilisieren lassen.

6. Restliche Nodes einzeln starten

Auf jedem weiteren Node einzeln nacheinander:

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

Zwischen jedem Node einige Sekunden warten, damit er dem Cluster beitreten kann.

7. Überprüfen

Auf einem beliebigen Node prüfen, ob alle Nodes sichtbar sind und Quorum besteht:

pvecm status
pvecm nodes

Alle Nodes sollten nun in der Web-Oberfläche mit grünem Status erscheinen.


Automatisiertes Script

Statt manuell kann dieses Script auf dem Master-Node ausgeführt werden. Es automatisiert den gesamten Ablauf. Vorher DEIN_ROOT_PASSWORT ersetzen.

PW="DEIN_ROOT_PASSWORT"
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 "Stoppe Master..."; killall -9 corosync; systemctl stop pve-cluster pvedaemon pveproxy pvestatd
echo "Warte 60s..."; sleep 60
echo "Starte Master..."; service corosync start; sleep 5; pvecm expected 1; systemctl start pve-cluster; sleep 3; systemctl start pvedaemon pveproxy pvestatd
echo "Warte 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 "Fertig!"; sleep 5; pvecm status | grep -E "Nodes:|Quorate"; pvecm nodes

Wichtige Hinweise

  • VMs sind nicht betroffen. KVM-Prozesse laufen unabhängig von Cluster-Diensten.
  • Server nicht neu starten — nur Dienste.
  • ALLE Nodes müssen zuerst gestoppt werden. Ein Node mit kaputtem Corosync-Zustand (Memory Leak bei mehreren GB) gibt seinen Zustand an beitretende Nodes weiter.
  • pvecm expected 1 lässt den Master alleine Quorum erreichen. Setzt sich automatisch zurück.
  • Falls ein Node nicht beitritt: prüfen ob die /var/lib/pve-cluster/config.db die gleiche Version hat wie die anderen Nodes. Falls nicht: pve-cluster stoppen, config.db löschen und neu starten — sie wird vom Cluster synchronisiert.
Related Post