
Per effettuare la procedura di spegnimento di un cluster Proxmox e prevenire la perdita o la corruzione dei dati, specialmente quando si utilizza lo storage Ceph, è necessario seguire una procedura specifica.
Quando si lavora con un'infrastruttura ad alta disponibilità, l'esecuzione di attività di manutenzione può essere un processo delicato. Lo shutdown di un cluster, anche per un evento pianificato come un'interruzione di corrente o un aggiornamento hardware, richiede un'esecuzione attenta per prevenire la corruzione dei dati e tempi di inattività imprevisti.
Questa guida illustra la procedura per effettuare lo shutdown in modo pulito di un cluster Proxmox con Ceph storage, assicurando che tutti i servizi e i dati rimangano intatti.
Procedura di spegnimento di un cluster Proxmox con Ceph
Prima di procedere con lo spegnimento, verificare che il cluster Ceph sia in uno stato integro.
# ceph -s
Per evitare che lo storage Ceph contrassegni automaticamente un OSD (Object Storage Daemon) come non attivo quando va offline, è necessario impostare il flag noout per impedire al cluster di avviare un processo di ribilanciamento dei dati.
Senza il flag noout, il comportamento predefinito di Ceph è quello di contrassegnare un OSD non responsivo come non attivo dopo un breve timeout (di solito 5 minuti) e quindi iniziare a replicare i dati da quell'OSD ad altri nel cluster. Questo può essere uno spreco di risorse e causare un inutile degrado delle prestazioni se l'OSD è previsto che torni online a breve.
Eseguire il comando:
# ceph osd set noout
Effettuare lo shutdown di tutte le VM e Container.
Se l'infrastruttura utilizza la funzionalità di HA, è necessario disabilitare l'HA manager durante uno spegnimento pianificato o una manutenzione di un nodo Proxmox. Questo impedisce all'HA manager di eseguire azioni non necessarie e invasive, come la migrazione dei servizi, quando si sta intenzionalmente portando un nodo offline.
Verificare lo stato dell'HA manager.
# ha-manager status
Su ogni nodo, fermare il servizio pve-ha-lrm per impedire a ogni nodo di provare di agire sui propri servizi locali. Questo servizio gestisce le VM e i container locali ed esegue i comandi che riceve dal CRM. Se il servizio viene fermato solo su un nodo, gli altri nodi continueranno ad eseguire i loro servizi LRM e il CRM prenderà delle decisioni.
# systemctl stop pve-ha-lrm
Una volta che gli LRM sono stati fermati su tutti i nodi, è possibile fermare i CRM su ogni nodo. Anche questo servizio è in esecuzione su ogni nodo, ma solo un nodo alla volta è il CRM master. Questo master decide per l'intero cluster.
Se si ferma il CRM master ma gli LRM sono ancora in esecuzione, verrà eletto un nuovo master che continuerà a gestire le risorse ad alta disponibilità, potenzialmente sovrascrivendo le modifiche manuali che hai apportato.
# systemctl stop pve-ha-crm
Fermando entrambi i servizi su tutti i nodi lo stack HA viene messo in uno stato di freeze per l'intero cluster.
Ora fermare tutti i servizi Ceph. Esegui il seguente comando su ciascun nodo:
# systemctl stop ceph-osd.target ceph-mon.target ceph-mgr.target
Eseguire i comandi sync e shutdown su tutti i nodi. Il comando sync assicura che le scritture su disco in sospeso vengano salvate. Attendere che ogni nodo si spenga completamente prima di passare al successivo.
# sync && shutdown now
I tre nodi sono stati spenti.
Riaccensione del cluster
Dopo lo spegnimento di Proxmox, non c'è una sequenza specifica da seguire quando si accendono i nodi fisici per ripristinare la funzionalità del cluster.
Dopo che i nodi sono stati accesi, attendere che formino un quorum di cluster.
# pvecm status
Verificare l'integrità del cluster di storage Ceph. Notare che il flag noout è riportato come set.
# ceph -s
Poiché il flag noout è stato impostato durante la procedura di shutdown, è necessario rimuoverlo.
# ceph osd unset noout
La verifica dello stato HA segnala che il servizio non è attivo.
# ha-manager status
Quando il cluster Proxmox viene acceso, il servizio HA deve essere riattivato nell'ordine inverso.
Su ogni nodo, lanciare il comando seguente per abilitare il servizio CRM.
# systemctl start pve-ha-crm
Successivamente eseguire questo comando per abilitare il servizio LRM.
# systemctl start pve-ha-lrm
Il cluster Proxmox è ora pienamente operativo.
Seguendo questa procedura, è possibile effettuare in modo sicuro lo spegnimento di un cluster Proxmox con Ceph senza il rischio di perdita o corruzione dei dati.

























Buongiorno Paolo, seguo da diverso tempo il tuo blog e ti faccio i miei complimenti!
Nello specifico di questo articolo mi chiedo se non sia più efficace utilizzare la "Maintenance Mode" rif. https://pve.proxmox.com/pve-docs/pve-admin-guide.html#ha_manager_node_maintenance per lo spegnimento controllato dei nodi per evitare appunto che intervenga l'HA del cluster PVE.
fammi sapere cosa ne pensi.
grazie
saluti
Enrico