Anhang D RAID (Redundant Array of Independent Disks)

Was verbirgt sich hinter RAID?

Das grundlegende Konzept hinter RAID (Redundant Array of Independent Disks) besteht darin, mehrere kleine, preiswerte Festplatten zu einer Festplattengruppe zu kombinieren und dadurch eine höhere Leistung zu erreichen als mit einer einzigen großen und teuren Festplatte. Diese Festplattengruppe wird durch den Computer wie eine einzige logische Speichereinheit oder Festplatte angesprochen.

Bei dieser Methode werden Daten unter Verwendung von Techniken wie disk striping (RAID Level 0), disk mirroring (Raid Level 1), und disk striping with parity (RAID Level 5) auf mehrere Festplatten verteilt, um Redundanz, geringere Latenzzeit und/oder größere Bandbreite zum Lesen und/oder Schreiben sowie die Möglichkeit zur Wiederherstellung der Datei nach dem Ausfall einer Festplatte zu gewinnen.

Das grundlegende Konzept von RAID ist, dass Daten einheitlich auf jedes Laufwerk innerhalb der Laufwerkgruppe auf verteilt werden können. Dazu müssen die Daten zuerst in "Blöcke" einheitlicher Größe aufgeteilt werden (oft 32 oder 64 KB groß, andere Größen sind möglich). Jeder Block wird dann abwechselnd auf jedes Laufwerk geschrieben. Wenn die Daten gelesen werden sollen, wird der Prozess umgekehrt. Dadurch entsteht der Eindruck, dass mehrere Laufwerke ein großes Laufwerk sind.

Wer sollte Raid verwenden?

Wer mit großen Datenmengen umgeht (z.B. ein Administrator), kann von der RAID-Technologie profitieren. Zu den Hauptgründen für die Verwendung von RAID gehören:

  • höhere Geschwindigkeit

  • größere Speicherkapazität

  • höhere Effizienz beim Wiederherstellen von Daten nach einem Festplattenausfall

RAID: Hardware oder Software

Es gibt zwei mögliche Ansätze für RAID: Hardware-RAID und Software-RAID.

Hardware-RAID

Das hardwarebasierte System verwaltet das RAID-Teilsystem unabhängig vom Rechner und stellt für den Rechner nur eine einzige Festplatte pro RAID-Array dar.

Ein Beispiel für ein Hardware-RAID-Gerät ist eine Einheit, die an einen SCSI-Controller angeschlossen ist und deren RAID-Array wie ein einziges SCSI-Laufwerk angesprochen wird. Ein externes RAID-System verlagert alle RAID-Steuerungsprozesse in einen Controller, der sich im externen Festplattenteilsystem befindet. Das ganze Teilsystem wird über einen normalen SCSI-Controller an den Rechner angeschlossen und erscheint für diesen als "ganz normale" Festplatte.

RAID-Controller werden auch in Form von Karten angeboten, die für das Betriebssystem wie ein SCSI-Controller agieren, jedoch die gesamte Kommunikation mit den RAID-Laufwerken übernehmen. In diesen Fällen werden die Laufwerke genauso an den RAID-Controller angeschlossen wie an einen SCSI-Controller. Danach werden sie in die Konfiguration des RAID-Controllers eingetragen, so dass das Betriebssystem den Unterschied zu herkömmlichen Laufwerken nicht mehr erkennt.

Software-RAID

Beim Software-RAID sind die verschiedenen RAID-Level im Kernel-Disk-(Blockgeräte-) Code implementiert. Dieser Ansatz ist die preiswerteste Lösung: Es werden keine teuren Festplattencontroller oder Hot-Swap-Chassis [1] benötigt und Software-RAID funktioniert mit günstigeren IDE-Festplatten ebenso wie mit SCSI-Festplatten. Mit den heutigen schnellen CPUs übertrifft die Leistung von Software-RAID-Systemen sogar die von Hardware-RAID-Systemen.

Der MD-Treiber im Linux-Kernel ist ein Beispiel für eine RAID-Lösung, die vollkommen hardwareunabhängig ist. Die Leistung eines softwarebasierten Arrays ist sehr stark abhängig von Leistung und Auslastung der Server-CPU.

Für weitere Informationen über Software RAID im Red Hat Linux Installationsprogramm lesen Sie das Offizielle Red Hat Linux Handbuch Benutzerdefinierte Konfiguration.

Für alle, die sich für Software-RAID interessieren, geben wir hier eine kurze Liste einiger Funktionsmerkmale an:

  • Wiederherstellungsprozess mit Threads

  • Vollständig kernelbasierte Konfiguration

  • Portabilität von Arrays zwischen Linux-Rechnern ohne Reorganisation

  • Reorganisation von Arrays im Hintergrund unter Verwendung ungenutzter Systemressourcen

  • Unterstützung von hotswapfähigen Laufwerken

  • Automatische CPU-Erkennung zur vollen Ausnutzung bestimmter CPU-Ausnutzungen

RAID Level and linearer Support

