RAID im Detail
Category : Tutorials
Published by Marc Büchel on 29.06.06
Mittlerweile setzen viele Anwender entweder auf ein Raid Level 0, kurz Raid 0, um die Performance ihres Systems zu erhöhen, oder ein Raid 1, um eine erhöhte Datensicherheit zu gewährleisten. Wenige von ihnen wissen aber, wie ein Raid-Array wirklich funktioniert. In Diskussionsforen liest man anschliessend die wildesten Theorien. Der folgende Artikel zeigt eine Übersicht aktueller und vergangener Raid-Techniken.

Einleitung

Mittlerweile setzen viele Anwender entweder auf ein Raid Level 0, kurz Raid 0, um die Performance ihres Systems zu erhöhen, oder ein Raid 1, um eine erhöhte Datensicherheit zu gewährleisten. Wenige von ihnen wissen aber, wie ein Raid-Array wirklich funktioniert. In Diskussionsforen liest man anschliessend die wildesten Theorien. Der folgende Artikel zeigt eine Übersicht aktueller und vergangener Raid-Techniken. Die heute gängigen und gebräuchlichen behandeln wir etwas ausfühlicher als diejenigen, welche bereits der Prähistorie angehören.


Begrifferklärung und Geschichte

1987 veröffentlichten Patterson, Gibson und Katz an der University of California (Berkeley), eine Möglichkeit, kostengünstige Festplatten im Verbund als logische Laufwerke zu betreiben und somit die Zugriffszeiten sowie die Redundanz des Systems zu erhöhen. Patterson, Gibson und Katz sprachen damals von einem "Redundant Array of Inexpensive Disks (RAID)". Heute spricht man mittlerweile von einem "Redundant Array of Independet Disks".

Die konsequente Weiterentwicklung des RAID-Konzepts führte zunehmend zum Einsatz in Serverumgebungen, die einen erhöhten Datendurchsatz sowie eine erhöhte Ausfallsicherheit benötigen. Auf der Strecke blieb dabei der Aspekt der Kosteneinsparungen. Der heute gängigste Einsatz von RAID-Systemen entspricht dabei der Möglichkeit, während dem laufenden Betrieb Festplatten zu wechseln: Redundant Array of Independent Disks.

Anhand von RAID-Systemen können zwei oder mehrere physikalische Festplatten zu logischen Laufwerken vereint werden. Diese verfügen anschliessend, je nach Umständen, über mehr Speicherplatz oder einen höheren Datendurchsatz. Ein RAID-System erzeugt im Allgemeinen gezielt redundante Information, damit beim Ausfall einer einzelnen Komponente das RAID an und für sich seine Funktion behält. Diesbzüglich gilt die alte Weisheit: Keine Regel ohne Ausnahme.
[pagebreak]
Hardware RAID

Wenn die Zusammenarbeit der Festplatten über einen spezifischen RAID-Contoller gesteuert, respektive organisiert wird, spricht man von einem Hardware-RAID.

In Serverumgebungen befinden sich Hardware-RAID-Controller meist physikalisch in der Nähe der Festplatten, im selben Gehäuse, in dem sich auch die Festplatten befinden.
Heutzutage häufig zum Einsatz kommen RAID 0 und RAID 1 Systeme in Heimcomputern. In diesem Fall befindet sich der RAID-Controller in Form eines Chips direkt auf dem Mainboard oder als Steckkarte in einem PCI-Steckplatz.


Software RAID

Wenn die Zusammenarbeit der Festplatten über eine Software geregelt wird, spricht man von einem Software-RAID. Die meisten aktuellen Betriebssysteme Apple Mac OS X, Microsoft Windows ab NT, SUN Solaris, ... unterstützen eine solche Funktion. Bei einem Software-RAID übernimmt der Computer die Verwaltung der angeschlossenen Komponenten. Der eigentliche Vorteil eines Software-RAIDs liegt darin, dass kein RAID-Controller benötigt wird. Dies birgt aber auch den grössten Nachteil in sich: Da keine spezifische Hardware verwendet wird, belasten die entsprechenden Prozesse direkt die CPU und den Arbeitsspeicher.
[pagebreak]
Gängige und heute verbreitete RAID-Level

