Ein in aktuellen Serversystemen weit verbreiteter Fibre-Channel HBA ist der Emulex 12002. Dies ist so etwas wie der Onkel Ben’s Reis der HBA. Gelingt immer und klebt nicht. 😉
So gut dieser beispielsweise in ESX Servern seine Dienste tut, so problematisch kann er bei der Verwendung in DataCore Servern sein. Die Hardware ist zwar offiziell unterstützt, aber beim Update der Datacore Emulex Treiber kommt es immer wieder zu unschönen Abstürzen mit BSOD.
Beim Upgrade von SANsymphony-V 9 auf SANsymphony-V 10 erlebten wir sogar einen derart hässlichen Bluescreen, dass das Betriebsystem nachhaltig zerstört war und wir auf einen älteren Restorepoint zurück mussten. Das Upgrade führten wir mit Unterstützung des Datacore Supports durch und mussten dafür alle (!) HBA aus dem Server ausbauen. Angeblich sei das Problem seit SSY10 behoben, jedoch findet man auch in SANsymphony-V 10 PSP4 immer noch folgenden Vermerk unter den Known Issues:
When upgrading DataCore Servers with 8GB (or less) Emulex Fibre Channel adapters, a system crash may occur.
PSP Update
Sollten sich im DataCore Server FC HBA der Serie Emulex 12002 befinden so ist ein manuelles Update empfehlenswert. Ich skizziere den Ablauf des Updates.
Achtung! : Dies ist nur ein Fahrplan der auf eigenen Erfahrungen beruht. Für Updates sollte immer die beiliegende Vorschrift von DataCore befolgt werden.
Die Beiden Datacore Server nenne ich im Ablauf exemplarisch SDS1 und SDS2.
Schritt 1 – Sicherung der Konfiguration
Dies ist unabhängig von der FC HBA Problematik und sollte vor jedem Update gemacht werden. Nicht vergessen, die gesicherte Konfiguration auf ein externes System zu kopieren.
[Update 14. Juli 2016] Vor der Installation von PSP5 wird das .net Framework 4.6.1 benötigt. Dies wird schon beim Start des Wizards geprüft.
Download .net 4.6.1 von Microsoft.
Schritt 2 – SDS1 stoppen
An dieser Stelle empfiehlt sich ein Reboot. Das vermeidet Probleme beim folgenden Schritt.
Auf SDS1 alle Konsolen schließen und sicherstellen, daß keine weiteren Benutzer angemeldet sind (mit eventuell geöffneten Konsolen). Über die Konsole von SDS2 prüfen, ob alle gespiegelten vDisks synchron sind. Den Server SDS1 stoppen. Datacore Executive Service von ‘Automatisch’ auf ‘Manuell’ stellen. Konsole auf SDS2 schließen.
Schritt 3 – DataCore Emulex Treiber deinstallieren
Auf SDS1 eine CMD Shell öffnen.
cd C:\Program Files\DataCore\SANsymphony\Install
Das Programm DcsDriverSetup starten.
DcsDriverSetup /uninstall:DcsFcSli.inf /verbose
Der Host SDS1 muss nun neu gestartet werden. Nach der Deinstallation der Datacore Emulex Treiber und dem Neustart sieht der Gerätemanager ungefähr so aus:
Die Treiber wurden durch die Default Treiber von Emulex ersetzt.
Schritt 4 – Update
Nach dem Neustart wird der Datacore Executive Service gestartet. Dieser startet nicht automatisch, da wir ihn zuvor auf manuellen Start konfiguriert hatten. Die Releasenotes sagen ausdrücklich, daß man den Dienst nicht beenden soll. Der Start des Dienstes kann unter Umständen länger dauern. Sobald der Dienst läuft wird der Smart Deployment Wizard gestartet und dabei die Setupdateien entpackt.
Nach dem Entpacken beendet man den Wizard mit EXIT und startet das Setup manuell.
Es befindet sich im Extraktordner im Unterverzeichnis SANsymphony-V.
[Update 14. Juli 2016]Beim Update auf PSP5 wird nicht nach einem Extrakt Ziel gefragt. Die entpackte Setupdatei befindet sich im Verzeichnis:
C:\Program Files\DataCore\DataCoreDeployment\SANsymphony
Die Setupdatei heisst seit PSP5 SANsymphony.exe. Das V im Namen wurde verworfen.
Kleine Randbemerkung: Eine der ersten Aktivitäten des Setups ist, den Datacore Executive Service zu beenden. Warum also muss er laufen, bevor das Setup startet? Die Erfahrung zeigt, daß er nicht zwingend laufen muss.
Das Setup wird normal durchgeführt und wie empfohlen am Ende ein Reboot durchgeführt. Eine Warnung zu iSCSI-Adaptern während des Updates kann ignoriert werden.
Schritt 5 – Nacharbeiten
Nach dem Neustart fehlen im Gerätemanager die Datacore Emulex Treiber. Startet man an dieser Stelle versehentlich den Execetuvie Service und schaut in die Datacore Konsole, so mag man erschrecken. Denn alle FC HBA sind als nicht existent oder fehlerhaft markiert.
Keine Panik! Es sind immer noch die original StorPort-Miniport-Treiber installiert, die nun im Gerätemanager ersetzt werden müssen.
Wichtig ist nun dem Treiber Assistenten den Datacore Emulex Treiber zu zeigen. Also nicht automatisch suchen lassen.
Jetzt haben wir den richtigen Treiber und wiederholen den Vorgang für alle HBA.
Nach erfolgreichem Treiberupdate verschwinden die HBA aud der Sektion “Speichercontroller” und erscheinen unter “DataCore Fibre-Channel Adapters”.
Ein Neustart des Hosts ist erforderlich (ich habe nicht mitgezählt… wieviele waren das bis jetzt?). 🙂
Jetzt starten wir den Datacore Executive Service, öffnen eine Datacore Konsole auf SDS1 und führen ein Rescan Ports Kommando auf SDS1 aus. Die FC HBA erscheinen ordnungsgemäß unter Server Ports.
Der DataCore Server SDS1 kann in der Konsole nun wieder gestartet werden. Den Starttyp des Datacore Executive Service setzt man wieder auf Automatisch (verzögerter Start). Sobald alle vDisks das Log-Recovery beendet haben kann die Prozedur mit SDS2 fortgesetzt werden.
Einer der Gründe warum ich Emulex HBAs seit über 10 Jahren meide. Spaß mit Treibern und Firmware hatte ich vor über 10 Jahren schon unter NT und NetWare… Qlogic ist meist die bessere Wahl.
Diese Aussage muss nicht unbedingt auf die Netzwerk-Chipsätze zutreffen!
Auch wenn der Artikel einen anderen Eindruck vermitteln mag, muss ich doch eine kleine Lanze für Emulex brechen. Letztlich ist es nicht der Emulex Treiber, der Probleme verursacht, sondern der DataCore Treiber für Emulex HBA. Aus mir nicht bekannten Gründen schafft es das Setup nicht, den eigenen Treiber durch eine neue Version zu ersetzen. Bei Neuinstallationen und bei voheriger Deinstallation des DataCore Treibers ist es ja kein Problem. Dennoch würde ich künftig bei der Planung neuer DataCore Server von der Verwendung dieser FC HBA Serie abraten.
Mir ist schon klar, dass das kein Problem ist welches durch Emulex selber verursacht wird. 😉 Da gab es in der Vergangenheit andere Gründe, warum ich seit vielen Jahren auf Qlogic setze.