Hallo Habr! In diesem Artikel werden wir darüber sprechen, ob es sich lohnt, RAID-Arrays auf Basis von SATA SSD- und NVMe SSD-Lösungen zu organisieren und ob daraus erhebliche Vorteile resultieren? Wir haben uns entschieden, diese Frage zu klären, indem wir die Arten und Typen von Controllern betrachten, die dies ermöglichen, sowie die Anwendungsbereiche solcher Konfigurationen.

Jeder von uns hat irgendwann in seinem Leben Begriffe wie “RAID”, “RAID-Array”, “RAID-Controller” gehört, hat diesem Thema jedoch wahrscheinlich nicht viel Bedeutung beigemessen, denn für den durchschnittlichen PC-Benutzer ist das wahrscheinlich nicht von Interesse. Dennoch wünschen sich alle möglichst hohe Geschwindigkeiten von internen Speichermedien und eine zuverlässige Funktionsweise. Denn egal wie leistungsstark die Hardware eines Computers ist, die Geschwindigkeit des Speichermediums wird zum Engpass, wenn es um die Gesamtleistung von PC und Server geht.
Das war jedoch genau bis zu dem Zeitpunkt der Fall, als moderne NVMe SSDs mit vergleichbarer Kapazität von 1 TB und mehr die traditionellen HDDs ablösten. Bis vor kurzem fanden sich in PCs häufig Kombinationen aus SATA SSD und ein paar großen HDDs, doch heute wird dies zunehmend durch eine andere Lösung ersetzt – NVMe SSD und ein paar große SATA SSDs. Wenn wir über Unternehmensserver und „Clouds“ sprechen, sind viele bereits problemlos auf SATA SSDs umgestiegen, einfach weil sie schneller sind als traditionelle „Festplatten“ und mehr Ein-/Ausgabe-Operationen gleichzeitig verarbeiten können.

Die Fehlertoleranz des Systems bleibt jedoch weiterhin auf einem relativ niedrigen Niveau: Wir können nicht wie in der „Battle of Psychics“ mit genauer Vorhersage sogar bis zu einer Woche vorhersagen, wann dieses oder jenes Solid-State-Laufwerk den Geist aufgeben wird. Während HDDs allmählich „sterben“ und es ermöglichen, Symptome zu erkennen und Maßnahmen zu ergreifen, „sterben“ SSDs sofort und ohne Vorwarnung. Und jetzt ist es an der Zeit, herauszufinden, warum all das überhaupt notwendig ist? Lohnt es sich, RAID-Arrays auf Basis von SATA SSD- und NVMe SSD-Lösungen zu organisieren, und wird daraus ein erheblicher Nutzen resultieren?
Warum benötigt man ein RAID-Array?
Das Wort „Array“ impliziert bereits, dass zur Erstellung mehrere Speichergeräte (HDDs und SSDs) verwendet werden, die über einen RAID-Controller verbunden sind und von dem Betriebssystem als einheitlicher Datenspeicher erkannt werden. Das globale Ziel, das RAID-Arrays ermöglichen, ist die Minimierung der Zugriffszeit auf Daten, die Erhöhung der Lese-/Schreibgeschwindigkeit und die Zuverlässigkeit, die durch die Möglichkeit einer schnellen Wiederherstellung im Falle eines Ausfalls erreicht wird. Übrigens ist es für private Backups nicht unbedingt erforderlich, RAID zu verwenden. Wenn Sie jedoch einen eigenen Heimserver haben, auf den ständig 24/7 zugegriffen werden muss, ist das eine andere Sache.
Es gibt mehr als ein Dutzend RAID-Array-Stufen, von denen jede sich in der Anzahl der verwendeten Speichergeräte unterscheidet und ihre eigenen Vor- und Nachteile hat: Zum Beispiel ermöglicht RAID 0 eine hohe Leistung ohne Fehlertoleranz, RAID 1 richtet eine automatische Daten-Spiegelung ohne Geschwindigkeitssteigerung ein, während RAID 10 die Möglichkeiten der zuvor genannten kombiniert. RAID 0 und 1 sind die einfachsten (da sie keine Software-Berechnungen erfordern) und folglich die beliebtesten. Letztendlich hängt die Wahl für die eine oder andere RAID-Stufe von den Anforderungen an das Datenträger-Array und den Möglichkeiten des RAID-Controllers ab.
Heim- und Unternehmens-RAID: Wo liegt der Unterschied?
Die Grundlage jedes modernen Unternehmens sind große Datenmengen, die zuverlässig auf den Servern der Unternehmen gespeichert werden müssen. Außerdem, wie bereits erwähnt, muss zu diesen Daten permanenter 24/7-Zugriff sichergestellt werden. Es ist klar, dass neben der Hardware auch die Software eine wichtige Rolle spielt, aber in diesem Fall sprechen wir dennoch von der Hardware, die eine zuverlässige Speicherung und Verarbeitung von Informationen gewährleistet. Keine Software kann ein Unternehmen vor dem Ruin bewahren, wenn die Hardware nicht den Anforderungen entspricht, die an sie gestellt werden.

