RAID

Noch vor wenigen Jahren war RAID eine sehr teure Angelegenheit, die nur in High-End-Servern zum Einsatz kam und nur auf Basis von SCSI realisierbar war. Inzwischen ist RAID erste Wahl, wenn hohe Festplatten-Performance oder Datensicherheit gefordert ist. Besonders die Verfügbarkeit von Software-Lösungen und der Einsatz von preiswerten, IDE-basierten Lösungen, häufig direkt auf der Hauptplatine des Rechners integriert, machen RAID sogar im Heimbereich interessant. Die mitgelieferten Unterlagen beschreiben aber häufig nur die Realisation des RAID-Systems, das Basiswissen über die zur Anwendung passende Art des RAID wird als bekannt vorausgesetzt.

RAID ist die Abkürzung für "Redundant Array of Inexpensive Disks", also ein reduntantes Feld aus preiswerten Festplatten. Manchmal wird das I auch mit „independent“ (=unabhängigen) erklärt. Grundvoraussetzung ist ein geeigneter Controller und mindestens zwei Festplatten.

Redundant bedeutet, das jede gespeicherte Information nicht nur einmal, sondern mehrmals vorhanden ist, eine Sicherheitskopie auf Festplatte also, auf die sofort zugegriffen werden kann, ohne das (veraltete) Daten bei einem Schreib-/Lese-Fehler erst zeitaufwendig von einem externen Medium überspielt werden müssen.

Es gibt 5 definierte Methoden des RAID, die auf Patterson, Gibson und Katz beruhen und mit denen sich einzelne Platten zu einem Array zusammenfassen lassen. Zusätzlich gibt den Level 0, während die Level 6 und 7 nur herstellerspezifische Erweiterungen der Stufe 5 darstellen.

Striped disks: sequentiell hintereinander geschaltete (gestreifte) Festplatten.

Höchste Geschwindigkeit, aber keine Redundanz, also kein richtiges RAID im Sinne der Definition. Wurde früher häufig verwendet, um schnellere Zugriffe auf Daten zu ermöglichen, da die mittlere Zugriffszeit hoch war. Wird heute nur noch selten verwandt, da inzwischen ausreichend schnelle Festplatten verfügbar sind. Der größte Nachteil ist der Ausfall des gesamten Arrays beim Defekt einer einzigen Festplatte.

Trotzdem ist das Verfahren des sogenannten striping wichtig zum Verstehen der Funktionsweise eines RAIDs: statt sequentiell einen Block nach dem anderem auf eine einzelne Festplatte zu schreiben, wird der nächste Block auf die nächste physikalische Festplatte geschrieben. Dadurch kann während des Lese- oder Schreibvorgangs eines Blockes der Schreib-/Lesekopf der folgenden Festplatte, die den nächsten logischen Block enthält, schon positioniert werden.

Dem Betriebssystem und dem Benutzer gegenüber erscheint ein RAID wie eine einzige Festplatte, der physikalische Aufbau und die gewählte Stufe des RAID werden rein vom Controller verwaltet.

Mirrored disks: gespiegelte Festplatten

Jede Festplatte hat einen Zwilling, ein Spiegelbild. Die werden auf beide Festplatten geschrieben und können von der einen oder der anderen gelesen werden. Dadurch wird die Lesegeschwindigkeit erhöht, denn der Zugriff kann von der günstiger positionierten Platte erfolgen. Die Schreibgeschwindigkeit wird bei Hardware - Lösungen (im Verhältnis zu einer Platte) nicht verschlechtert, bei Software-RAIDs schon. Die Redundanz der Daten ist 1-fach: beide Platten enthalten die kompletten Daten. Fällt eine Platte aus, verringert sich nur die Zugriffsgeschwindigkeit beim Lesen, erst wenn die defekte Platte durch eine neue ersetzt wird, wird zusätzlich eine kurze Zeit zum kopieren benötigt.

Ein weiterer Vorteil ist die Möglichkeit des Back-ups während des laufenden Betriebs. Die Zugriffe von Benutzern müssen nicht unterbunden werden, es muß nur eine Platte für die benötigte Zeit aus dem Verbund genommen werden, was meistens durch die Back-up-Software geschieht. Um in dieser Zeitspanne nicht auf Redundanz zu verzichten oder weil die Daten derartig kritisch sind, das eine einfache Redundanz nicht ausreicht, bieten viele RAID-Lösungen auch die Möglichkeit, mehr als eine Spiegelplatte zu betreiben.

Die Stufen RAID 0 und 1 können auch miteinander kombiniert werden, um die jeweiligen Vorteile miteinander zu verbinden. Diese Kombination wird auch RAID 10, 0+1 oder 0/1 genannt. Dabei ist unbedingt darauf zu achten, in welcher Reihenfolge die Verfahren kombiniert werden. Angenommen, es sollen sechs Platten verwendet werden. Im ersten Fall werden je drei Laufwerke gestriped (RAID 0) und anschließend gespiegelt (RAID 1). Fällt jetzt eine Platte aus, so ist die Hälfte der verwandten Platten unbrauchbar und kann erst nach einem Austausch neu gespiegelt werden. Fällt während dieser Zeit eine Platte im 2. Set aus, ist das ganze Array unbrauchbar.

