Definition

RAID (Redundant Array of Independent Disks)

RAID (Redundant Array of Independent Disks) ist eine Möglichkeit, die gleichen Daten an verschiedenen Speicherplätzen auf mehreren Festplatten oder Solid-State-Laufwerken zu speichern, um die Daten im Falle eines Laufwerksausfalls zu schützen. Es gibt jedoch verschiedene RAID-Level, und nicht alle bieten Redundanz.

Funktionsweise von RAID

RAID funktioniert, indem Daten auf mehrere Platten verteilt werden und Input-/Output-Operationen (I/O) in ausgewogener Weise überlappen können, wodurch die Leistung verbessert wird. Da die Verwendung mehrerer Platten die mittlere Zeit zwischen den Ausfällen (Mean Time Between Failures, MTBF) erhöht, erhöht die redundante Speicherung von Daten auch die Fehlertoleranz.

RAID-Arrays erscheinen dem Betriebssystem (OS) als ein einziges logisches Laufwerk. RAID verwendet die Techniken der Plattenspiegelung (Mirroring) oder des Platten-Striping. Bei der Spiegelung werden identische Daten auf mehr als ein Laufwerk kopiert, also gespiegelt. Striping-Partitionen helfen bei der Verteilung von Daten auf mehrere Laufwerke. Der Speicherplatz jedes Laufwerks ist in Einheiten von einem Sektor (512 Byte) bis zu mehreren Megabyte unterteilt. Die Stripes aller Platten werden ineinander verschachtelt und der Reihe nach adressiert.

Bild eines RAID-Systems mit fünf Festplatteneinschüben.
Bild eines RAID-Systems mit fünf Festplatteneinschüben.

Plattenspiegelung und Platten-Striping können auch in einem RAID-Array kombiniert werden.

In einem Einzelanwendersystem, in dem große Datensätze gespeichert werden, sind die Stripes normalerweise so klein (vielleicht 512 Byte), dass ein einziger Datensatz alle Platten überspannt und auf den durch das gleichzeitige Lesen aller Platten schnell zugegriffen werden kann.

In einem Mehrbenutzersystem erfordert eine bessere Leistung einen Stripe, der breit genug ist, um den typischen oder maximal großen Datensatz aufzunehmen, so dass sich überlappende Platten-I/Os über die Laufwerke hinweg möglich sind.

RAID-Controller

Ein RAID-Controller ist ein Gerät, das zur Verwaltung von Festplattenlaufwerken in einem Speicherarray verwendet wird. Er kann als Abstraktionsebene zwischen dem Betriebssystem und den physischen Platten eingesetzt werden, wobei Gruppen von Platten als logische Einheiten dargestellt werden. Die Verwendung eines RAID-Controllers kann die Leistung verbessern und zum Schutz der Daten im Falle eines Absturzes beitragen.

Ein RAID-Controller kann hardware- oder softwarebasiert sein. Bei einem hardwarebasierten RAID-Produkt verwaltet ein physischer Controller das Array. Der Controller kann so ausgelegt sein, dass er Laufwerksformate wie SATA und SCSI oder andere unterstützt. Ein physischer RAID-Controller kann auch in die Hauptplatine eines Servers eingebaut werden.

Bei einem softwarebasierten RAID nutzt der Controller die Ressourcen des Hardwaresystems, wie zum Beispiel den Zentralprozessor und den Hauptspeicher. Obwohl er die gleichen Funktionen wie ein hardwarebasierter RAID-Controller ausführt, ermöglichen softwarebasierte RAID-Controller möglicherweise nicht so viel Leistungssteigerung und können die Leistung anderer Anwendungen auf dem Server beeinträchtigen.

Wenn eine softwarebasierte RAID-Implementierung nicht mit dem Bootvorgang eines Systems kompatibel ist und hardwarebasierte RAID-Controller zu kostspielig sind, ist ein Firmware- oder treiberbasiertes RAID eine weitere mögliche Option.

Firmware-basierte RAID-Controller-Chips befinden sich auf der Hauptplatine, und alle Operationen werden von der CPUausgeführt, ähnlich wie bei einem softwarebasierten RAID. Mit Firmware wird das RAID-System jedoch nur zu Beginn des Boot-Vorgangs implementiert. Sobald das Betriebssystem geladen ist, übernimmt der Controller-Treiber die RAID-Funktionalität. Ein Firmware-RAID-Controller ist zwar nicht so teuer wie eine Hardware-Option, belastet aber die CPU des Computers stärker. Firmware-basiertes RAID wird auch als hardwareunterstütztes Software-RAID, Hybridmodell-RAID und falsches (fake) RAID bezeichnet.

RAID-Level

