Datenredundanz per Raid Array Technologie

Die RAID-Technologie soll die Ausfallsicherheit und Leistungsfähigkeit von Festplattensystemen erhöhen. Dabei stehen Varianten mit spezifischen Vor- und Nachteilen zur Wahl, die der folgende Artikel detailliert erläutert.

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 Verfügung steht.

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 mit nochmals erhöhter Ausfallsicherheit, sowie herstellerspezifische Varianten.

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.

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 zwei oder vier 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.

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 gesamten Plattenkapazität für die Speicherung zur Verfügung. Die Kosten der Datenhaltung verdoppeln sich also.

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 propagiert.

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.

RAID Level 5 arbeitet ebenso wie RAID 4 mit einer blockweisen Verteilung der Nutzdaten. Es verzichtet jedoch auf ein dediziertes Parity-Laufwerk und verteilt die ECC-Daten zusammen mit den Nutzdaten gleichmäßig über die Laufwerke. Damit sinkt die Wahrscheinlichkeit, dass gleichzeitig zwei Schreiboperationen auf dieselbe Platte erfolgen. Schreibzugriffe lassen sich also weitgehend parallelisieren. Zudem verteilt sich die mechanische Belastung der Platten gleichmäßig, da keine eine Sonderstellung als Parity-Laufwerk einnimmt.

Auch beim Lesen von Daten bietet RAID 5 durch die Verteilung der Daten über alle Laufwerke eine gute Performance. Dies zahlt sich insbesondere beim Zugriff auf viele kleine Datenblöcke aus. Daher kommt RAID 5 speziell bei Datenbank- oder Transaktionsservern gern zum Einsatz.

RAID 6

RAID 6 versucht, gegenüber RAID 3 bis 5 die Ausfallsicherheit nochmals zu erhöhen. Bei diesen Verfahren darf nur eine Platte des Arrays ausfallen, da sich sonst die Daten nicht mehr per XOR rekonstruieren lassen. RAID 6 umgeht diese Einschränkung, indem es ein RAID 5 um zusätzliche, über die Platten verteilte Parity-Informationen auf Basis von Reed-Solomon-Codes ergänzt. Man spricht hier auch von einer "zweidimensionalen Parity". Vereinfacht kann man sich das als ein RAID 5 vorstellen, das um eine weitere Parity-Platte ergänzt wurde.

Zwar dürfen bei RAID 6 nun zwei beliebige Platten des Verbunds ausfallen, ohne dass Datenverluste auftreten. Die zusätzliche Sicherheit muss allerdings mit gegenüber RAID 3 bis 5 deutlich langsameren Schreibzugriffen sowie einer mageren Performance bei der Rekonstruktion erkauft werden. Eine Software-Variante von RAID 6 implementiert ab Linux 2.6.2 auch der entsprechende Metadisk-Treiber.

Verhalten bei Plattenausfall

Ob rechnerinterner Plattenverbund oder externes Speichersubsystem, ob Hardware- oder Software-RAID: Fällt eine Platte des Arrays aus, geht bei den gängigen RAID-Leveln die Redundanz verloren. Jede Fehlfunktion eines weiteren Laufwerks (ausser bei Raid 6) führt in dieser Situation unweigerlich zu Datenverlusten. Konsequenz: Die defekte Platte muss schnellstmöglich ersetzt und das Array rekonstruiert werden.

Im Optimalfall verfügt das Array über eine zusätzliche, ausschließlich im Notfall verwendete Festplatte. Ein solches Hot-Fix-Laufwerk (auch Hot-Spare oder Stand-by-Laufwerk genannt) wird automatisch aktiviert und als Ersatz für die defekte Platte eingebunden. Steht kein Hot-Spare zur Verfügung, gilt es, das defekte Laufwerk manuell zu wechseln. Dies erfordert für gewöhnlich ein Abschalten des Rechners und damit eine Betriebsunterbrechung - was gerade bei Servern in der Regel inakzeptabel ist. Abhilfe schaffen hier hot-plug- respektive hot-swap-fähige Arrays: Die Festplatten des RAID-Verbundes sind frei zugänglich in Festplatten-Shuttles untergebracht, die sich während des Betriebs wechseln lassen.

Nach erfolgreichem Austausch gilt es, die neue Festplatte in den RAID-Verband einzubinden und die verlorengegangenen Daten zu rekonstruieren. Geschieht dies automatisch, spricht man von Auto-Rebuild. Dieses automatische Wiederherstellen setzt allerdings die Fähigkeit des Controllers voraus, mit dem Festplatten-Shuttle zu kommunizieren (Laufwerkszustand, neues Shuttle eingeführt). Können sich Controller und Shuttle nicht verständigen, muss der Rebuild manuell angestoßen werden.

