Umgang mit PSOD – dem Purple Screen of Death

Inhalt

Was ist PSOD? 

Warum passiert das?

Was ist die Auswirkung?

Was ist zu tun, wenn es passiert?

Wie kann man es verhindern?


TL;DR

Der unangenehmste Aspekt eines PSOD ist, dass Sie dadurch das Vertrauen in Ihre Infrastruktur verlieren und die Angst, die dadurch entsteht. Solange Sie die Ursache nicht gelöst haben, kann der Gedanke, dass dies wieder oder auf einem anderen Server passieren kann, Sie nachts wach halten.
Verwenden Sie Runecast Analyzer (kostenlose Testversion), um zu prüfen, ob einer Ihrer Hosts von Bedingungen betroffen ist, die den lila Bildschirm des Todes von VMware verursachen können.

Was ist PSOD?

PSOD steht für Purple Screen of Diagnostics, oft auch als Purple Screen of Death bezeichnet (abgeleitet vom bekannteren Blue Screen of Death, der manchmal unter Microsoft Windows auftritt).

Dabei handelt es sich um einen Diagnosebildschirm, der von VMware ESXi angezeigt wird, wenn der Kernel einen schwerwiegenden Fehler feststellt, von dem er sich entweder nicht sicher erholen kann oder der nicht weiter ausgeführt werden kann, ohne ein viel höheres Risiko eines größeren Datenverlusts einzugehen. 

Ein PSOD zeigt den Speicherzustand zum Zeitpunkt des Absturzes und auch zusätzliche Details, die für die Fehlersuche bei der Ursache des Absturzes wichtig sind: ESXi-Version und -Build, Ausnahmetyp, Register-Dump, Backtrace, Server-Uptime, Fehlermeldungen und Informationen zum Core-Dump (eine nach dem Fehler erzeugte Datei, die weitere Diagnoseinformationen enthält). 

Dieser Bildschirm ist auf der Konsole des Servers sichtbar. Um ihn zu sehen, müssen Sie entweder im Rechenzentrum sein und einen Monitor anschließen oder die Out-of-Band-Verwaltung des Servers (iLO, iDRAC, IMM... je nach Hersteller) verwenden.

Example of Purple Screen of Diagnostics

WUSSTEN SIE SCHON? 

Der Bildschirm wird entweder als  Violett  oder Rosa bezeichnet, tatsächlich ist die Farbe jedoch Dunkles Magenta (RGB:171,0,171 | CMYK:0.00, 1.00, 0.00, 0.33)

Wie kommt es zum PSOD?

Der PSOD ist eine Kernel-Panic. Auch wenn wir alle wissen, dass ESXi nicht auf UNIX basiert, entspricht die Panic-Implementierung der UNIX-Definition. Der ESXi-Kernel (vmkernel) löst diese Sicherheitsmaßnahme als Reaktion auf ein Ereignis/Fehler aus, das nicht behebbar ist und bedeuten würde, dass ein Weiterlaufen ein hohes Risiko für die Dienste und VMs darstellen würde. Anders ausgedrückt: Wenn der ESXi-Host das Gefühl hat, dass er beschädigt wurde, begeht er "Seppuku" und schreibt, noch während er sein violettes Blut vergießt, einen Abschiedsbrief, in dem er detailliert schildert, warum er das getan hat!

Die häufigsten Ursachen für einen PSOD sind:


1. Hardware-Fehler, meist RAM- oder CPU-bezogen. Diese geben normalerweise einen "MCE"- oder "NMI"-Fehler aus. 

  • "MCE" - Machine Check Exception, das ist ein Mechanismus innerhalb der CPU zur Erkennung und Meldung von Hardware-Problemen. In den Codes, die auf dem lila Bildschirm angezeigt werden, finden sich wichtige Details zur Identifizierung der Grundursache des Problems. 
  • "NMI" - nicht maskierbarer Interrupt, der ein Hardware-Interrupt ist, der vom Prozessor nicht ignoriert werden kann. Da NMI eine sehr wichtige Meldung über einen HW-Fehler ist, besteht die Standardreaktion ab ESXi 5.0 und später darin, einen PSOD auszulösen. Frühere Versionen protokollierten nur den Fehler und fuhren fort. Genau wie bei MCEs liefert der durch NMI verursachte lila Bildschirm wichtige Codes, die für die Fehlersuche entscheidend sind.

