ESXi Host Recovery mit Hindernissen

Verbindung mit EVC Cluster scheitert nach ESXi Host Restore

Der Austausch von defekten ESXi Bootmedien wurde inzwischen leider zur Routine. Der Gund sind Flashmedien von schlechter Qualität und daher kurzer Lebensdauer. Man muss hier allerdings fairerweise anfügen, daß einige Kunden günstige USB-Sticks als Bootmedium verwenden. Im Homelab ist das praktisch, im Produktivcluster eine schlechte Idee.

Die übliche Prozedur dafür ist recht einfach:

  • Host Konfiguration exportieren
  • Host räumen und herunterfahren
  • Neues Bootmedium vorbereiten mit einem ISO, das den selben oder einen niedrigeren Patchlevel hat, als die ursprüngliche Installation.
  • Frisch installierten Host booten
  • IP Adresse (temporär) vergeben, falls kein DHCP Server erreichbar ist
  • Hostkonfiguration wiederherstellen
  • Mit Cluster verbinden
  • Fehlende Patches nachinstallieren

So weit, so gut. Aber letzte Woche wurde die Routineaufgabe zur Herausforderung.

EVC Modus inkompatibel

Der Kunde betreibt einen Cluster mit ESXi 6.0 U3 Build 9313334, was dem Expresspatch EP15 von August 2018 entspricht. Alle Hosts verwenden Custom Images von Fujitsu. Also musste ich für die Installation auf dem neuen Medium ein ISO finden, das gleich oder niedriger als EP15 ist. Das einzig verfügbare war ESXi 6.0 U3 5050593 von Februar 2017. Im Prinzip ist das kein Problem. Einfach dem Cluster beitreten und die fehlenden Patches mittels Update Manager nachziehen. Aber in diesem Fall machte mir vCenter das Leben schwer. Als ich versuchte den Host mit seinem Cluster neu zu verbinden, erhielt ich folgende Meldung:

Reconnect host:The host’s CPU hardware should support the cluster’s current Enhanced vMotion Compatibility mode, but some of the necessary CPU features are missing from the host. Check the host’s BIOS configuration to ensure that no necessary features are disabled (such as XD, VT, AES, or PCLMULQDQ for Intel, or NX for AMD). For more information, see KB articles 1003212 and 1034926.

Wie bitte?!

Dieser Host war bereits Mitglied des Clusters und in der Zwischenzeit wurden weder Änderungen am EVC Modus, noch Veränderungen an den BIOS Einstellungen getätigt.

Nach etwas Recherche und mit der Hilfe von VMware Support kamen wir zu dem Schluss, dass es etwas mit den Spectre / Meltdown Anpassungen zu tun haben müsse, die 2018 eingeführt wurden. Darin enthalten waren auch einige Microcode Updates für Intel CPU (ESXi600-201803402-BG, ESXi600-201806402-BG, ESXi600-201808402-BG).

Unser Custom Image ESXi 6.0 U3 enthielt diese Microcode Updates nicht.  Für Enhanced vMotion Kompatibilität (EVC) waren diese aber zwingend erforderlich. Wir patchten den neu installierten Host über die CLI bis zum gemeinsamen Patchlevel des Clusters (9313334). Am einfachsten geht dies, indem man die ZIP Dateiten auf einen gemeinsamen Datastore kopiert. In meinem Beispiel ist das Datastore1 und die Dateien liegen in einem Ordner namens “patches“. Man benötigt eine SSH Verbindung und patcht mit dem unten dargestellten Kommando.

esxcli software vib update -d <path_to_patch.zip>

Beispiel

esxcli software vib update -d /vmfs/volumes/Datastore1/patch/ESXi600-201703001.zip

Wer Custom Images eines Hardware-Herstellers verwendet, sollte unbedingt den “update” Befehl anstatt “install” verwenden. Install kann den Host funktionsunfähig machen, indem es Treiberpakete von Drittanbietern überschreibt oder löscht. Das passierte mir einmal, wodurch ich den Kontakt zu den FC HBA verlor und ganz von vorn beginnen musste. 🙁

Die Kommandozeile berichtet, welche Pakete installiert, gelöscht, oder übersprungen wurden. Wichtig ist, dass man folgende Nachricht erhält:

 "The update completed successfully, but the system needs to be rebooted for changes to be effective."

In der Regel benötigt man mehr als nur ein Patch Paket. In meinem konkreten Fall waren es acht. Man installiert in chronologischer Reihenfolge nach dem Erscheinungsdatum. Auch wenn nach jeder Installation steht, man müsse den Host neu starten, genügt ein Neustart am Ende (es sei denn Ihr habt Langeweile und zu viel Zeit). 😉

Nach der letzten erfolgreichen Installation startet man den Host mit folgendem Befehl neu:

reboot

Willkommen zurück

Nachdem alle Microcode Updates installiert waren, konnte der Host problemlos mit dem Cluster verbunden werden.

Schreibe einen Kommentar

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