Für diese Aufgaben bieten alle Hersteller von Hardware sogenannte Unternehmensgeräte an. Bei Kingston handelt es sich um leistungsstarke Solid-State-Lösungen in Form von SATA-Modellen. und , sowie NVMe-Modelle DC1000M U.2 NVMe, DCU1000 U.2 NVMe und DCP-1000 PCI-e, die für den Einsatz in Rechenzentren (RZ) und Supercomputern vorgesehen sind. Arrays aus solchen Speichermedien werden in der Regel in Verbindung mit Hardware-Controllern verwendet.

Für den Verbraucherbereich (d. h. für PCs und NAS-Server zu Hause) sind solche Speichermedien wie NVMe PCIe erhältlich, aber in diesem Fall ist der Kauf eines Hardware-Controllers nicht zwingend erforderlich. Man kann sich mit dem im Mainboard des PCs oder NAS-Servers integrierten Controller begnügen, es sei denn, man plant, selbst einen Heimserver für untypische Aufgaben zu bauen (zum Beispiel, um ein kleines Heimhosting für Freunde einzurichten). Zudem sehen Heim-RAID-Arrays in der Regel nicht die Verwendung von Hunderten oder Tausenden von Laufwerken vor, sondern beschränken sich auf zwei, vier oder acht Geräte (häufig SATA).
Arten und Typen von RAID-Controllern
Es gibt drei Arten von RAID-Controllern, die auf den Prinzipien der Implementierung von RAID-Arrays basieren:
1. Software-Controller, bei denen die Verwaltung des Arrays auf der CPU und DRAM liegt (d. h. die Ausführung des Programmcodes erfolgt auf dem Prozessor).
2. Integrierte, das heißt, in die Mainboards von PCs oder NAS-Servern eingebaute Controller.
3. Hardware-(modulare), die diskrete Erweiterungsplatten für PCI/PCIe-Schnittstellen von Motherboards darstellen.
Was ist das wesentliche Unterscheidungsmerkmal zwischen ihnen? Software-RAID-Controller sind im Hinblick auf Leistung und Fehlertoleranz unterlegen im Vergleich zu integrierten und Hardware-Controllern, erfordern jedoch keine spezielle Hardware für den Betrieb. Es ist jedoch wichtig sicherzustellen, dass der Prozessor des Hosts leistungsfähig genug ist, um die RAID-Software auszuführen, ohne die Leistung der Anwendungen, die ebenfalls auf dem Host laufen, negativ zu beeinflussen. Integrierte Controller haben in der Regel eigenen Cache-Speicher und nutzen eine gewisse Menge an CPU-Ressourcen.
Hardwarelösungen verfügen sowohl über eigenen Cache-Speicher als auch über einen integrierten Prozessor zur Ausführung von Programm-Algorithmen. In der Regel ermöglichen sie die Implementierung aller RAID-Level und unterstützen gleichzeitig mehrere Arten von Speichermedien. Zum Beispiel können die modernen Hardware-Controller von Broadcom gleichzeitig SATA, SAS und NVMe-Geräte anschließen, was es ermöglicht, den Controller beim Upgrade der Server nicht zu wechseln: insbesondere beim Wechsel von SATA SSDs zu NVMe SSDs muss der Controller nicht gewechselt werden.