2. Software-Fehler

  • unsachgemäße Interaktionen zwischen ESXi SW-Komponenten (z.B. KB2105711)
  • Rennbedingungen (z. B. KB2136430)
  • keine Ressourcen mehr: Speicher, Heap, Puffer (z. B. KB2034111, KB2150280)
  • Endlosschleife + Stapelüberlauf (z. B. KB2105522)
  • ungeeignete oder nicht unterstützte Konfigurationsparameter (z. B. KB2012125, KB2127997)

3. Fehlerhafte Treiber; Fehler in Treibern, die versuchen, auf einen falschen Index oder eine nicht existierende Methode zuzugreifen (z. B. KB2146526 , KB2148123)

WUSSTEN SIE SCHON? 

Zu Testzwecken oder wenn Sie einfach nur neugierig sind, können Sie einen PSOD auch manuell auslösen. 
Melden Sie sich am ESXi-Host über DCUI oder SSH mit einem privilegierten Konto an und führen Sie aus:
vsish -e set /reliability/crashMe/Panic
Natürlich wird ein Testsystem empfohlen, idealerweise ein virtuelles verschachteltes ESXi, damit Sie die Konsole leicht beobachten können. Stellen Sie außerdem sicher, dass Sie diesen Artikel zu Ende lesen, um die Auswirkungen dieser Aktion und den Effekt auf Ihr Testsystem zu verstehen.

Wie wirkt sich ein PSOD aus?

Wenn eine Panik auftritt und der Host abstürzt, beendet er alle auf ihm laufenden Dienste zusammen mit allen gehosteten virtuellen Maschinen. Die VMs werden nicht "gracefully" heruntergefahren, sondern abrupt abgeschaltet. Wenn der Host Teil eines Clusters ist und Sie HA konfiguriert haben, werden diese VMs auf den anderen Hosts des Clusters gestartet. Neben dem Ausfall und der Nichtverfügbarkeit der VMs während der Zeit, in der sie heruntergefahren sind, können einige kritische Anwendungen wie Datenbankserver, Nachrichtenwarteschlangen oder Backup-Jobs von dem "unsauberen" Herunterfahren betroffen sein.

Außerdem werden alle anderen vom Host bereitgestellten Dienste beendet. Wenn Ihr Host also Mitglied eines VSAN-Clusters ist, wirkt sich ein PSOD auch auf vSAN aus.

Für mich ist der lästigste Aspekt eines PSODs, dass man das Vertrauen in seine eigene Infrastruktur verliert und die Angst, die dadurch entsteht, zumindest bis man der Sache auf den Grund geht. Ok, man kann sich durch einen Neustart wiederherstellen und hat vielleicht auch HA oder sogar FT konfiguriert, so dass die Auswirkungen nicht so verheerend sind... aber bis man die Ursache nicht gelöst hat, kann einen der Gedanke, dass dies wieder oder auf einem anderen Server passieren kann, nachts wach halten.

Was ist zu tun, wenn ein PSOD auftritt?

1. Analysieren Sie die violette Bildschirmmeldung

Eines der wichtigsten Dinge, die Sie tun müssen, wenn Sie einen PSOD haben, ist es, einen Screenshot zu machen. Wenn Sie sich aus der Ferne (IMM, iLO, iDRAC...) mit der Konsole verbinden, wird es einfach sein, einen Screenshot zu machen, aber wenn Sie ins Rechenzentrum gehen müssen, müssen Sie möglicherweise buchstäblich Ihr Telefon herausnehmen und ein Foto des Bildschirms machen. Es gibt eine Menge nützlicher Informationen über die Ursache des Absturzes in diesem Bildschirm.

