Raid



Bei dieser Ausarbeitung werde ich die funktionsweise von RAID (Redundant Array of Inexpensive Disks) erklären.

Was kann RAID?

Das Programm RAID wurde von der Firma IBM geschaffen, um den zunehmenden Anforderungen von Rechenzentrumsdienstleistungen genüge zu schaffen. RAID wurde dazu entwickelt, um Daten möglichst sicher und schnell zu speichern.

Geschaffen wurde dieses Projekt bereits im Jahre 1987 von einer Forschergruppe der University of Berkeley unter Mitwirkung der IBM.

Es ging damals um die Frage der Schaffung von alternativen Datenstrukturen um die ständige Datenverfügbarkeit bei zunehmender CPU-Leistung zu gewährleisten.



Wirtschaftliche Datenspeicherung

Bei fast jedem Unternehmen stellen die Daten das wichtigste Kapital dar. In der Informationsverarbeitung werden zunehmend kleinere Rechner mit eigenständiger Speicherperipherie eingeführt, um die Effizienz durch größere Flexibilität und maßgeschneiderte Anwendungen zu erhöhen.

Das Vorhandensein unterschiedlicher Plattformen stellt weit höhere Anforderungen an die Datenverwaltung wie bisher. Hinzu kommt, daß die Daten unterschiedlichste Anforderungsprofile haben, und das auf jeder Plattform.

Das RAID-System ist für Systeme mit hoher Zugriffshäufigkeit, wo es auf höchste Verfügbarkeit und Leistung ankommt, entwickelt worden.

In den von Forschern veröffentlichten "Berkeley-Papier' führten sie das Akronym-RAID ein und definierten fünf Implementierungsmöglichkeiten die ich erklären möchte.

Ziel war es, auf kleinere und mittlere Systeme mit geringerer Zuverlässigkeit umzusteigen. Große Plattenspeicher waren zur damaligen Zeit sehr teuer.

Ein großes Problem war dabei jedoch die Gefahr eines Datenausfalls. Diesem wollte man entgegentreten indem man eine Datenredundanz einführte.

Als nächstes möchte ich die verschieden Implementierungsmöglichkeiten von RAID erklären.

RAID-Level 1:

Der RAID-Level 1 ist auch als "disk mirroring', "dual copy' oder "shadowing' seit Jahren im mittleren und im Großsystembereich bekannt und kommerziell verfügbar. RAID-1 erzeugt eine Redundanz, indem identische Daten auf zwei verschiedenen Laufwerksadressen geschrieben werden.

Ein Nachteil ist, das jeder Datenbestand doppelt geführt werden muß, was wieder eine höheren Aufwand an Massenspeicher verursacht. Schreib- und Lesezugriffe

werden bei einer RAID-1-Implementierung durch den Mikrocode des Speichersubsystems auf die jeweiligen Laufwerksadressen verteilt.

Aus der Sicht des Betriebsystemes gibt es allerdings nur eine Plattenadresse. Tritt bei einer der beiden Platten ein Fehler auf bzw. fällt ein Laufwerk aus, "schaltet' das Subsystem automatisch ohne Unterbrechung auf die gespiegelt Platte um.

Der Vorteil des ganzen Prozessen ist, daß im laufendem Betrieb nahezu ohne Leistungsverlust weitergearbeitet werden kann.

RAID-Level 2:

Bei RAID-2 werden die Daten auf Bit-Level auf alle Laufwerke verteilt. Auf zusätzlichen Laufwerken wird ein sogenannter "Error Correction Code' (ECC) abgespeichert, der zur Fehlererkennung und- korrektur benötigt wird.

Der Ausnutzungsgrad der tatsächlichen Kapazität ist bei RAID-2 wesentlich höher als bei RAID-1. Allerdings muß bei einem Schreib- bzw. Lesezugriff auf sämtliche Platten zugegriffen werden, da die Daten über sämtliche Platten verteilt sind.

Um dies zu können müssen die Zugriffe synchron erfolgen.

Der RAID-Level 2 ist allerdings eher von geringerem Interesse, da er ungeeignet ist für Rechenzentren, bzw. für Transaktionen.

RAID-Level 3:

RAID3 speichert Datenblöcke parallel über mehrere Laufwerke und zusätzliche "Parity'-Informationen auf einem einzelnen separaten Laufwerk.

In den meisten Implementierungsformen wird hierbei auf Bit-Basis oder Bitblock-Basis gearbeitet. Die Parity-Information ist die Addition der binären Datenblöcke und benötigt denselben Speicherplatz wie ein einzelner Datenblock, der mit anderen Datenblöcken parallel auf die Laufwerke verteilt wurde.

Alle Zugriffsarme bewegen sich gleichzeitig. Für jede Schreib- oder Leseoperation ist ein Zugriff auf alle Laufwerke erforderlich. Deshalb kann auch nur ein Schreib-/Lesezugrif im Subsystem gleichzeitig erfolgen.

Weil die Daten sequentiell über alle Laufwerke verteilt werden, können exzellent Transferraten für große Blöcke sequentieller Daten erzielt werden. Werden Daten auf die einzelnen Laufwerke geschrieben, müssen auch die Parity-Informationen neu ermittelt und geschrieben werden.

Fällt ein Laufwerk aus, werden die Parity-Informationen zusammen mit den Daten auf den verbleibenden Laufwerken dazu benutzt, die fehlenden Daten wiederherzustellen.

Dies geschieht durch eine erneute Addition der Datenblöcke auf den noch funktionstüchtigen Laufwerken. Fällt das Parity-Laufwerk aus, ist der Datenzugriff nicht beeinträchtigt.