An dieser Stelle sind wir bei der Typologisierung der Controller angekommen. Wenn es Dreimodi-Controller gibt, sollten es auch noch andere geben? In diesem Fall ist die Antwort auf diese Frage bejahend. Je nach Funktionen und Möglichkeiten können RAID-Controller in mehrere Typen unterteilt werden:
1. Standard-Controller mit RAID-Funktion
In der gesamten Hierarchie ist dies der einfachste Controller, der es ermöglicht, HDDs und SSDs in RAID-Levels "0", "1" oder "0+1" zu kombinieren. Dies wird softwareseitig auf Firmware-Ebene realisiert. Allerdings sind solche Geräte kaum für den Einsatz im Unternehmensbereich zu empfehlen, da ihnen der Cache fehlt und RAID-Levels wie "5", "3" usw. nicht unterstützt werden. Für einen Einstiegshome-Server sind sie jedoch durchaus geeignet.
2. Controller, die in Paaren mit anderen RAID-Controllern arbeiten
Dieser Controller-Typ kann in Paaren mit integrierten Controllern auf Motherboards arbeiten. Dies geschieht nach folgendem Prinzip: Der diskrete RAID-Controller übernimmt die Lösung "logischer" Aufgaben, während der integrierte Controller die Funktion des Datenaustauschs zwischen den Speichermedien übernimmt. Aber es gibt einen Haken: Ein paralleler Betrieb solcher Controller ist nur auf kompatiblen Mainboards möglich, was bedeutet, dass ihr Anwendungsbereich erheblich eingeschränkt ist.
3. Selbstständige RAID-Controller
Diese diskreten Lösungen verfügen über alle notwendigen Chips für den Betrieb mit Unternehmensservern und besitzen ihr eigenes BIOS, Cache-Speicher und einen Prozessor zur schnellen Fehlerkorrektur und Berechnung von Prüfziffern. Außerdem erfüllen sie hohe Zuverlässigkeitsstandards in der Herstellung und verfügen über hochwertige Speichermodule.
4. Externe RAID-Controller
Es ist nicht schwer zu erraten, dass alle oben genannten Controller intern sind und über den PCIe-Anschluss des Motherboards mit Strom versorgt werden. Was bedeutet das? Dass ein Ausfall des Motherboards zu Fehlern im Betrieb des RAID-Arrays und zum Datenverlust führen kann. Externe Controller sind von diesem Missverständnis befreit, da sie in einem separaten Gehäuse mit einer unabhängigen Stromversorgung untergebracht sind. In Bezug auf die Zuverlässigkeit bieten solche Controller das höchste Niveau der Datenspeicherung.
, Microsemi Adaptec, Intel, IBM, Dell und Cisco sind nur einige der Unternehmen, die derzeit Hardware-RAID-Controller anbieten.
Betriebsmodi von SAS/SATA/NVMe RAID-Controllern
Die Hauptaufgabe von Tri-Mode HBA- und RAID-Controllern (oder Controllern mit Tri-Mode-Funktion) besteht darin, RAID-Hardware auf Basis von NVMe zu erstellen. Bei Broadcom können dies die Controller der Serie 9400: zum Beispiel, . Er gehört zu den eigenständigen RAID-Controllern, verfügt über vier SFF-8643-Anschlüsse und ermöglicht dank der Unterstützung von Tri-Mode die gleichzeitige Verbindung von SATA/SAS- und NVMe-Laufwerken. Außerdem ist er einer der energieeffizientesten Controller auf dem Markt (verbraucht nur 17 Watt Energie, davon weniger als 1,1 Watt für jeden der 16 Ports).

