Emulex 16002 Firmware Downgrade auf DataCore Servern

Es ist prinzipiell gute Praxis, Treiber, Firmware und BIOS Images bei Servern und Infrastruktur-Komponenten auf dem aktuellsten Stand zu halten. Hier werden in der Regel Fehler behoben, Leistung optimiert, neue Funktionen hinzugefügt, oder Sicherheitslücken gestopft. Dass manchmal auch ein Rückschritt notwendig sein kann, mussten wir kürzlich bei einen DataCore Host mit SANSymphony V10 erfahren.

Der Server – eine Fujitsu Primergy RX2560 M1 – war mit aktuellsten Firmware-Updates versorgt. Darunter auch drei Emulex LPe16002 Fibrechannel HBA. Das System lief unter SANsymphony V10 PSP4 und sollte auf PSP5 aktualisiert werden. Gerade mit Emulex HBA gab es in der Vergangenheit immer wieder Probleme beim Update der DataCore Treiber. Daher ist vor einem DataCore Update das genaue Studium der Releasenotes Pflicht.

If 16G Emulex HBA are included in your configuration, confirm that the firmware for these adapters is 10.6.144.21. Newer versions of firmware are not supported

Die Emulex HBA hatten eine Firmware Version 10.6.193.22 und sind damit nicht unterstützt. Auf Anfrage teilte uns der DataCore Support mit, daß es sich nicht nur um eine ungeprüfte (und damit nicht unterstützte) Konfiguration handle, sondern dass es jenseits der Version 10.6.144.21 zu schwerwiegenden Problemen auf dem DataCore Server kommen werde.

Ein Downgrade muss her

Die Sache ist klar. Ein Firmware Downgrade auf dem HBA muss durchgeführt werden. Das klingt einfach – ist es aber nicht. Das vom Hersteller Emulex bereitgestellte Flashtool Elxflash greift in Leere. Es findet auf dem System schlicht keinen HBA. Wohl aber die ebenfalls von Emulex produzierten 10G LAN Adapter.

In solchen Fällen helfen erwiesenermaßen persönliche Kontakte zum Hard- oder Software Anbieter. An dieser Stelle einen herzlichen Dank an Thomas Burger von DataCore Deutschland, der uns den entscheidenden Hinweis gab. Der DataCore Treiber maskiert den HBA und macht ihn für das elxflash-Tool unsichtbar. Also muss zuerst der DataCore-Treiber durch den Original Emulex-Treiber ersetzt werden.

Die Prozedur

Die Prozedur erfordert viele Neustarts der Server, die bekanntlich einige Zeit in Anspruch nehmen. Ich empfehle, für ausreichend Nachschub an Kaffee oder Tee zu sorgen. 🙂

Die beiden DataCore Server nenne ich hier zur Vereinfachung SDS1 und SDS2. Der Vorgang beginnt auf SDS1.

Achtung! Dies ist keine offizielle Prozedur seitens DataCore oder Emulex. Der Beitrag dient der eigenen Dokumentation der Vorgehensweise. Im Zweifel bitte den offiziellen Support zu Rate ziehen.

Zunächst muß man natürlich sicherstellen, daß sich alle gespiegelten vDisks im Status “up to date” befinden und alle verbundenen Host (Initiator) volle Pfadredundanz zeigen. Ist dies der Fall, stoppt man Datacore Server SDS1, schließt die SANsymphony Konsole und beendet danach den Datacore Executive Service (dcsx) auf SDS1.

 

sdsFW16002-01

Während des gesamten Downgrade Vorgangs sollte der Datacore Executive Service auf “Deaktiviert” gesetzt werden. So wird sicher gestellt, daß der Dienst unter keinen Umständen zwischendurch gestartet wird.

sdsFW16002-02

Alle angepassten Datacore-Emulex Treiber müssen vor dem Downgrade durch den regulären Emulex Treiber ersetzt werden.

sdsFW16002-03Man geht dazu in den Geräte-Manager auf DataCore Fibre-Channel Adapters, wählt den ersten aus und selektiert im Kontextmenü “Treibersoftware aktualisieren”.

sdsFW16002-04

Der Treiber befindet sich in der Regel noch auf dem System. Eine lokale Suche genügt.sdsFW16002-05

