Muss ich ein RAID-Array aus SSD erstellen und welche Controller werden dafür benötigt?

Hallo Habr! In diesem Artikel erfahren Sie, ob es sich lohnt, RAID-Arrays auf Basis von Solid-State-Lösungen wie SATA-SSD und NVMe-SSD zu organisieren. Wir haben uns entschlossen, dieses Problem zu verstehen, indem wir die Typen und Typen von Controllern, die dies ermöglichen, sowie den Anwendungsbereich solcher Konfigurationen in Betracht gezogen haben.



Auf die eine oder andere Weise hörte jeder von uns mindestens einmal in meinem Leben Definitionen wie „RAID“, „RAID-Array“, „RAID-Controller“, aber es war unwahrscheinlich, dass dies ernsthaft von Bedeutung war, denn für den normalen PC-Boyar ist dies alles unwahrscheinlich interessant. Aber jeder möchte, dass jeder von den internen Laufwerken hohe Geschwindigkeiten und die Zuverlässigkeit seiner Arbeit genießt. Egal wie stark der Computer gefüllt wird, die Geschwindigkeit des Laufwerks wird zu einem Engpass, wenn wir über die kombinierte Geschwindigkeit von PC und Server sprechen.

Das war genau bis zu dem Moment, als herkömmliche NVMe-SSDs mit einer vergleichbaren Kapazität von 1 TB oder mehr die herkömmliche Festplatte ersetzten. Und wenn früher im PC die SATA-SSD-Bundles + ein paar großvolumige Festplatten häufiger waren, werden sie heute durch eine andere Lösung ersetzt - NVMe-SSD + ein paar großvolumige SATA-SSDs. Wenn wir von Unternehmensservern und „Clouds“ sprechen, sind viele bereits erfolgreich auf SATA-SSD umgestiegen, einfach weil sie schneller als normale „Dosen“ sind und mehr E / A-Vorgänge gleichzeitig verarbeiten können.



Die Fehlertoleranz des Systems ist jedoch immer noch recht gering: Wir können nicht vorhersagen, wie im „Battle of Psychics“, selbst mit einer Genauigkeit von bis zu einer Woche, wenn das eine oder andere Solid-State-Laufwerk befiehlt, lange zu leben. Und wenn die Festplatte allmählich "ausfällt", sodass Sie die Symptome bemerken und Maßnahmen ergreifen können, "stirbt" die SSD sofort und ohne Vorwarnung. Und jetzt ist es Zeit herauszufinden, warum dies alles überhaupt benötigt wird? Lohnt es sich, RAID-Arrays auf Basis von Solid-State-Lösungen wie SATA-SSD und NVMe-SSD zu organisieren?

Warum brauche ich ein RAID-Array?


Das Wort "Array" selbst impliziert bereits, dass mehrere Laufwerke (HDD und SSD) zum Erstellen verwendet werden, die mithilfe eines RAID-Controllers kombiniert werden und vom Betriebssystem als ein einziger Datenspeicher erkannt werden. Die globale Aufgabe, die RAID-Arrays lösen können, besteht darin, die Datenzugriffszeit zu minimieren, die Lese- / Schreibgeschwindigkeit zu erhöhen und die Zuverlässigkeit zu erhöhen. Dies wird durch die Fähigkeit erreicht, bei einem Ausfall schnell wiederherzustellen. Es ist übrigens nicht erforderlich, RAID für Home-Backups zu verwenden. Wenn Sie jedoch einen eigenen Heimserver haben, für den ein ständiger Zugriff rund um die Uhr erforderlich ist, ist dies eine andere Sache.

Es gibt über ein Dutzend RAID-Arrays, von denen jedes sich in der Anzahl der verwendeten Laufwerke unterscheidet und seine eigenen Vor- und Nachteile hat: Mit RAID 0 können Sie beispielsweise eine hohe Leistung ohne Fehlertoleranz erzielen, mit RAID 1 können Sie Daten automatisch spiegeln, ohne die Geschwindigkeit zu erhöhen, und RAID 10 kombiniert an sich die Möglichkeiten des oben genannten. RAID 0 und 1 sind die einfachsten (da keine Software-Berechnungen erforderlich sind) und daher die beliebtesten. Letztendlich hängt die Wahl eines bestimmten RAID-Levels von den dem Festplatten-Array zugewiesenen Aufgaben und den Fähigkeiten des RAID-Controllers ab.

Heim- und Unternehmens-RAID: Was ist der Unterschied?


Die Grundlage eines modernen Unternehmens sind große Datenmengen, die sicher auf Unternehmensservern gespeichert werden müssen. Und wie bereits erwähnt, sollten sie rund um die Uhr einen ständigen Zugang haben. Es ist klar, dass der Softwareteil ebenso wichtig ist wie die Hardware, aber in diesem Fall handelt es sich immer noch um Geräte, die eine zuverlässige Speicherung und Verarbeitung von Informationen gewährleisten. Keine Software rettet das Unternehmen vor dem Ruin, wenn die Hardware nicht den ihr zugewiesenen Aufgaben entspricht.



