SSD Firmware online updaten – bei einem Scale Out File Server 2012 R2 Storage Pool

SNAGHTML171c967Wir haben für unsere Umgebung einen Weg gefunden, der es möglich macht, die SSD Firmware zu aktualisieren ohne dass die Daten wegmigriert und der Storage Pool aufgelöst werden muss.
Auf unseren zwei Scale Out File Server Umgebungen bestehend aus HP DL 360 -Systemen an die jeweils ein Single JBOD (einmal DataON und einmal Intel JBOD) per SAS angeschlossen ist, haben wir das SSD Firmwareupdate erfolgreich durchgeführt. Andere Konstellationen konnten wir nicht testen und werden hierzu auch keine Mutmaßungen abgeben, ob es damit funktionieren könnte oder nicht.

Wir setzen in unserer Umgebung Seagate 1200 SSDs ein und für genau diese SSDs gelten die nachfolgend beschriebenen Schritte.

Wir weisen ausdrücklich darauf hin, dass dieses Online Update nicht ganz trivial ist, dass es trotz gewissenhafter Ausführung zu Datenverlust kommen kann. Bitte lesen Sie sich die hier beschriebenen Schritte komplett durch und starten Sie nicht ohne eine aktuelle Sicherung ihrer Umgebung zu haben. Sollten Sie keine Seagate SSDs einsetzen, so lesen Sie bitte die Herstelleranleitung zum Firmware Update Ihrer SSDs.

Wir übernehmen keinerlei Haftung für eventuell aufgetretene Datenverluste!

Das Online Firmware Update kann nur durchgeführt werden wenn Sie mindestens eine Hot Spare SSD in ihrem Storage Pool definiert haben, oder wenn dies nicht der Fall ist, eine zusätzliche SSD desselben Typs und der gleichen Größe dem Storage Pool zu Verfügung stellen können. Denn nur dann besteht die Möglichkeit eine SSD aus dem Storage Pool heraus zu lösen.

Mehr Informationen zum Thema „Austausch einer Fehlerhaften Festplatte aus einem Storage Pool“ finden Sie auf der folgenden Webseite: Replace Failed Disks and Repair JBODs for Storage Spaces in Windows Server

Auslesen des aktuellen Firmwarestands:

Im Servermanager bei Datei- und Speicherdienste\Speicherpools werden unten rechts die „physischen Datenträger“ angezeigt. Einen Datenträger markieren und die Eigenschaften aufrufen unter Details\FirmwareVersion kann nachgeschaut werden, welche Firmware die gewählte Festplatte hat.

clip_image002
In unserem Fall hat die SSD die Firmwareversion „0006“ – die aktuelle vom Hersteller veröffentlichte Firmwareversion ist die „0007“

Anmerkung: Windows zeigt die neue Firmwareversion erst nach dem Reboot aller Server die Mitglied im Failover Cluster sind an.

Oder aber über PowerShell – schnell und einfach
Get-PhysicalDisk | Where-Object MediaType -eq „SSD“ |ft FriendlyName,MediaType,FirmwareVersion