Die Schnittstelle ist PCI Express x8 der Version 3.1, was eine Bandbreite von 64 Gbit/s ermöglicht (im Jahr 2020 wird die Einführung von Controllern für PCI Express 4.0 erwartet). Der 16-Port-Controller basiert auf einem 2-Kern-Chip und 72-Bit DDR4-2133 SDRAM (4 GB), und es besteht die Möglichkeit, bis zu 240 SATA/SAS- oder bis zu 24 NVMe-Geräte anzuschließen. In Bezug auf die Organisation von RAID-Arrays werden die Ebenen „0“, „1“, „5“ und „6“ sowie „10“, „50“ und „60“ unterstützt. Übrigens, der Cache-Speicher und anderer Controller in der Serie 9400 ist durch ein zusätzliches Modul CacheVault CVPM05 gegen Spannungsschwankungen geschützt.
Der Grundlage der Drei-Modus-Technologie liegt die Funktion der Datenumwandlung SerDes: die Umwandlung der sequenziellen Datenpräsentation in SAS/SATA-Schnittstellen in eine parallele Form in PCIe NVMe und umgekehrt. Das heißt, der Controller stimmt Geschwindigkeiten und Protokolle ab, um reibungslos mit jedem der drei Typen von Speichergeräten zu arbeiten. Dies bietet eine unterbrechungsfreie Möglichkeit, die Infrastruktur von Rechenzentren zu skalieren: Benutzer können NVMe ohne wesentliche Änderungen an anderen Systemkonfigurationen nutzen.

Bei der Planung von Konfigurationen mit NVMe-Laufwerken sollte jedoch berücksichtigt werden, dass NVMe-Lösungen 4 PCIe-Linien zur Verbindung verwenden, was bedeutet, dass jedes Laufwerk alle Linien der SFF-8643-Ports belegt. Das bedeutet, dass direkt an den MegaRAID 9460-16i-Controller nur vier NVMe-Laufwerke angeschlossen werden können. Alternativ kann man sich bei gleichzeitiger Verbindung von acht SAS-Laufwerken mit zwei NVMe-Lösungen begnügen (siehe das Anschlussschema unten).

Die Abbildung zeigt die Verwendung des Anschlusses „0“ (C0 / Connector 0) und des Anschlusses „1“ für NVMe-Verbindungen sowie der Anschlüsse „2“ und „3“ für SAS-Verbindungen. Diese Anordnung kann umgekehrt werden, aber jedes NVMe x4-Laufwerk muss mit benachbarten Linien verbunden werden. Die Betriebsmodi des Controllers werden über die Konfigurationswerkzeuge StorCLI oder Human Interface Infrastructure (HII) eingerichtet, die in einer UEFI-Umgebung arbeiten.