RAID 0 - Striping, keine Redundanz

RAID 0 bringt eine erhebliche Steigerung des Datendurchsatzes mit sich, da mehrere (in den meisten Fällen zwei) Festplatten zusammengeschlossen werden und Schreib- sowie Lesevorgänge parallel ausgeführt werden können. Englisch striping bedeutet frei übersetzt in Streifen zerlegen. Dies widerspiegelt auch die Arbeitsweise eines RAID 0. Zu schreibende Daten werden auf die beiden Caches verteilt, damit die einzelnen Festplatten im Endeffekt weniger zu tun haben und so die Performance gesteigert werden kann. Es werden aber nicht nur Schreib- sondern auch Leseoperationen beschleunigt.
Striping-Granularität, Chunk-Size oder Interlace-Size sind Synonyme und bezeichnen für die Grösse der Datenblöcke, die man angibt, wenn man ein RAID konfiguriert. Problematisch bei einem RAID 0 ist der Fakt, dass wenn eine Festplatte ausfällt, die Daten nicht rekonstruiert werden können. Streng genommen ist ein RAID 0 somit kein RAID, da keine Redundanz gegeben ist.
Ein RAID 0 sollte nur konfiguriert werden, wenn grosse Datenmengen möglichst schnell verarbeitet werden müssen und die Datensicherheit zweitrangig ist, sprich man seine Daten regelmässig einem Backup unterzieht. Die Ausfallswahrscheinlichkeit eines RAID 0 ergibt sich durch eine Multiplikation derjenigen durch die Anzahl verwendeter Festplatten.


RAID 1 - Mirroring - Spiegelung

Ein RAID 1-Array bietet volle Redundanz der Daten, wobei die Kapazität des Arrays höchstens so gross ist wie die kleinste darin enthaltene Festplatte. Auch ein RAID 1 besteht aus zwei oder mehreren Festplatten, wobei in diesem Falle die Festplatten dieselben Daten enthalten. Sollte eine der im RAID 1 enthaltenen Festplatten ausfallen, liefern die anderen weiterhin Daten. Ein solcher Setup ist vor allem für Echtzeitanwendungen unverzichtbar. Ein Totalverlust der Daten kann nur Zustande kommen, wenn alle Devices ausfallen.
Schliesst man alle Festplatten an demselben Controller an, spricht man von Mirroring, wobei immer nur ein Zugriff pro Controller ausgeführt werden kann. Dies hat zur Folge, dass die Redundanz eines Sektors nicht gegeben ist. Wenn aber die Daten auf mindestens zwei der im RAID 1 vorhandenen Festplatten geschrieben wurden, ist die Redundanz gewährleistet. Ein RAID 1 kann auch Controller-übergreifend konfiguriert werden. In einem solchen Fall wird aber nicht mehr von Mirroring, sondern von Duplexing gesprochen.


RAID 5

RAID 5 gilt als die beliebteste aller RAID-Varianten, da die Perfomance gesteigert werden kann, Redundanz vorhanden ist und zudem Kosten gespart werden können. Liegen viele sequenzielle und zufällige Schreibzugriffe an, leidet darunter die Performance. In einer solchen Umgebung sollte man zu einer RAID 0+1-Konfiguration greifen. Im direkten Vergleich mit RAID 5 ist RAID 0+1 teurer, da ein RAID 5 bereits mit drei Festplatten konfiguriert werden kann. Die nutzbare Gesamtkapazität eines RAID 5-Arrays errechnet sich anhand der Formel s x (n - 1), wobei "s" die kleinste Platte im Array darstellt und "n" die Anzahl der Platten. Jeder n-te Datenblock wird für die Paritätsdaten verwendet (Redundanz).

