USB Stick unter vSphere 6.5 als Diagnostic Coredump Laufwerk

Warum ein USB-Stick als Coredump-Laufwerk?

In einer VMware vSphere-Farm mit multiplen Servern gibt es ein Host, der in unregelmäßigen Abständen immer mal wieder einen Bluescreen bzw. Purplescreen erzeugt. Die Hardware an sich scheint laut den verfügbaren Diagnose-Möglichkeiten in Ordnung zu sein, ein Update von Firmware und Treibern ist schon (leider erfolglos) durchgeführt worden. Die erste Vermutung, dass dieses Verhalten nur unter Last auftritt, hat sich leider nicht bestätigt, da der Server auch im Wartungsmodus ohne aktive VMs ausgestiegen ist. Aus diesem Grund möchte der VMware-Support ein erweitertes Diagnose-Log haben, um hier vielleicht sehen zu können, wo das Problem liegt. Da die Server alle von zwei internen SD-Karten booten, werden die Informationen (scheinbar) in einer RAM-Disk abgelegt und sind somit bei einem Purplescreen nicht auswertbar.

Aktivierung der USB-Nutzung für den Host

Damit der Host auf USB-Geräte zugreifen kann, muss der USB Arbitrator-Dienst beendet werden. Läuft dieser Dienst, können USB-Geräte in VMs durchgereicht werden. Dies bedeutet auch, dass mögliche USB-Geräte auf diesem Host nach dem Beenden des Dienstes nicht mehr zur Verfügung stehen. Da der Host allerdings eh im Wartungsmodus sein sollte, sollte dies kein Problem darstellen. Der Dienst kann auf der Konsole mit folgendem Befehl beendet werden:

/etc/init.d/usbarbitrator stop

Nun kann der USB-Stick in den Server gesteckt werden. Das erneute Einlesen von möglichem Storage kann ebenfalls per Konsole gemacht werden:

esxcli storage core adapter rescan --all

Das korrekte Laufwerk herausfinden

Es gibt unterschiedliche Möglichkeiten, die verfügbaren Storage-Geräte an einem VMware-Host herauszufinden. Ein

ls -la /vmfs/devices/disks/

zeigt einige Datenträger auf.

Eine deutliche bessere und detailliertere Ansicht zeigt allerdings der Befehl

esxcli storage core device list

Hier wird sehr genau und gut angezeigt, dass es sich bei dem Gerät um einen USB-Stick handelt, dass dieser nicht zum Booten genutzt wird und wir sehen den Namen, unter dem man das Gerät ansprechen kann.

Formatierung des USB-Sticks

Der von mir eingesetzte USB-Stick kam direkt aus der Verpackung und war vom Hersteller vor-formatiert. Dies lässt sich sehr gut erkennen, wenn man den Befehl

partedUtil getptbl /dev/disks/naa.<ID>

eingibt.

Diese Partition kann nicht für die Ablage von einem Diagnose-Dumpfile genutzt werden, heißt wir müssen den USB-Stick anpassen und formatieren. Im ersten Schritt wandeln wir das Dateisystem um in einen GPT-Datenträger:

partedUtil mklabel /dev/disks/naa.ID gpt

Dieser Befehl entfernt die eine Partition 1 (siehe Screenshot, ganz vorne steht eine 1). Nun müssen wir eine neue Partition anlegen, hierfür benötigen wir einige Informationen.

Die Größe der Partition

Da man die Größe nicht in MB oder GB angeben kann, sondern in Sektoren, muss dieser Wert errechnet werden. Weitere Informationen hierzu findet man in der VMware-Knowledgebase: Using the partedUtil command line utility on ESXi and ESX (1036609)

Die Ausgabe von

partedUtil getptbl /dev/disks/naa.ID

zeigt mir die folgenden Werte an:

Die Rechnung ist in meinem Fall die folgende:

(1919 * 255 * 63) - 1 = 30828734

Die Art der Partition

Bei der Erstellung einer Partition muss mit angegeben werden, um was für eine Art von Partition es sich handelt. Man kann sich die verfügbaren Möglichkeiten anzeigen lassen:

partedUtil showGuids

In unserem Fall benötigen wir die GUID 
9D27538040AD11DBBF97000C2911D1B8, um ein vmkDiagnostic-Laufwerk zu bekommen.

Die Erstellung der Partition

Haben wir nun alle Informationen zusammen, können wir die eigentliche Partition erstellen. Der Befehl dazu lautet:

partedUtil setptbl /dev/disks/naa.ID gpt "1 2048 30828734 9D27538040AD11DBBF97000C2911D1B8 0"

