RAID-Controller, Backplane und Chassis unter OpenZFS
Über verbotene Früchte und die richtige Hardware-Auswahl in ZFS-Systemen.
RAID-Controller und HBA unter OpenZFS richtig eingesetzt
In einem früheren Artikel hatten wir ausgeführt, dass OpenZFS zugleich ein Dateisystem als auch ein Disk/RAID-Manager darstellt. Das wirft indes die Frage auf, ob wir RAID-Controller mit unseren OpenZFS-Builds verwenden können oder nicht.
Können wir RAID-Controller in OpenZFS/TrueNAS-Systemen verwenden?
Die kurze Antwort lautet: Ja. Aber die genauere Frage wäre: Brauchen Sie wirklich einen RAID-Controller für Ihr System oder würde ein viel billigerer und weniger komplexer HBA-Adapter ausreichen?
Es gibt einen weit verbreiteten Mythos in der OpenZFS-Gemeinschaft, dass RAID-Controller als verbotene Früchte gelten, die nicht in OpenZFS-Builds implementiert werden sollten. Das könnte von der Tatsache herrühren, dass ZFS seine RAIDZ-Konfigurationen selbst aufbaut und organisiert – ohne notwendigerweise zusätzliche Hardware-Komponenten einsetzen zu müssen. Es könnte auch daran liegen, dass FreeBSD einige (eigentlich die meisten) der verfügbaren RAID-Controller nicht unterstützt. Schließlich war FreeBSD schon immer eher konservativ, wenn es um die Einführung neuer Technologien ging. Darüber hinaus ist die Verfügbarkeit von Treibern für FreeBSD wesentlich geringer als die von Linux.
Berücksichtigt man die Fähigkeit von OpenZFS, ARC, L2ARC und SSD-basierte SLOG-Caches zu nutzen, wird der Bedarf an einem RAID-Controller noch geringer.
Was sind die potenziellen Vorteile von RAID-Controllern?
Im Allgemeinen können RAID-Controller die Leistung eines Servers und die nutzbare Kapazität verbessern, indem sie:
- die CPU entlasten
Wegen der RAID-Berechnungen durch die zusätzliche Karte stehen der System-CPU mehr Zyklen für andere Aufgaben zur Verfügung, z. B. für die Datenverschlüsselung und -deduplizierung.
- Lese- und Schreibvorgänge zwischenspeichern
Dies kann die Leistung von HDD-basierten Servern verbessern.
- SAS/JBOD-Expansion ermöglichen
Unterstützung einer größeren Anzahl von Festplatten und/oder externen JBODs.
Was ist bei der Verwendung eines RAID-Controllers mit OpenZFS zu vermeiden?
Nach meiner Erfahrung kann man einen RAID-Controller in einem OpenZFS-Build unter den folgenden Bedingungen verwenden:
- Die RAID-Karte sollte eine sein, die von FreeBSD/TrueNAS unterstützt wird.
- Die RAID-Karte muss Standard-RAID-Level unterstützen und darf keine ungewöhnlichen proprietären RAID- oder Partitionierungsverfahren verwenden.
- Sollte die RAID-Karte ausfallen, müssen Sie in der Lage sein, sie durch eine verfügbare Karte zu ersetzen. Alternativ würde es auch ausreichen, dass sich die Festplatte direkt an Ihr Mainboard/Backplane anschließen lässt. Es muss lediglich sichergestellt sein, dass das System weiterarbeiten kann.
- Verwenden Sie keinen Controller mit Cache-Funktion, es sei denn, der Cache ist batteriegepuffert.
- Wenn der RAID-Controller eine On-Chip-Verschlüsselung bietet, aktivieren Sie diese Funktion NICHT.
- Vermeiden Sie eine Überhitzung der CPU des Controllers.
CPU-Offloading
CPU-Offloading ist eine Funktion, die für RAID-Controller, Netzwerkadapter, Verschlüsselungsmodule usw. verfügbar ist. Dabei handelt es sich im Grunde um eine Form des Computation Offloading – manchmal auch Hardwarebeschleunigung genannt -, bei der der RAID-Chip die Rechenlast des Zusammenfügens von Dateien aus den auf verschiedenen Festplatten gespeicherten Datenfragmenten übernimmt und umgekehrt. Wenn Sie also in Ihrem Build keine CPU-intensiven Funktionen wie Verschlüsselung oder Deduplizierung aktivieren, kann ein dedizierter RAID-Controller mit CPU-Offloading in dieser Hinsicht vielleicht nicht viel ausrichten.
Wenn Sie Ihre Festplatten an einen RAID-Controller anschließen, müssen Sie sie löschen und „initialisieren“, um einen RAID-Verbund aus diesen Festplatten zu erstellen. Während dieses Prozesses fügt der Controller spezifische Identifizierungsdaten zu einem versteckten Teil jeder Festplatte hinzu, um sie als Mitglied des RAID zu kennzeichnen. Einige RAID-Controller verwenden ungewöhnliche, proprietäre Techniken zur Kennzeichnung dieser Festplatten. Deswegen ist es fast unmöglich, diese Karte durch eine Variante eines anderen Herstellers zu ersetzen. Manchmal gilt das sogar für Karten desselben Herstellers.
Ich habe zum Beispiel herausgefunden, dass LSI SAS 9341-4i und SAS 9361-4i Karten nicht austauschbar sind. Wenn Sie die Festplatten mit dem Broadcom/LSI SAS 9341-4i initialisieren, können Sie sie nicht auf das 9361-Modell übertragen, ohne sie neu zu formatieren.
Vergewissern Sie sich also, dass jede RAID-Karte, für die Sie sich entscheiden, leicht durch eine andere ersetzt werden kann.
Der einfachste Test besteht darin, die Karte zu entfernen und die Festplatten an einen HBA oder direkt an die Hauptplatine anzuschließen. Wenn das OpenZFS/TrueNAS-System die Laufwerke erkennt, sollten Sie diese Karte problemlos verwenden können.
Durch das Caching von Lese- und Schreibvorgängen kann ein guter RAID-Controller die Leistung verbessern, da RAID-Controller ECC-RAM zum Caching von Disk-IO verwenden. Wie bereits erwähnt, werden Ihre Daten durch den Verlust des Lesecaches nicht beschädigt, da sich die ursprünglichen Daten weiterhin im Pool befinden. Was wirklich Probleme verursachen kann, ist eine Stromunterbrechung oder ein Hardwarefehler der Karte während eines Schreibvorgangs. Um sich davor zu schützen, wählen Sie einen batteriegepufferten Controller. Genau wie der PFP-Mechanismus in einer SSD-Festplatte hat die Batterie die Aufgabe, die Cache-Schaltung (RAM-Chips) der Karte lange genug aktiv zu halten, damit die Schreibvorgänge stattfinden können.
Wenn Ihr RAID-Controller eine On-Chip-Verschlüsselung der RAID-Mitgliedsfestplatten bietet, aktivieren Sie diese Funktion nicht. Wenn Sie sensible Daten speichern oder einfach nur von der zusätzlichen Sicherheit profitieren möchten, die Ihnen die Datenverschlüsselung bieten kann, sollten Sie die integrierte Verschlüsselungsfunktion in TrueNAS Core nutzen. Es ist wichtig, dies zu beachten:
- Die Poolverschlüsselung kann nur bei der Poolerstellung aktiviert werden.
- Sie müssen Ihre Verschlüsselungs-Keys sichern.
Niemand kann Ihnen helfen, Ihre Daten wiederherzustellen, wenn Sie sie verlieren!
Es kann vorkommen, dass das von Ihnen gewählte Gehäuse physisch eine größere Anzahl von Festplatten aufnehmen kann, als von Ihrem Mainboard und/oder Ihrer Backplane unterstützt wird. Außerdem verfügen einige RAID-Controller über externe SAS-Anschlüsse, über die ein JBOD-Gehäuse an Ihren Server angeschlossen werden kann, so dass Sie Ihre nutzbare Speicherkapazität deutlich erhöhen können, ohne zusätzliche komplette Server kaufen zu müssen.
Die Belüftung berücksichtigen!
Zu guter Letzt: Vermeiden Sie eine Überhitzung. RAID- (und HBA-) Controller haben ihre eigenen CPUs und die meisten von ihnen werden nur mit einem einfachen Kühlkörper geliefert. OpenZFS erzeugt eine Menge IO, die die CPU Ihrer RAID/HBA-Karte die meiste Zeit an die Grenzen ihrer Leistungsfähigkeit treibt – insbesondere während des Pool Scrubbing und des Resilvering von Festplatten. Dies kann zu unnötigen Ausfallzeiten führen – zusätzlich zu den Kosten für eine Ersatzkarte. Ich habe den Untergang einiger teurer Karten miterlebt, die in schlecht belüfteten Gehäusen eingesetzt wurden.
Verwenden Sie stets ein gut belüftetes Chassis. Wenn Sie freie PCI-Steckplätze auf Ihrem Mainboard haben, versuchen Sie, Ihre Karten in einem gewissen Abstand voneinander zu platzieren, um eine bessere Luftzirkulation zu gewährleisten und Wärmefallen zwischen den Karten zu vermeiden. Manchmal hilft es, ein paar Metallabdeckungen von PCI-Steckplätzen zu entfernen. Wenn Ihre Karte nur einen Kühlkörper hat, versuchen Sie, die Karte direkt in den Luftstrom eines der Gehäuselüfter zu stellen. Noch besser wäre es, wenn Sie einen eigenen Lüfter an die Karte anschließen.
Sollte ich einen RAID-Controller mit OpenZFS verwenden?
Nein. Die Tatsache, dass Sie ein solches Gerät verwenden können, bedeutet nicht, dass Sie es auch verwenden sollten. Wenn Sie sich nicht sicher sind, ob Sie eine RAID-Karte verwenden sollten oder nicht, ist es wahrscheinlich, dass Sie keine brauchen.
In den meisten Fällen sind Sie mit einer guten SAS-Backplane oder einem passiven und zuverlässigen HBA besser dran. Wenn Sie bereits eine RAID-Karte besitzen, können Sie damit immerhin die Anzahl der Festplatten erhöhen, die Sie an Ihr System anschließen. Auch der JBOD- oder Pass-Through-Modus wäre denkbar, sowie mehrere RAID0 mit nur jeweils einer Festplatte zu erstellen. Vorgesetzt natürlich, dass Sie die oben genannten Tipps befolgt haben. Verwenden Sie keine anderen On-Chip-RAID-Funktionen.
Der Grund dafür ist, dass Sie nicht verschiedene RAIDs übereinander stapeln sollten, da schließlich keiner von ihnen tatsächlich realisiert, was der andere tut. Wenn Sie sowohl das On-Chip-RAID als auch das Software-RAIDZ von OpenZFS verwenden, wird es für Sie nur komplizierter, insbesondere bei der Fehlersuche.
Außerdem neigen einige RAID-Karten dazu, S.M.A.R.T.-Meldungen zu unterdrücken. TrueNAS seinerseits verlässt sich auf diese Status-Meldungen, um die Festplatten zu prüfen und Ihnen frühzeitig Systemwarnungen zu senden. So informiert Sie das System schließlich über Festplattenprobleme und mögliche Festplattenausfälle.
Was ist der IT-Modus?
IT-Mode ist eine Abkürzung für Initiator Target Mode. Wenn sich Ihre RAID/HBA-Karte im IT-Modus befindet, gibt sie einzelne Laufwerke direkt an das Hostsystem weiter. OpenZFS erstellt und verwaltet dann seine eigenen RAIDZ-Arrays – ohne jegliche Beeinträchtigung durch die RAID-Firmware auf der Karte.
Wenn Ihre Karte nicht mit einer IT-Mode-Firmware geflasht ist, besteht eine gute Chance, dass Sie eine IT-Mode-Firmware für sie finden können – insbesondere wenn es sich um eine LSI-Karte handelt. Das Überspielen von LSI-Firmware ist ein relativ einfaches Verfahren. Suchen Sie in den TrueNAS-Foren nach Hinweisen zu Ihrer speziellen Karte.
Welcher RAID/HBA empfiehlt sich für TrueNAS?
Broadcom/LSI-Adapter sind die erste Wahl für OpenZFS. Sie haben sich als robust erwiesen und bieten einen hervorragenden Treiber- und Firmware-Support.
Abhängig von der Art der Festplatten, die Sie in Ihrem Server verwenden werden, werden Sie wahrscheinlich zwischen zwei Arten von Schnittstellen wählen:
SFF-8087-Anschluss | Ältere Schnittstelle | unterstützt SAS1/SAS2 (Geschwindigkeiten von 3,0 und 6,0 Gbit/s)
SFF-8643-Anschluss | Neuere Schnittstelle | Unterstützt SAS3 (12 Gbit/s)
Einige moderne LSI-Karten mit SFF-8643-Port unterstützen mitunter auch NVMe/U.2-SSDs, was sie insbesondere in Builds, in denen Sie L2ARC- und SLOG-Geräte verwenden möchten, sehr nützlich macht.
Beispielmodelle:
PCIe-2.0-Karten: LSI SAS 9211-8i/LSI 9220-8i
PCIe-3.0-Karten: LSI SAS 9207-8i
12 Gbit SAS: LSI 9305-8i/16i/24i SAS
Vermeiden Sie ältere Adapter wie den LSI 1068. Diese Adapter unterstützen nämlich keine Festplatten mit mehr als 2 TB.
Was ist ein JBOD-Modus/-Gehäuse?
JBOD ist eine Abkürzung für den Begriff Just a Bunch of Disks (nur ein Haufen Laufwerke) und wird üblicherweise verwendet, wenn Sie eine Reihe von Festplatten mit unterschiedlichen Spezifikationen und Kapazitäten zu einem RAID-Set zusammenfassen.
Wenn Ihr Controller auf JBOD-Modus eingestellt ist, verhält er sich wie ein HBA und übergibt die Laufwerke direkt an OpenZFS.
Ein JBOD-Gehäuse (auch SAS-Expander genannt) hingegen ist ein Festplattengehäuse, das kein PC-Mainboard, keine CPU und keinen RAM enthält. Er verfügt nur über eine Backplane und externe Anschlüsse, mit denen er an einen Server angeschlossen werden kann. Das bedeutet, dass JBODs dazu beitragen können, die nutzbare Kapazität zu verhältnismäßig geringen Kosten zu erhöhen, da Sie kein Mainboard, keine CPU und keinen Arbeitsspeicher dafür kaufen müssen.
Der JBOD-Aufbau
JBODs sind in verschiedenen Größen erhältlich und können bis zu zehn Festplatten pro Gehäuse unterstützen. Sie sind daher sehr nützlich, wenn Sie Pools mit geringem IO-Aufkommen betreiben wollen, z. B. für Backups und Archive. Sie sind viel weniger nützlich, wenn Sie Ihre Speicherkapazität erhöhen und gleichzeitig einen hohen IO-Wert beibehalten wollen. Es ist besser, einen neuen Server zu kaufen oder sogar die Hardware Ihres derzeitigen Servers aufzurüsten.
Da ein JBOD über kein Mainboard, keine CPU und keinen RAM verfügt, können Sie TrueNAS nicht darauf installieren und/oder booten. Überdies kann er nicht als Failover-Klon dienen. Sie müssen ihn immer an einen OpenZFS/TrueNAS-Server anschließen, um ihn nutzen zu können.
Das Mischen von alten/ausgelagerten Festplatten in einem JBOD ist nicht immer sinnvoll. Denken Sie daran, dass innerhalb eines VDEV die Kapazität und die Geschwindigkeit dieses VDEVs an sein kleinstes und langsamstes Mitglied gebunden ist.
- Wenn Sie also 3x 8-TB-Platten + 1x 2-TB-Platte im selben VDEV gruppieren, verwenden Sie praktisch 4x 2-TB-Platten und haben insgesamt 18 TB Speicherplatz vergeudet.
- Drei 2-TB-SAS-Festplatten + eine SATA 2 TB im selben VDEV gruppiert, hat zur Folge, dass Sie damit die SAS-Festplatten auf SATA-Leistung herunterstufen.
Es ist somit besser, Ihre Laufwerke zu vereinheitlichen!
Warnung
Bei der Verwendung von externen JBODs ist es ratsam, unabhängige Pools auf diesen zu erstellen, anstatt die Pools sowohl auf dem Server als auch auf dem JBOD zu belassen. Denn wenn sich Ihr JBOD ausschaltet oder die Verbindung unterbricht und Ihr Server eingeschaltet bleibt, besteht ein hohes Risiko, dass die Daten in Ihrem Pool beschädigt werden.
Wenn Sie JBODs verwenden, stellen Sie sicher, dass sie über redundante Netzteile verfügen. Zudem sollte sowohl Ihr Server als auch Ihr JBOD in einem Rack stehen, das die Komponenten mit ausreichend Strom versorgen kann und über eine USV geschützt ist.
Vorderseite, Rückseite und das Innere eines Supermicro 4-Bays JBOD. Beachten Sie den winzigen SAS-Controller im Inneren und das Fehlen einer Hauptplatine.
Was ist der Unterschied zwischen SAS2 und SAS3?
SAS2 unterstützt einen Durchsatz von bis zu 6 Gbit/s, während SAS 3 bis zu 12 Gbit/s ermöglicht.
SAS3-Gehäuse sind schneller und eignen sich besser für Anwendungen mit höheren IOPS. Wenn Sie SSDs verwenden möchten, sollten Sie sich für eine SAS3-Konfiguration entscheiden.
Was sind Backplanes?
Eine Backplane ist die Platine in Ihrem Servergehäuse, die sich hinter den Laufwerksschächten befindet und als Verbindung zwischen diesen Schächten und dem Mainboard Ihres Servers oder Ihrem HBA dient.
Es gibt verschiedene Arten von Backplanes. Bei einigen Backplanes handelt es sich um eine Dummy-1-to-1-Passthrough-Verbindungsplatine. Für diesen Typ ist ein Kabel pro Platte erforderlich. Das bedeutet, dass Sie 24 SAS/SATA-Kabel von dieser Backplane zu Ihrem Mainboard oder HBA verlegen müssen, wenn Sie 24 Laufwerke an eine dieser Platinen anschließen möchten. Dies kann zu einem Alptraum für das Kabelmanagement innerhalb von kompakten Gehäusen werden – es sei denn, Sie verwenden neuere und dünnere Kabel.
Andere Backplanes haben einen Expander-Chip eingebaut. Die älteren Supermicro 846TQ- und die neueren 825TQ-Backplanes zum Beispiel sind Passthrough-SATA-Karten ohne Expander-Chip.
Was sind SAS-Expander-Backplanes?
Eine SAS-Expander-Backplane ist eine intelligentere Backplane-Platine mit einer Reihe von SAS-Anschlüssen (z. B. SFF-8640), mit der Sie die Anzahl der Festplatten, die Sie an Ihren HBA/RAID-Controller anschließen können, erweitern können. Er funktioniert ähnlich wie ein Netzwerk-Switch, indem er Ihnen mehr SAS-Ports zur Verfügung stellt, obwohl er SAS als Kommunikationsprotokoll verwendet.
Mit einem SAS-Expander können Sie mehr Festplatten an einen einzelnen HBA anschließen, als normalerweise über eine direkte Verkabelung an diesen HBA angeschlossen werden. Sie sparen Geld, weil Sie nicht mehrere HBAs oder Controller kaufen müssen, um alle Ihre Festplatten an ein und dieselbe Box anzuschließen.
Ein Nachteil von SAS-Expandern ist, dass sie über eigene On-Board-E/A-Chips verfügen, die bei hoher Belastung eine geringe Latenz bei der Festplatten-E/A verursachen und die Leistung Ihres Servers leicht beeinträchtigen können. Dies ist erwähnenswert, auch wenn es sich nicht wesentlich auf die Leistung des Servers auswirken wird.
Einige SAS-Expander, wie z. B. der SAS2-846EL2 von Supermicro, verfügen über zwei Expander-Chips, die eine Dual-Port-Konnektivität ermöglichen und somit einen gewissen Schutz gegen den Ausfall eines einzelnen Chips/eines Ports bieten.
Sie sollten reine SATA-Expander vermeiden, es sei denn, Sie wissen genau, dass Sie niemals ein Leistungsupgrade benötigen werden. Sie bieten keine Möglichkeit, in Zukunft auf SAS-Laufwerke aufzurüsten, was den Kauf eines neuen Gehäuses erforderlich macht. Geben Sie etwas mehr aus und profitieren Sie von besserer Leistung (zur Erinnerung: SAS bietet 12 Gbit/s) und zukünftigen Einsparungen.
Nicht alle Backplanes haben Expander eingebaut. Für preiswerte Builds sollten ältere Backplanes wie die 846TQ ausreichen. Es handelt sich um Dummy-Passthrough-Karten, die eine Menge Kabel benötigen, um die Laufwerke mit den HBAs zu verbinden.
Vermeiden Sie auch die älteren 846EL2 SAS-Expander, da diese keine Festplatten mit mehr als 2 TB unterstützen.