Nodi del cluster Proxmox non visibili nell’interfaccia

Skip to main content
Du bist hier:
Drucken

Nodi del cluster Proxmox non visibili nell’interfaccia

In Proxmox VE, i nodi non vengono più visualizzati nell’interfaccia web o appaiono con una croce rossa. Spesso causato da uno stato corosync corrotto, es. dopo un memory leak o crash.

Importante: TUTTI i nodi devono essere completamente fermati. Se anche un solo nodo continua con uno stato corrotto, infetterà tutti gli altri al rejoin.

1. Verificare l’accesso SSH tra tutti i nodi

Da ogni nodo, collegarsi via SSH a ogni altro nodo (soprattutto il master) e accettare le chiavi:

# Dal master:
ssh server2
ssh server3

# Da ogni altro nodo verso il master:
ssh server1

Tutti i nodi devono fidarsi reciprocamente — nessuna richiesta di chiave SSH deve rimanere, altrimenti lo script o la procedura manuale si bloccherà.

2. Fermare TUTTI i servizi su TUTTI i nodi

Su ogni singolo nodo compreso il master, fermare tutti i servizi del cluster:

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

Attendere che tutti i nodi siano completamente fermati. Le VM in esecuzione non sono interessate — i processi KVM funzionano indipendentemente.

3. Attendere 60 secondi

Dare a tutti i nodi il tempo di rilasciare completamente lo stato del cluster.

4. Avviare prima il nodo master

Solo sul nodo master:

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

Il comando pvecm expected 1 imposta temporaneamente i voti attesi a 1, permettendo al master di raggiungere il quorum da solo. Si resetta automaticamente.

5. Attendere 60 secondi

Lasciare che il master si stabilizzi completamente.

6. Avviare i nodi rimanenti uno alla volta

Su ogni altro nodo, uno alla volta:

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

Attendere alcuni secondi tra ogni nodo.

7. Verifica

Su qualsiasi nodo:

pvecm status
pvecm nodes

Tutti i nodi dovrebbero apparire con stato verde.


Script automatizzato

Invece di farlo manualmente, eseguire questo script sul master. Sostituire LA_TUA_PASSWORD prima.

PW="LA_TUA_PASSWORD"
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 "Fermo del master..."; killall -9 corosync; systemctl stop pve-cluster pvedaemon pveproxy pvestatd
echo "Attesa 60s..."; sleep 60
echo "Avvio del master..."; service corosync start; sleep 5; pvecm expected 1; systemctl start pve-cluster; sleep 3; systemctl start pvedaemon pveproxy pvestatd
echo "Attesa 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 "Fatto!"; sleep 5; pvecm status | grep -E "Nodes:|Quorate"; pvecm nodes

Note importanti

  • Le VM non sono interessate. I processi KVM sono indipendenti dai servizi cluster.
  • Non riavviare i server — solo i servizi.
  • TUTTI i nodi devono essere fermati prima. Un nodo con stato corosync corrotto trasmetterà il suo stato guasto.
  • pvecm expected 1 permette al master di raggiungere il quorum da solo. Si resetta automaticamente.
  • Se un nodo si rifiuta di unirsi: verificare che /var/lib/pve-cluster/config.db abbia la stessa versione. In caso contrario: fermare pve-cluster, eliminare config.db e riavviare.
Related Post