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, daß 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 Prozeß umgekehrt. Dadurch entsteht
der Eindruck, daß 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
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. Eine externe RAID-Box 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
daß 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 daß 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]
Die Speicherkapazität des Arrays entspricht der
Kapazität eines einzelnen Festplattenlaufwerks.
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
Engpaß 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 Array-Kapazität entspricht der Kapazität
aller Festplatten abzüglich der Kapazität einer
Festplatte.
Level 5 - Der am weitesten
verbreitete RAID-Typ. Durch Verteilen der Prüfbits
auf einige oder alle Array-Laufwerke wird der
Schreibengpaß von Level 4 eliminiert. Den einzigen
Engpaß 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 Array-Kapazität entspricht der
Kapazität aller Festplatten abzüglich der
Kapazität einer Festplatte.
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, daß 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.
Tip: Verwendung von fdisk
Wenn Sie fdisk zum Erstellen einer
RAID-Partition verwenden, müssen Sie beim Erstellen einer
Partition statt des Typs 83 (Linux native)
den Typ fd (Linux RAID) verwenden.
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, daß sie die gesamte
Festplatte einnimmt. Ihre Größe ist variabel und
hängt davon ab, wie Sie die anderen Partitionen
festlegen. Sie können mehrere Partitionen gleichzeitig
variabel machen. Der freie Speicherplatz auf der Festplatte
wird dann zwischen allen variablen Partitionen aufgeteilt.
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. Sie sollten
md0 für Ihr erstes Gerät,
md1 für das zweite Gerät usw.
verwenden, es sei denn, es gibt einen speziellen Grund,
davon abzuweichen. 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 auswählen.
Bitte beachten:
Wenn Sie /boot in eine
RAID-Partition umwandeln wollen, müssen Sie RAID
level 1 wählen. Wenn Sie nicht
/boot, sondern
/ in eine RAID-Partition umwandeln
wollen, muß RAID Level 1 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 Installationsprozeß
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, daß
die Root ("/")-Partition über zwei 4
GB-Festplattenlaufwerke verteilt ist, sind insgesamt 8
GB im Einsatz. Zugreifen können Sie aber nur auf
4 GB von 8 GB. 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.