Was ist RAID? Was sind die Arten von RAID?
RAID oder REdundant Einrray von Ichndependent (oder Ichpreiswert) DISKS ist eine Datenspeichertechnologie, die für Datenredundanz (Schutz vor Hardwarefehlern), Leistungssteigerung oder eine Kombination aus beidem verwendet wird.
Die verschiedenen RAID-Typen (Level) speichern Daten unterschiedlich, konzentrieren sich auf verschiedene Dinge (Fehlertoleranz, Durchsatz, Kosten) und sind daher für verschiedene Situationen geeignet. Und es geht auch um die Effektivität von RAID in der heutigen Zeit.
Mit dem Aufkommen alternativer Technologien wie SSDs und Erasure Coding stellt sich die Frage. Lohnt sich RAID noch? All diese und ähnliche Themen werden wir in diesem Artikel besprechen.
Was ist RAID? Wie funktioniert es?
RAID ist eine Speichertechnologie, die verwendet wird, um mehrere physische Datenträger als einen einzigen logischen Datenträger zu konfigurieren, der als logische Gerätenummer (Logical Unit Number, LUN) bezeichnet wird. Im Allgemeinen werden Daten in einem RAID-Setup auf mehreren Festplatten gespeichert, wobei das Hauptziel der Datenredundanz und/oder Leistungsverbesserung ist.
Datenredundanz erhöht die Zuverlässigkeit, indem sie als Sicherheitsnetz gegen Festplattenausfälle dient. Ebenso bietet die Kombination der Spezifikationen mehrerer Festplatten erhebliche Leistungssteigerungen für E/A-Vorgänge.
Natürlich ist dies nur eine grobe Beschreibung. Der Grad, in dem sich das Array auf Redundanz oder Leistung konzentriert, hängt von der Art des verwendeten RAID ab, der in der Regel als RAID-Level bezeichnet wird. Einige sind für einen exklusiven Zweck konzipiert, während andere das Beste aus beiden Welten bieten.
Das Standard-RAID-Level sind RAID 0 – RAID 6, aber es gibt zahlreiche andere RAID-Ebenen, die unter Kategorien wie Nested RAID und Non-Standard RAID fallen. Wir werden später ausführlicher auf all dies eingehen, aber lassen Sie uns es vorerst mit einer kurzen Einführung beenden.

Was die tatsächliche Funktionsweise von RAID betrifft, so implementiert es Techniken wie Daten-Striping, Festplattenspiegelung und Parität. Je nach RAID-Level kann eine oder eine beliebige Kombination dieser Techniken verwendet werden.
Daten-Striping ist der Prozess der Aufteilung aufeinanderfolgender Segmente logisch sequenzieller Daten auf verschiedene Festplatten. Durch den gleichzeitigen Zugriff auf die Daten, die auf mehrere Festplatten verteilt sind, können Sie den kombinierten Datendurchsatz nutzen, was im Wesentlichen zu einer verbesserten Leistung führt.
Widerspiegelnd ist selbsterklärend – die Daten von einer Festplatte werden auf eine andere kopiert. Dies macht die Daten auf einer Festplatte überflüssig, aber es ist beabsichtigt, dass Daten wiederhergestellt werden können, falls eine der Festplatten im Array ausfällt.
Parität ist eine Fehlerschutztechnik, die häufig verwendet wird, um Fehlertoleranz zu gewährleisten und Redundanz zu erreichen. Paritätsdaten werden entweder auf einer dedizierten Festplatte gespeichert oder über alle Festplatten verteilt, und wenn eine Festplatte im Array ausfällt, können Sie sie gegen eine neue Festplatte austauschen und die Paritätsdaten und Daten von den anderen Festplatten verwenden, um die verlorenen Daten wiederherzustellen.
Im allgemeinen sind grundlegende Xor wird mit den Daten der Festplatten durchgeführt, um die Paritätsdaten zu berechnen, aber bestimmte RAID-Level wie RAID 2 oder RAID 6 verwenden dedizierte Paritäten, über die wir weiter in diesem Artikel gesprochen haben.
Schließlich gibt es noch die Frage der RAID-Implementierung. Das RAID-Array kann entweder über einen dedizierten RAID-Controller, softwarebasierte Implementierungen (md, ZFS usw.) oder Firmware- und treiberbasierte Implementierungen verwaltet werden.
Physische RAID-Controller können teuer sein, während Software-Controller kostenlos oder erschwinglich sind. Da Software-Controller jedoch von der Hostmaschine abhängig sind, um Ressourcen zu erhalten, wirkt sich dies ebenfalls auf die RAID-Leistungssteigerung aus. Im Allgemeinen kann RAID 0 – 4 mit Software-Controllern verwaltet werden, während RAID 5 und höhere Level einen physischen RAID-Controller erfordern.
Standard-RAID-Level
Die RAID-Level haben sich im Laufe der Jahre weiterentwickelt, aber der derzeit akzeptierte Standard, wie er von SNIA gepflegt wird, kategorisiert RAID 0 – 6 als Standardniveaus.
RAID 0