Eine kurze Erklärung der Werte:
partedUtil = Tool zur Erstellung der Partition
setptbl = Erstellung einer neuen Partition
/dev/disks/naa.<ID> = Datenträger, in meinem Fall der USB-Stick
gpt = das Format
1 = Nummer der Partition
2048 = Startsektor
30828734 = Endsektor
9D27538040AD11DBBF97000C2911D1B8 = GUID (siehe vorheriger Absatz)
0 = Attribute der Partition (128 z.B. wäre bootbar, normalerweise 0)

Konfiguration der Coredump-Laufwerke

Um sich die aktuellen Einstellungen anzeigen zu lassen, kann der folgende Befehl genutzt werden:

esxcli system coredump partition list

Wir können erkennen, dass das neu erzeugte Laufwerk nun auftaucht, allerdings ist es noch nicht Aktiv und noch nicht als Speicherort für den Coredump eingestellt. Dies können wir mit den zwei folgenden Befehlen ändern:

esxcli system coredump partition set --partition="naa.ID:1"
esxcli system coredump partition set --enable true

Ganz wichtig: Vergessen Sie nicht die Nummer der Partition am Ende des ersten Befehls!

Eine erneute Ausgabe der Laufwerke zeigt nun, dass der USB-Stick Aktiv und Konfiguriert ist.

Nun müssen wir nur noch warten, bis der Host ein weiteres Mal aussteigt und haben hoffentlich einen Dump, der dem Support bereitgestellt werden kann.

Weiterführende Links und Informationen

Ich habe in diesem Artikel die folgenden Seiten genutzt und mir von dort die benötigten Informationen zusammengesammelt:

VMware.com: Configuring a vSphere ESXi host to use a local USB device for VMkernel coredumps (1038228)

VMware.com: Performing a rescan of the storage on an ESX/ESXi host (1003988)

VMware.com: Identifying disks when working with VMware ESXi/ESX (1014953)

VMware.com: Configuring a diagnostic coredump partition on an ESXi 5.x/6.x host (2004299)

VMware.com: Using the partedUtil command line utility on ESXi and ESX (1036609)

VMware.com: Configuring an ESXi/ESX host to capture a VMkernel coredump from a purple diagnostic screen (1000328)

VMscrub.com: Creating A VMFS Datastore On A USB Drive


Sie benötigten persönliche Unterstützung oder haben nicht die richtige Lösung für Ihr Problem gefunden?

Dieser Blog wird von mir, Jan Kappen, in seiner Freizeit betrieben, hier beschreibe ich Lösungen für Probleme aller Art oder technische Anleitungen mit Lösungsansätzen.

Die berufliche Unabhängigkeit

Ich bin seit Januar 2020 vollständig selbstständig und habe meine eigene Firma gegründet, die Building Networks mit Sitz in Winterberg im schönen Sauerland. Hier stehe ich als Dienstleister gerne für Anfragen, Support oder Projekte zur Verfügung.

Die Firma Building Networks bietet Ihnen:

  • Hilfe und Support per Telefon, Fernwartung oder persönlich vor Ort
  • Projekt-Unterstützung
  • Ausgezeichnete Kompetenz zu den Themen
    • Microsoft Hyper-V
    • Microsoft Failover Clustering & HA
    • Storage Spaces Direct (S2D) & Azure Stack HCI
    • Veeam Backup & Recovery
    • Microsoft Exchange
    • Microsoft Exchange Hybrid Infrastruktur
    • Microsoft Active Directory
    • Microsoft Office 365
    • Ubiquiti
    • 3CX VoIP PBX
    • Fortinet Network Security
    • Baramundi Software
    • ...

Ich freue mich über Ihren Kontakt, weitere Informationen finden Sie auf der Webseite meiner Firma unter Building-Networks.de

Jan

Jan Kappen arbeitet seit 2005 in der IT. Er hat seine Ausbildung 2008 abgeschlossen und war bis 2018 als IT-Consultant im Bereich Hyper-V, Failover Clustering und Software Defined Storage unterwegs. Seit 2015 wurde er jährlich von Microsoft als Most Valuable Professional (MVP) im Bereich "Cloud & Datacenter Management" ausgezeichnet für seine Kenntnisse und die Weitergabe seines Wissens. Jan ist häufig auf Konferenzen als Sprecher zu finden, weiterhin bloggt er viel. Von September 2018 bis Dezember 2019 war Jan als Senior Network- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland angestellt. Im Januar 2020 hat er den Sprung in die Selbstständigkeit gewagt und ist seitdem Geschäftsführer der Firma Building Networks in Winterberg. In seiner Freizeit kümmert er sich um das Freifunk-Netzwerk in Winterberg und Umgebung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert