Hallo Habr! In diesem Artikel erklären wir, ob es sinnvoll ist, RAID-Arrays mit SATA SSD- und NVMe SSD-basierten Lösungen zu organisieren und ob es dabei erhebliche Vorteile gibt. 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 sicherlich schon einmal Begriffe wie "RAID", "RAID-Array" und "RAID-Controller" gehört, aber wahrscheinlich nicht viel Bedeutung beigemessen, da dies für den durchschnittlichen PC-Nutzer nicht von großem Interesse ist. Doch hohe Geschwindigkeiten von internen Speichermedien und zuverlässiger Betrieb sind für jeden wichtig. Denn unabhängig davon, wie leistungsstark der Computer ist, wird die Geschwindigkeit des Speichers zum Engpass, wenn es um die Gesamtleistung von PCs und Servern geht.
Das war genau bis zu dem Moment, als die modernen NVMe-SSDs mit vergleichbaren Kapazitäten von 1 TB und mehr die traditionellen HDDs ablösten. Früher waren in PCs häufig Kombinationen aus SATA-SSDs und einer handvoll großer HDDs zu finden, doch heute setzt sich eine andere Lösung durch – NVMe-SSDs kombiniert mit ein paar leistungsstarken SATA-SSDs. Im Bereich der Unternehmensserver und Cloud-Dienste haben viele bereits erfolgreich auf SATA-SSDs umgestellt, einfach weil diese schneller sind als herkömmliche „Festplatten“ und ein höheres Volumen an Ein-/Ausgaben gleichzeitig verarbeiten können.

Die Ausfallsicherheit des Systems bleibt dennoch auf einem relativ niedrigen Niveau: Wir können nicht wie in der „Battle of the Psychics“ vorhersagen, mit welcher Genauigkeit sogar bis zu einer Woche, wann ein bestimmter Flash-Speicher den Geist aufgibt. Während HDDs allmählich „sterben“ und dabei Symptome zeigen, die es ermöglichen, Gegenmaßnahmen zu ergreifen, „sterben“ SSDs plötzlich und ohne Vorwarnung. Jetzt ist es an der Zeit, sich zu fragen, warum das Ganze überhaupt notwendig ist. Sollten wir RAID-Arrays auf der Basis von SATA-SSDs und NVMe-SSDs einrichten, und wird sich das wirklich rentieren?
Was ist der Zweck eines RAID-Arrays?
Das Wort „Array“ impliziert bereits, dass für seine Erstellung mehrere Speichermedien (HDD und SSD) verwendet werden, die durch einen RAID-Controller verbunden sind und von dem Betriebssystem als ein einziges Datenspeichergerät erkannt werden. Die Hauptaufgabe, die RAID-Arrays ermöglichen, besteht darin, die Zugriffszeit auf Daten zu minimieren, die Lese- und Schreibgeschwindigkeit zu erhöhen und die Zuverlässigkeit zu steigern, die durch die Möglichkeit einer schnellen Wiederherstellung im Falle eines Ausfalls erreicht wird. Übrigens ist es für persönliche Backups nicht unbedingt erforderlich, RAID zu verwenden. Wenn Sie jedoch einen eigenen Heimserver haben, der rund um die Uhr (24/7) ständig erreichbar sein muss, sieht die Situation schon anders aus.
Es gibt über ein Dutzend RAID-Levels, die sich durch die Anzahl der eingesetzten Speichermedien unterscheiden und jeweils ihre eigenen Vor- und Nachteile haben: Zum Beispiel ermöglicht RAID 0 hohe Leistung ohne Ausfallsicherheit, RAID 1 ermöglicht automatisches Daten-Mirroring ohne Geschwindigkeitsgewinn, und RAID 10 vereint die Möglichkeiten der oben genannten. RAID 0 und 1 sind die einfachsten (da sie keine Softwareberechnungen erfordern) und daher am beliebtesten. Letztlich hängt die Wahl eines bestimmten RAID-Levels von den Anforderungen an das Speichersystem und den Möglichkeiten des RAID-Controllers ab.
Heim- und Unternehmens-RAID: Wo liegen die Unterschiede?
Die Grundlage eines modernen Unternehmens sind große Datenmengen, die zuverlässig auf den Servern der Firmen gespeichert werden müssen. Darüber hinaus muss, wie bereits erwähnt, ein kontinuierlicher Zugriff 24/7 gewährleistet sein. Es versteht sich von selbst, dass neben der Hardware auch die Software eine wichtige Rolle spielt, aber hier sprechen wir hauptsächlich von der Hardware, die eine zuverlässige Speicherung und Verarbeitung von Informationen sicherstellt. Keine Software kann ein Unternehmen vor dem Ruin bewahren, wenn die technische Ausstattung nicht den an sie gestellten Anforderungen entspricht.

Für diese Aufgaben bietet jeder Hardwarehersteller sogenannte Unternehmensgeräte an. Bei Kingston sind das leistungsstarke SSD-Lösungen in Form von SATA-Modellen. und , sowie NVMe-Modelle wie DC1000M U.2 NVMe, DCU1000 U.2 NVMe und DCP-1000 PCI-e, die für den Einsatz in Rechenzentren und Supercomputern gedacht sind. Arrays aus solchen Speichermedien werden in der Regel in Verbindung mit Hardware-Controllern verwendet.

Für den Endverbrauchermarkt (also für Heim-PCs und NAS-Server) sind solche Speichermedien wie NVMe PCIe, aber in diesem Fall ist es nicht zwingend erforderlich, einen Hardware-Controller zu kaufen. Es genügt, den auf dem Motherboard des PCs oder NAS-Servers integrierten Controller zu nutzen, es sei denn, Sie planen, einen Heimserver für ungewöhnliche Aufgaben selbst zusammenzustellen (zum Beispiel um einen kleinen Heim-Hosting-Service für Freunde einzurichten). Außerdem sind private RAID-Systeme normalerweise nicht für Hunderte oder Tausende von Laufwerken ausgelegt, sondern beschränken sich auf zwei, vier oder acht Geräte (häufiger SATA).
Arten und Typen von RAID-Controllern
Es gibt drei Arten von RAID-Controllern, die auf den Prinzipien der Umsetzung von RAID-Arrays basieren:
1. Software-RAID-Controller, bei denen die Verwaltung des Arrays auf der CPU und dem DRAM liegt (d.h. die Ausführung des Software-Codes erfolgt auf dem Prozessor).
2. Integrierte RAID-Controller, die in die Motherboards von PCs oder NAS-Servern eingebaut sind.
3. Hardware-RAID-Controller (modular), die diskrete Erweiterungskarten für PCI/PCIe-Slots von Motherboards darstellen.
Was ist der grundlegende Unterschied zwischen ihnen? Software-RAID-Controller sind hinsichtlich Leistung und Ausfallsicherheit den integrierten und hardwarebasierten Varianten unterlegen, benötigen jedoch keine spezielle Hardware für den Betrieb. Wichtig ist jedoch, sicherzustellen, dass der Prozessor des Host-Systems leistungsfähig genug ist, um die RAID-Software auszuführen, ohne die Leistung anderer Anwendungen auf dem Host negativ zu beeinträchtigen. Integrierte Controller verfügen in der Regel über eigenen Cache-Speicher und verwenden einen gewissen Anteil an CPU-Ressourcen.
Hardware-RAID-Controller hingegen besitzen sowohl einen eigenen Cache-Speicher als auch einen integrierten Prozessor zur Ausführung der Software-Algorithmen. Sie ermöglichen üblicherweise die Implementierung aller Arten von RAID-Leveln und unterstützen gleichzeitig verschiedene Speichertypen. Zum Beispiel können an moderne Hardware-Controller von Broadcom SATA-, SAS- und NVMe-Geräte gleichzeitig angeschlossen werden, was einen Wechsel des Controllers beim Upgrade von Servern überflüssig macht: Insbesondere beim Umstieg von SATA-SSD auf NVMe-SSD ist ein Austausch der Controller nicht notwendig.

Damit sind wir auch schon bei der Typologisierung der Controller angekommen. Wenn es Drei-Modus-Controller gibt, müssen auch andere vorhanden sein. Die Antwort auf diese Frage lautet ja. Je nach Funktionen und Möglichkeiten lassen sich RAID-Controller in mehrere Typen unterteilen:
1. Standard-Controller mit RAID-Funktion
In der gesamten Hierarchie ist dies der einfachste Controller, der es ermöglicht, HDDs und SSDs in RAID-Arrays der Ebenen „0“, „1“ oder „0+1“ zu kombinieren. Dies wird softwareseitig auf Firmware-Ebene realisiert. Solche Geräte sind jedoch kaum für den Unternehmenseinsatz zu empfehlen, da sie keinen Cache haben und Arrays der Ebenen „5“, „3“ usw. nicht unterstützen. Für einen Einstiegs-Home-Server sind sie jedoch durchaus geeignet.
2. Controller, die in Kombination mit anderen RAID-Controllern arbeiten
Dieser Typ von Controllern kann zusammen mit integrierten Controllern von Motherboards arbeiten. Dies funktioniert nach dem folgenden Prinzip: Der dedizierte RAID-Controller übernimmt die Lösung „logischer“ Aufgaben, während der integrierte Controller für den Datenaustausch zwischen den Speichermedien zuständig ist. Es gibt jedoch einen wichtigen Punkt: Die gleichzeitige Nutzung solcher Controller ist nur auf kompatiblen Mainboards möglich, was den Anwendungsbereich erheblich einschränkt.
3. Eigenständige RAID-Controller
Diese diskreten Lösungen verfügen über alle notwendigen Chips, um mit Unternehmensservern zu arbeiten, und besitzen ein eigenes BIOS, Cache-Speicher und einen Prozessor für schnelle Fehlerkorrekturen und die Berechnung von Prüfziffern. Darüber hinaus entsprechen sie hohen Zuverlässigkeitsstandards in der Fertigung und sind mit hochwertigen Speichermodulen ausgestattet.
4. Externe RAID-Controller
Es ist nicht schwer zu erraten, dass alle oben genannten Controller interne sind und über den PCIe-Stecker des Motherboards mit Strom versorgt werden. Was bedeutet das? Nun, dass ein Ausfall des Motherboards zu Fehlern im RAID-Verbund und zum Datenverlust führen kann. Externe Controller hingegen sind von diesem Missverständnis befreit, da sie in einem separaten Gehäuse mit einem unabhängigen Netzteil untergebracht sind. In Bezug auf 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 RAID-Controllern SAS/SATA/NVMe
Die Hauptaufgabe der Tri-Mode HBA- und RAID-Controller (oder Controller mit Tri-Mode-Funktion) besteht darin, ein Hardware-RAID auf Basis von NVMe zu erstellen. Bei Broadcom können dies die Controller der Serie 9400: zum Beispiel, . Es handelt sich um einen eigenständigen RAID-Controller, der mit vier SFF-8643-Anschlüssen ausgestattet ist und dank der Unterstützung von Tri-Mode sowohl SATA/SAS- als auch NVMe-Speicher gleichzeitig anschließen kann. Außerdem ist er einer der energieeffizientesten Controller auf dem Markt (verbraucht nur 17 Watt, das sind weniger als 1,1 Watt pro 16 Port).

Als Schnittstelle dient PCI Express x8 der Version 3.1, was eine Bandbreite von 64 Gbit/s ermöglicht (2020 wird die Einführung von Controllern für PCI Express 4.0 erwartet). Der 16-Port-Controller basiert auf einem Dual-Core-Chip. und 72-Bit DDR4-2133 SDRAM (4 GB), zudem ist es möglich, bis zu 240 SATA/SAS-Speicher oder bis zu 24 NVMe-Geräte anzuschließen. Bei der Organisation von RAID-Arrays werden die Ebenen „0“, „1“, „5“ und „6“ sowie „10“, „50“ und „60“ unterstützt. Übrigens ist der Cache-Speicher und die anderen Controller der Serie 9400 durch das zusätzlich angebotene CacheVault CVPM05-Modul vor Spannungsschwankungen geschützt.
Die Grundlage der Tri-Mode-Technologie bildet die SerDes-Datenumwandlungsfunktion: die Umwandlung von sequenziellen Datenrepräsentationen in SAS/SATA-Schnittstellen in ein paralleles Format in PCIe NVMe und umgekehrt. Das bedeutet, dass der Controller Geschwindigkeiten und Protokolle anpasst, um nahtlos mit jedem der drei Speichermedientypen zu arbeiten. Dies gewährleistet ein kontinuierliches Skalieren der Rechenzentrumsinfrastruktur: Nutzer können NVMe nutzen, ohne wesentliche Änderungen an anderen Konfigurationen des Systems vorzunehmen.

Bei der Planung von Konfigurationen mit NVMe-Speichern ist jedoch zu beachten, dass NVMe-Lösungen 4 PCIe-Linien für die Verbindung nutzen, was bedeutet, dass jeder Speicher alle Linien der SFF-8643-Ports beansprucht. Somit können direkt an den MegaRAID 9460-16i-Controller nur vier NVMe-Speicher angeschlossen werden. Alternativ kann man sich auf zwei NVMe-Lösungen beschränken, während gleichzeitig acht SAS-Speicher angeschlossen werden (siehe Anschlussschema unten).

Das Bild 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 jeder x4 NVMe-Speicher muss mit benachbarten Leitungen verbunden werden. Die Betriebsmodi des Controllers werden über die Konfigurationsnutzeroberflächen StorCLI oder Human Interface Infrastructure (HII) festgelegt, die in einer UEFI-Umgebung arbeiten.

Der Standardmodus ist das Profil „PD64“ (nur SAS / SATA-Unterstützung). Wie bereits erwähnt, gibt es insgesamt drei Profile: den Modus „SAS/SATA only mode“ (PD240 / PD64 / PD 16), den Modus „NVMe only mode“ (PCIe4) und den Mischmodus, in dem alle Speichertypen betrieben werden können: „PD64-PCIe4“ (Unterstützung von 64 physischen und virtuellen Festplatten mit 4 NVMe-Laufwerken). Im Mischmodus sollte der festgelegte Profilwert so sein – „ProfileID=13“. Übrigens, das gewählte Profil bleibt als Hauptprofil gespeichert und wird selbst bei einem Zurücksetzen auf die Werkseinstellungen über den Befehl Set Factory Defaults nicht gelöscht. Es kann nur manuell geändert werden.
Sollte man ein RAID-Array auf SSDs erstellen?
Wir haben bereits erkannt, dass RAID-Arrays die Grundlage für hohe Leistungsfähigkeit sind. Aber ist es sinnvoll, RAID aus SSDs für den privaten und geschäftlichen Gebrauch zu erstellen? Viele Skeptiker behaupten, dass der Geschwindigkeitszuwachs nicht signifikant genug ist, um in NVMe-Laufwerke zu investieren. Doch ist das wirklich der Fall? Wohl kaum. Das größte Hindernis für die Nutzung von SSDs in RAID (sowohl im privaten als auch im Unternehmensbereich) ist in der Regel der Preis. Letztlich ist der Preis pro Gigabyte bei HDDs deutlich günstiger.
Die Anbindung mehrerer SSDs an einen RAID-Controller zur Erstellung eines SSD-Arrays kann in bestimmten Konfigurationen einen enormen Einfluss auf die Leistung haben. Es sollte jedoch nicht vergessen werden, dass die maximale Leistung durch die Bandbreite des RAID-Controllers selbst begrenzt ist. Das RAID-Level, das die beste Geschwindigkeit bietet, ist RAID 0.

Die Einrichtung eines herkömmlichen RAID 0 mit zwei SSDs, bei dem die Daten in feste Blöcke aufgeteilt und zwischen den Flash-Speichern alterniert werden, führt zu einer Verdopplung der Leistung (im Vergleich zu den Geschwindigkeiten, die eine einzelne SSD erreicht). Ein RAID 0-Array mit vier SSDs hingegen wird bereits viermal schneller sein als die langsamste SSD im Array (abhängig von der Bandbreitenbegrenzung des RAID-Controllers).
Wenn man von einfacher Mathematik ausgeht, ist ein SATA-SSD etwa dreimal schneller als ein traditionelles SATA-HDD. NVMe-Lösungen sind noch effektiver – sie sind zehnmal schneller oder mehr. Vorausgesetzt, zwei Festplatten im RAID 0 zeigen eine verdoppelte Leistung, was zu einer Steigerung um 50 % führt, wären zwei SATA-SSDs sechsmal schneller, während zwei NVMe-SSDs zwanzigmal schneller sind. Insbesondere kann ein Kingston KC2000 NVMe PCIe-Laufwerk Geschwindigkeiten von bis zu 3200 MB/s beim sequenziellen Lesen und Schreiben erreichen, was im RAID 0 beeindruckende 6 GB/s ergibt. Die Geschwindigkeit für das Lesen und Schreiben von zufälligen 4-KB-Blöcken steigt von 350.000 IOPS auf 700.000 IOPS. Aber… gleichzeitig bietet RAID 0 keine Redundanz.
In der Regel ist eine Speichervirtualisierung im Heimgebrauch nicht unbedingt erforderlich, weshalb RAID 0 die geeignetste Konfiguration für SSDs darstellt. Es ist eine zuverlässige Möglichkeit, erhebliche Leistungssteigerungen zu erzielen, anstatt auf Technologien wie Intel Optane SSDs zurückzugreifen. Wie sich SSD-Lösungen in den gängigsten RAID-Typen („1“, „5“, „10“, „50“) verhalten, werden wir in unserem nächsten Artikel besprechen.
Dieser Artikel wurde mit Unterstützung unserer Kollegen von Broadcom erstellt, die ihre Controller den Ingenieuren von Kingston zur Verfügung stellen, um sie mit SATA/SAS/NVMe Unternehmensspeicher zu testen. Dank dieser freundlichen Zusammenarbeit müssen die Kunden nicht an der Zuverlässigkeit und Stabilität von Kingston-Speichermedien in Verbindung mit HBA- und RAID-Controllern zweifeln. .
Weitere Informationen zu den Produkten von Kingston finden Sie das Unternehmen.
Quelle: habr.com