Jeder Hardwarehersteller bietet für diese Aufgaben sogenannte Corporate Devices an. Kingston bietet leistungsstarke Solid-State-Lösungen in Form von Kingston 450R (DC450R) SATA-Modellen und DC500- Modellen sowie DC1000M U.2 NVMe NVMe-Modellen, DCU1000 U.2 NVMe und DCP-1000 PCI-e-Modellen für den Einsatz in Rechenzentren (Rechenzentren) und Supercomputer. Arrays von solchen Laufwerken werden normalerweise in Verbindung mit Hardware-Controllern verwendet.



Für den Consumer-Markt ( dh für Heim-PCs und NAS-Server) stehen Laufwerke wie Kingston KC2000 NVMe PCIe zur Verfügung. In diesem Fall ist der Kauf eines Hardware-Controllers jedoch nicht erforderlich. Sie können sich auf einen PC oder NAS-Server beschränken, der in das Motherboard integriert ist, es sei denn, Sie planen natürlich, einen eigenen Home-Server für atypische Aufgaben einzurichten (zum Beispiel ein kleines Home-Hosting für Freunde). Darüber hinaus implizieren Heim-RAID-Arrays in der Regel nicht das Vorhandensein von Hunderten oder Tausenden von Laufwerken, sondern beschränken sich auf zwei, vier und acht Geräte (normalerweise SATA).

Typen und Typen von RAID-Controllern


Es gibt drei Arten von RAID-Controllern, die auf den Prinzipien der RAID-Implementierung basieren:

1. Software, bei der die Array-Steuerung auf die CPU und den DRAM fällt (dh die Ausführung des Programmcodes erfolgt auf dem Prozessor).

2. Integriert, dh in die Hauptplatine eines PCs oder NAS-Servers integriert.

3. Hardware (modular), diskrete Erweiterungskarten für PCI / PCIe-Motherboards.

Was ist ihr grundlegender Unterschied voneinander? Software-RAID-Controller sind hinsichtlich Leistung und Fehlertoleranz den integrierten und Hardware-Controllern unterlegen, erfordern jedoch keine speziellen Geräte für den Betrieb. Es ist jedoch wichtig, sicherzustellen, dass der Host-Prozessor leistungsstark genug ist, um RAID-Software auszuführen, ohne die Leistung von Anwendungen zu beeinträchtigen, die auch auf dem Host ausgeführt werden. Integrierte Controller sind in der Regel mit einem eigenen Cache-Speicher ausgestattet und belegen eine bestimmte Menge an CPU-Ressourcen.

Die Hardware verfügt jedoch über einen eigenen Cache-Speicher und einen integrierten Prozessor zur Ausführung von Softwarealgorithmen. In der Regel können Sie alle Arten von RAID-Levels implementieren und mehrere Laufwerkstypen gleichzeitig unterstützen. Sie können beispielsweise gleichzeitig SATA-, SAS- und NVMe-Geräte an moderne Broadcom-Hardware-Controller anschließen, sodass Sie den Controller beim Upgrade von Servern nicht ändern können. Insbesondere beim Wechsel von einer SATA-SSD zu einer NVMe-SSD müssen Sie die Controller nicht ändern.



In diesem Sinne sind wir tatsächlich auf die Typologie der Controller selbst gekommen. Wenn es drei Modi gibt, sollte es weitere geben? In diesem Fall ist die Antwort auf diese Frage positiv. Abhängig von den Funktionen und Fähigkeiten können RAID-Controller in verschiedene Typen unterteilt werden:

1. Gewöhnliche RAID-Controller
In der gesamten Hierarchie ist dies der einfachste Controller, mit dem Sie HDD und SSD in RAID-Arrays der Stufen "0", "1" oder "0 + 1" kombinieren können. Software, die auf Firmware-Ebene implementiert ist. Solche Geräte sind jedoch für den Einsatz im Unternehmenssegment kaum zu empfehlen, da sie keinen Cache haben und keine Arrays der Ebenen „5“, „3“ usw. unterstützen. Für einen Home-Server der Einstiegsklasse sind sie jedoch gut geeignet.

2. Controller, die mit anderen RAID-Controllern gekoppelt sind
Dieser Controllertyp kann mit integrierten Motherboard-Controllern gekoppelt werden. Dies geschieht nach folgendem Prinzip: Ein diskreter RAID-Controller kümmert sich um die Lösung von „logischen“ Problemen und den integrierten Datenaustausch zwischen Laufwerken. Aber es gibt eine Nuance: Der parallele Betrieb solcher Controller ist nur auf kompatiblen Motherboards möglich, was bedeutet, dass sich ihr Umfang erheblich verringert.