Die RAID-3-Implementierung ist ungeeignet für transaktionsorientierter Verarbeitung, wenn direkte Laufwerkszugriffe erforderlich sind. In diesem Fall wird das Parity-Laufwerk zum Engpaß.

RAID-Level 4:

RAID-Level 4 ist der Arbeitsweise einer RAID-Level 3-Implementierung ziemlich ähnlich.

Allerdings werden die Daten nicht Bit-, sondern Blockweise über die einzelnen Plattenlaufwerke verteilt.

Der Vorteil im Vergleich zu RAID-3 liegt darin, daß man für einen Lesezugriff nicht auf sämtliche Laufwerke zugreifen muß. Befinden sich die Daten nur in einem Datenblock, ist nur ein Zugriff auf dieses Laufwerk notwendig.

Für jede Anderung der Daten sind allerdings jeweils vier Laufwerkszugriffe erforderlich. Als das wären:

* Lesen der alten Daten

* Lesen der alten Parity-Informationen

* Schreiben der neuen Daten

* Schreiben der neuen Parity-Informationen

Pro Schreiboperation bedeutet dies vier einzelne Operationen- 2 * Lesen und 2 * Schreiben.

Dieser Engpaß bei den Schreiboperationen wird als "Write Penalty' bezeichnet.

Durch die Zuordnung der Parity-Information auf immer das gleiche Laufwerk muß jede Schreiboperation (d.h. alle vier dafür notwendigen Operationen) abgeschlossen sein, bevor ein neuer Schreibzugriff durchgeführt werden kann.

Parallele Verarbeitung von Schreiboperationen ist deswegen nicht möglich. Aus diesem Grunde findet die Verwendung der RAID-4-Implementierung keine oder kaum Verwendung.

RAID-Level 5:

Bei RAID-5 werden die Daten über mehrere Laufwerke verteilt. Die zur Rekonstruktion erforderlichen Parity-Informationen sind zusätzlich zu den Daten über alle Plattenlaufwerke verteilt.

Das bedeutet, daß jedes Laufwerk sowohl Daten als auch Parity-Informationen enthält. Der Engpaß von nur einen Parity-Laufwerk ist dadurch nicht mehr vorhanden.

Mit dieser Implementierung können jetzt parallele Schreiboperationen unabhängig voneinander durchgeführt werden.

Die Zugriffsarme bewegen sich unabhängig voneinander und gewährleisten einen mehrfachen gleichzeitigen Zugriff auf die Platten. Dadurch ist ein hoher Durchsatz, vor allem bei transaktionsorientierter Verarbeitung, gewährleistet.

Nach wie vor bleibt aber in dieser Implementierungsform das "Write Penalty'-Problem bestehen, d.h. für jede Anderung der Daten sind vier Plattenzugriffe erforderlich.

Um dieses Problem der Schreiboperationen zu lösen, gibt es unterschiedliche Möglichkeiten. Zum Beispiel kann durch eine neue Subsystem-Architektur oder einen neuen Algorithmus dieses Problem fast ausgeschaltet werden.

RAID-5 ist eine Technik, die bei Ausfall eines Magnetplattenlaufwerks trotzdem uneingeschränkte Datenverfügbarkeit ermöglicht.

Fällt zum Beispiel ein Laufwerk innerhalb eines Einschubes aus, kann aus den übrigen Laufwerken mit Hilfe von Parity-Informationen der Inhalt des ausgefallenen Laufwerks während des Betriebs rekonstruiert werden.

Durch umfassende technologische Einrichtungen innerhalb eines Einschubs (z.B. Cache, mehrere Mikroprozessoren usw.) wird die Leistung eines Subsystems kaum gebremst oder beeinträchtigt.

Weitere Überlegungen zu RAID:

Nachdem die Unversity of Berkeley die RAID-Level 1 bis 5 veröffentlicht hatte, wurde mit der Definition RAID oft in breiter Form Verwirrung erzeugt, weil durch Begriffe wie RAID-5+, RAID-7 oder RAID-X Erwartungen geweckt wurden, daß höhere RAID-Level besser und höherwertiger seien.

Dazu ist anzumerken, daß alle Level die über RAID-5 hinausgehen, Lösungen darstellen, die durch unterschiedliche Techniken das "Write Penalty'-Problem weitgehend zu minimieren versuchen.

Einzig anerkannter zusätzlicher RAID-Level, der nicht von Berkeley definiert wurde, ist RAID-6. Im Unterschied zu RAID-5 wird hier mit zwei unabhängigen Parity-Schemen gearbeitet, wobei jedes verschiedene Algorithmen für die Parity-Bildung verwendet.

Der Vorteil von RAID-6 liegt darin, daß die Rekonstruktion der Daten auch beim Ausfall von zwei Laufwerken möglich und die Sicherheit des RAID-Arrays erhöht wird. Allerdings ist dieser Sicherheitsaspekt auch davon abhängig, wieviele Laufwerke einem Array zugeordnet werden.

Nachteilig bei RAID-6 ist die Tatsache, daß mehr Kapazität für das doppelt ausgelegt Parity-Schema benötigt wird und dieser Platz für zusätzliche Daten verloren geht.

Der gravierendste Nachteil bei einer RAID-6- Implementierung ist aber der um 50 % höhere Aufwand bei Schreiboperationen: durch die zusätzliche Parity benötigt man sechs Operationen im Vergleich zu vieren bei RAID-5.

Dies erfordert enorme, komplexe Vorgänge und Architekturen, um akzeptable Schreibleistungen zu erzielen.

Als Abschluß wäre noch zu sagen, daß die RAID-Implementierungen sich nur dann als nützlich und sinnvoll erweisen können, wenn sie auch mit den entsprechenden Hardwarekomponenten verwendet werden, d.h. mit Hardware die auf fehlertolerante Datenhaltung ausgelegt ist.