Werden jedoch erst je 2 Platten gespiegelt und dann die resultierenden 3 logischen Platten gestriped, muß schon ein kompletter Spiegelsatz ausfallen, damit es zum Totalausfall kommt. Die Wahrscheinlichkeit dafür sinkt somit auf ein Drittel gegenüber der ersten Methode.

ECC data disks: zusätzliche Festplatten für die ECC-Fehlerkorrektur.

RAID 2 ist striping mit zusätzlichen Platten für die ECC-Daten. Dieses Verfahren wird kaum noch verwandt, da die heutigen Festplatten selbst die ECC-Information intern verwalten. Die Fehlerkorrektur Error Correcting Code ist ein Verfahren zum Erkennen und Korrigieren von Bitfehlern und ist in der Elektronik weit verbreitet (RAM-Bausteine). Es beruht auf dem Hamming-Code und kann 1-Bit-Fehler korrigieren sowie 2-Bit-Fehler erkennen und benötigt bei 32-Bit-breiten Daten zusätzliche sieben Check-Bits.

Parity data disk: zusätzliche Festplatte für die Fehlerkorrektur mit parity.

Die Stufe 3 besteht aus 2 oder mehr Platten im RAID 0 und einer zusätzlichen zur Fehlerkorrektur mittels parity. Die ECC-Informationen der Festplatten werden genutzt, um Fehler festzustellen, die dann durch die sogenannte Paritäts-Prüfung wieder bereinigt werden. RAID 3 kann nur in bestimmten Situationen eine hohe Leistung erreichen und besonders beim Multi-User-Zugriff ist die Leistung eher gering. Es findet daher eher Einsatz bei sehr großen Dateien, auf die nur ein Benutzer zugreift, z. B. Videobearbeitung oder CAD/CAM.

Das Konzept der Paritätsprüfung beruht auf der mathematischen Verknüpfung von zwei Daten mittels XOR, dem eXclusivem OdeR. 12 XOR 15 ergibt 3, 12 XOR 3 = 15, 15 XOR 3 = 12. Mit den Werten von 2 der 3 Platten läßt sich also der Dritte berechnen, und XOR ist in fast allen Prozessoren als eine der schnellsten mathematischen Operationen fest "eingebaut". Trotzdem muß schon beim normalen Schreibzugriff der Wert erst berechnet und geschrieben werden - das dauert und sperrt den Plattenzugriff. Da im schlechtesten Fall das Verhältnis von Nutz- zu Paritätsdaten 2:1 beträgt, muß die zusätzliche Platte die halbe Speicherkapazität der Summe der Platten im RAID 0 haben. Ähnlich wie beim ECC ist die Parität auch bei RAM-Bausteinen ein verbreitetes Verfahren.

Entspricht RAID 3, jedoch mit mehr als einer Paritätsplatte, so daß von einigen Platten gelesen werden kann, während für andere die Paritäts-Information geschrieben wird. Der Nachteil der dedizierten Paritäts-Platten bleibt jedoch bestehen, und die Gesamtleistung liegt unter der von Stufe 5.

Spread parity data: Fehlerkorrektur mit parity, aber auf den Platten verteilt.

Dieses Verfahren wird häufig verwandt und hat sehr hohe Lesegeschwindigkeiten bei gleichzeitig großer Sicherheit. Es entspricht RAID 3, jedoch wird die Paritäts-Information über die Platten verteilt, so daß Schreibzugriffe parallel bearbeitet werden können. Zugriff 1 erfolgt z. B. auf Platte 1, die parity wird auf Platte 2 geschrieben, während gleichzeitig Zugriff 2 auf Platte 3 erfolgen kann, deren parity auf Platte 4 gespeichert wird. Je mehr Platten im Array, desto besser. RAID 5 ist billiger als RAID 1, aber im Fall des Ausfalls einer Platte bricht die Leistung stark ein, da die fehlende Information erst berechnet werden muß.

Egal, ob das RAID-Array aus IDE- oder SCSI-Platten besteht, ob es einen eigenen, intelligenten Controller besitzt oder dieser durch Software nachgebildet wird, am Prinzip ändert sich nichts. Die Stufen 1 bis 5 sind geeignete Wege, die Verfügbarkeit von gespeicherten Daten zu erhöhen, da die Daten (wenn auch nicht immer in der gewohnten Geschwindigkeit) im Falle eines Platten-Defekts weiterhin nutzbar bleiben. Ein langsamerer Zugriff ist nichts gegen die Zeit, die der Tausch einer defekten Platte und das Zurücksichern vom letzten Back-Up benötigen - vom Verlust der Daten zwischen Back-Up und Ausfall ganz zu schweigen.

Thorsten Hahn, 25.10.2002


Vergleich der Raid-Stufen RAID 0 RAID 1 RAID 10 RAID 2 RAID 3 RAID 4 RAID 5
Anzahl der benötigten Platten n > 1 n > 1 n > 3 n > 9 n > 2 n > 2 n > 2
Redundante
Platten
0 1 mind. 1 2 1 1 1
Kapazitäts-
verlust
0% 50% 50% 20% 100 / n 100 / n 100 / n
Parallele
Lesezugriffe
n 2 n / 2 8 n - 1 n - 1 n - 1
Parallele Schreibzugriffe n 1 1 1 1 1 n / 2
Maximaler Lesedurchsatz n 2 n / 2 8 n - 1 n - 1 n - 1
Maximaler Schreibdurchsatz n 1 1 1 1 1 n / 2