3. Eigenständige RAID-Controller
Diese diskreten Lösungen enthalten an Bord alle notwendigen Chips für die Arbeit mit Servern der Enterprise-Klasse, ein eigenes BIOS, einen Cache-Speicher und einen Prozessor für die schnelle Fehlerkorrektur und Berechnung von Prüfsummen. Darüber hinaus erfüllen sie hohe Anforderungen an die Zuverlässigkeit bei der Herstellung und verfügen über hochwertige Speichermodule.

4. Externe RAID-Controller
Es ist leicht zu erraten, dass alle oben genannten Controller intern sind und über den PCIe-Anschluss des Motherboards mit Strom versorgt werden. Worüber spricht das? Und die Tatsache, dass ein Ausfall des Motherboards zu Fehlern im Betrieb des RAID-Arrays und zu Datenverlust führen kann. Externe Steuerungen sind frei von diesem Missverständnis, da sie in einem separaten Gehäuse mit unabhängiger Stromversorgung untergebracht sind. In Bezug auf die Zuverlässigkeit bieten solche Controller das höchste Maß an Datenspeicherung.

Broadcom , Microsemi Adaptec, Intel, IBM, Dell und Cisco sind nur einige der Unternehmen, die derzeit Hardware-RAID-Controller anbieten.

SAS / SATA / NVMe RAID-Controller-Modi


Die Hauptaufgabe von Tri-Mode-HBA- und RAID-Controllern (oder Controllern mit Tri-Mode-Funktion) besteht darin, Hardware-RAID auf Basis von NVMe zu erstellen. Bei Broadcom können die Controller der Serie 9400 dies: Zum Beispiel der MegaRAID 9460-16i . Es gehört zu einem unabhängigen Typ von RAID-Controllern, ist mit vier SFF-8643-Anschlüssen ausgestattet und ermöglicht dank Tri-Mode-Unterstützung den gleichzeitigen Anschluss von SATA / SAS- und NVMe-Laufwerken. Darüber hinaus ist er einer der energieeffizientesten Controller auf dem Markt (er verbraucht nur 17 Watt Energie, während er für jeden der 16 Ports weniger als 1,1 Watt benötigt).



Die Verbindungsschnittstelle ist PCI Express x8 Version 3.1, mit der Sie eine Bandbreite von 64 Gbit / s implementieren können (im Jahr 2020 werden Controller für PCI Express 4.0 erwartet). Der 16-Port-Controller basiert auf dem 2-Core- SAS3516- Chip und dem 72-Bit-DDR4-2133-SDRAM (4 GB) und bietet die Möglichkeit, bis zu 240 SATA / SAS-Laufwerke 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. Der Cache-Speicher des MegaRAID 9460-16i und anderer Controller der 9400-Serie wird übrigens durch das optionale CacheVault CVPM05-Modul vor Spannungsausfällen geschützt.

Die Drei-Modi-Technologie basiert auf der SerDes-Datenkonvertierungsfunktion: Konvertierung der seriellen Datendarstellung in SAS / SATA-Schnittstellen in parallele Form in PCIe NVMe und umgekehrt. Das heißt, der Controller handelt Geschwindigkeiten und Protokolle aus, um nahtlos mit einem der drei Arten von Speichergeräten zusammenzuarbeiten. Dies bietet eine ununterbrochene Möglichkeit zur Skalierung von Rechenzentrumsinfrastrukturen: Benutzer können NVMe ohne wesentliche Änderungen an anderen Systemkonfigurationen verwenden.



Wenn Sie jedoch Konfigurationen mit NVMe-Laufwerken planen, sollten Sie berücksichtigen, dass NVMe-Lösungen für die Verbindung 4 PCIe-Leitungen verwenden. Dies bedeutet, dass jedes Laufwerk alle SFF-8643-Portleitungen verwendet. Es stellt sich heraus, dass nur vier NVMe-Laufwerke direkt an den MegaRAID 9460-16i-Controller angeschlossen werden können. Oder beschränken Sie sich auf zwei NVMe-Lösungen, während Sie gleichzeitig acht SAS-Laufwerke anschließen (siehe Anschlussdiagramm unten).



Die Abbildung zeigt die Verwendung von Anschluss „0“ (C0 / Anschluss 0) und Anschluss „1“ für NVMe-Verbindungen sowie Anschluss „2“ und „3“ für SAS-Verbindungen. Diese Anordnung kann umgekehrt werden, aber jedes x4 NVMe-Laufwerk muss über benachbarte Leitungen angeschlossen werden. Die Betriebsmodi des Controllers werden über die StorCLI-Konfigurationstools oder die Human Interface Infrastructure (HII) festgelegt, die in einer UEFI-Umgebung ausgeführt werden.