The purple screen message

2. Kontaktieren Sie den VMware-Support

Bevor Sie mit der weiteren Untersuchung und Fehlerbehebung beginnen, ist es ratsam, den VMware-Support zu kontaktieren, sofern Sie einen Support-Vertrag haben. Dieser kann Sie parallel zu Ihrer Untersuchung bei der Erstellung der Ursachenanalyse (RCA) unterstützen. 

3. Starten Sie den betroffenen ESXi-Host neu

Um den Server wiederherstellen zu können, müssen Sie ihn neu starten. Ich würde auch raten, ihn im Wartungsmodus zu halten, bis Sie die vollständige RCA durchführen, die Ursache identifizieren und sie beheben. Wenn Sie es sich nicht leisten können, den Server im Wartungsmodus zu halten, sollten Sie zumindest Ihre DRS-Regeln so anpassen, dass nur unwichtige VMs auf dem Server laufen, so dass die Auswirkungen eines weiteren PSOD minimal sind.

4. Holen Sie den Kernspeicherauszug

Nachdem der Server hochgefahren ist, sollten Sie sich den Coredump beschaffen. Der Coredump, auch vmkernel-zdump genannt, ist eine Datei, die Protokolle mit ähnlichen, aber detaillierteren Informationen enthält, als die, die auf dem violetten Diagnosebildschirm zu sehen sind, und wird bei der weiteren Fehlersuche verwendet. Auch wenn die Ursache des Absturzes aus der PSOD-Meldung, die Sie in Schritt 1 analysiert haben, offensichtlich zu sein scheint, ist es ratsam, sie durch einen Blick auf die Protokolle des Coredump zu bestätigen.

Abhängig von Ihrer Konfiguration können Sie den Coredump in einer dieser Formen haben:

a. Auf der Scratch-Partition 

b. Als .dump-Datei auf einem der Datenspeicher des Hosts

c. Als .dump-Datei auf dem vCenter - über den netdump-Dienst

Der Coredump wird besonders wichtig, wenn die Konfiguration des Hosts nach einem PSOD automatisch zurückgesetzt werden soll, in diesem Fall bekommen Sie die Meldung nicht auf dem Bildschirm zu sehen.

Sie können die Dump-Datei mit SCP aus dem ESXi-Host kopieren und dann mit einem Texteditor (wie Notepad++) öffnen. Diese wird den Inhalt des Speichers zum Zeitpunkt des Absturzes enthalten und die ersten Teile davon enthalten die Meldungen, die Sie auf dem lila Bildschirm gesehen haben. Die gesamte Datei kann vom VMware-Support angefordert werden, aber Sie können nur das vmkernel-Protokoll extrahieren, das etwas ... bekömmlicher ist:

Error message generated by the purple screen

5. Entschlüsseln Sie den Fehler

Bei der Fehlersuche und Ursachenanalyse kann man sich wie Sherlock Holmes fühlen. PSODs können sich manchmal in eine von Arthur Conan Doyle inspirierte Geschichte verwandeln, aber in den meisten Fällen ist es ein ziemlich geradliniger Prozess, bei dem es schwer sein wird, zum fünften "Warum" der 5 Whys-Technik zu gelangen.

Das wichtigste Symptom und dasjenige, mit dem Sie beginnen sollten, ist die Fehlermeldung, die der lila Bildschirm erzeugt. Glücklicherweise ist die Anzahl der Fehlermeldungen, die erzeugt werden können, endlich:

Da die Kernel-Panik von der CPU gehandhabt wird, finden Sie weitere Informationen zu diesen Ausnahmen im Intel 64- und IA-32-Architekturen Software-Entwicklerhandbuch, Band 1: Grundlegende Architektur und Intel 64- und IA-32-Architekturen Software-Entwicklerhandbuch, Band 3A.