Der RAID-Schutz wird in verschiedene RAID-Level unterteilt. Zunächst wurden sechs RAID-Level definiert: RAID 0 bis RAID 5. Dieses nummerierte System ermöglichte es den IT-Mitarbeitern, RAID-Versionen zu unterscheiden. Die Anzahl der Ebenen wurde seitdem erweitert und in drei Kategorien unterteilt: Standard-, Nested (verschachtelte) und nicht standardisierte RAID-Level.

Standard RAID-Level

RAID 0: Bei diesem Verfahren kommt Striping zum Einsatz, es bietet aber keine Redundanz. Die Performance ist hier am höchsten, doch es fehlt Fehlertoleranz.

RAID 0.

RAID 1: Dieser Typ ist auch als Disk-Mirroring bekannt. Er besteht aus mindestens zwei Laufwerken, die Daten doppelt speichern. Striping wird nicht vorgenommen. Die Lese-Performance erhöht sich, weil beide Platten gleichzeitig gelesen werden können. Die Schreib-Performance bleibt gleich. RAID-1 bietet die beste Kombination aus Performance und Fehlertoleranz in Systemen für mehrere Nutzer.

RAID 1.
RAID 1.

RAID 2: Bei diesem Typ kommt Striping über mehrere Platten zum Einsatz, wobei manche Platten Informationen zu Fehler-Prüfung und Behebung mittels des Error Correction Codes (ECC) speichern. Gegenüber RAID-3 bietet er keine Vorteile und wird nicht mehr verwendet.

RAID 2.
RAID 2.

RAID 3: Dieser Level nutzt Striping und verwendet ein Laufwerk zum Speichern von Paritätsinformationen (Parity). Die eingebetteten ECC-Informationen werden zur Entdeckung von Fehlern genutzt. Daten-Recovery ist möglich durch die Berechnung der exklusiven Informationen auf den anderen Laufwerken. Weil eine I/O-Operation alle Laufwerke gleichermaßen anspricht, ist bei RAID-3 kein überlappendes I/O möglich. Aus diesem Grund eignet es sich am besten für Einzelnutzersysteme mit langfristigen Anwendungen.

RAID 3.
RAID 3.

RAID 4: Bei diesem Typ kommen große Stripes zum Einsatz, so dass Anwender Einträge von jedem Einzellaufwerk lesen und bei Lese-Vorgängen die Vorteile von überlappendem I/O nutzen können. Weil alle Schreibvorgänge das Parity-Laufwerk aktualisieren müssen, ist hier keine I/O-Überlappung möglich. RAID 4 hat keine Vorteile gegenüber RAID 5.

RAID 4.
RAID 4.

RAID 5: Dieser Level basiert auf dem Paritäts-Block-Level-Striping. Die Paritätsinformationen werden über jedes Laufwerk verteilt (striped), so dass das Array auch dann noch funktioniert, wenn ein Laufwerk ausfallen sollte. Die Architektur des Arrays ermöglicht Lese- und Schreibvorgänge, die sich über mehrere Laufwerke erstrecken - was zu einer besseren Leistung als die eines einzelnen Laufwerks führt, aber diese ist nicht so hoch wie die eines RAID-0-Arrays. Für RAID 5 sind mindestens drei Platten erforderlich, aber aus Leistungsgründen wird häufig empfohlen, mindestens fünf Platten zu verwenden.

RAID-5-Arrays werden im Allgemeinen als eine schlechte Wahl für die Verwendung auf schreibintensiven Systemen angesehen, da die Leistungsauswirkungen im Zusammenhang mit dem Schreiben von Paritätsdaten zu groß sind. Wenn eine Festplatte ausfällt, kann es lange dauern, bis ein RAID-5-Array wieder aufgebaut ist.

RAID 5.
RAID 5.

RAID 6: Dieser Typ ähnelt RAID 5, enthält aber eine zweite Parity, die auf mehrere Laufwerke verteilt ist und damit eine extrem hohe Toleranz gegenüber Fehlern und Laufwerksausfällen bewirkt. Durch die Verwendung zusätzlicher Parität kann das Array auch dann weiter funktionieren, wenn zwei Platten gleichzeitig ausfallen. Dieser zusätzliche Schutz ist jedoch mit Kosten verbunden. RAID-6-Arrays haben oft eine langsamere Schreibleistung als RAID-5-Arrays.

RAID 6.
RAID 6.

Nested RAID-Level

Einige RAID-Level werden als verschachteltes (Nested) RAID bezeichnet, weil sie auf einer Kombination von RAID-Leveln basieren. Hier sind einige Beispiele für verschachtelte RAID-Level.