Folgende Schritte sind für das Firmware Update notwendig:

  1. Ausschalten der automatischen Festplatten Wiederherstellung am StoragePoolGet-StoragePool -IsPrimordial $false | Set-StoragePool -RetireMissingPhysicalDisks Never
    Kontrolliert werden kann diese Einstellung über folgenden PowerShell Befehl
    Get-StoragePool -IsPrimordial $false | Fl
    clip_image004
  2. Ist für den Storage Pool eine Hot Spare definiert,
    kann diese direkt aus dem Storage Pool entfernt werden, hier bitte mit Punkt 6 fortfahren
  3. Frei verfügbare SSD dem Storage Pool hinzufügen

    Dies erfolgt über den Server Manager
    image
    image
  4. Die SSD welche die neue Firmware bekommen soll auf „Außer Betrieb“ oder „retired setzen

    dadurch, dass wir die Festplatte auf „Außer Betrieb“ setzten, veranlassen wir im nächsten Schritt beim Repair der vDisks, dass die Daten dieser SSD Festplatte auf die neu hinzugefügte „leere“ SSD übertragen werden. Dies wird mit folgendem PowerShell Befehl durchgeführt:

    Get-PhysicalDisk physicaldisk19 | Set-PhysicalDisk -Usage Retired

    die erfolgreiche Änderung der Festplatten Zuordnung kann sowohl im Server Manager wie auch im Failover Cluster Manager unter „Storage\Pool“ kontrolliert werden„Storage\Pool“ kontrolliert werden
    clip_image010
    Jetzt sind im Storage Pool sichtbar:
    grün die neu hinzugefügte SSD – rot die „außer Betrieb“ gesetzte SSD
    clip_image012

    Anmerkung: Bitte notieren Sie sich die Slotnummer (rot markiert) der SSDs, die Sie bereits aktualisiert haben, den je nachdem von welchem Server Sie die Disks präsentiert bekommen, können die Namen (blau) unterschiedlich sein, das kann schon mal für Verwirrung sorgen. Die Slotnummer waren zumindest in unserer Umgebung immer eindeutig.

    clip_image014
  5. Pro vDisk muss jetzt die Reparatur-Funktion über PowerShell aufgerufen werden.

    WICHTIG!
    die Reparatur muss über alle vDisks ausgeführt werden, auch bei denen, die keinen SSDTier belegen, da der Writeback-Cache auf dem SSDTier liegt (standardmäßig ist der Writeback-Cache 1 GB groß)
    Die Reparaturfunktion wird über Powershell aufgerufen. Zuerst benötigen wir die ObjektID der jeweiligen vDisk, mit

    get-VirtualDisk vDisk1 | select-object ObjectID | fl

    können wir uns die ObjectID der vDisk anzeigen lassen, diese sieht wie folgt aus:
    clip_image016
    Die markierte ID benötigen wir für die Reparatur
    Der Powershellbefehl dazu lautet:

    Get-VirtualDisk | Where-Object ObjectId -Match „{96a44ad8-6778-11e5-80bb-00237ddbbddb}“ | Repair-VirtualDisk

    Es geht auch der PowerShell Befehl
    Repair-VirtualDisk –Friendlyname vDsikname
    Allerdings hat dieser Befehl bei mir nicht so zuverlässig funktioniert, daher habe ich für alle SSDs den ersten Befehl verwendet.
    clip_image018
    Der Reparaturvorgang kann je nach Größe und Datenmenge einige Zeit in Anspruch nehmen.
    Nach dem ersten Reparaturvorgang können wir im Failover Cluster Manager beim Pool – schon sehen, wie die Daten auf die neu hinzugefügten SSD verlagert wurden. Sobald bei allen vDisks der Reparaturvorgang ausgeführt ist, hat die „außer Betrieb“ gesetzte SSD in unserer Umgebung nur noch 256 MB Daten und kann jetzt entfernt werden. Solange auf der SSD noch Daten liegen (mehr als die angezeigten 256 MB), kann diese nicht aus dem Storage Pool entfernt werden.

  6.  Die SSD wird über den Server Manager aus dem Storage Pool entfernt

    clip_image020
    clip_image022
    Datenträger wurde erfolgreich aus dem Pool entfernt.
    clip_image024
    Jetzt hat das Betriebssystem direkten Zugriff auf die SSD und diese kann mit der neuen Firmware versorgt werden.
    Die hier beschriebenen Vorgänge müssen einzeln für jede SSD durchgeführt werden, die mit einer neuen Firmware versorgt werden soll. Zugegeben das ist mit Zeit und Aufwand verbunden und während der Reparaturvorgänge ist mit Sicherheit mit Performanceeinbußen zu rechnen. Aber es ist eine Alternative – wenn man bedenkt, dass ansonsten alle VMs auf einen anderen Storage Pool verschoben werden müssen, der Pool komplett aufgelöst werden muss damit die SSDs mit neuer Firmware versorgt werden können und anschließend wieder aufgebaut werden muss.

  7. Clusterknoten auf dem das Firmware Update ausgeführt wird in den Modus „Anhalten“ setzen und alle Rollen ausgleichen
  8. Verbindung zu Storage am angehaltenen Clusterknoten bis auf eine Verbindung trennen

    Sind mehrere Verbindungen zum Storage auf dem Clusterknoten aktiv, auf dem die SSD aktualisiert werden soll, so wird die Firmware über das Seagate Tool nicht aktualisiert.
    Am zweiten Clusterknoten bleiben alle Verbindungen zum Storage aktiv.

  9. Seagate SSD Firmware update durchführen

    Voraussetzung:
    Das Windowsbetriebssystem muss direkten Zugriff auf die SSD haben.
    In unserem Beispiel werden wir die SSDs einzeln aus dem Storage Pool heraus lösen, mit der neuen Firmware versorgen und dem Storage Pool wieder hinzufügen.
    Wir haben in unserem Storage Pool Seagate SAS SSD 1200 200GB verbaut und zeigen hier die Vorgehensweise für das Firmwareupdate für diese SSDs. Wer andere SSD in seinem Storage Pool verbaut hat, sollte sich auf der Homepage des Herstellers informieren, wie die SSD mit neuer Firmware versorgt werden können.

    Wir haben in unserem Storage Pool Seagate SAS SSD 1200 200GB verbaut und zeigen hier die Vorgehensweise für das Firmwareupdate für diese SSDs. Wer andere SSD in seinem Storage Pool verbaut hat, sollte sich auf der Homepage des Herstellers informieren, wie die SSD mit neuer Firmware versorgt werden können.
    Mit dem SeaTools für Windows kann die neue Firmware auf die SSD installiert werden. In unserem Fall führe ich alle Arbeiten am FSNode1 aus. Daher habe ich die SeaTools dort installiert.
    Nochmals zur Kontrolle:- Die SSD wurde aus den Storage Pool entfernt – Windows hat direkten Zugriff auf sie.
    – Der Clusterknoten ist im Modus „Angehalten“ und alle Rollen wurden verschoben.
    – Es besteht nur noch eine Verbindung zum Storage auf diesem ClusterknotenAnmerkung: sind auf dem Server auf dem das Firmwareupdate ausgeführt wird mehr als ein HBA aktiv, wird die Firmware nicht auf die SSD geschrieben – so zumindest war es in unserer Umgebung.Jetzt kann die SSD aktualisiert werden:
    Dazu rufe ich das Tool SeaTools für Windows von Seagate auf
    clip_image026
    Die zu aktualisierende SSD auswählen – unter „einfache Tests“ den Punkt „Erweiterte Tests“ aufrufen
    clip_image028
    Die jetzt erscheinende Meldung muss mit F8 bestätigt werden, dann erscheint in der Menüleiste der Menüpunkt „Erweiterte Tests“
    clip_image030Über den Menüpunkt „Firmware-Update“ kann die aktuelle Firmware heruntergeladen werden.
    Die Firmware muss nach dem Download entpackt werden und die Firmwaredateien mit der Dateierweiterung .LOD sollen laut Beschreibung von Seagate ins Verzeichnis „C:\Program Files (x86)\Seagate\SeaTools for Windows“ kopiert werden.

    Bitte lesen Sie in der Beschreibung der jeweiligen Firmware nach, welche Firmware Datei für Ihre SSD verwendet werden muss.
    Für unsere SSDs wurde folgende Datei angegeben.
    clip_image032

    Über den Menüpunkt „Firmware Download (…) wird die Firmware auf die SSD übertragen.
    Hierbei kommt wieder eine Warnmeldung, die mit F8 bestätigt werden muss.
    Bei meiner Installation waren die Dateien mit den festgelegten Dateifiltern nicht sichtbar. Ich habe den Dateinamen einfach hinein kopiert und auf „Öffnen“ geklickt
    clip_image034
    Nun wir die Firmware auf die SSD übertragen
    clip_image036
    Nachdem „Erneute Suche“ nochmals durchgeführt wurde, wird die neue Firmwareversion angezeigt.clip_image038
    Die Firmware wurde erfolgreich aktualisiert
    Solange die Clusterknoten nicht neu gestartet wurden, können Sie nur im „SeaTools“ sehen, dass die Firmware aktualisiert wurde. Nachdem alle SSDs auf der aktuellen Firmware sind, starten wir die Server der Reihe nach einmal neu. Danach zeigt auch Windows die korrekte Firmware der SSDs an.

  10. Alle Verbindungen zum Storage wieder aktivieren
  11. Im Failover Cluster Manager schalte ich den Clusterknoten auf dem ich das Firmwareupdate durchgeführt habe wieder auf „Fortsetzen“ – mit „kein Fallback für die Rollen ausführen“

    clip_image040

  12. Storage Pool auf den Clusterknoten verschieben, auf dem das Firmware update ausgeführt wurde

    Nun die Punkte ab 3 bis 12 für jede weitere SSD wiederholen.
    Kontrollieren Sie bitte nach jedem Punkt zuerst, dass die vorgenommen Änderungen auch wirklich da sind – manches Mal dauert es etwas bis der Servermanager bzw. der Failover Cluster Manager die Änderungen anzeigt. Sie sollten mit dem nächsten Punkt erst fortfahren, wenn die Änderungen korrekt angezeigt werden.
    Sollten Sie in Ihrem Storage Pool eine Hot Spare definiert haben, so fügen Sie die letzte SSD nicht als „Automatisch“ sondern als „Hot Spare“ hinzu.

  13. Als letzter Punkt muss das automatische Wiederherstellen am Storage Pool wieder aktiviert werden

    Get-StoragePool -IsPrimordial $false | Set-StoragePool –RetireMissingPhysicalDisks Auto
    clip_image042

  14. Jetzt noch die Clusterknoten der Reihe nach neu starten

    Damit ist das Firmwareupdate der SSDs abgeschlossen.
    Zum Abschluss kann mit folgendem PowerShell Befehl kontrolliert werden, ob wirklich alle SSDs dieselbe Firmwareversion haben

    Get-PhysicalDisk | Where-Object MediaType -eq „SSD“ | ft FriendlyName,MediaType,FirmwareVersion
    clip_image044

Viel Erfolg

Petra Lipp
 

Petra Lipp ist ausgebildete Datenverarbeitungskauffrau mit mehr als 20 jähriger Berufserfahrung. Seit Februar 2015 verstärkt sie das Team der Rachfahl IT-Solutions GmbH & Co KG. Petra Lipp ist VEEAM Certified Engineer (VMCE), MCSE Private Cloud.