|
|
RAID-SystemeRAID-Systeme basieren auf Überlegungen der Autoren Patterson, Gibson und Katz, die sie 1987 in einem Artikel namens »A Case for Redundant Arrays of Inexpensive Disks (RAID)« veröffentlichten. RAID-Systeme fassen mehrere Platten zu einer logischen Platte zusammen, sodass die laufenden Programme es gar nicht bemerken. Das Ziel des Artikels war es, durch Redundanzen eine höhere Ausfallsicherheit der Platteneinheit zu erreichen. Dabei wurden verschiedene Level, beginnend bei 1, vorgestellt. Später wurde der Level 0 hinzugefügt, obwohl er nichts mit Redundanz zu tun hat. Heute sind hauptsächlich die RAID-Level 0, 1, 5 und schließlich 10 implementiert. RAID ist eine Technologie, die für Hochverfügbarkeitsrechner unerlässlich ist. Damit verliert ein Plattencrash seinen Schrecken. Diese Systeme sind kein Rundumschutz, sondern verhindern nur den sofortigen Systemstillstand aufgrund der meisten physikalischen Festplattendefekte. Ausfälle durch Anwenderfehler, Programmfehler oder Systemfehler aus anderen Quellen verhindern sie nicht. RAID macht also die Datensicherung keineswegs überflüssig.
RAID 0: StripingDieses Verfahren macht aus mehreren physikalischen Platten eine virtuelle. Der offenkundige Vorteil ist, dass man sich nicht um die Verteilung der Verzeichnisse auf die verschiedenen Platten kümmern muss. Dadurch kann es nicht passieren, dass eine Platte vollgeschrieben wird, während die anderen noch massenhaft Platz haben. Dazu kommt, dass es im Extremfall sogar möglich ist, Dateien auf Platten zu speichern, die größer sind als jede einzelne der beteiligten Festplatten. Auf der anderen Seite steigert das Striping den Durchsatz. Striping bedeutet, dass die Blöcke abwechselnd auf den Platten verteilt sind. Da erwartet wird, dass in vielen Fällen die Dateien sequenziell geschrieben und gelesen werden, wird immer im Wechsel auf die verschiedenen Laufwerke zugegriffen. Im Schnitt wird eine optimale Verteilung der Belastung auf alle Platten erreicht. Dadurch können Parallelisierungsvorteile genutzt werden, die beim sequenziellen Schreiben auf eine einzige Platte nicht erreichbar sind. RAID 0 hat keinerlei Redundanz, und so ist im Falle des Versagens einer Platte auch der Bereich der anderen Platten betroffen, da die Daten ja nicht auf separaten Dateisystemen liegen.
RAID 1: MirroringRAID 1 verwendet mindestens zwei Platten, auf die quasi alle Daten doppelt geschrieben werden. Fällt eine Platte aus, springt die überlebende Platte ein. Die Performance einer solchen Platte ist beim Schreiben geringer als bei normalen Laufwerken, aber auch nicht etwa halb so hoch, da der Controller eine Parallelverarbeitung beim Schreiben erzielen kann. Beim Lesen sollte es keinen Performanceverlust geben. Als entscheidender Nachteil dieses Verfahrens gilt der hohe Preis pro MByte Speicherkapazität, da doppelt so viele Platten gebraucht werden.
RAID 5Bei RAID 5 werden mehrere Platten (üblicherweise drei bis fünf) so zusammengefasst, dass der Ausfall einer Platte den Betrieb nicht unterbricht. Das funktioniert auf der Basis von Prüfsummen, die so auf die Platten verteilt werden, dass bei einem Ausfall einer Platte die verbleibenden Platten die Informationen der ausgefallenen errechnen können. Dabei verliert man durch die redundante Speicherung etwas von dem Speicherplatz, den die verwendeten Platten in der Summe bieten würde und eine gewisse Performance, da natürlich das redundante Verteilen der Daten ein wenig Zeit in Anspruch nimmt. Die Lesezugriffe sind aufgrund des Stripings im Verhältnis zu einer einfachen Platte beschleunigt.
RAID 10RAID 10 ist kein eigenständiger RAID-Level, sondern eigentlich nur die Kombination von RAID 0 mit RAID 1. Es werden also zwei mal zwei Platten per Striping verbunden. Dann werden die Plattenpaare als Spiegelplatten verwendet. Man könnte RAID 10 als beschleunigte Spiegelung ansprechen, denn RAID 10 nutzt die Beschleunigung von RAID 0 und die Redundanz von RAID 1. Im Gegensatz zu RAID 5 ist ein solcher Verbund also schneller, hat aber immer noch den Speicherverlust von 50% durch das Spiegeln.
Hardware-RAIDZunächst wurde RAID auf Controllerebene, also in Hardware realisiert. An einen Controller werden mehrere Festplatten angeschlossen, die gemeinsam das RAID-System darstellen. Aus Sicht des Betriebssystems ist nicht zu erkennen, dass es sich um mehrere Platten handelt, sondern es betrachtet den Verbund wie eine Platte. Es gibt zwei Arten, ein RAID-System zu installieren. Die erste Variante ist, einen RAID-Controller zu verwenden, an den mehrere Platten angeschlossen werden. In den meisten Fällen werden das SCSI-Platten sein. Die andere Variante ist, dass man ein externes RAID-System verwendet, das intern einen RAID-Controller besitzt, nach außen aber einfach wie eine gewöhnliche SCSI-Platte angeschlossen wird. Die zweite Variante ist natürlich etwas einfacher in der Handhabung. Die erste Lösung kann daraus Vorteile ziehen, dass sie die Durchsatzvorteile der parallelen Plattenabfragen direkt über den schnellen Systembus und nicht mehr über einen SCSI-Bus quetschen muss. Hardware-RAID besitzt fast immer auch die Möglichkeit des Hotplugging. Das bedeutet, dass im laufenden Betrieb die Platten gewechselt werden können. Ausgefallene Platten werden meist durch akustische oder Lichtsignale gemeldet und können herausgezogen werden. Eine Ersatzplatte, die man als kluger Administrator natürlich vorrätig im Schrank liegen hat, kann eingeschoben werden und wird vom Controller wieder ins System eingebunden. Sobald der Controller den Datenbestand der Festplatte wieder aus den verbliebenen Platten restauriert hat, ist das System wieder gegen einen Festplattencrash gesichert.
Software-RAIDUnter Linux wurde RAID auf der Basis des Betriebssystems entwickelt. Es basiert nicht mehr auf ganzen Platten, sondern auf Partitionen. Damit das Striping effektiv ist, müssen die verwendeten Partitionen ähnlich groß sein. Sowohl für das Striping als auch für die Redundanz ist es wichtig, dass die verwendeten Partitionen auf verschiedenen physikalischen Plattenlaufwerken liegen. Das diesbezügliche HOWTO wird noch deutlicher und sagt, dass es »so gut wie immer unsinnig ist, innerhalb eines RAID-Verbundes mehrere Partitionen auf dieselbe Festplatte zu legen«.Linux Software-RAID HOWTO. v0.2.11-2, 5. April 2000. Kap. 3.1. Hardware, letzter Absatz.Da die Grundlage eines solchen RAID-Verbundes Partitionen sind, ist es irrelevant ist, ob sie auf IDE oder SCSI-Platten liegen. Auch ein Mischbetrieb ist möglich. Allerdings weist das Software-RAID-HOWTO darauf hin, dass IDE-Platten kaum zu parallelisieren sind, selbst wenn sie an verschiedenen Controllern laufen. Performancegewinne wären vor allem bei SCSI-Platten zu erwarten.
Überblick über die Einrichtung unter LinuxHier soll in Stichworten ausgeführt werden, wie man ein Software-RAID installiert. Dazu muss der Linux-Kernel das Software-RAID unterstützen. In den aktuellen Distributionen ist das normalerweise gewährleistet. Als Beispiel soll ein RAID 0 auf zwei SCSI-Platten installiert werden.
Damit das RAID automatisch beim nächsten Boot aktiviert wird, müssen die
Partitionen einen speziellen Typ erhalten, den man mit dem Partitionierungstool
Anschließend muss in der Konfigurationsdatei /etc/raidtab definiert werden, wie das neue RAID auszusehen hat.
raiddev /dev/md0 raid-level 0 nr-raid-disks 2 persistent-superblock 1 chunk-size 4
device /dev/sda1 raid-disk 0 device /dev/sdb1 raid-disk 1
Der Eintrag persistent-superblock erreicht, dass das RAID beim Boot
automatisch gestartet werden kann. Die chunk-size legt für das Striping
fest, wie groß der Datenblock ist, der auf einer Partition gehalten wird.
Im Beispiel werden bei einer größeren Datei die ersten 4 KByte auf
sda1, die nächsten 4 KByte auf sdb1 geschrieben und so fort.
Die Bedeutung der anderen Parameter dürfte offenkundig sein.
Nachdem die Datei raidtab erstellt ist, kann das RAID mit dem
Befehl
mkraid /dev/md0 Anschließend kann das RAID wie eine normale Partition über die Gerätedatei /dev/md0 angesprochen werden, und es kann ein Dateisystem auf ihm erstellt werden.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|