Im System ist der Original Treiber noch gelistet.

sdsFW16002-06

Wir sehen den angepassten DataCore Treiber für LPe16002 und den Original Emulex LightPulse HBA Treiber. Letzteren wählen wir aus.

sdsFW16002-07

sdsFW16002-08Dieser Vorgang wird für alle HBA wiederholt. Eventuelle Anfragen zu einem Neustart werden übersprungen. Ein Neustart sollte erst nach Tausch aller HBA Treiber durchgeführt werden.

Elxflash – Ihr Auftritt

Nach dem Reboot sollte man im Geräte-Manager kontrollieren, ob alle HBA nun unter der Rubrik “Speichercontroller” als Emulex LightPulse HBA gelistet werden.

Für den Flash-Vorgang benütigen wir auf dem DataCore Host zwei Dinge:

Das Flashtool kommt als ZIP Archiv und wird in ein lokales Verzeichnis entpackt. Zum Bespiel: c:\tmp\flash. Es enthält drei Verzeichnisse

sdsFW16002-10In das Verzeichnis “firmware” entpacken wir das gewünschte Firmware Image. Achtung! Rs gibt noch ein Firmware Verzeichnis unterhalb von “win”. Dorthin nicht das Image legen.

sdsFW16002-11Gestartet wird die Batch Datei elxflash.bat von einer administrativen Commandline. Dem Batch können mehrere Parameter übergeben werden.

Query

Dieser Befehl listet alle Emulex Geräte im System auf.

elxflash.bat /q

 

HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5D:E6, PCI ID=E200, VID=10DF, SSID=E208, SVID=10DF, Firmware=10.6.193.22, Boot Code=10619322, Boot Enabled=1
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5D:E7, PCI ID=E200, VID=10DF, SSID=E208, SVID=10DF, Firmware=10.6.193.22, Boot Code=10619322, Boot Enabled=1
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5C:26, PCI ID=E200, VID=10DF, SSID=E208, SVID=10DF, Firmware=10.6.193.22, Boot Code=10619322, Boot Enabled=1
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5C:27, PCI ID=E200, VID=10DF, SSID=E208, SVID=10DF, Firmware=10.6.193.22, Boot Code=10619322, Boot Enabled=1
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5C:6E, PCI ID=E200, VID=10DF, SSID=E208, SVID=10DF, Firmware=10.6.193.22, Boot Code=10619322, Boot Enabled=1
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5C:6F, PCI ID=E200, VID=10DF, SSID=E208, SVID=10DF, Firmware=10.6.193.22, Boot Code=10619322, Boot Enabled=1
HBA=OCe14100-NIC, Port Type=NIC, MAC=90:1B:0E:6E:08:D2, PCI ID=0720, VID=10DF, SSID=120C, SVID=1734, Firmware=10.6.193.23, Boot Code=2.0.281.768
HBA=OCe14100-NIC, Port Type=NIC, MAC=90:1B:0E:6E:08:D3, PCI ID=0720, VID=10DF, SSID=120C, SVID=1734, Firmware=10.6.193.23, Boot Code=2.0.281.768

elxflash.exe: All required queries succeeded - Return Code=0

Alle 6 HBA sind hier sichtbar und auch die beiden 10G LAN Adapter. Möchte man die Abfrage nur auf Fibrechannel HBA beschränken, muss man den zusätzlichen Parameter /fc mit übergeben.

elxflash.bat /q /fc


HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5D:E6, PCI ID=E200, VID=10DF, SSID=E208, SVID=10DF, Firmware=10.6.193.22, Boot Code=10619322, Boot Enabled=1
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5D:E7, PCI ID=E200, VID=10DF, SSID=E208, SVID=10DF, Firmware=10.6.193.22, Boot Code=10619322, Boot Enabled=1
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5C:26, PCI ID=E200, VID=10DF, SSID=E208, SVID=10DF, Firmware=10.6.193.22, Boot Code=10619322, Boot Enabled=1
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5C:27, PCI ID=E200, VID=10DF, SSID=E208, SVID=10DF, Firmware=10.6.193.22, Boot Code=10619322, Boot Enabled=1
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5C:6E, PCI ID=E200, VID=10DF, SSID=E208, SVID=10DF, Firmware=10.6.193.22, Boot Code=10619322, Boot Enabled=1
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5C:6F, PCI ID=E200, VID=10DF, SSID=E208, SVID=10DF, Firmware=10.6.193.22, Boot Code=10619322, Boot Enabled=1

