Diese Anleitung ist stark angelehnt an die englische Anleitung von STH und speziell für Leute gedacht, die der englischen Sprache nicht so mächtig sind oder einfach der Anleitung auf Deutsch folgen wollen. Es geht hier um das Flashen eines LSI SAS 3008 HBA, wie z.B. dem IBM M1215 in den IT Mode, sodass die RAID-Funktionen des HBA nicht mehr zur Verfügung stehen und die angeschlossenen Festplatten / SSDs direkt aus dem Betriebssystem angesprochen werden können. Das ist vor allem für Dateisysteme wie ZFS erforderlich.
Der LSI SAS3008 HBA ist wahrscheinlich der populärste 12 Gbps SAS Controller, den es momentan auf dem Markt gibt. Vor allem, wenn man SSDs einsetzt, bietet der Controller eine deutliche Performancesteigerung gegenüber den älteren SAS2008 und SAS2308 Modellen. Die meisten Controller sind „Raid Enabled“ (IR). Für Anwendungsfälle wie ZFS, MD Raid oder Ceph ist es jedoch wünschenswert, dass die Festplatten direkt ans Betriebssysten angehängt werden und nicht erst über den Raid-Controller gehen.
Für diese Anleitung verwende ich einen IBM / Lenovo M1215 Adapter. Diese Adapter nutzen den SAS 3008 Chip, bei dem RAID aktiviert ist. Rein technisch gleichen die Adapter etwa dem LSI SAS 9300-8i, kosten aber nur einen Bruchteil. Ein IBM M1215 Controller kostet in etwa 100€, ein LSA SAS 9300-8i kostet um die 300€. Insbesondere dann, wenn man mehrere Controller im Server verbaut, ist die Ersparnis groß, wenn man sich die 5 Minuten (aus dem Original Artikel, tatsächlich braucht man beim ersten Mal ca. 15 Minuten) nimmt, den Controller selbst zu flashen.
Eine kurze Warnung: Das Flashen von Firmware ist ein riskanter Prozess. Wenn die Firmware falsch geflashed wird oder es beim Prozess zu Fehlern kommt (z.B. Stromausfall, Neustart des Rechners oder einfach nur Software-Fehler), kann der Controller (ge-)bricked (also in einen wertlosen Briefbeschwerer umgewandelt) werden. Wir sind nicht verantwortlich, wenn es deinem Controller passiert. Wenn du mit der Anleitung fortfährst, akzeptierst du das Risiko deinen Controller zu beschädigen.
Schritt 1: Firmware und Flasher herunterladen
Zum Erscheinungszeitpunkt dieses Artikels gibt es im Download-Portal von Broadcom / Avago / LSI bereits die Firmware-Version P16. Im Beitrag von STH wird jedoch die Version P13 verwendet. Ich habe es nicht ausprobiert, den Controller mit P16 zu flashen. Da – siehe Warnung – man beim Flashen die Karte auch zerstören kann, versuche ich es garnicht erst mit der neusten Version. STH sagt jedoch auch, dass manche User sogar die Version P10 bevorzugen. Der Download-Link hat sich in letzter Zeit sehr oft geändert. Sollte der Link nicht aktuell sein, wenn du die Seite aufrufst, suche einfach nach „SAS 9300-8i downloads“. Momentan findest du die Download-Seite hier.
Die P13 oder P10 Firmware gibt es im Archiv:
Von der Seite werden folgende Archive benötigt:
- SAS3_UEFI_BSD_P13
- 9300_8i_Package_P13_IR_IT_FW_BIOS_for_MSDOS_Windows
Aus oben genannten Archiven braucht ihr dann vier Dateien, um die Firmware zu flashen:
- sas3flsh.efi oder sas3flash.efi
- SAS9300_8i_IT.bin
- mptsas3.rom
- mpt3x64.rom
Nimm diese vier Dateien und kopiere die auf einen USB-Stick. Zum Flashen werden wir die UEFI-Shell verwenden, deshalb muss der USB-Stick nicht bootable sein.
Bitte achte, dass du das richtige Kommando verwendest, je nach dem ob die Datei bei dir sas3flsh.efi oder sas3flash.efi heißt. Du solltest die Autocomplete-Funktion der UEFI-Shell verwenden können, indem du „sas3“ eintippst und danach die TAB-Taste drückst.
Schritt 2: Den Controller vorbereiten
Zunächst einmal müssen wir den Jumber J6 setzen, damit die Firmware des Controllers resettet wird. Das nachfolgende Bild zeigt dir, wo sich die Stelle befindet.
Außerdem solltest du von der Rückseite des Controllers dir mit dem Smartphone ein Foto von der SAS-Adresse machen. Diese Adresse brauchst du am Ende des Flash-Prozesses.
Der Controller ist nun vorbereitet und kann auf das Motherboard gesetzt werden. Aber bitte sorge für eine ausreichende Kühlung. Der Controller ist so designed, dass er in einem Server-Gehäuse von Vorne nach Hinten mit einem Luftstrom versorgt wird. Jetzt können wir die IT mode Firmware flashen.
Schritt 3: Den Server Booten und den Controller resetten
Wir booten den Server bzw. den Rechner mit dem Controller in die EFI Shell. Hierfür ist es nötig einen USB-Stick zu erstellen, mit dem man in die EFI Shell kommt. Ich habe dazu ein Tutorial erstellt: EFI Shell – Kommandos – wie kommt man rein?
Nach dem Booten des Rechners in die EFI Shell wechselt man zunächst zum USB-Stick. Bei mir ist der USB-Stick „fs0“, bei dir kann es auch „fs1“ sein. Du kannst mit Laufwerk + Doppelpunkt wechseln, also in meinem Fall:
fs0:
Nun schauen wir uns an, ob der Controller überhaupt erkannt wurde, dazu geben wir ein:
sas3flash.efi -list
Achtung, PRO-Tipp: Du musst Dateinamen nicht voll ausschreiben. Du kannst die Autocomplete Funktion nutzen, in dem du die TAB-Taste drückst.
Als Ergebnis sollte dir die Information zum Controller ausgegeben werden.
Dann resetten wir den Adapter mit folgendem Befehl:
sas3flash.efi -f SAS9300_8i_IT.bin -noreset
Als Ausgabe solltest du dann etwa folgende erhalten:
Der ganze Prozess dauert in etwa 2-3 Minuten. Schalte danach den Rechner bitte aus, entferne den Controller, entferne den Jumper J6, den du vorher gesetzt hast. Dann baue den Controller wieder ein und starte den Rechner wieder in die EFI Shell.
Schritt 4: IT mode Firmware flashen
Jetzt kommen wir zum eigentlichen Flashen der IT Mode Firmware. Mit dem ersten Kommando löschen wir die Flash-Region auf dem Controller:
sas3flash.efi -o -e 7
Die Ausgabe sollte etwa so aussehen:
Nun flashen wir die IT mode Firmware auf den Controller. Wir flashen außerdem noch ein BIOS, damit von Festplatten, die am Controller angeschlossen sind, gebootet werden kann. Dazu gibt man folgenden Befehl ein:
sas3flash.efi -f SAS9300_8i_IT.bin -b mptsas3.rom -b mpt3x64.rom
Denke an die Autovervollständigung mit TAB, die erleichtert das Leben ungemein.
Danach sollte die Ausgabe etwa so aussehen:
Wie du siehst, wurde die Firmware nun erfolgreich geflashed. Allerdings wurde die SAS Adresse nicht richtig gesetzt. Diese ist nun mit nullen gefüllt. Deshalb müssen wir nun die richtige SAS-Adresse in den Speicher des Controllers schreiben. Dies machen wir mit:
sas3flash.efi -o -sasadd 50060XXXXXXXXXXXX
Das Flash-Tool bestätigt, dass alles richtig gesetzt wurde:
Nun rufen wir uns noch einmal alle Details zum Controller auf und schauen, dass alles richtig ist:
sas3flash.efi -list
Nun ist der Controller fertig. Jetzt kannst du den Rechner Neustarten und den Controller im IT mode nutzen.
Letzte Worte
Je nach Distribution kann der Controller funktionieren, muss aber nicht. Sollte es Probleme geben, probiere bitte die P10 Firmware aus. Auf diesem Weg erhält du auf jeden Fall einen Controller, den du sehr gut mit ZFS nutzen kannst. Durch die IT Firmware wird die Raid-Funktionalität deaktiviert und ZFS kann direkt auf die Festplatten zugreifen. Damit kann das gesamte ZFS Featureset genutzt werden und der Controller steht dem Dateisystem nicht im Wege.
Der M1215 Controller ist aktuell der beste Controller, um viele Festplatten an einem System zu nutzen. Am Controller können nicht nur SATA Platten, sondern SAS oder SSDs angeschlossen werden.