RAID 0 verwendet Striping über mindestens zwei Festplatten. Da die Dateien auf mehrere Festplatten verteilt sind, wird auch der verfügbare Durchsatz vervielfacht. Aber aus dem gleichen Grund ist es auch viel anfälliger für Fehler, da jeder Laufwerksausfall bedeuten würde, dass alle Daten verloren gehen.
Da RAID 0 keine Redundanz bietet, ist some argumentieren, ob es überhaupt RAID genannt werden sollte. Da das Ausfallrisiko hoch ist, wird es nicht sehr oft verwendet, insbesondere bei einer großen Anzahl von Festplatten, da die Wahrscheinlichkeit eines Ausfalls noch höher wäre. Aber es hat immer noch seine Anwendungsfälle. Für Szenarien, in denen Sie sich nur für Leistung, wie beim Spielen, kann RAID 0 nützlich sein.
In einem RAID 0-Setup ist die Gesamtspeicherkapazität die Summe aller verwendeten Festplatten. Wenn beispielsweise zwei 1-TB-Festplatten verwendet werden, beträgt der verfügbare Speicherplatz 2 TB.
RAID 1

RAID 1 spiegelt die Daten von einer Festplatte auf die anderen Festplatten im Array. Das Verkaufsargument von RAID 1 ist seine Zuverlässigkeit, da das Array nicht ausfällt, solange mindestens ein Laufwerk betriebsbereit ist. Da es jedoch auf Zuverlässigkeit ausgelegt ist, leiden andere Faktoren wie Leistung und nutzbarer Speicher.
Da Daten von jeder der Festplatten im Array gelesen werden können, liegt die Leseleistung im Allgemeinen nahe am schnellsten Laufwerk im Array. Das Gleiche gilt nicht für die Schreibleistung, da alle Schreibänderungen auf alle Festplatten angewendet werden müssen.
Der nutzbare Speicher kann auch nur so groß sein wie die kleinste Festplatte im Array. Wenn beispielsweise ein Laufwerk mit 500 GB und 1 TB verwendet wird, beträgt der nutzbare Speicherplatz 500 GB, und 500 GB werden für die Spiegelung verwendet, während die anderen 500 GB ungenutzt bleiben.
RAID 2, 3, 4

RAID 2 verwendet Striping auf Bitebene über Festplatten mit dedizierter Hamming-Codeparität. Grundsätzlich wird jedes sequentielle Bit auf einem anderen Laufwerk gespeichert, während mindestens eine Festplatte zum Speichern von Paritätsdaten verwendet wird. Da die meisten modernen Speicherfestplatten den Fehlerkorrekturcode (ECC) enthalten, wird RAID 2 nicht mehr verwendet.
RAID 3 ist ähnlich, verwendet aber Striping auf Byteebene stattdessen, während ein dedizierter Datenträger zum Speichern von Paritätsdaten verwendet wird. RAID 3 wird ebenfalls selten verwendet, da es durch RAID 4 ersetzt wurde.
RAID 4 verwendet Striping auf Blockebene mit einem dedizierten Paritätsdatenträger. Da die Datenblöcke über Festplatten verteilt sind, können Leseanforderungen von mehreren Festplatten verarbeitet werden, was überlappende I/O ermöglicht. Während RAID 4 seine Vorteile gegenüber RAID 2 und 3 hat, wie E / A-Parallelität, wird es auch nicht häufig verwendet, da höhere Ebenen wie RAID 5 und 6 weitgehend bevorzugt werden.
RAID 5

RAID 5 verwendet Striping auf Blockebene mit Verteilte Parität, wobei die Paritätsdaten über die einzelnen Datenträger verteilt werden. RAID 5 erfordert mindestens 3 Festplatten, und selbst wenn ein Laufwerk ausfällt, kann die verteilte Parität verwendet werden, um das Array neu aufzubauen. RAID 5 bietet im Wesentlichen sowohl Leistungs- als auch Redundanzvorteile.
Das Schreiben von Paritätsdaten hat zwar einen gewissen Einfluss auf die Schreibleistung, ist aber nicht so stressig wie die niedrigeren RAID-Level, da alle Festplatten im Array Schreibanforderungen in RAID 5 verarbeiten können.
Trotz all seiner Eigenschaften hat RAID 5 einen großen Fehler: seine Fehleranfälligkeit. Wenn eine Festplatte ausfällt, kann die Wiederherstellung des Arrays mehrere Stunden oder sogar Tage dauern. Das noch größere Problem ist jedoch, dass bei der Rekonstruktion des Arrays die Daten von allen Festplatten gelesen werden müssen, wodurch die Möglichkeit besteht, dass ein zweites Laufwerk ausfällt, was zu einem vollständigen Datenverlust führen würde.
Es ist sehr unwahrscheinlich, dass zwei Laufwerke gleichzeitig ausfallen, aber es ist immer noch etwas, das Sie bei der Entscheidung über Ihr Setup berücksichtigen sollten. Daher ist es für eine optimale Zuverlässigkeit besser, sich an die höheren RAID-Level zu halten, die wir unten besprechen werden.
RAID 6