RAID bietet außerdem die Level 0, 1, 4, 5 und linearen Support. Diese RAID-Typen funktionieren folgendermaßen:

  • Level 0 — RAID Level 0, oftmals als "Striping" bezeichnet, ist eine leistungsorientierte Datenzuordnungstechnik. Das heißt, die in das Array zu schreibenden Daten werden zerlegt und auf die einzelnen Festplatten des Arrays verteilt. Dies ermöglicht eine hohe E/A-Leistung bei geringen zusätzlichen Kosten, bietet jedoch keine Redundanz. Die Speicherkapazität des Arrays entspricht der Gesamtkapazität aller Festplatten des Arrays.

  • Level 1 — RAID Level 1, oder "Mirroring", wird bereits länger als alle anderen RAID-Formen eingesetzt. Level 1 gewährleistet Redundanz, indem die gleichen Daten auf jede einzelne Festplatte des Arrays geschrieben werden, so dass auf jeder Festplatte eine "gespiegelte" Kopie vorliegt. Diese Vorgehensweise bleibt wegen ihrer Einfachheit und hohen Datenverfügbarkeit weiterhin populär. Sie funktioniert mit zwei oder mehreren Festplatten, die einen parallelen Zugriff für hohe Datenübertragungsgeschwindigkeiten zum Lesen bieten, aber normalerweise für hohe E/A-Transaktionsraten unabhängig voneinander arbeiten. Level 1 bietet sehr gute Datensicherheit und verbessert die Leistung für leseintensive Anwendungen, jedoch bei relativ hohen Kosten. [2]Die Speicherkapazität des Level 1 Arrays entspricht der Kapazität einer einzelnen Festplatte im Hardware RAID oder einer der gespiegelten Partitionen in einem Software-RAID.

  • Level 4 — Level 4 verwendet Prüfbits[3] , die zum Datenschutz auf einer einzigen Festplatte konzentriert sind. Dieses Verfahren eignet sich eher für E/A-Vorgänge als für die Übertragung größerer Dateien. Da die eigens für Prüfbits bestimmte Festplatte einen Engpass darstellt, wird Level 4 selten ohne unterstützende Techniken wie Write Back Caching verwendet. Obwohl RAID Level 4 für einige RAID-Partitionsvarianten verwendet werden kann, ist es für Red Hat Linux RAID-Installationen nicht zugelassen. [4]Die Speicherkapazität des Hardware-RAID Level 4 entspricht der Kapazität der Festplatten abzüglich der Größe einer der zugehörigen Festplatten. Die Speicherkapazität des Hardware-RAID Level 4 entspricht der Kapazität der Partitionen abzüglich der Größe einer der zugehörigen Partitionen, wenn sie gleich groß sind.

  • Level 5 — Das ist der am meisten verbreitete RAID-Typ. Durch Verteilen der Prüfbits auf einige oder alle Array-Laufwerke wird der Schreibengpass von Level 4 eliminiert. Den einzigen Engpass bildet jetzt die Prüfsummenbildung, was jedoch mit modernen CPUs und Software-RAID kein nennenswertes Problem ist. Wie bei Level 4 ist das Ergebnis ein asymmetrisches Leistungsverhalten, wobei Lesevorgänge erheblich schneller ablaufen als Schreibvorgänge. Um diese Asymmetrie zu verringern, wird Level 5 häufig zusammen mit Write-back verwendet. Die Kapazität des Arrays entspricht der Kapazität der Festplatten im Array minus der Kapazität einer Festplatte, falls Sie identische Festplattenlaufwerke verwenden.

  • Lineares RAID — Lineares RAID ist die einfache Zusammenschaltung von Festplatten, um so zu einer größeren virtuellen Festplatte zu gelangen. Beim linearen RAID werden die Blöcke jeweils auf die nächste Festplatte geschrieben, wenn die vorhergehende Festplatte voll ist. Diese Gruppierung bringt keinen Leistungsvorteil, da es unwahrscheinlich ist, dass E/A-Operationen zwischen verschiedenen Festplatten aufgeteilt werden. Lineares RAID bietet auch keine Redundanz und reduziert sogar die Zuverlässigkeit - wenn eine der Festplatten ausfällt, funktioniert das gesamte Array nicht mehr. Die Kapazität berechnet sich aus der Summe der Kapazitäten aller Festplatten.

Fußnoten

[1]

Ein Hot-Swap-Chassis ermöglicht es, ein Festplattenlaufwerk zu entfernen, ohne das System ausschalten zu müssen

[2]

RAID Level 1 ist teuer, weil alle Informationen auf alle Festplatten des Arrays geschrieben werden. Dadurch wird Speicherplatz verschwendet. Wenn zum Beispiel RAID Level 1 so eingerichtet ist, dass die Root (/)-Partition über zwei 40 GB-Festplatten verteilt ist, sind insgesamt 80 GB im Einsatz, wobei Sie aber nur auf 40 GB dieser 80 GB zugreifen können. Die weiteren 40 GB werden als eine Art Spiegel der ersten 40 GB verwendet.

[3]

Die Prüfbitinformationen werden auf der Grundlage des Inhalts der restlichen Festplatten des Arrays berechnet. Diese Informationen können dann für die Rekonstruktion von Daten verwendet werden, wenn eine Festplatte des Arrays ausfällt. Mit den rekonstruierten Daten können E/A-Anforderungen an die ausgefallene Festplatte beantwortet und die Festplatte nach der Reparatur oder dem Austausch neu beschrieben werden.

[4]

RAID Level 4 benötigt etwa den gleichen Speicherplatz wie RAID Level 5. Level 5 bietet allerdings im Gegensatz zu Level 4 eine Vielzahl von Vorteilen. Aus diesem Grund wird Level 4 nicht unterstützt.