Come affrontare il PSOD – La schermata viola di blocco ESXi

Contenuto

Cos'è il PSOD? 

Perché succede?

Qual è l'impatto?

Cosa fare quando succede?

Come prevenirlo?


TL;DR

L'aspetto più fastidioso di un PSOD è che fa perdere fiducia nell’infrastruttura e crea ansia. Finché non si risolve la causa principale, il pensiero che questo possa accadere di nuovo o su un altro server può tenere svegli la notte.
L’uso di Runecast Analyzer (prova gratuita) è utile per controllare se qualcuno degli host è affetto da condizioni che possono causare la schermata viola di VMware. 

Cos'è il PSOD?

PSOD sta per Purple Screen of Diagnostics, spesso indicato come Purple Screen of Death (derivato dal più noto Blue Screen of Death che si incontra a volte su Microsoft Windows).

È una schermata diagnostica visualizzata da VMware ESXi quando il kernel rileva un errore fatale da cui non è in grado di riprendersi in modo sicuro, o non può continuare a funzionare senza un rischio molto più elevato di una grave perdita di dati. 

Mostra lo stato della memoria al momento del crash e ulteriori dettagli aggiuntivi importanti nella risoluzione dei problemi che hanno causato il crash: Versione e build di ESXi, tipo di eccezione, dump del registro, backtrace, tempo di attività del server, messaggi di errore e informazioni sul core dump (un file generato dopo l'errore, contenente ulteriori informazioni diagnostiche). 

Questa schermata è visibile sulla console del server. Per vederla, è necessario essere nel datacenter e collegare un monitor oppure in remoto utilizzando la out-of-band del server (iLO, iDRAC, IMM... a seconda del fornitore).

Example of Purple Screen of Diagnostics

LO SAPEVATE? 

Lo schermo è indicato come viola o rosa, ma in realtà il colore è magenta scuro (RGB:171,0,171 | CMYK:0.00, 1.00, 0.00, 0.33) 

Perché succede il PSOD? 

Il PSOD è un kernel panic. Anche se tutti sappiamo che ESXi non è basato su UNIX, l'implementazione del panic si adatta alla definizione UNIX. Il kernel di ESXi (vmkernel) attiva questa misura di sicurezza in risposta a un evento/errore irrecuperabile e per cui continuare a funzionare comporterebbe un rischio elevato per i servizi e le VM. Per dirla in modo semplice: quando l'host ESXi sente di essere stato corrotto, commette "harakiri" e, mentre sanguina di sangue viola, scrive una lettera di suicidio dettagliando il perché l'ha fatto!

Le cause più comuni di un PSOD sono:

1. Guasti hardware, per lo più legati alla RAM o alla CPU. Normalmente lanciano un errore "MCE" o "NMI". 

  • "MCE" - Machine Check Exception, che è un meccanismo all'interno della CPU per rilevare e segnalare problemi hardware. Ci sono dettagli importanti per identificare la causa principale del problema nei codici visualizzati sullo schermo viola. 
  • "NMI" - non-maskable interrupt, che è un interrupt hardware che non può essere ignorato dal processore. Poiché l'NMI è un messaggio molto importante su un guasto HW, la risposta predefinita a partire da ESXi 5.0 e successivi è di attivare un PSOD. Le versioni precedenti registravano semplicemente l'errore e continuavano. Come per gli MCE, la schermata viola causata da NMI fornirà codici importanti che sono cruciali per la risoluzione dei problemi.

2. Bug del software

  • interazioni improprie tra i componenti SW di ESXi (es: KB2105711)
  • siruazioni di “corsa” o “race conditions” (es: KB2136430)
  • risorse esaurite: memoria, heap, buffer (es: KB2034111, KB2150280)
  • ciclo infinito + stack overflow (ex: KB2105522)
  • parametri di configurazione impropri o non supportati (es: KB2012125, KB2127997)

3. Driver che si comportano in modo anomalo; bug nei driver che cercano di accedere a qualche indice errato o metodo inesistente (es: KB2146526 , KB2148123)


LO SAPEVATE?

Potete anche attivare manualmente un PSOD a scopo di test o se siete semplicemente curiosi di vederlo accadere. 
Accedere all'host ESXi tramite DCUI o SSH con un account privilegiato ed eseguire:
vsish -e set /reliability/crashMe/Panic
Ovviamente si raccomanda un sistema di prova, idealmente un ESXi virtuale annidato in modo da poter osservare facilmente la console. Assicuratevi anche di finire di leggere questo articolo per capire le implicazioni di questa azione e l'effetto sul vostro sistema di test.

Qual è l'impatto del PSOD?

Quando si verifica il panic e l'host va in crash, termina tutti i servizi in esecuzione su di esso insieme a tutte le macchine virtuali ospitate. Le macchine virtuali non vengono spente in modo “graceful”, ma immediatamente. Se l'host fa parte di un cluster e avete configurato l'HA, queste VM saranno avviate sugli altri host del cluster. Oltre all'interruzione e all'indisponibilità delle VM durante il tempo in cui sono spente, alcune applicazioni critiche come i database server, le code di messaggi o i backup possono essere colpiti dallo spegnimento "sporco".

Inoltre, tutti gli altri servizi forniti dall'host saranno terminati, quindi se il vostro host è membro di un cluster VSAN, un PSOD avrà un impatto anche su vSAN.

Probabilmente l'aspetto più fastidioso di un PSOD è che fa perdere la fiducia nell’infrastruttura e crea ansia, almeno fino a quando non se ne viene a capo. Ok, si può recuperare riavviando il sistema e si può avere HA o anche FT quindi l'impatto potrebbe non essere devastante... ma finché non si risolve la causa principale, il pensiero che questo possa accadere di nuovo o su un altro server può tenere svegli la notte.

Cosa fare quando succede il PSOD?

1. Analizzare il messaggio dello schermo viola

Una delle cose più importanti da fare quando si ha un PSOD è fare uno screenshot. Se vi state collegando da remoto (IMM, iLO, iDRAC...) alla console sarà facile fare uno screenshot, ma se occorre andare in datacenter, potreste aver bisogno di tirare fuori letteralmente il telefono e scattare una foto dello schermo. Ci sono molte informazioni utili sulla causa del crash in quella schermata. 

The purple screen message

2. Contattare il supporto VMware

Prima di iniziare ulteriori indagini e la risoluzione dei problemi, è consigliabile contattare il supporto VMware, se si dispone di un contratto di supporto. Parallelamente all'indagine, saranno in grado di assistere nella realizzazione della Root Cause Analysis (RCA). 

3. Riavviare l'host ESXi interessato

Per recuperare il server, è necessario riavviarlo. Si consiglia inoltre di tenerlo in modalità di manutenzione fino a quando non si esegue l'RCA completo, si identifica la causa e la si corregge. Se non è possibile tenerlo in modalità di manutenzione per scarsità di risorse, almeno si configuri il DRS in modo che solo le VM non importanti vengano eseguite su di esso, così che se un altro PSOD dovesse avvenire l'impatto sarà minimo.

4. Ottenere il core dump

Dopo che il server è stato avviato si dovrebbe raccogliere il coredump. Il coredump, chiamato anche vmkernel-zdump è un file che contiene i log con informazioni simili, ma più dettagliate, a quelle viste nella schermata viola di diagnostica e sarà utilizzato per ulteriori risoluzioni dei problemi. Anche se la causa del crash potrebbe sembrare ovvia dal messaggio PSOD che avete analizzato nel passo 1, è consigliabile confermarla guardando i log del coredump.

A seconda della configurazione core dump può avere una di queste forme:

a. Sulla partizione scratch 

b. Come file .dump su uno dei datastore dell'host

c. Come file .dump sul vCenter - attraverso il servizio netdump

 

Il coredump diventa particolarmente importante se la configurazione dell'host deve essere resettata automaticamente dopo un PSOD, nel qual caso non potrete vedere il messaggio sullo schermo.

Si può copiare il dumpfile dall'host ESXi usando SCP e poi aprirlo usando un editor di testo (come Notepad++). Questo conterrà il contenuto della memoria al momento del crash e le prime parti di esso contengono i messaggi visti sulla schermata viola. L'intero file può essere richiesto dal supporto VMware, ma è possibile estrarre solo il log del vmkernel, che è un po' più ... gestibile:

Error message generated by the purple screen

5. Decifrare l'errore

La risoluzione dei problemi e l'analisi delle root causes possono farvi sentire come Sherlock Holmes. I PSOD possono a volte trasformarsi in una storia ispirata da Arthur Conan Doyle, ma nella maggior parte dei casi, è un processo abbastanza semplice dove sarà difficile arrivare al quinto "perché" della tecnica dei 5 Whys.

Il sintomo più importante, e quello con cui dovreste iniziare, è il messaggio di errore generato dalla schermata viola. Fortunatamente, il numero di messaggi di errore che possono essere prodotti è finito:

Poiché il kernel panic è gestito dalla CPU, per maggiori informazioni su queste eccezioni si veda il Manuale dello sviluppatore di software per le architetture Intel 64 e IA-32, Volume 1: Architettura di base e il Manuale dello sviluppatore di software per le architetture Intel 64 e IA-32, Volume 3A.

I casi più comuni sono coperti da articoli separati della VMware KB e riporterò solo una tabella di riferimento di tali errori qui, dato che gli articoli sono molto dettagliati e ben documentati. Quindi considerate questa tabella come indice per gli errori PSOD:

6. Controllare i registri

Può succedere che la causa non sia molto ovvia guardando il messaggio dello schermo viola o il log del core dump, quindi il posto successivo dove cercare indizi è nei log dell'host, specialmente nell'intervallo di tempo che precede il PSOD. Anche quando pensate di aver individuato la causa, è comunque consigliabile evitare di essere parsimoniosi e confermarla guardando i log.

Se state amministrando un ambiente aziendale è probabile che abbiate qualche soluzione specializzata di gestione dei log a portata di mano (come VMware Log Insight o SolarWinds LEM) quindi sarà facile sfogliare questi log, ma se non avete una gestione dei log potete facilmente esportarli.

I file di log più interessanti da esplorare sarebbero:


Come prevenire il PSOD?

La maggior parte dei PSOD legati al software sono risolti da patch, quindi assicuratevi di essere aggiornati con le ultime versioni.

Assicuratevi che i server siano nella lista di compatibilità hardware di VMware, insieme a tutti i dispositivi e gli adattatori. Questo vi proteggerà da alcuni dei problemi imprevisti legati all'hardware, ma assicurerà anche che il supporto VMware sarà in grado di aiutarvi in caso di un PSOD.

Come descritto sopra in "Perché succede", i driver malfunzionanti sono anche una causa frequente di PSOD, quindi è imperativo controllare regolarmente i siti web di supporto dei venditori per firmware e driver aggiornati e soprattutto per i driver documentati che causano PSOD per rispondere il più presto possibile aggiornandoli.

Noi di Runecast analizziamo regolarmente l'intera Knowledge Base di VMware (kb.vmware.com) che consiste di oltre 30.000 articoli. Estraiamo intuizioni utilizzabili dalle KB per rendere proattivamente le infrastrutture virtualizzate più resilienti, sicure ed efficienti. Abbiamo molta familiarità con i PSOD e siamo in grado di identificare la maggior parte delle precondizioni che possono portare a questo problema. Analizzando proattivamente il vostro ambiente, Runecast Analyzer vi aiuterà ad allontanare questi problemi, in modo da poter avere la tranquillità di prevenire la maggior parte dei PSOD in agguato nel vostro ambiente.


Screenshot of VMware Knowledge Base

>> Scarica la prova gratuita di Runecast Analyzer (in lingua inglese)

Ebook Come affrontare il PSOD (in lingua inglese)

Tutto quello che devi sapere sul PSOD (The Purple Screen of Death), in un ebook del CTO di Runecast Aylin Sali.

Scaricare Ebook
A proposito dell'autore | Aylin Sali

Aylin Sali (Runecast CTO) è un appassionato di virtualizzazione e cloud con più di 10 anni di esperienza IT e un desiderio irrefrenabile di automazione. È un VCAP DCA & DCD e 5x vExpert.

Aylin è su Twitter come: @V4Virtual