Beispiele:
3 Festplatten à 200 GB
--> 400 GB Nutzdaten und 200 GB Redundanz
5 Festplatten à 80 GB
--> 320 GB Nutzdaten und 80 GB Redundanz

Wie bei RAID 0 werden die Nutzdaten auf alle Festplatten verteilt. Die Partitätsinformationen werden ebenfalls auf alle Festplatten verteilt und nicht auf einer konzentriert, wie beispielsweise bei RAID 4. Ein RAID 5 erfordert einen leistungsfähigen RAID-Controller und hat beim Schreiben der Daten eine leichte bis erhebliche Verminderung der Datenrate (abhängig von der durchschnittlichen Grösse der Daten), verglichen mit einer RAID 0-Konfiguration, zur Folge.
Ein RAID 5 gewährleistet Datensicherheit beim Ausfall von maximal einer Festplatte. Nach und während des Rebuilds auf die Hotspare-Platte lässt die Performance deutlich nach. Der Rebuild dauert bei RAID 5 wesentlich länger als bei einem RAID 1, da die Daten aus den Parity-Informationen rekonstruiert werden müssen. Je mehr Festplatten in einem RAID 5-Verbund sind, desto länger dauert das Rebuild und desto schlechter ist die Performance während eines Defekts.
[pagebreak]
Andere bzw. ältere RAID-Level

RAID 2

Bei einem RAID 2 werden die Daten in Bitfolgen fester Grösse zerlegt. Mittels eines Hamming-Codes werden eben diese Bitfolgen auf grössere Bitfolgen abgebildet, wobei 8 Bit für Daten und 2 Bit für den ECC-Code verwendet werden. Prinzipiell erlaubt ein RAID 2 einen hohen Datendurchsatz, da die einzelnen Bits des Hamming-Codewortes auf einzelne Platten aufgeteilt werden. Der massive Nachteil ist aber, dass die Anzahl der verwendeten Platten eine Vielzahl der Hamming-Codewortlänge sein muss, sprich im Minimum zehn Festplatten.
RAID 2 spielt mittlerweile in der Praxis keine Rolle mehr.


RAID 3

RAID 3 wird als Vorläufer des RAID 5 bezeichnet. Hierbei wird die Redundanz auf einer zusätzlichen Festplatte gespeichert, wobei die Redundanz die bitweise Addition der einzelnen Bits darstellt.

Besteht ein RAID 3-Array aus n Datenträgern und einer Parity-Festplatte (n+1), so werden beim Ausfall einer der ersten n Festplatten alle Daten auf die n-te Festplatte zurück geschrieben. Sollte die Parity-Festplatte selbst ausfallen, werden nach dem Ersetzen derjenigen die Parity-Bits neuberechnet und auf die (n+1)-te Festplatte geschrieben.


RAID 4

Bei einem RAID 4-Verbund werden analog zum RAID 3-Verbund Paritätsinformationen erstellt, die auf eine dedizierte Festplatte geschrieben werden. Es werden aber nicht wie bei RAID 3 einzelne Bytes, sondern grössere Chunks auf die Parity-Festplatte geschrieben.

RAID 4 bietet den Vorteil, dass bei einem Ausfall der Datenplatte(n) eine "vorgenullte" Datenfestplatte eingesetzt werden kann. Hierdurch kann eine rechenintensive Wiederherstellung umgangen und das RAID 4-Array ohne Unterbruch oder Einschränkungen weiterbetrieben werden.
Bei einem klassischen RAID 4-Verbund besteht der Nachteil, wie bei einem RAID 3 darin, dass die Parity-Festplatte bei allen Schreib- und Lesevorgängen beteiligt ist und dadurch die Performance durch die Parity-Disk limitiert wird. Des Weiteren steigt die Ausfallwahrscheinlichkeit der Parity-Disk mit deren Mehrnutzung.


RAID 6

