RAID im Überblick

05.08.2004
Die RAID-Technologie soll die Ausfallsicherheit und Leistungsfähigkeit von Festplattensystemen erhöhen - auch für denambitionierten Desktop-Anwender. Acht Varianten mit spezifischen Vor- und Nachteilen stehen zur Auswahl. Von Jörg Luther

Als vor rund 20 Jahren an der Universität von Kalifornien in Berkeley RAID aus der Taufe gehoben wurde, war die Speicherung großer Datenmengen noch eine reichlich knifflige Angelegenheit. Die in Rechenzentren gebräuchlichen SLEDs (Single Large Expensive Disks) im 14-Zoll-Format boten zwar hohe Kapazitäten (zwei bis drei GByte) und gute Datensicherheit, waren jedoch extrem teuer. Als Massenspeicheralternative boten sich die in Relation zur Kapazität sehr viel billigeren, relativ neuen "kleinen" Drives im 5,25-Zoll-Formfaktor an. Deren Verwendung warf jedoch einige Probleme auf.

Zum einen drohte die Speicherung auf vielen kleinen statt eines großen Laufwerks Verwaltungsprobleme zu bescheren. Bei einer Organisation der Platten als JBOD ("just a bunch of disks"), also als Bündel unabhängiger Drives, würde sich das Auffinden sowohl freien Speicherplatzes als auch einmal abgespeicherter Dateien recht kompliziert gestalten. Zum anderen lag die Zuverlässigkeit der "Mini-HDDs" per se schon deutlich unter jener der SLEDs. Erschwerend kam dazu, dass die statistische Wahrscheinlichkeit eines Datenverlustes bei einer Speicherung der Daten auf mehreren Laufwerken statt eines einzelnen Drives zusätzlich ansteigt.

Als Lösung des Problems schlugen die drei Berkley-Doktoranden David Patterson, Garth Gibson und Randy Katz die Kombination mehrerer kleiner Laufwerke zu einem mit Fehlererkennungs- und Fehlerkorrekturmechanismen ausgestatteten, ausfallgesicherten Verbund vor. In ihrer im Juni 1988 veröffentlichten Studie verpassten sie der neuen Technik auch gleich einen eingängigen Namen: "A Case for Redundant Arrays of Inexpensive Disks (RAID)" titelte das Papier, RAID war geboren.

Vorteile von RAID

In ihrem ursprünglichen Papier schlugen Patterson, Gibson und Katz insgesamt fünf verschiedene Methoden vor, mit denen sich einzelne Platten zu einem Array zusammenfassen lassen. Sie nummerierten sie in einer bis heute gültigen Terminologie als RAID-Level 1 bis 5 durch. Diese etwas unglückliche Bezeichnung sorgt immer wieder für Missverständnisse: Trotz der Bezeichnung "Level" handelt es sich nicht um stufenweise aufbauende Verfahren, sondern um von einander völlig unabhängige Techniken.

Neben den primär angepeilten Zielen - kostengünstige, hochkapazitive Speicherung und gute Ausfallsicherheit - bieten die vorgestellten Methoden weitere Vorteile. Zum einen stellt sich der RAID-Verbund auf Anwenderseite als einzelnes logisches Volume dar. Die Verwaltung gestaltet sich also ebenso einfach wie bei einem Einzellaufwerk. Zum anderen bieten viele RAID-Verfahren durch die Parallelisierung der Plattenzugriffe einen Geschwindigkeitsvorteil gegenüber Einzellaufwerken. Dieser lässt sich allerdings nur dann voll ausreizen, wenn eine ausreichende Kanalanzahl zur blockierungsfreien Ansprache der Laufwerke zur Verfügung steht.

