Il Nodo (GPFS) che non se ne voleva andare
OK, qualcuno ha fatto una mossa che non andava fatta, ma capita anche ai migliori di fare una fesseria ogni tanto.
E' successo che una macchina facente parte di un cluster di server GPFS (il filesystem parallelo di IBM) è stata formattata, destinata a nuovo uso e reinstallata PRIMA che il cluster GPFS fosse stato opportunamente riconfigurato.
La mossa non ha causato nessun disservizio palese agli utenti, visto che GPFS è fatto per essere fault-tolerant, e che il quorum di server attivi rimaneva raggiunto. Però è come lavorare con un raid con un disco rotto... non si sta tranquilli fino a che non lo hai riparato. Per non parlare degli allarmi attivi del sistema di monitoraggio.
Quindi inizio a riconfigurare il cluster per portarlo in uno stato consistente. Molti comandi di gestione GPFS si lamentano dell'assenza del server incriminato, ma le cose bene o male sembrano andare fino al momento in cui tento di rimuovere il nodo dal pool: il comando
mmdelnode -N ilMioNodoRazzato
non si esegue, e si lamenta perché non riesce a connettersi al nodo reinstallato. La man page non è di nessun aiuto, e tra l'altro nessuna opzione per forzare il comando è disponibile. Improvviso un pò di imbrogli, ma non va nulla. Sembra che l'unica opzione sia reinstallare la macchina da un backup (e qua stendo un velo pietoso... diciamo che non si può fare).
Allora cerco in rete e ala fine mi accorgo che nella versione più recente della man page di mmdelnode ci sta scritto:
You cannot delete a node if both of the following are true: The node responds to a TCP/IP ping command from another node. The status of the node shows unknown when you use the mmgetstate command from another node in the cluster. Note: You will probably be able to delete such a node if you physically power it off.
Quindi il maledetto comando si rifiuta di eseguire se trova un nodo con cui non riesce a comunicare con il demone gpfsd ma che risponde al ping.
Rileggo la man page sul mio sistema e questa informazione non c'è: ovviamente sto lavorando con una versione vecchia di GPFS.
Faccio un reboot del server reinstallato e contestualmente eseguo mmdelnode: funziona. Il comportamento è identico ma questa feature non è documentata nel man.
Poi ci si meraviglia se la gastrite diventa una malattia professionale degli ops.