Die grundlegende Idee 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 großen und teuren Festplatte. Diese
Festplattengruppe wird durch den Computer wie eine einzige logische
Speichereinheit oder Festplatte angesprochen.
Bei dieser Methode werden Daten auf mehrere Festplatten unter
Verwendungen von Techniken wie Disk Striping (RAID
Level 0) und Disk Mirroring (RAID Level 1)
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 auf jedes Laufwerk
innerhalb der Laufwerkgruppe auf einheitliche Art und Weise 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 mit großen Datenmengen umgeht (z.B. ein typischer
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 (und wirtschaftlicher)
Bessere Effizienz beim Wiederherstellen von Daten nach einem
Plattenausfall
Das Hardware-basierte 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 wäre 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.
Beim Software-RAID sind die verschiedenen RAID-Levels im
Kernel-Disk-(Blockgeräte-) Code implementiert. Dieser Ansatz ist
die preiswerteste Lösung: Es werden keine teuren
Festplattencontroller oder Hot-Swap-Chassis benötigt
[1],
und Software-RAID funktioniert mit billigeren 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 Software-basierten Arrays ist sehr stark abhängig
von Leistung und Auslastung der Server-CPU.
RAID bietet außerdem die Level 0, 1, 4, 5 und lineare
Unterstützung. 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 für hohe
Datenübertragungsgeschwindigkeiten mit parallelem Zugriff
lesen können, 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]
Wenn Sie identische Festplattenlaufwerke verwenden, dann
entspricht die Kapazität des Arrays der Kapazität
einer einzelnen Festplatte im Array.
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 großer
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 Kapazität des Arrays entspricht der Kapazität der
Festplatten im Array minus der Kapazität einer Festplatte,
falls Sie identische Festplattenlaufwerke verwenden.
Level 5 - Der am weitesten 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.
RAID ist sowohl bei Verwendung der grafischen Oberfläche als auch
im Kickstart-Installationsmodus verfügbar. Ihre RAID-Konfiguration
können Sie mit fdisk oder
Disk Druid erstellen. Diese Anleitung
konzentriert sich jedoch hauptsächlich auf die Verwendung von
Disk Druid für diese Aufgabe.
Bevor Sie ein RAID-Gerät erstellen können, müssen zuerst
RAID-Partitionen erstellt werden. Gehen Sie dabei nach der folgenden
Schritt-für-Schritt-Anweisung vor.
Tipp: Verwendung von fdisk
Wenn Sie fdisk zum Erstellen einer
RAID-Partition verwenden, ist Folgendes zu beachten: Sie müssen
statt einer Partition vom Typ 83 (= Linux Native)
eine Partition vom Typ fd (Linux RAID) erstellen.
Die beste Leistung erzielen Sie außerdem, wenn die Partitionen
innerhalb eines festgelegten RAID-Arrays auf den Laufwerken
identische Zylinder umfassen.
Erstellen Sie eine Partition. In Disk
Druid müssen Sie
Hinzufügen wählen, um eine neue
Partition zu erstellen (siehe
Abbildung E-1).
Abbildung E-1 Erstellen einer neuen RAID-Partition
Sie können dabei noch keinen Mount-Point eingeben. (Das
können Sie erst, wenn Sie Ihr RAID-Gerät erstellt haben.)
Geben Sie die Größe der Partition ein.
Aktivieren Sie das Kontrollkästchen An
Kapazität der Festplatte anpassen, wenn Sie die
Partition so anpassen wollen, dass sie die gesamte Festplatte
einnimmt. Ihre Größe ist variabel und hängt davon
ab, wie Sie die anderen Partitionen festlegen. Wenn Sie mehr als
eine anpassbare Partition erstellen, dann werden die verschiedenen
Partitionen um den verfügbaren freien Festplattenplatz
konkurrieren.
Geben Sie RAID als Partitionstyp an.
Wählen Sie schließlich unter
Verfügbare Laufwerke das
RAID-Laufwerk aus. Wenn Sie über mehrere Laufwerke
verfügen, werden hier alle Laufwerke aktiviert. Sie
müssen diejenigen Laufwerke deaktivieren, auf denen
kein RAID-Array erstellt werden soll.
Fahren Sie auf diese Weise fort, und erstellen Sie so viele
Partitionen, wie für das RAID-Array benötigt werden.
Abbildung E-2 RAID-Partitionen
Wenn Sie alle RAID-Partitionen erstellt haben, wählen Sie die
Schaltfläche RAID-Gerät erstellen im
Hauptpartitionierungsbildschirm von Disk
Druid (siehe Abbildung E-2).
Dann erscheint Abbildung E-3. Hier
können Sie ein RAID-Gerät erstellen.
Abbildung E-3 Erstellen eines RAID-Gerätes
Geben Sie zuerst einen Mount-Point an.
Überprüfen Sie dann, ob der Partitionstyp auf
Linux Native eingestellt ist
(Standardvorgabe).
Wählen Sie Ihr RAID-Gerät aus. Wählen Sie für
das erste Gerät md0, für
das zweite Gerät md1 usw., es sei denn es
liegt ein wichtiger Grund vor, andere Bezeichnungen für die
Geräte auszuwählen. Für RAID-Geräte können
die Bezeichnungen md0 bis md7 und jede nur einmal verwendet werden.
Wählen Sie den RAID-Typ aus. Sie können zwischen
RAID 0, RAID 1 und
RAID 5 wählen.
Bitte beachten
Wenn Sie eine RAID-Partition von /boot
erstellen, müssen Sie RAID Level 1 auswählen. Zudem
muss eines der ersten beiden Laufwerke (IDE als erstes, SCSI
als zweites) verwendet werden. Wenn Sie keine RAID-Partition
von /boot, sondern von
/ erstellen, müssen Sie ebenfalls
RAID Level 1 auswählen. Auch in diesem Fall muss eines der
beiden ersten Laufwerke (IDE als erstes, SCSI als zweites)
verwendet werden.
Wählen Sie schließlich die Partitionen aus, die zum
RAID-Array gehören sollen (siehe
Abbildung E-4), und klicken Sie auf
Weiter.
Abbildung E-4 Erstellen eines RAID-Arrays
Ab hier können Sie mit dem Installationsprozess fortfahren.
Weitere Informationen finden Sie im
Offiziellen Red Hat Linux Installationshandbuch.
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 4 GB-Festplattenlaufwerke verteilt ist, sind
insgesamt 8 GB im Einsatz, wobei Sie aber nur auf 4 GB dieser
8 GB zugreifen können. Die anderen 4 GB werden als eine
Art Spiegel der ersten 4 GB verwendet.
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.
RAID Level 4 benötigt etwa denselben 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.