DataCore publiziert regelmäßig unter FAQ 1592 die Qualified Hardware Components. Darin werden Hardware Komponenten wie LAN Adapter, SAN-Switches, IP-Switches oder FibreChannel Host Bus Adapter (HBA) bekannter Hersteller gelistet und deren Kompatibilität mit den Unterschiedlichen DataCore Produkten. So zum Beispiel welcher Patchlevel seitens SANSymphony mindestens benötigt wird, oder welche Firmware das IO-Device haben soll.
Ich muss zugeben, ich bin keineswegs überrascht, dass in der aktuellen Oktober-Ausgabe der FAQ 1592 sämtliche 16 GBit FibreChannel HBA der Firma Emulex (Avago Technologies) als “not supported” deklariert wurden. Dies betrifft Emulex Branded HBA, aber auch OEM Produkte von Fujitsu und HP.
Emulex LPe16000-M6, LPe16002-M6, LPe16004-M6, LPe16004-M6-EI, LPe16000B-M6, LPe16002B-M6 and LPe16202-x
Fujitsu LPe16000B-M6-F and LPe16002B-M6-F
HP All SN1100E models
All of the above HBAs are not supported. Customers that are already using the DataCore Emulex Fibre Channel driver with these HBAs in their DataCore Servers will continue to be supported.
Das ist immerhin die gute Nachricht: Wer vor Erscheinen dieses Dokuments einen DataCore Cluster mit Emulex HBA der 1600x Serie realisiert hat, erhält weiterhin Support. Das ist auch absolut notwendig! Denn das Verhalten, das ein DataCore Cluster mit ebendiesen HBA an den Tag legt, ist geradezu beängstigend und steht im Kontrast zur bisherigen “rock solid” Erfahrung mit DataCore Clustern.
Write IO müssen wiederholt werden, Mirror HBA gehen offline, Log-Recoveries ohne ersichtlichen Grund, BSOD von DataCore Hosts bis hin zum Double Failure.
Schnelle FC HBA sind besonders bei Synchronspiegeln sehr wichtig. Sie ermöglichen einen schnellen Wiederaufbau des Spiegels bei einem Full Recovery. Somit fiel die Wahl der Fibrechannel HBA beim Design eines neuen DataCore Clusters auf die Serie 1600x von Emulex und zum damaligen Zeitpunkt gab es keine Einschränkung in Bezug auf den Emulex HBA.
Probleme von Anfang an
Schwierigkeiten zeichneten sich bereits nach Inbetriebnahme und in der darauf folgenden Testphase ab. Immer wieder kam es zu Störungen auf den Mirror Ports. Diese waren zunächst direkt über diskrete Fasern Point-to-Point mit dem Mirror auf dem zweiten Host verbunden. Der Support riet uns, die Mirror Pfade nicht direkt, sondern über die Fabric zu führen. Daraufhin veränderten sich die Fehler, aber das Problem war nicht gelöst.
Richtig seltsam wurde es jedoch, als der Cluster von SANSymphony10 PSP4 auf PSP5 aktualisiert werden sollte. Dazu war ein Firmware Downgrade des Emulex HBA notwendig.
Danach häuften sich die Störungen bis hin zu einem Double Failure, bei dem ein Fehler im HBA des einen DataCore Hosts zum Bluescreen auf dem noch aktiven Partner führte. Seit einem Update auf PSP5 U2 kam dies glücklicherweise nicht wieder vor, aber die Ausfälle der Spiegelpfade beschäftigen den Support nun seit fast drei Monaten. In der Zwischenzeit erhielten wir vom Support mehrere inoffizielle Emulex Treiber, die dabei helfen sollten, das Problem einzugrenzen. Die Erkenntnisse hieraus trugen sicher maßgeblich zur aktuellen Streichung aller Emulex 16 GBit HBA bei.
Natürlich wurde uns auch ein Hardwaredefekt nahegelegt. Ein defekter HBA ist gut möglich, jedoch sind sechs defekte HBA zur gleichen Zeit extrem wenig wahrscheinlich. Durch Wechsel der Portrollen konnten wir zeigen, dass das Problem mit den Ports wandert, also nicht nur an einem HBA auftritt. Auch die Fasern als Störungsquelle konnten ausgeschlossen werden, indem beide Hosts am gleichen Ort aufgebaut und mit neuen kurzen Fasern direkt verbunden wurden. Die Fehler kamen immer wieder und keine Konfiguration lief länger als fünf Tage störungsfrei.
Besonderes Treibermodell
Die Schwierigkeit liegt im Aufbau des DataCore HBA Treibers. Dieser ersetzt den Original Emulex Treiber, denn er muss zwei Rollen übernehmen können. Als Initiator gegenüber angeschlossenen Storage Devices, und als Target gegenüber angeschlossenen Servern. Bei Emulex HBA hat der DataCore Treiber nur begrenzten Zugriff auf die Hardware. Den Rest erledigt die original Firmware. Anders verhält es sich beispielsweise bei Qlogic HBA. Dort werden Treiber und Firmware durch DataCore bereitgestellt. Das eröffnet mehr Möglichkeiten bei der Entwicklung und beim Troubleshooting.
Ausblick
Es ist zunächt einmal verständlich, daß der DataCore Support nun die Reissleine bezüglich der Emulex Karten gezogen hat. Von großem Interesse ist aber die Lösung des Problems für bestehende Cluster mit Emulex HBA. Hier bleibt zu hoffen, daß es der Entwicklungsabteilung in naher Zukunft gelingt, das Problem zu isolieren und einen stabilen Treiber für produktive Systeme zu liefern. Ein schaler Beigeschmack bleibt und beim Design des nächsten Clusters werden definitiv Qlogic HBA zum Einsatz kommen.