Im direkten Vergleich zu RAID 5 verkraftet ein RAID 6 den Ausfall zweier Festplatten. Dabei wird nicht eine, sondern zwei Parity-Informationen berechnet und über die Platten verteilt, so dass Daten und Paritätswerte blockweise auf den unterschiedlichen Platten untergebracht sind. Die Anzahl Festplatten berechnet sich aus n+2 für einen Dateninhalt von n Festplatten.
Der Nachteil eines RAID 6 liegt im hohen Rechenaufwand gegenüber RAID 5. Bei einem RAID 5 werden für ein Parity-Bit die Daten aus einer Daten-Zeile addiert und bei erforderlicher Resynchronisation die Daten aus einer Daten-Zeile per Addition zurück resynchronisiert. Im Vergleich dazu muss bei einem RAID 6 das Parity-Bit über mehrere Daten-Zeilen berechnet werden, was Matrizen und Umkehrmatizen erfordert und somit den Rechenaufwand exponentiell ansteigen lässt.


RAID 7

Bei einem RAID 7 läuft im Controller ein lokales Echtzeitbetriebssystem ab, das die Lese- sowie Schreibvorgänge steuert. RAID 7 unterstützt zusätzlich die Verwendung mehrerer Paritätsinformationen wie bei RAID 6. RAID 7 findet kaum Verwendung.


RAIDn

RAIDn wurde von der Inostor Corp entwickelt, einer Tochter der Tandberg Data. Die Besonderheit von RAIDn besteht darin, dass die starre Definition der RAID-Level aufgehoben wird.

Ein RAIDn wird durch die Gesamtzahl der Festplatten (n) definiert sowie der Anzahl Festplatten, die ohne Datenverlust ausfallen dürfen (m).

Gemäss dieser Definition können die Kennwerte des RAIDs folgendermassen berechnet werden:

- Lesegeschwindigkeit = n x Lesegeschwindigkeit der Einzelplatte
- Schreibgeschwindigkeit = (n - m) x Schreibgeschwindigkeit der Einzelplatte
- Kapazität = (n - m) x Kapazität der Einzelplatte

Weitere spezielle Definitionen wurden wie folgt festgelegt:

- m = 0 --> RAID 0
- m = 1 --> RAID 5
- m = n/2 --> RAID 10
[pagebreak]
Kombinationen verschiedener RAID-Level - Teil 1

RAID 00

RAID 00 wurde von IBM entwickelt und ermöglicht eine noch höhere Performance als RAID 0. Dabei besteht ein RAID 00 aus mindestens vier Festpllaten, wobei ein RAID 00-Verbund ein grosses RAID 0 (Upper-Level) aus mehreren kleinen RAID 0 (Lower Level) bildet.


RAID 0+1

Ein RAID 0+1-Array ist ein RAID 1 über mehrere RAID 0. Der Vorteil eines RAID 0+1-Verbundes ist ganz klar, dass die Eigenschaften von RAID 0 und RAID 1 miteinander verbunden werden. So verfügt ein RAID 0+1 über eine erhöhte Sicherheit sowie eine gesteigerte Performance. Ein RAID 0+1-Verbund lässt sich entgegen landläufigen Behauptungen bereits aus drei Festplatten konfigurieren. Dabei werden jeweils 50% der Kapazität mit Nutzdaten belegt und die übrigen 50% jeder Platte enthalten eine Kopie der Nutzdaten einer anderen Platte. Die Nutzdaten sowie die gespiegelten Daten werden gestriped.

Beispiel:
Platte 0: 50% Nutzdaten + 50% Spiegelung der Nutzdaten Platte 2
Platte 1: 50% Nutzdaten + 50% Spiegelung der Nutzdaten Platte 0
Platte 2: 50% Nutzdaten + 50% Spielgeung der Nutzdaten Platte 1

Beim Ausfall einer Platte sind immer noch alle Daten vorhanden.


RAID 10