Die Kombination derart vieler Vorteile sorgte nicht nur für eine rasche Verbreitung RAID-basierender Massenspeicher vor allem in Servern. Auch zusätzliche RAID-Varianten wurden entwickelt, die auf bestimmte Einsatzgebiete und spezifische Vorteile hin optimiert wurden. Heute reicht die Bandbreite der allgemein verfügbaren Level von RAID 0 bis RAID 6. Hinzu kommen kombinierte Technologien wie RAID 0+1 oder 50, mit RAID 6 verwandte Verfahren (RAID n+m) mit nochmals erhöhter Ausfallsicherheit, sowie herstellerspezifische Varianten. Zu den letzteren zählen Techniken wie RAID-DP (Network Appliances, RAID-X (ECC Technologies oder RAIDn (Tandberg /Inostor).

Software- vs.Hardware-RAID

Die etwas irreführenden Begriffe Hard- beziehungsweise Software-RAID - letztlich benötigen beide Varianten zum Betrieb Software - beziehen sich auf die Art und Weise der Implementierung. Beim Software-RAID übernimmt eine auf der CPU des Hosts laufende Software die Steuerung des Plattenverbunds. Oft bringt bereits das Betriebssystem entsprechende Komponenten mit. So beherrschen Windows 2000 und XP sowohl RAID 0 als auch RAID 1 und 5 - letztere allerdings nur in der Server-Version. Linux verwaltet generell Arrays der Level 0, 1, 4, und 5 sowie ab Kernel 2.6 auch solche des Levels 6.

Software-RAID stellt also meist die preisgünstigste und einfachste Lösung dar. Zudem lässt es sich - etwa per Prozessor-Upgrade am Host - relativ schnell an erhöhte Anforderungen anpassen. Andererseits verursacht es eine hohe CPU-Belastung und arbeitet naturgemäß plattform- und betriebssystemgebunden. Auch stehen zur Ansteuerung der Laufwerke meist nur ein oder zwei Anschlüsse zur Verfügung. Dies beschränkt die mögliche Parallelisierung der Plattenzugriffe und damit auch die Performance.

Dagegen übernimmt bei Hardware-RAID ein eigener Controller die Ansteuerung des Arrays. Das bringt eine Entlastung der Host-CPU und eine höhere Performance mit sich. Zudem binden RAID-Controller die Laufwerke über mehrere Kanäle an, was gleichzeitige Laufwerkszugriffe und damit hohe Transferraten ermöglicht. Dafür gilt es aber, einen deutlich höheren Preis zu zahlen. Hardware-RAIDs arbeiten zwar plattformunabhängig. Auch sie benötigen aber zur Verwaltung Software, die natürlich auf ein bestimmtes Betriebssystem zugeschnitten ist.

Anforderungen an die Festplatten

Noch vor wenigen Jahren ließen RAID-Controller bei der Anforderung an die verwendeten Platten nicht mit sich spaßen. Als Interface war SCSI Pflicht, alle verwendeten Platten mussten identische Kapazitäten aufweisen. Oft kam es sogar vor, dass sich im Array nur Platten aus derselben Bauserie verwenden ließen.

Mittlerweise gestaltet sich das Pflichtenheft für die verwendeten Laufwerke deutlich weniger rigide. Im klassischen Serverbereich kommt schon aus Performancegründen zwar nach wie vor SCSI oder auch sein designierter Nachfolger Fibre Channel zum Einsatz. Im Entry-Level-Server oder der Workstation tauscht der preisbewusste Anwender diese inzwischen aber auch gern gegen einen kostengünstigeren Serial-ATA-HBA aus, und für den Desktop-PC liefert die Industrie auch Controller mit Ultra-ATA/100- und Ultra-ATA/133-Schnittstelle aus.

Zudem erlauben moderne Controller wie auch Software-RAID-Lösungen den Mix von Platten verschiedener Kapazität im Verbund. Allerdings lässt sich dabei nicht die gesamte vorhandene Nettokapazität für das Array verwenden. Da die RAID-Verfahren gleich große Platten voraussetzen wird in einer Mischkonfiguration jedes Laufwerk nur bis zur Kapazität der kleinsten vorhandenen Festplatte genutzt. Bei einer Kombination eines 20-GByte-Laufwerks mit zwei 30-GByte-Disks stehen beispielsweise nur drei mal 20 GByte für das Array zur Verfügung.

RAID Level 0

Bei RAID Level 0 handelt es sich - wie die Null im Namen schon andeutet - um kein redundantes Speicherverfahren. Es dient lediglich zur Beschleunigung von Plattenzugriffen. Dazu fasst RAID 0 zwei oder mehr Festplatten zu einem logischen Laufwerk zusammen. Es verteilt die Daten in aufeinanderfolgenden Blöcken ("Stripes") gleichmäßig über alle Laufwerke. Daher bezeichnet man RAID 0 auch als Striping. Das parallele Lesen respektive Schreiben auf mehreren Laufwerken steigert zwar die Durchsatzrate, senkt jedoch die Sicherheit der Daten: Fällt eine Platte des Verbunds aus, sind alle Daten verloren.

Die Geschwindigkeitssteigerung macht sich vor allem bei großen, zusammenhängenden Dateien deutlich bemerkbar. Hier kann Striping parallel auf allen Platten operieren und dadurch die Transferrate vervielfachen. Beim Lesen oder Schreiben vieler kleiner Files ist die Zugriffszeit der Platten der limitierende Faktor. Hier erreicht ein Stripeset bestenfalls die Performance eines Einzellaufwerks. Aufgrund dieser Eigenheiten kommt es meist dort zum Einsatz, wo große Datenmengen abgearbeitet werden müssen: Etwa bei Workstations für CAD/CAM oder Audio- und Videobearbeitung.

RAID Level 1

RAID Level 1 wird auch als Mirroring oder Spiegelung bezeichnet. Dieser Name verdeutlicht, wie das Verfahren arbeitet: Alle Schreibzugriffe erfolgen parallel auf zwei Laufwerke, so dass jede Platte quasi ein Spiegelbild der anderen darstellt. Alle Daten stehen also doppelt zur Verfügung - sicherer geht es kaum noch. Auch wenn eines der beiden Laufwerke komplett ausfällt, bleiben alle Nutzdaten erhalten. Allerdings steht bei RAID 1 nur die Hälfte der Plattenkapazität für die Speicherung zur Verfügung. Die Kosten der Datenhaltung verdoppeln sich also.

Bei Anbindung der Laufwerke an eigene Kanäle steigert sich zwar die Leistung beim Lesen von Dateien um den Faktor Zwei. Die Schreibzugriffe erfolgen aber selbst im Idealfall nur gleich schnell wie bei Einzellaufwerken. Damit eignet sich Mirroring vor allem für Systeme, auf denen wichtige Daten zum hauptsächlichen Lesezugriff vorgehalten werden.

RAID Level 0+1

Durch eine Kombination von Mirroring und Striping lassen sich Geschwindigkeitsgewinn und Datensicherheit verbinden: Ein RAID 0 erzielt durch das lineare Zusammenschalten mehrerer Festplatten sowohl beim Lesen als auch beim Schreiben einen Geschwindigkeitsvorteil. Die zusätzliche Spiegelung des Stripesets auf weitere Platten sorgt für Datensicherheit. Je nach Hersteller wird dieses Verfahren als RAID 0+1, RAID 0/1 oder RAID 10 apostrophiert. Zur Ansteuerung der Festplatten sind zwei Verfahren denkbar. Angenommen, zum Aufbau des RAID-10-Verbunds stehen sechs Festplattenlaufwerke zur Verfügung. Zum einen lassen sich zunächst je drei Laufwerke stripen (RAID 0) und anschließend diese beiden logischen Laufwerke spiegeln (RAID 1). Die umgekehrte Konstellation liefert scheinbar dasselbe Ergebnis: Zuerst werden je zwei Festplatten gespiegelt, dann die drei logischen Laufwerke zu einem Stripeset verbunden. Bei beiden Methoden steht anschließend die Kapazität von drei Festplatten zur Verfügung.

Vom Standpunkt der Datensicherheit ist jedoch das letztgenannte Verfahren dem ersten Verfahren auf jeden Fall vorzuziehen. Den Grund dafür zeigt ein Blick auf den Ernstfall: Wurde zuerst gestriped, ist nach einem Plattenausfall das betroffene Stripeset komplett unbrauchbar. Die Daten stehen zwar noch auf dem zweiten Stripeset zur Verfügung. Fällt aber eines der drei Laufwerk dieses zweiten Verbunds aus, sind die Daten verloren.

Im umgekehrten Fall verliert ein gespiegeltes logisches Laufwerk zwar durch den Ausfall ebenfalls seine Redundanz. Aber nur wenn dann eine zweite Platte dieser Einheit ausfällt, entsteht ein Datenverlust. Die Wahrscheinlichkeit eines Totalausfalls sinkt somit auf ein Drittel gegenüber der ersten Methode.

RAID-Verfahren mit Fehlerkorrektur

Zwar bietet Mirroring perfekte Redundanz, verursacht jedoch gleichzeitig einen hohen Overhead und entsprechend hohe Kosten. Um diesen Nachteil zu beheben, arbeiten die RAID-Level 2 bis 7 mit Fehlerkorrektur. Sie verteilen zunächst die Nutzdaten per Striping auf wenigstens zwei Datenlaufwerke. Aus deren Dateninhalt wird anschließend ein Korrekturwert errechnet, mit dessen Hilfe sich nach einem Ausfall die Daten des defekten Laufwerks wieder rekonstruieren lassen. Dieser ECC-Code wird auf einem eigenen Parity-Laufwerk abgelegt.

Dabei setzt RAID auf eines der ältesten Verfahren zur Fehlerkorrektur, die Paritätsprüfung. Dazu verknüpft es die Daten der Nutzlaufwerke über eine logische Exklusiv-Oder-Operation (XOR) und speichert das Resultat auf einem eigenen Parity-Laufwerk. Das Ergebnis der Verknüpfung ist dann 1, wenn eine ungerade Anzahl von Bitstellen eine 1 aufweist. Bei einer geraden Anzahl dagegen ist das Ergebnis 0:

Fällt nun ein beliebiges Laufwerk aus, lassen sich durch ein erneutes XOR die verloren gegangenen Daten problemlos rekonstruieren:

ECC-Overhead bei Schreiboperationen

Zwar reduzieren die paritätsbasierten RAID-Varianten den für die Datensicherheit notwendigen Kapazitäts-Overhead deutlich. Er beträgt maximal ein Drittel, bei Verwendung mehrerer Nutzdatenlaufwerke sinkt er weiter ab. Andererseits erfordert das Update der Parity-Informationen beim Speichern von Daten zusätzliche Schreib- und Lesezugriffe.

Die Aktualisierung der ECC-Informationen kann auf zwei Wegen erfolgen. In der einfacheren Variante schreibt der RAID-Controller nach dem Eintreffen eines neuen Datenblocks diesen zunächst auf ein Laufwerk. Anschließend liest er die von der Operation betroffenen Blöcke aller Laufwerke ein, errechnet die resultierende Parity und schreibt diese zurück auf das ECC-Laufwerk. Diese Methode erfordert pro Schreiboperation einen zusätzlichen Zugriff auf alle Platten des Verbunds.

In der komplexere Variante des Updates liest der Controller zunächst lediglich den zu überschreibenden Datenblock ein. Nun berechnet er per XOR, an welchen Stellen sich ein Bit geändert hat. Anschließend liest er den alten ECC-Block und verknüpft ihn erneut per XOR mit dem zuvor gewonnenen Resultat. Als Ergebnis erhält er den neuen Parity-Block und kann diesen zurückspeichern. Anders als bei der ersten Update-Methode müssen hier nur zwei Laufwerke des Arrays angesprochen werden.

RAID Level 2

RAID Level 2 bietet zusätzlichen Schutz gegen Fehler innerhalb der Festplatten, wird aber aufgrund seiner aufwendigen Implementierung kaum eingesetzt. Es blieb bis auf wenige Anwendungen auf den Großrechnerbereich beschränkt.

RAID 2 basiert auf einer bitweisen Aufteilung der Nutzdaten. Dabei implementiert es nicht nur eine Fehlerkorrektur gegen den kompletten Ausfall einer Platte. Alle anderen RAID-Level versagen, wenn nicht eine komplette Platte ausfällt, sondern die Daten beispielsweise durch einen Schreibfehler inkonsistent sind. Ein Fehler wird bei ihnen zwar erkannt. Welche Platte jedoch falsche Daten liefert, ist nicht festzustellen - ein Korrektur somit unmöglich.

RAID 2 verwendet deshalb neben 8 Bit für Daten noch 2 Bit für den ECC -Code. Damit kann neben der Entdeckung des Fehler auch dessen Position ermittelt werden. RAID 2 entspricht damit dem ECC-RAM, das bei Single-Bit-Fehlern nicht mit einem Parity-Error den Rechner stoppt, sondern das Bit korrigiert.

Die bitweise Verteilung auf eigene Laufwerke erzwingt aber den Einsatz von nicht weniger als 10 Festplatten im Verbund. Zwar steigert sich bei RAID 2 durch die Möglichkeit zum parallelen Zugriff die Lesegeschwindigkeit auf das achtfache. Bei Schreiboperationen sinkt allerdings durch den hohen ECC-Overhead die Performance unter jene eines Einzellaufwerks.

RAID Level 3

RAID Level 3 setzt auf ein byteweises Striping der Daten. Zur Erkennung von Schreib-/Lesefehlern setzt es im Gegensatz zu RAID 2 auf die integrierten Funktionen der Festplatten. Dadurch kommt es mit einem einzelnen, dedizierten Parity-Laufwerk aus.

Um die Generierung der ECC-Daten zu erleichtern synchronisiert RAID 3 die Kopfpositionen der Laufwerke. Das ermöglicht zwar Schreibzugriffe ohne Overhead, da sich Parity- und Nutzdaten parallel auf den Laufwerken speichern lassen. Viele Lesezugriffe auf kleine, verteilte Dateien erfordern dagegen die synchrone Neupositionierung der Köpfe aller Platten im Verbund und kosten entsprechend Zeit.

Die Fortsetzung dieses Artikels lesen Sie in der kommenden Woche in ComputerPartner-Ausgabe 33/04. Dort erfahren Sie Genaueres über die RAID-Level 4, 5, 6 und 7 sowie über RAIDn-Verfahren.

tecchannel-Compact "ITechnologie-Ratgeber 2004"

tecChannel.de ist die Nummer eins der Online-Fachmedien in Deutschland (IVW 1/04). Auf www.tecChannel.de finden Sie mehr als 1.700 Beiträge und über 14.000 News zu allen Themen der IT. Das kostenlose Online-Programm wird ergänzt durch das noch umfangreichere kostenpflichtige tecCHANNEL-Premium- und die tecCHANNEL-Compact-Buchreihe.

Im neuen tecCHANNEL-Compact "ITechnologie-Ratgeber 2004" finden professionelle Anwender auf über 220 Seiten Grundlagen, Know-how-, Ratgeber- und Praxisbeiträge.

Insbesondere im Server-, Desktop- und Mobile-Bereich steht ein Generationswechsel bevor. Die Einführung von PCI Express und neuen CPUs, wie Pentium 4 "Prescott" und Pentium M "Centrino", 64-Bit-Computing, sowie der DDR2-Speichertechnologie und Serial Attached SCSI verunsichert die IT-Branche. Die tecCHANNEL-Redaktion beantwortet die Fragen, welche Technologien zukunftssicher sind und die bevorstehenden Investitionen schützen und was beim Umstieg zu beachten ist.

Die Ausgabe ist ab sofort im Handel zu haben oder direkt im Online-Shop unter www.tecChannel.de/shop für 9,90 Euro (gegen Rechnung) inklusive Versandkosten zu bestellen.

Zur Startseite