Schützt Raid vor Datenverlust?

Zwar lässt sich durch den Einsatz von Diskarrays die Verfügbarkeit von Rechnersystemen deutlich erhöhen. Ein Allheilmittel gegen Datenverluste stellt RAID allerdings nicht dar. Um eine Ausfallsicherheit nahe 100 Prozent zu erreichen, müssen alle Komponenten des Speichersubsystems inklusive Controller, Netzteil und Lüftern redundant ausgelegt werden. Solche Lösungen bietet die Storage-Industrie zwar an, preiswert fallen sie aber nicht gerade aus.

Zudem ereignen sich Ausfälle von Laufwerken und anderen Komponenten nicht immer unabhängig voneinander. In der Praxis treten gelegentlich Situationen ein, durch die sich die Ausfallwahrscheinlichkeit des gesamten Arrays schlagartig erhöht. Dazu zählen etwa durch Blitzschlag verursachte Überspannungen, Überschwemmungen oder Brände. Auch Viren und Würmer befallen RAID-Systeme ebenso gern wie Einzellaufwerke.

Schließlich kann selbst das zuverlässigste Array den Risikofaktor Nummer 1 nicht ausschalten - den Menschen. Den weitaus größten Teil irreparabler Datenverluste verursacht nicht etwa versagende Technik, sondern Fehlbedienung durch den Benutzer. Gelöschte Dateien sind auch auf RAID-Systemen verloren. Selbst für das ausgefeilteste RAID-System gilt deshalb: Den einzig wirklich zuverlässigen Schutz gegen Datenverluste bietet ein konsequent geplantes und vorgenommenes Backup.

Warum ein RAID kein Backup ist

Wie beschrieben dient die RAID Technik dazu Daten gleichzeitig auf mehreren Festplatten zu speichern und schützt somit vor dem Ausfall einzelne Festplatten. Man könnte nun denken, dass ein Backup nichts anderes tut. Kopiert man seine Daten manuell auf  eine andere Festplatte macht man doch im Grund genau dass, was ein RAID auch tut, nur eben manuell statt automatisch... Diese Sicht der Dinge ist jedoch ein Trugschluss.

Betrachtet man das Vorgehen eines RAIDs genauer, stellt man fest, dass hier nicht nur einfach Daten kopiert werden. Vielmehr führt ein RAID jede Änderung an Daten auf jeder beteiligten Festplatte aus. Dies gilt für das Kopieren, Verschieben und Umbenennen genau wie für das Löschen von Daten. Werden also auf einem RAID Laufwerk versehentlich Daten gelöscht, werden die Daten automatisch auch auf allen anderen RAID Laufwerken gelöscht. Trotz RAID wären die Daten in diesem Fall verloren.

Ein RAID System kann als Backup betrachtet werden, bei dem jede Änderung der Originaldaten Daten automatisch auf die Sicherungskopie übertragen wird. Werden die Originaldaten beschädigt wird somit automatisch auch die Sicherung beschädigt. Dies ist natürlich nicht der Sinn eines Backups.

Durch ein RAID wird “nur” die Verfügbarkeit der Daten erhöht, aber nicht die Sicherheit der Daten. Was kann ein Backup, was ein RAID nicht kann?

Bei einem Backup wird die Sicherheit der Daten durch das Anlegen einer separaten, unabhängigen Kopie erhöht. Bei einem Verlust der Originaldaten kann man auf die Kopie zugreifen und die Daten somit wiederherstellen. Hierdurch hilft ein Backup auch in solchen Situationen in denen ein RAID System versagt:

  • Versehentliches Löschen von Dateien
  • Beschädigung von Dateien durch Hardwarefehler, Viren, etc.
  • Diebstahl/Verlust des Computers
  • Beschädigung des Computers durch Blitzschlag, Hochwasser, etc.
  • Hardwarefehler an RAID Controler

Der Artikel soll zeigen, dass ein RAID nicht die Aufgaben einer Datensicherung übernehmen kann. Es geht nicht darum den Sinnes eines RAIDs generell in Frage zu stellen. Um sich vor Festplattenfehler und -ausfällen zu schützen ist ein RAID eine einfache und gute Möglichkeit die in jedem Fall genutzt werden sollte. Man darf von der Technik lediglich keine Lösungen für Probleme erwarten, für die Sie gar nicht gedacht ist. Leider ist der Irrglaube “RAID = Backup” jedoch weit verbreitet. Diesem konnte der Artikel vielleicht ein wenig entgegen wirken :-)

Autor: George Thommen