Ein RAID 10-Verbund ist ein RAID 0 über mehrere RAID 1. Dabei werden wie bei RAID 0+1 die Eigenschaften beider RAIDs kombiniert (Sicherheit und erhöhte Performance).
Ebenfalls wie bei RAID 0+1 werden mindestens vier Festplatten für ein RAID 10 benötigt. Aufgrund dessen, dass bei einem RAID 10 nur ein Teil der Daten rekonstruiert werden muss, gestaltet sich eine Rekonstruktion schneller als bei einem RAID 0+1.


RAID 05

Ein RAID 05-Array besteht aus aus einem RAID-5 Array, das aus mehreren RAID 0 besteht. Dabei werden mindestens sechs Festplatten benötigt.


RAID 15

Ein RAID 15-Array besteht aus einem gestripten Satz mit Parität und mehrfach widergespiegelten Paaren als Bestandteile. Das Konzept ist ähnlich einem RAID 10, ausser dass das Striping mit einer Parität erfolgt. Konfiguriert man ein RAID 15, so können gleichzeigtig bis zu drei Festplatten ausfallen und die Datensicherheit ist immer noch gewährleistet. Ein RAID 15 besteht aus mindestens sechs Festplatten.


RAID 1E

Bei einem RAID 1E werden einzelne Datenblöcke auf die jeweils nächste Festplatte gespiegelt. Bei einer solchen Konfiguration dürfen weder zwei benachbarte noch die erste und die letzte Festplatte gleichzeitig ausfallen. Um ein RAID 1E zu konfigurieren, wird immer eine ungerade Anzahl Festplatten benötigt, wobei sich die nutzbare Kapazität um die Hälfte reduziert.


RAID 1E0

Bei einem RAID 1E0 werden mehrere RAID 1E gestriped, sprich mit einem RAID 0 verknüpft. Die maximale Anzahl der Festplatten, die ausfallen dürfen, sowie die Kapazität des Verbundes entsprechen dem zugrundeliegenden RAID 1E.


RAID 30

RAID 30 wurde ursprünglich von AMI entwickelt. Es stellt eine gestripte Variante von RAID 3 dar, sprich ein RAID 0, welches mehrere RAID 3 verknüpft.
Ein RAID 30-Verbund benötigt mindestens sechs Festplatten (zwei Legs mit je drei Festplatten). Es darf eine Festplatte in jedem Leg ausfallen.


RAID 45

Ein RAID 45-Array fasst mehrere RAID 4 mit einem RAID 5 zusammen. Dazu werden mindestens drei RAID 4-Legs à drei Festplatten benötigt, sprich mindestens neun Festplatten.
RAID 45 bietet eine sehr hohe Datensicherheit und wird nur in grossen Festplattenverbänden eingesetzt. Es dürfen drei beliebige Festplatten, zusätzlich eine Festplatte in jedem Leg und dazu noch ein komplettes Leg ausfallen.
[pagebreak]
Kombinationen verschiedener RAID-Level - Teil 2

RAID 50

Ein RAID 50-Array besteht aus einem RAID 0-Verbund, der aus mehreren gespripten RAID 5 besteht. Es werden mindestens sechs Festplatten benötigt. Ein RAID 50 verfügt über sehr hohe Sicherheit sowie über eine hohe Performance. Der Anwendungsbereich liegt bei Datenbanken, wo Redundanz und Schreibperformance im Vordergund stehen.


RAID 51

Bei einem RAID 51-Verbund wird ein RAID 5 gespiegelt, sprich eines oder mehrere RAID 5 werden mit einem RAID 1 verknüpft.

Verwendet man einen RAID 51-Verbund mit acht Festplatten, so können bis zu drei beliebige Festplatten gleichzeitig ausfallen. Des Weiteren können maximal fünf Festplatten ausfallen, sofern keine aus dem gespiegelten RAID 5-Verbund betroffen ist/sind.


RAID 55

Bei einem RAID 55-Verbund werden mehrere RAID 5-Systeme über ein weiteres RAID 5 zu einem RAID 55 verknüpft. Der Vorteil zu einem RAID 51 ist beispielsweise ein geringerer Overhead und die Lesegeschwindigkeit der Daten.

