Firmware Intel Data Center SSDs mit Hyper-V Server und AVAGO RAID Controller

Die Firmware von Intel Data Center SSDs auf einem Microsoft Hyper-V Server (oder auch Windows Server Core) kann über die Eingabeaufforderung (cmd.exe) mit den folgenden Schritten aktualisiert werden.

Herunterladen der aktuellen Firmware, auf einem PC mit Internet-Zugang:

https://downloadcenter.intel.com/de/download/27863/Intel-SSD-Data-Center-Tool?v=t

Entpacken des Intel SSD Data Center Tools vom PC auf den Microsoft Hyper-V Host (unter der Voraussetzung, dass die entsprechenden Berechtigungen existieren).

unzip \Users\<Username>\Downloads\Intel_SSD_Data_Center_Tool_3.0.13_Windows.zip -d \\<Hyper-V-Hostname>\c$\temp\intel-ssd

Ich habe auf allen meinen PCs unzip.exe über ein Batchscript im Pfad liegen, um an der Eingabeaufforderung schnell eine Datei entpacken zu können. Alternativ geht das natürlich auch mit PowerShell.exe ab Windows 10 oder Windows Server 2016 mit Expand-Archive:

Expand-Archive -LiteralPath C:\Users\<Username>\DownloadsIntel_SSD_Data_Center_Tool_3.0.13_Windows.zip -DestinationPath '\\<Hyper-V-Hostname>\c$\temp\intel-ssd\' -Force

image

Wurde das Intel SSD Data Center Tools auf den Host entpackt, wechseln wir in einer RDP Session auf diesen, um das Update vor zu nehmen.

mstsc /f /v:<Hyper-V-Hostname>

Auf dem Hyper-V Host befindet sich im Verzeichnis C:\Temp\intel-ssd das Intel SSD Data Center Tool welches wir nun in der richtigen Version (x64) installieren müssen:

image

Wie so oft hat man bei Intel Software keine Möglichkeit das Zielverzeichnis zu beeinflussen und so haben wir hinterher auf Laufwerk C: im Root die folgenden Verzeichnisse:

  • \Intel
  • \isdct

Das ist zwar nicht schön, aber auch nicht schlimm Winking smile zum eigentlichen Update muss man ins ISDCT Verzeichnis wechseln:

C:\Temp\intel-ssd> cd \isdct

Dort befindet sich isdct.exe womit wir die Firmware der SSDs aktualisieren können, wozu die folgenden Schritte notwendig sind.

Für den Fall, dass die SSDs an einem AVAGO/LSI RAID Controller hängen, muss der folgende Befehl eingegeben werden.

isdct.exe set -system EnableLSIAdapter=true 

image

Ohne diesen Aufruf, erkennt das Tool die SSDs nicht, oder nicht korrekt!

Mit den folgendem Aufruf, können die im System vorhandenen SSDs angezeigt werden, dabei analysiert auch gleich das Intel Data Center Tool ob ein Update der Firmware notwendig ist.

isdct.exe show –intelssd

image

Wichtig hier sind die folgenden Informationen:

  • Firmware : N2010112 (aktuelle Firmware)
  • FirmwareUpdateAvailable : N2010121 (neue Firmware)
  • Index : 0 (Index der SSD, geht bei 4 SSDs von 0 bis 3)

Die eigentliche Aktualisierung erfolgt nun mit diesem Aufruf – Wichtig: Bis jetzt wurden nur Informationen der SSDs gelesen, die Aktualisierung ist ein Schreibvorgang (Stichwort Datenbackup) der laut Intel nicht destruktiv ist (also eigentlich nix passieren kann).

isdct.exe load -intelssd <Index>

Für den Fall, dass wir 4 SSDs (Index 0 bis 3) aktualisieren müssen kann auch das folgende Script verwendet werden.

@ECHO OFF

FOR /L %%a IN (0,1,3) DO (

	ECHO y | isdct.exe load –intelssd %%a

)

Eine abschließende Analyse mit dem Intel SSD Data Center Tool zeigt, dass nun alle SSDs die aktuelle Firmware besitzen.

- Intel SSD DC S3520 Series PHDV723201YD480BGN -

Bootloader : Property not found
DevicePath : LSI10
DeviceStatus : 
Firmware : N2010121
FirmwareUpdateAvailable : The selected Intel SSD contains current firmware as of this tool release.
Index : 0
ModelNumber : INTEL SSDSC2BB480G7
ProductFamily : Intel SSD DC S3520 Series
SerialNumber : PHDV723201YD480BGN

- Intel SSD DC S3520 Series PHDV723201K1480BGN -

Bootloader : Property not found
DevicePath : LSI5
DeviceStatus : 
Firmware : N2010121
FirmwareUpdateAvailable : The selected Intel SSD contains current firmware as of this tool release.
Index : 1
ModelNumber : INTEL SSDSC2BB480G7
ProductFamily : Intel SSD DC S3520 Series
SerialNumber : PHDV723201K1480BGN

- Intel SSD DC S3520 Series PHDV717503PB480BGN -

Bootloader : Property not found
DevicePath : LSI6
DeviceStatus : 
Firmware : N2010121
FirmwareUpdateAvailable : The selected Intel SSD contains current firmware as of this tool release.
Index : 2
ModelNumber : INTEL SSDSC2BB480G7
ProductFamily : Intel SSD DC S3520 Series
SerialNumber : PHDV717503PB480BGN