RAID 10 (RAID 1+0): Die Kombination aus RAID 1 und RAID 0 wird oft als RAID 10 bezeichnet. Die Performance ist höher als bei RAID 1, aber auch die Kosten. Es gibt zwei Bei RAID 1+0 werden die Daten gespiegelt und die Spiegel in Stripes aufgeteilt.

RAID 10 (RAID 1+0)
RAID 10 (RAID 1+0)

RAID 01 (RAID 0+1): RAID 0+1 ist ähnlich wie RAID 1+0, außer dass die Datenorganisationsmethode etwas anders ist. Anstatt einen Spiegel zu erstellen und dann den Spiegel zu streifen, erstellt RAID 0+1 einen Stripe und spiegelt diesen dann.

RAID 03 (RAID 0+3): Dieser RAID-Level ist auch bekannt als RAID 53 oder RAID 5+3. Dieser Level verwendet Striping (im Stil von RAID 0) für die virtuellen Plattenblöcke von RAID 3. Dies bietet eine höhere Leistung als RAID 3, jedoch zu höheren Kosten.

RAID 50 (oder RAID-5+0): Diese Konfiguration kombiniert verteilte RAID-5-Parität mit RAID-0-Striping, um die RAID 5-Leistung zu verbessern, ohne den Datenschutz zu verringern.

Nicht standardisierte RAID-Level

Nicht standardisierte RAID-Level unterscheiden sich von den Standard-RAID-Levels und werden in der Regel von Unternehmen oder Organisationen für den hauptsächlich proprietären Gebrauch entwickelt. Hier sind einige Beispiele.

RAID 7: Ein nicht standardisierter RAID-Level, der auf RAID 3 und RAID 4 basiert und den Cache-Speicher ergänzt. Er umfasst ein eingebettetes Echtzeit-Betriebssystem als Controller, Caching über einen Hochgeschwindigkeitsbus und andere Merkmale eines eigenständigen Computers.

Adaptives RAID: Bei diesem Level kann der RAID-Controller entscheiden, wie die Parität auf den Festplatten gespeichert werden soll. Er wählt zwischen RAID 3 und RAID 5, je nachdem, welcher RAID-Typ bei der Art der auf die Platten geschriebenen Daten besser funktioniert.

Linux MD RAID 10: Dieser Level, die vom Linux-Kernel bereitgestellt wird, unterstützt die Erstellung verschachtelter und nicht standardisierter RAID-Arrays. Linux-Software-RAID kann auch die Konfiguration von Standard-RAID 0, RAID 1, RAID 4, RAID 5 und RAID 6-Konfigurationen ermöglichen.

Vorteile der RAID-Technologie

Zu den Vorteilen der RAID-Technologie gehören unter anderem die folgenden:

  • Eine Verbesserung der Kosteneffizienz, da preiswertere Platten in großer Zahl verwendet werden.
  • Die Verwendung mehrerer Festplatten ermöglicht es, die Leistung einer einzelnen Festplatte durch RAID zu verbessern.
  • Erhöhte Computergeschwindigkeit und Zuverlässigkeit nach einem Absturz - je nach Konfiguration.
  • Lese- und Schreibvorgänge können schneller durchgeführt werden als mit einer einzelnen Festplatte mit RAID 0. Dies liegt daran, dass ein Dateisystem aufgeteilt und auf Laufwerke verteilt ist, die zusammen an derselben Datei arbeiten.
  • Mit RAID 5 wird die Verfügbarkeit und Ausfallsicherheit erhöht. Mit der Spiegelung können RAID-Arrays zwei Laufwerke mit denselben Daten haben, so dass sichergestellt ist, dass das eine Laufwerk weiter funktioniert, wenn das andere ausfällt.

Nachteile der RAID-Technologie

Diese Technologie hat allerdings auch einige Nachteile. Dazu gehören unter anderem diese:

  • Verschachtelte (Nested) RAID-Level sind in der Implementierung teurer als herkömmliche RAID-Level, da sie eine größere Anzahl von Festplatten erfordern.
  • Die Kosten pro Gigabyte von Speichergeräten sind bei verschachtelten RAID-Levels höher, da viele der Laufwerke für die Redundanz verwendet werden.
  • Wenn ein Laufwerk ausfällt, steigt die Wahrscheinlichkeit, dass ein anderes Laufwerk im Array ebenfalls bald ausfällt, was wahrscheinlich zu Datenverlust führen würde. Dies liegt daran, dass alle Laufwerke in einem RAID-Array gleichzeitig installiert sind, so dass alle Laufwerke dem gleichen Verschleiß unterliegen.
  • Einige RAID-Level (wie RAID 1 und 5) können nur einen einzigen Laufwerksausfall aushalten.
  • RAID-Arrays und die darin enthaltenen Daten befinden sich in einem anfälligen Zustand, bis ein ausgefallenes Laufwerk ersetzt und die neue Platte mit Daten bestückt wird.
  • Da Laufwerke heute eine viel größere Kapazität haben als zu Beginn der Einführung von RAID, dauert es viel länger, ausgefallene Laufwerke wieder aufzubauen.
  • Wenn ein Plattenausfall auftritt, besteht die Möglichkeit, dass die verbleibenden Platten fehlerhafte Sektoren oder unlesbare Daten enthalten - was es unmöglich machen kann, das Array vollständig wiederherzustellen.