Verwendet man einen RAID 55-Verbund mit neun Festplatten, so können drei beliebige Festplatten gleichzeitig ausfallen. Des Weiteren können fünf Festplatten ausfallen. Die kleinste RAID 55-Variante besteht aus mindestens neun Festplatten zu je drei Legs à drei Festplatten.


RAID 5E

RAID 5E ist die Abkürzung für RAID 5 Enhanced. Diese Technik wird seit langem von IBM eingesetzt. Mittlerweile aber wird RAID 5E durch RAID 5EE ersetzt.

Bei einem RAID 5E wird ein RAID 5 mit einem Hot-Spare kombiniert. Dabei wird der Hot-Spare nicht als separates Laufwerk ausgeführt, sondern auf die einzelnen Platten verteilt. In anderen Worten wird auf jeder Festplatte Speicherplatz für den Fall eines Ausfalles reserviert. Sollte nun eine Festplatte ausfallen, so wird der Inhalt im freien Speicherplatz wiederhergestellt.
Ein RAID 5E bietet im Vergleich zu einem RAID 5 eine bessere Performance, da alle Platten ständig genutzt werden, sowie die üblicherweise leer mitlaufende Hot-Spare-Platte.


RAID 5EE

Bei einem RAID 5EE wird nicht wie bei einem RAID 5E der freie Speicherplatz am Ende der Festplatten reserviert, sondern diagonal über die Platten verteilt. Dies hat zur Folge, dass bei einem Ausfall eine höhere Performance bei der Wiederherstellung der Daten gegeben ist.


Matrix RAID

Mit der Intel ICH6R-Southbridge Mitte 2004 wurde erstmals eine neue Technologie namens "Matrix-RAID" integriert. Dabei sollen die Vorteile von RAID 0 und RAID 1 anhand von zwei Festplatten vereint werden und nicht wie üblich anhand von deren vier. Zu diesem Zweck werden die Festplatten in je zwei Partitionen unterteilt. Ein Bereich kann nun auf die andere Festplatte gespiegelt werden, während im anderen Bereich die Daten aufgeteilt werden können.
Verwendet man mehr als zwei Festplatten in einem Matrix-RAID, so kann man auch andere RAID-Systeme konfigurieren, ab drei Festplatten beispielsweise ein RAID 5.
[pagebreak]
Zusammenfassung

Die im Heimbereich verbreitetsten RAID-Level sind zweifelsohne RAID 0, RAID 1 sowie RAID 0+1. In Kleinunternehmen finden RAID 5-Systeme aufgrund ihrer Kosteneffizienz Verwendung. Im High-End-Bereich angesiedelt sind beispielsweise RAID 50 sowie RAID 5EE.

Ein interessantes Konzept stellt aufgrund seiner Modularität RAIDn dar. Tandberg Data bietet mit seinem StorageCab ein RAIDn basiertes System, welches auf maximal n = 9 Festplatten baut.

Interessant ist auch die Rückverfolgung des Entstehungsprozesses von RAID 5. Dabei wurde erst RAID 3 entwickelt, bei dem die Paritätsinformationen in Form von einzelnen Bits auf einer dedizierten Festplatte gespeichert wurden. Später kam RAID 4. Die Paritätsinformationen wurden immer noch auf eine dedizierte Festplatte geschrieben, jedoch nicht mehr in Form einzelner Bits, sondern in Form von Chunks, sprich grösseren Blöcken, was die Verwandtheit zu RAID 5 untermalt. RAID 3 und RAID 4 gemein war ein "Bottleneck" (Flaschenhals) bezüglich der Performance der Parity-Festplatte, sowie die erhöhte Ausfallwahrscheinlichkeit derjenigen aufgrund deren Mehrnutzung. RAID 5 brachte schlussendlich die Vorteile mit sich, dass die Paritätsinformationen diagonal über die einzelnen Festplatten verteilt geschrieben, die Performance gesteigert und die Resynchronisierung nach einem Ausfall schneller von Statten ging.


Diesen Artikel im Forum diskutieren.