Der Standardmodus ist "PD64" -Profil (unterstützt nur SAS / SATA). Wie oben erwähnt, gibt es insgesamt drei Profile: Nur SAS / SATA-Modus (PD240 / PD64 / PD16), Nur NVMe-Modus (PCIe4) und gemischter Modus, in dem alle Arten von Laufwerken funktionieren können: PD64 -PCIe4 "(Unterstützung für 64 physische und virtuelle Festplatten mit 4 NVMe-Laufwerken). Im gemischten Modus sollte der Wert des angegebenen Profils wie folgt lauten: "ProfileID = 13". Das ausgewählte Profil wird übrigens als Master gespeichert und auch dann nicht zurückgesetzt, wenn Sie über den Befehl Set Factory Defaults die Werkseinstellungen wiederherstellen. Es kann nur manuell geändert werden.

Soll ich ein RAID-Array auf einer SSD erstellen?


Wir haben also bereits erkannt, dass RAID-Arrays der Schlüssel zu hoher Leistung sind. Aber lohnt es sich, RAID aus Solid-State-Laufwerken für Privatanwender und Unternehmen zu erstellen? Viele Skeptiker sagen, dass die Erhöhung der Geschwindigkeit nicht so bedeutend ist, dass sie auf NVMe-Laufwerken bankrott geht. Aber ist es wirklich so? Kaum. Die größte Einschränkung für die Verwendung von SSDs in RAID (sowohl zu Hause als auch auf Unternehmensebene) kann nur der Preis sein. Was auch immer man sagen mag, die Kosten für ein Gigabyte Speicherplatz auf einer Festplatte sind viel billiger.

Das Anschließen mehrerer Solid-State-Laufwerke an einen RAID-Controller, um in bestimmten Konfigurationen ein Array von SSDs zu erstellen, kann sich erheblich auf die Leistung auswirken. Vergessen Sie jedoch nicht, dass die maximale Leistung durch die Bandbreite des RAID-Controllers selbst begrenzt wird. Der RAID-Level, der die beste Leistung bietet, ist RAID 0.



Die Organisation eines regulären RAID 0 mit zwei SSD-Laufwerken, die die Methode der Aufteilung von Daten in feste Blöcke und deren Wechsel zwischen Solid-State-Speichern verwenden, führt zu einer Verdoppelung der Leistung (im Vergleich zu den Geschwindigkeiten, die eine SSD erzeugt). In diesem Fall ist ein RAID 0-Array mit vier Solid-State-Laufwerken viermal schneller als die langsamste SSD im Array (abhängig von der Bandbreitenbeschränkung auf der Ebene des RAID-SSD-Controllers).

Basierend auf einfacher Arithmetik ist eine SATA-SSD etwa dreimal schneller als eine herkömmliche SATA-HDD. NVMe-Lösungen sind noch effektiver - zehnmal oder mehr. Unter der Voraussetzung, dass zwei Festplatten mit RAID-Level 0 eine doppelte Leistung aufweisen und diese um 50% erhöhen, sind zwei SATA-SSDs 6-mal schneller und zwei NVMe-SSDs 20-mal schneller. Insbesondere ein Kingston KC2000 NVMe PCIe-Laufwerk kann sequenzielle Lese- und Schreibgeschwindigkeiten von bis zu 3200 MB / s erreichen, was im RAID 0-Format beeindruckende 6 GB / s erreichen wird. Die Lese- / Schreibgeschwindigkeit von zufälligen 4-KB-Blöcken wird von 350.000 IOPS auf 700.000 IOPS erhöht. Aber ... gleichzeitig bietet uns "Zero" RAID keine Redundanz.

Wir können sagen, dass zu Hause in der Regel keine Speicherredundanz erforderlich ist, sodass RAID 0 die am besten geeignete RAID-Konfiguration für RAID 0 ist. Dies ist eine zuverlässige Möglichkeit, die Leistung als Alternative zum Einsatz von Technologien wie Intel Optane SSDs deutlich zu steigern. Aber wie sich SSD-Lösungen bei den gängigsten RAID-Typen ("1", "5", "10", "50") verhalten, werden wir in unserem nächsten Artikel erläutern.

Dieser Artikel wurde mit der Unterstützung unserer Broadcom-Kollegen erstellt, die ihre Controller den Ingenieuren von Kingston zum Testen mit SATA / SAS / NVMe-Laufwerken der Enterprise-Klasse zur Verfügung stellen. Dank dieser freundlichen Symbiose müssen Kunden nicht an der Zuverlässigkeit und Stabilität der Kingston-Laufwerke mit Broadcoms HBA- und RAID-Controllern zweifeln.

Weitere Informationen zu Kingston-Produkten finden Sie auf der offiziellen Website des Unternehmens.

Source: https://habr.com/ru/post/de482068/


All Articles