elxflash.exe: All required queries succeeded - Return Code=0

Testlauf

Führt man einen Befehl mit Parameter /p (preview) aus, so wird dieser nur simuliert. Ein guter Vorabtest.

elxflash.bat /auto /fc /downgrade /p

Tue Jul 26 15:19:31 2016
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5D:E6, Update=Firmware, Image=lancer_A10.6.144.21.grp, New=10.6.144.21, Old=10.6.193.22, Status=Preview

Tue Jul 26 15:19:31 2016
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5D:E7, Update=Firmware, Image=lancer_A10.6.144.21.grp, New=10.6.144.21, Old=10.6.193.22, Status=Preview

Tue Jul 26 15:19:31 2016
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5C:26, Update=Firmware, Image=lancer_A10.6.144.21.grp, New=10.6.144.21, Old=10.6.193.22, Status=Preview

Tue Jul 26 15:19:31 2016
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5C:27, Update=Firmware, Image=lancer_A10.6.144.21.grp, New=10.6.144.21, Old=10.6.193.22, Status=Preview

Tue Jul 26 15:19:31 2016
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5C:6E, Update=Firmware, Image=lancer_A10.6.144.21.grp, New=10.6.144.21, Old=10.6.193.22, Status=Preview

Tue Jul 26 15:19:31 2016
HBA=LPe16002, Port Type=FC, WWN=10:00:00:90:FA:A9:5C:6F, Update=Firmware, Image=lancer_A10.6.144.21.grp, New=10.6.144.21, Old=10.6.193.22, Status=Preview

elxflash.exe: All required downgrades succeeded - Return Code=

Alles klar zum Downgrade. Wir können den Parameter /p nun weglassen.

elxflash.bat /auto /fc /downgrade

sdsFW16002-12

Der Vorgang dauert einige Minuten. Die Adapter melden sich nacheinander zurück. Bei Dualport HBA paarweise.

Nach dem Firmware Downgrade und Neustart des Systems muss wieder der  DataCore Treiber installiert werden.sdsFW16002-13

Auch der angepasste DataCore Treiber bleibt im System.

sdsFW16002-14

sdsFW16002-15Wir wählen jetzt wieder den DataCore Treiber für LPe16002.

sdsFW16002-16

Auch hier sollte das System erst nach Tausch aller Treiber neu gestartet werden.

sdsFW16002-17 sdsFW16002-18

Return to operation

Nach dem Neustart sollte der Status im Geräte-Manager kontrolliert werden. Die HBA melden sich nun wieder unter der Rubrik “DataCore Fibre-Channel Adapters”. Sind alle HBA mit dem richtigen Treiber ausgestattet, ist alles Bereit für den DataCore Start.sdsFW16002-19

Der Executive Service dcsx wird nun wieder auf automatischen Start (verzögert) konfiguriert.sdsFW16002-20

Danach den Dienst dcsx starten.

sdsFW16002-21

Sobald der DataCore Executive Service gestartet ist, kann man sich über die SANsymphony Konsole anmelden.

Vor dem eigentlichen Start des DataCore Hosts sollte ein Rescan der HBA durchgeführt werden.

sdsFW16002-22

Der Datacore Server kann nun wieder gestartet werden.

Loop procedure

Sind alle vDisks synchronisiert und im Status “up to date”, darf man sich freuen und zur Belohnung den gesamten Vorgang mit DataCore Host SDS2 wiederholen. 😉

Links

Eine Antwort auf „Emulex 16002 Firmware Downgrade auf DataCore Servern“

  1. Ich habe (zum Glück) seit fast zwei Jahren nichts mehr mit DataCore zu tun. Als DICE habe ich einige Installationen durchgeführt und gewartet. Aber interessant, dass es diese Probleme immer noch gibt. Das Produkt an sich ist ja nicht schlecht, aber die Treiber und Firmware waren schon immer die Achillesferse bei diesen Konfigurationen. Selbst wenn man alle Relase Notes genau befolgt läuft man immer wieder in solche Fehler.

Schreibe einen Kommentar

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