Intel Microcode unter VMware aktualisieren
VMware stellt für ESXi regelmäßig Microcode Updates für Intel CPUs bereit. Nach dem Einspielen von solchen Updates werden während des Startvorgangs automatisch neue Intel Microcode Versionen eingespielt. In diesem Artikel zeigen wir anhand eines Servers mit VMware ESXi 6.7 wie Sie die Microcode Version überprüfen können und bei Bedarf noch neuere Microcode Versionen einspielen.
Beispielsetup
In diesem Beispiel verwenden wir folgendes Setup:
- Server mit ASUS P10S-M Mainboard mit BIOS Version 4401 (Anmerkung: dieses Beispiel-System ist nicht auf der VMware HCL)
- VMware ESXi 6.7 (direkt nach der Installation, vorerst ohne Einspielen von Patches)
Das Beispiel wurde am 27.08.2018 mit dem zu diesem Zeitpunkt aktuellsten verfügbaren BIOS-, Microcode- und Software-Versionen durchgeführt. Es zeigt damit anschaulich wie in sicherheitskritischen Umgebungen die neuesten Sicherheitsupdates sowohl in Bezug auf den Microcode, als auch in Bezug auf Software-Updates eingespielt werden können.
BIOS Version auslesen
Zuerst überprüfen wir die BIOS Version:
[root@localhost:~] esxcfg-info | grep -i bios |----BIOS UUID................................................0x50 0xaa 0xab 0xc 0x5d 0x93 0x17 0x2c 0x39 0x7b 0x2c 0x4d 0x54 0x47 0xd 0xc1 |----BIOS Vendor..............................................American Megatrends Inc. |----BIOS Version.............................................4401 |----BIOS ReleaseDate.........................................2018-03-05T00:00:00 |----BIOS Asset Tag...........................................To Be Filled By O.E.M. |----Name............................................HardwareSMBIOSHeap |----Group Name..........................HardwareSMBIOS |----World Command Line.................................grep -i bios |----Option Name........................................ignoreHwSMBIOSInfo [root@localhost:~]
Falls es sich um ein System von Thomas-Krenn handelt, ist die neuste BIOS Version für das Mainboard im Artikel BIOS Sicherheitsupdates zu finden. In diesem Beispiel ist bereits die aktuellste verfügbare BIOS-Version vorhanden.
Aktuelle Microcode Version auslesen
Die aktuell vorhandene Microcode Version kann auf der SSH Shell mit dem vsish Kommando ausgelesen werden:
[root@localhost:~] vsish -e cat /hardware/cpu/cpuModelName Intel(R) Xeon(R) CPU E3-1220 v6 @ 3.00GHz [root@localhost:~] vsish -e cat /hardware/cpu/cpuList/0 | grep -i -E 'family|model|stepping|microcode|revision' Family:6 Model:158 Stepping:9 Number of microcode updates:0 Original Revision:0x00000084 Current Revision:0x00000084 [root@localhost:~]
In diesem Beispiel ist aktuell die Microcode Version 0x84 vorhanden.
Intel stellt Informationen zu verfügbaren Microcode Versionen im Dokument Microcode Update Guidance bereit (siehe Intel Microcode - Microcode Versionen). In diesem Dokument werden CPUs anhand ihrer CPUID angeführt (nicht anhand von Familiy/Model/Stepping). In der vollständigen Ausgabe des vsish cpuList Kommandos ist die CPUID im Bereich 1:CPUID leaf unter EAX ersichtlich (in diesem Beispiel 0x906e9):
[root@localhost:~] vsish -e cat /hardware/cpu/cpuList/0 CPU information { Family:6 Model:158 Type:0 Stepping:9 [...] CPUID:CPUID content { 0:CPUID leaf { EAX:0x00000016 EBX:0x756e6547 ECX:0x6c65746e EDX:0x49656e69 } 1:CPUID leaf { EAX:0x000906e9 [...] Number of microcode updates:0 Original Revision:0x00000084 Current Revision:0x00000084 [...]
Alternativ lässt sich die CPUID lässt sich auf folgende Art anhand von Familiy/Model/Stepping bestimmen:
- Notieren Sie Family/Model/Stepping im Hex-Format. Die Datei /proc/cpuinfo gibt die Werte im Dezimal-Format aus:
- Family: 6 -> 0x6
- Model: 158 -> 0x9e
- Stepping: 9 -> 0x9
- Die CPUID hat den Aufbau 0FFM0FMS. Gehen Sie nun von hinten nach vorne, um die CPUID aus Family/Model/Stepping zu bestimmen:
- S (Stepping) = 9
- M (hintere Ziffer von Model) davor: e9
- F (Family) davor = 6e9
- Die Ziffer 0 davor = 06e9
- Model (vorletzte Ziffer von Model) davor = 906e9
Bei einer Suche nach 906e9 im Dokument Microcode Update Guidance vom 08.08.2018 ist in der Spalte New Production MCU Rev die Microcode Version 0x8E angeführt. Intel stellt also in diesem Fall eine neuere Microcode Version bereit, als sie aktuell am System vorhanden ist.
Patch einspielen
VMware stellt Microcode Updates gemeinsam mit anderen Patches zum Download bereit.
Spielen Sie alle verfügbaren Updates (wie im Artikel VMware ESXi updaten beschrieben) ein. In diesem Beispiel ist das Update ESXi670-201808402-BG enthalten, das den neuen Microcode enthält.[1]
Microcode abfragen
Die Abfrage der Microcode Version nach dem Einspielen der Patches und Neustarten des Hosts zeigt die neue Microcode Version 0x8E an:
[root@localhost:~] vsish -e cat /hardware/cpu/cpuList/0 | grep -i -E 'family|model|stepping|microcode|revision' Family:6 Model:158 Stepping:9 Number of microcode updates:1 Original Revision:0x00000084 Current Revision:0x0000008e
Einzelnachweise
- ↑ VMware ESXi 6.7, Patch Release ESXi670-201808402-BG - Updates cpu-microcode VIB (VMware Knowledge Base Artikel 56538)
Weitere Informationen
- Using the ESXi 6.0 CPU Microcode Loading Feature (blogs.vmware.com, 08.05.2015)
Autor: Werner Fischer Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.
|