Der Standardmodus ist das Profil „PD64“ (unterstützt nur SAS / SATA). Wie oben erwähnt, gibt es insgesamt drei Profile: den Modus „SAS/SATA only mode“ (PD240 / PD64 / PD 16), den Modus „NVMe only mode“ (PCIe4) und einen gemischten Modus, in dem alle Arten von Laufwerken funktionieren können: „PD64-PCIe4“ (unterstützt 64 physische und virtuelle Laufwerke mit 4 NVMe-Laufwerken). Im gemischten Modus muss der eingestellte Profilwert „ProfileID=13“ sein. Übrigens bleibt das gewählte Profil als primär gespeichert und wird auch bei einer Wiederherstellung auf die Werkseinstellungen über den Befehl Set Factory Defaults nicht zurückgesetzt. Es kann nur manuell geändert werden.
Sollte man ein RAID-Array auf SSDs erstellen?
Also, wir haben bereits verstanden, dass RAID-Arrays die Grundlage für hohe Leistungsfähigkeit sind. Aber lohnt es sich, ein RAID aus Solid-State-Laufwerken für den Hausgebrauch und den Unternehmenssektor zu konfigurieren? Viele Skeptiker behaupten, dass der Geschwindigkeitszuwachs nicht so signifikant ist, als dass man sich die Kosten für NVMe-Laufwerke leisten könnte. Stimmt das wirklich? Wahrscheinlich nicht. Das größte Hindernis für die Verwendung von SSDs in RAID (sowohl im privaten als auch im Unternehmensbereich) ist nur der Preis. So oder so, die Kosten pro Gigabyte Speicherplatz bei HDDs sind deutlich günstiger.
Der Anschluss mehrerer Solid-State-"Festplatten" an einen RAID-Controller zur Erstellung eines Arrays aus SSDs in bestimmten Konfigurationen kann erhebliche Auswirkungen auf die Leistung haben. Man sollte jedoch nicht vergessen, dass die maximale Leistung durch die Bandbreite des RAID-Controllers begrenzt ist. Der RAID-Level, der die beste Geschwindigkeit bietet, ist RAID 0.

Die Organisation eines normalen RAID 0 mit zwei SSD-Laufwerken, bei der die Methode der Datenaufteilung in feste Blöcke und deren alternierende Speicherung zwischen den Solid-State-Speichern verwendet wird, führt zu einer Verdopplung der Leistung (im Vergleich zu den Geschwindigkeiten, die ein einzelnes SSD-Laufwerk liefert). Zudem wird ein RAID 0-Array mit vier Solid-State-Laufwerken bereits viermal schneller sein als das langsamste SSD im Array (je nach Bandbreitenlimit am RAID-Controller für SSDs).
Wenn man einfache Mathematik anwendet, sind SATA-SSDs etwa dreimal schneller als traditionelle SATA-HDDs. NVMe-Lösungen sind noch effektiver – bis zu zehnmal und mehr. Angenommen, zwei Festplatten in einem RAID der Null-Ebene zeigen eine Verdopplung der Leistung, erhöhen sie diese um 50 %. Zwei SATA-SSDs wären also sechsmal schneller, während zwei NVMe-SSDs zwanzigmal schneller wären. Insbesondere ein Kingston KC2000 NVMe PCIe-Laufwerk kann sequenzielle Lese- und Schreibgeschwindigkeiten von bis zu 3200 MB/s erreichen, was im RAID 0 beeindruckende 6 GB/s ergibt. Zudem wandelt sich die Lese-/Schreibgeschwindigkeit von zufälligen Blöcken der Größe 4 KB von 350.000 IOPS in 700.000 IOPS. Aber… gleichzeitig bietet ein "Null"-RAID keine Redundanz.
Man kann sagen, dass in einer Heimumgebung normalerweise kein übermäßiger Speicherplatz erforderlich ist. Daher ist RAID 0 tatsächlich die passendste Konfiguration für SSDs. Dies ist eine zuverlässige Methode, um eine erhebliche Leistungssteigerung im Vergleich zur Nutzung von Technologien wie Intel Optane-basierten Solid-State-Laufwerken zu erzielen. Wie sich jedoch SSD-Lösungen in den beliebtesten RAID-Typen („1“, „5“, „10“, „50“) verhalten werden, werden wir in unserem nächsten Artikel besprechen.
Dieser Artikel wurde mit Unterstützung unserer Kollegen von Broadcom erstellt, die ihre Controller Ingenieuren von Kingston zur Verfügung stellen, um Tests mit SATA/SAS/NVMe Enterprise-Class-Laufwerken durchzuführen. Dank dieser freundschaftlichen Symbiose müssen die Kunden nicht an der Zuverlässigkeit und Stabilität der Kingston-Laufwerke in Kombination mit HBA- und RAID-Controllern zweifeln. .
Weitere Informationen zu den Produkten von Kingston finden Sie der Firma.
Quelle: habr.com
