Tuning di Corosync su WAN e Ripristino "Safe" del Cluster
Questa guida illustra come diagnosticare i riavvii improvvisi (Fencing) e come configurare un cluster Proxmox per operare correttamente quando i nodi sono distribuiti su reti geografiche (WAN).
1. Comprendere il problema: Il meccanismo di "Fencing"
In un cluster Proxmox con HA attivo, i nodi devono essere in costante comunicazione. Se un nodo perde il contatto con gli altri, interviene un protocollo di sicurezza chiamato Fencing.
Il sistema ipotizza che il nodo isolato possa causare corruzioni dei dati. Per prevenire questo rischio, un timer di sicurezza (Watchdog) riavvia forzatamente la macchina. Non è un errore, ma un'azione protettiva per garantire l'integrità del cluster.
Diagnosi rapida
Per capire se un riavvio è stato causato dal Fencing, analizziamo i log del boot precedente:
journalctl -b -1 -e --no-pager | grep -v audit
Cosa cercare: Messaggi come [TOTEM] Token has not been received o watchdog-mux: client watchdog expired. Se presenti, il problema è la stabilità della rete.
2. La Soluzione: Adattare il Cluster alla Rete (WAN Tuning)
Le impostazioni standard di Proxmox sono fatte per nodi che viaggiano sulla stessa rete locale (LAN) e quindi non hanno latenze. Se i server comunicano via Internet, è necessario aumentare la tolleranza ai ritardi dal momento che si possono manifestare con maggiore frequenza.
Modifica della configurazione
La modifica va fatta solo su un nodo nel file del cluster filesystem. Incrementare sempre il config_version per forzare l'aggiornamento.
nano /etc/pve/corosync.conf
Parametri consigliati per WAN:
totem {
...
config_version: 10 # Incrementare di 1 rispetto al valore attuale
token: 10000 # Aspetta 10 secondi prima di dichiarare un nodo "down"
consensus: 12000 # Tempo per la decisione collettiva (deve essere > token)
join: 60 # Tempo massimo per l'ingresso di un nuovo nodo
knet_pmtud_interval: 0 # Disabilita il ricalcolo continuo dell'MTU (evita micro-interruzioni)
...
}
3. L'architettura: Il "Cervello Condiviso" (Il Symlink)
Proxmox utilizza il filesystem pmxcfs (cartella /etc/pve/) come "unica fonte di verità". Tutti i nodi leggono da lì.
Il file /etc/corosync/corosync.conf deve essere solo un collegamento simbolico (Symlink) che punta al file condiviso.
Verifica dell'integrità
Controllare su ogni nodo lo stato del file:
ls -la /etc/corosync/corosync.conf
- OK:
lrwxrwxrwx ... /etc/corosync/corosync.conf -> /etc/pve/corosync.conf - ERRORE:
-rw-r--r-- ... /etc/corosync/corosync.conf(Indica che il nodo è scollegato dal "cervello" del cluster).
4. Procedura di ripristino in sicurezza (Zero Downtime)
Se trovi un file fisico al posto del collegamento, devi ripristinare il link. Per evitare che il server rimanga senza istruzioni anche solo per un istante (rischiando un riavvio), usa la sostituzione atomica:
-
Crea il nuovo collegamento temporaneo:
ln -s /etc/pve/corosync.conf /etc/corosync/corosync.conf.new -
Sostituisci il file istantaneamente:
mv /etc/corosync/corosync.conf.new /etc/corosync/corosync.conf
Con il comando mv, lo scambio avviene in un microsecondo: il servizio Corosync non percepirà alcuna interruzione.
5. Verifica Finale
Una volta sistemati i collegamenti su tutti i nodi, controlla che il cluster sia sincronizzato e che tutti i nodi vedano la stessa versione della configurazione:
pvecm status
Risultato atteso: * Quorate: Yes
Config Version:(Il numero impostato al punto 2)- Tutti i nodi elencati come attivi nella
Membership information.
Regola d'oro: Da questo momento in poi, ogni modifica alla rete del cluster deve essere effettuata esclusivamente editando il file in /etc/pve/corosync.conf.