- Intel SSD DC S3520 Series PHDV717501MN480BGN -

Bootloader : Property not found
DevicePath : LSI7
DeviceStatus : 
Firmware : N2010121
FirmwareUpdateAvailable : The selected Intel SSD contains current firmware as of this tool release.
Index : 3
ModelNumber : INTEL SSDSC2BB480G7
ProductFamily : Intel SSD DC S3520 Series
SerialNumber : PHDV717501MN480BGN

So, nun sind wir fertig … den Server noch Rebooten und das war es dann.

Enjoy it, b!

Hyper-V VM Windows Server 2016 hängt beim Shutdown oder Reboot

Beim letztem Patchday musste ich feststellen, dass ein Windows Server 2016, der als VM auf einem Hyper-V Host lief, keinen Shutdown oder Reboot durchführen konnte. Die VM blieb einfach hängen.

Meine erste Vermutung war ein Problem mit dem Pagefile beim Shutdown und so schaute ich mir die Konfiguration des Servers an.

image

Gemäß der Standard-Einstellung hat sich das Betriebssystem dazu entschieden, dass Pagefile auf Laufwerk D: zu legen. Nach Änderung auf Laufwerk C: (wie im folgendem Bild zu sehen) konnte die VM problemlos herunterfahren oder auch durchstarten.

image

Sollte ich Zeit haben, muss ich mir die Sache genauer anschauen. Aber der Workaround oben hat schon einmal geholfen.

Enjoy it, b!

Hyper-V Linux VM Boot Problem

Für einen aufwendigeren Test hatte ich mir unter Hyper-V eine Linux VM (Generation 2 mit CentOS 7.4) konfiguriert, mit der Absicht deren Disk für eine Reihe weiterer VMs zu verwenden … analog zum SysPrep von Windows.

Der Boot einer neuen VM mit der kopierten Linux VHDX ging aber sofort, mit der folgenden Meldung daneben.

image

Die Lösung des Problems ist, wenn man die notwendigen Schritte kennt nicht sonderlich schwer. Eigentlich haben wir ein Problem mit dem Bootloader von Linux.

Im ersten Schritt schalten wir die VM über das Hyper-V Management aus und fügen im Anschluss (wenn die VM aus ist) ein Linux ISO hinzu. Danach verändern die Boot Reihenfolge so, dass die VM von der DVD (sprich dem ISO Image startet).

image

Die Änderung erfolgt unter Change Hardware/Firmware/Boot order im Hyper-V Management und sollte das DVD-Laufwerk an erster Stelle haben.

  1. DVD Drive
  2. Hard Drive
  3. Network Adapter

Nun wird die VM wieder eingeschaltet und es erfolgt ein Boot von der DVD. Innerhalb des Boot-Menüs erfolgt dann die Auswahl Select Troubleshooting / Rescue a CentOS system.

image

Linux erkennt nun die vorhandene Installation und mounted diese unter /mnt/sysimage

Damit liegt unser Boot-Verzeichnis unter /mnt/sysimage/boot/efi/EFI und wir können das mit Hilfe der folgenden Schritte reparieren.

# Wechsel in das EFI Verzeichniss
cd /mnt/sysimage/boot/efi/EFI
# "Weg-Kopieren" des Boot files
cp -r centos/ boot
# ODER ALTERNATIV bei Ubuntu
cp -r ubuntu/ boot
mv fbx64.efi grubx64.efi

Nun fahren wir das Linux System wieder runter …

shutdown

… schalten die VM aus und ändern erneut die Boot-Reihenfolge unter Change Hardware/Firmware/Boot order im Hyper-V Management damit nun die VHD an erster Stelle steht.

  1. Hard Drive
  2. DVD Drive 
  3. Network Adapter

Damit startet mein CentOS ohne Probleme.

Enjoy it, b!

Hyper-V und der Saved-State einer VM

Neulich bekam ich eine VM auf einem Hyper-V Host (Windows Server 2012R2) in die Finger, welche sich aus dem Save-State partout nicht mehr starten lies.

image

Es erschien immer die folgende Fehlermeldung.

image

Nach ein wenig Social-Engineering, habe ich herausgefunden das am Wochenende ein BIOS-Update auf dem Hyper-V Host eingespielt wurde. BIOS Updates auf Servern können manchmal gravierende Änderungen mit sich bringen. Hier war es so, dass der Host gegenüber den Betriebssystem Veränderungen an der CPU bereitstellte und diese für alle gesicherten (Saved-State) VMs den Start verhinderten, die VMs welche hingegen sauber heruntergefahren wurden, starteten im Anschluss wieder ohne Probleme.

Daher, sollte mal das BIOS des Hyper-V Hosts aktualisiert werden, darauf achten das alle VMs sauber heruntergefahren wurden und sich nicht in einem Saved-State verharren. In diesem ist es nämlich nicht möglich, Änderungen an der Konfiguration der VM wie z.B. dem Prozessor Kompatibilitätsmodus einzustellen.

Natürlich, die Lösung …. war das Löschen des Saved-States!

image

Glücklicher Weise wurde die VM erst am Wochenende in diesen Zustand gebracht und so gingen keine noch nicht geschriebenen Daten verloren. Alternativ hätte man auch den Versuch unternehmen können, nochmals das alte BIOS (falls vorhanden) zu flashen, was ich mir aber vom Hersteller des Servers bestätigen lassen würde. Diese Vorgehensweise ist nämlich nicht immer supported.

Enjoy it, b!