RAID 6 ähnelt RAID 5 insofern, als es Striping auf Blockebene mit verteilter Parität verwendet, aber es gibt einen entscheidenden Unterschied. Es verwendet Zwei Paritätsschemata statt einer. Die doppelte verteilte Parität ermöglicht es dem Array, trotz zweier Festplattenausfälle betriebsbereit zu bleiben. Die zusätzliche Ausfallsicherheit ist mit offensichtlichen Kosten verbunden, die Schreibleistung wird beeinträchtigt und der doppelte Speicherplatz wird zum Speichern von Paritätsdaten verwendet.
Bei einem kleinen Array wie 4 Festplatten (das Minimum für RAID 6) können Sie zwischen RAID 5 oder RAID 6 wählen, je nachdem, ob Leistung oder Zuverlässigkeit Priorität haben. Bei größeren Arrays wird jedoch dringend empfohlen, bei RAID 6 zu bleiben.
Natürlich auch RAIDie Zuverlässigkeit des D 6 ist nicht ausfallsicher. Mit zunehmender Datenträgergröße steigen auch die Wiederherstellungszeiten und damit auch die Wahrscheinlichkeit eines Datenträgerausfalls. Die Effektivität von RAID 6 nimmt ab, und bald könnte eine dreifache Parität erforderlich sein.
Verschachtelte RAID-Level

Nested RAID oder Hybrid RAID ist im Grunde eine Kombination verschiedener RAID-Level. Diese werden für zusätzliche Redundanz, Leistungssteigerung oder eine Kombination aus beidem verwendet.
Zum Beispiel mit RAID 10 (RAID 1+0), wobei 0 die Top-Arraywird zuerst eine Reihe von Festplatten gespiegelt, dann werden die Spiegel gestreift. RAID 01 (RAID 0+1) ist das Gegenteil, wobei 1 das oberste Array ist. Hier werden die Daten zuerst über die Festplatten verteilt, dann wird der Satz gespiegelt.
Es ist die gleiche Idee mit anderen verschachtelten RAID-Levels wie RAID 03, RAID 50, RAID 60 usw. Geschachteltes RAID geht im Allgemeinen nicht tiefer als eine Ebene, aber es gibt Ausnahmen wie RAID 100 (RAID 10+0), bei denen RAID 10-Arrays mit RAID 0 gestreift werden.
Und obwohl wir nicht ins Detail gehen werden, ist es auch erwähnenswert, dass nicht standardmäßiges RAID Ebenen existieren. Dabei handelt es sich meist um proprietäre Technologien, die für eine bestimmte Organisation oder ein bestimmtes Projekt entwickelt wurden. Einige Beispiele sind Linux MD RAID 10, RAID-Z und Hadoop.
RAID-Nutzung und die Zukunft

Es ist kein Geheimnis, dass Die Zukunft von RAID, wie die Dinge stehen, ist endlich. In den letzten Jahren sind Technologien wie Erasure Coding und SSDs entstanden, die einen besseren Datenschutz, eine bessere Leistung und Zuverlässigkeit bieten. Mit zunehmender Festplattengröße steigen auch die Wiederherstellungszeiten (Ausfallzeiten) und die Fehlerwahrscheinlichkeit beim Neuaufbau.
Und obwohl theoretisch nicht mehrere Festplatten zusammen ausfallen sollten, kann es viel wahrscheinlicher sein, wenn die Laufwerke derselben Marke den gleichen Umgebungsbedingungen ausgesetzt werden, als die meisten Leute denken.
Das heißt jedoch nicht, dass RAID bereits veraltet ist. In Unternehmensserverumgebungen mit großen Arrays, in denen die Verfügbarkeit wichtig ist, und im Allgemeinen, wenn Sie Ihr System auf die effizienteste Weise konfigurieren müssen, RAID ist immer noch sehr relevant.
Vor diesem Hintergrund gibt es ein paar Dinge zu beachten, wenn Sie sich RAID-Setups ansehen. Erstens ist Redundanz nicht dasselbe wie Backups. RAID hilft bei der Sicherstellung, garantiert aber nicht den Datenschutz. Es ist immer noch anfällig für menschliche Fehler oder Viren, und falls die Festplatten aus irgendeinem Grund verloren gehen, kann ein Offsite-Backup ein Lebensretter sein.
Zweitens, wenn Sie ausschließlich Wert auf Leistung legen, können Sie sich für RAID 0 entscheiden. RAID 1 eignet sich hervorragend für Redundanz, während RAID 5 das Beste aus beiden Welten bietet. Wenn Sie mehr Wert auf Zuverlässigkeit legen, was wichtig ist, wenn das Array größer wird, wären RAID 6 oder verschachtelte RAID-Level noch bessere Optionen, aber sie sind mit zusätzlichen Kosten verbunden, da mehr Festplatten für die höheren RAID-Level erforderlich sind.
Letztendlich geht es nur darum, die beste Balance zwischen Leistung, Schutz und Kosten für Ihre spezifischen Umstände zu finden.