Verschachtelte RAID-Level lösen diese Probleme jedoch durch ein höheres Maß an Redundanz, wodurch die Wahrscheinlichkeit eines Ausfalls auf Array-Ebene aufgrund gleichzeitiger Festplattenausfälle deutlich verringert wird.

Geschichte von RAID

Der Begriff RAID wurde 1987 von David Patterson, Randy Katz und Garth A. Gibson geprägt. In ihrem technischen Bericht von 1988, „A Case for Redundant Arrays of Inexpensive Disks (RAID)“, argumentierten die drei, dass ein Array preiswerter Laufwerke die Leistung der besten Festplattenlaufwerke jener Zeit übertreffen könnte. Durch die Verwendung von Redundanz könnte ein RAID-Array zuverlässiger sein als jedes einzelne Laufwerk.

Während dieser Bericht dem Konzept erstmals einen Namen gab, wurde die Verwendung von redundanten Festplatten bereits von anderen diskutiert. Gus German von Geac Computer und Ted Grunau bezeichneten diese Idee zunächst als MF-100. IBMs Norman Ken Ouchi meldete 1977 ein Patent für die Technologie an, die später den Namen RAID 4 erhielt. 1983 lieferte Digital Equipment Corp. die Laufwerke aus, die zu RAID 1 werden sollten, und 1986 wurde ein weiteres IBM-Patent für das, was zu RAID 5 werden sollte, angemeldet. Patterson, Katz und Gibson untersuchten auch, was Unternehmen wie Tandem Computers, Thinking Machines und Maxstor taten, um ihre RAID-Taxonomien zu definieren.

Während die im Bericht von 1988 aufgeführten RAID-Level im Wesentlichen bereits verwendete Technologien benannten, trug die Schaffung einer gemeinsamen Terminologie für das Konzept dazu bei, den Datenspeichermarkt zur Entwicklung weiterer RAID-Array-Produkte anzuregen.

Laut Katz wurde der Begriff „preiswert“ (inexpensiv) in der Abkürzung bald durch „unabhängig“ (independent) durch Anbieter aus der Industrie ersetzt, da die Auswirkungen der niedrigen Kosten zu spüren waren.

Die Zukunft von RAID

RAID ist nicht tot, aber viele Analysten sagen, dass die Technologie in den letzten Jahren veraltet ist. Alternativen wie Erasure Coding bieten einen besseren Datenschutz (wenn auch zu einem höheren Preis) und wurden mit der Absicht entwickelt, die Schwächen von RAID zu beheben. Mit zunehmender Laufwerkskapazität steigt die Wahrscheinlichkeit von Fehlern bei einem RAID-Array, und die Kapazitäten nehmen ständig zu.

Der zunehmende Einsatz von Solid-State-Laufwerken (SSDs) wird den RAID-Bedarf vermindern angesehen. SSDs haben keine beweglichen Teile und fallen nicht so häufig aus wie Festplattenlaufwerke. SSD-Arrays verwenden häufig Techniken wie zum Beispiel Wear Leveling, anstatt sich beim Datenschutz auf RAID zu verlassen. Hyperscale-Computing macht auch RAID überflüssig, da redundante Server anstelle von redundanten Laufwerken verwendet werden.

Dennoch ist RAID nach wie vor ein fester Bestandteil der Datenspeicherung, und die großen Technologieanbieter bringen immer noch RAID-Produkte auf den Markt. IBM hat IBM Distributed RAID mit seiner Spectrum Virtualize V7.6 veröffentlicht, die eine Steigerung der RAID-Leistung verspricht. Die neueste Version der Intel Rapid Storage-Technologie unterstützt RAID 0, RAID 1, RAID 5 und RAID 10, und die NetApp ONTAP Management-Software nutzt RAID zum Schutz vor bis zu drei gleichzeitigen Laufwerksausfällen. Die Dell EMC Unity-Plattform unterstützt außerdem RAID 1/0, RAID 5 und RAID 6.

Diese Definition wurde zuletzt im April 2020 aktualisiert

Erfahren Sie mehr über Disk-Systeme

ComputerWeekly.de
Close