Die häufigsten Fälle werden in separaten VMware KB-Artikeln behandelt und ich werde hier nur eine Referenztabelle solcher Fehler führen, da die Artikel sehr detailliert und gut dokumentiert sind. Verwenden Sie also diese Tabelle als Index für die PSOD-Fehler:

6. Protokolle prüfen

Es kann vorkommen, dass die Ursache nicht sehr offensichtlich ist, wenn man sich die lila Bildschirmmeldung oder das Core-Dump-Protokoll ansieht. Der nächste Ort, an dem man nach Hinweisen suchen sollte, sind die Host-Protokolle, insbesondere in dem Zeitintervall kurz vor dem PSOD. Selbst wenn Sie das Gefühl haben, die Ursache gefunden zu haben, ist es immer noch ratsam, nicht kleinlich zu sein und sie durch einen Blick in die Protokolle zu bestätigen.

Wenn Sie eine Unternehmensumgebung verwalten, ist es wahrscheinlich, dass Sie eine spezialisierte Protokollverwaltungslösung zur Hand haben (wie VMware Log Insight oder SolarWinds LEM), so dass es einfach ist, diese Protokolle zu durchsuchen, aber wenn Sie keine Protokollverwaltung haben, können Sie sie einfach exportieren.

Die interessantesten Protokolldateien, die es zu untersuchen gilt, wären:

Wie kann man PSOD verhindern?

Die meisten softwarebezogenen PSODs werden durch Patches behoben, stellen Sie also sicher, dass Sie mit den neuesten Versionen auf dem Laufenden sind.

Stellen Sie sicher, dass Ihre Server auf der Hardware-Kompatibilitäts-Checkliste von VMware stehen, zusammen mit allen Geräten und Adaptern. Dies schützt vor einigen unerwarteten hardwarebezogenen Problemen, stellt aber auch sicher, dass der VMware-Support Sie im Falle eines PSODs unterstützen kann.

Wie oben in "Warum es passiert" beschrieben, sind auch fehlerhafte Treiber eine häufige Ursache für PSODs. Daher ist es unerlässlich, regelmäßig auf den Support-Webseiten der Hersteller nach aktualisierter Firmware und Treibern zu suchen und vor allem auf die dokumentierten PSOD-verursachenden Treiber zu reagieren, indem man sie so schnell wie möglich aufrüstet.

Bei Runecast analysieren wir regelmäßig die gesamte VMware Knowledge Base (kb.vmware.com), die aus mehr als 30.000 Artikeln besteht. Wir extrahieren umsetzbare Erkenntnisse aus den KBs, um virtualisierte Infrastrukturen proaktiv widerstandsfähiger, sicherer und effizienter zu machen. Wir sind mit dem PSOD sehr vertraut und können die meisten Voraussetzungen, die zu diesem Problem führen können, identifizieren. Durch die proaktive Analyse Ihrer Umgebung hilft Ihnen Runecast Analyzer, diese Probleme zu vermeiden, so dass Sie die Gewissheit haben, dass die meisten PSODs, die in Ihrer Umgebung lauern, verhindert werden.

Screenshot of VMware Knowledge Base

>> Kostenlose Testversion von Runecast Analyzer herunterladen (in englischer Sprache)

E-book – Wie man mit einem PSOD umgeht (in englischer Sprache)

Alles, was Sie über den PSOD (The Purple Screen of Death) wissen müssen, in einem E-Book von Runecast CTO Aylin Sali.

E-Book herunterladen
Über den Autor | Aylin Sali

Aylin Sali (Runecast CTO) ist ein Virtualisierungs- und Cloud-Enthusiast mit mehr als 10 Jahren IT-Erfahrung und einem überwältigenden Wunsch nach Automatisierung. Er ist ein VCAP DCA & DCD und 5x vExpert.Aylin ist auf Twitter als: @V4Virtual