RAID-Systeme (Reduntant Array of Independent Discs) in Linux einrichten
In einer Serverumgebung macht es absolut Sinn, sowohl Datensicherheit als auch Bereitstellungsgeschwindigkeit zu optimieren. In der Regel werden hierfür Hardware-Raidsysteme angeboten. Da diese recht kostspielig sind, haben Sie die Möglichkeit sogenannte Software-RAIDS zu bauen. Bei einem Software RAID übernimmt das Betriebssystem die Ansteuerung und Verwaltung des RAID.
Nutzbare RAID-Level
RAID 0
Beim RAID 0 (Striping) werden zwei oder mehr Festplatten zu einer großen logischen Platte zusammengefasst. Schreibvorgänge werden gleichmäßig über alle Platten verteilt, was die Zugriffsgeschwindigkeit enorm erhöht. Da Sie bei einem RAID 0 allerdings keine Datensicherheit im Falle eines Hardwareversagens haben, sollten Sie sich genau überlegen, wann und wo Sie RAID 0 einsetzen. Kapazität: Kapazität der kleinsten Platte x 2.
RAID 1
Beim RAID 1 (Mirroring) werden ebenfalls zwei oder mehr Festplatten (In der Regel ein Vielfaches von 2) verwendet. Anders als beim RAID 0 werden hier die Festplatten jedoch gespiegelt. Die Daten werden parallel auf den Datenträgern hinterlegt, was die Datensicherheit maximiert (fällt eine Platte aus, ist die Kopie noch vorhanden), allerdings keinen Geschwindigkeitszuwachs bringt. Kapazität: Kleinste Platte.
RAID 5
Bei großen Datenmengen, die redundant gespeichert werden müssen, ist RAID 0 nicht akzeptabel und RAID 1 zu teuer. Der RAID-Level 5 ist eine Weiterentwicklung aus den RAID-Leveln 3 und 4. Wie bei RAID 0 werden die Daten in Blöcke, den Stripes, aufgeteilt und über die gesamte Festplatte verteilt. Um RAID 5 nutzen zu können, müssen mindestens 3 Platten (es funktioniert auch mit 2 Platten, die Sinnhaftigkeit ist jedoch fraglich.) vorhanden sein. Zur Steigerung der Gesamtkapazität des logischen Laufwerks können auch mehr Platten eingebunden werden. Allerdings darf dennoch lediglich eine Platte ausfallen, ohne den Betrieb zu stören. Bei drei Platten wird ein Datenblock von 128 kByte in zwei Datenblöcke von 64 kByte geteilt. Aus den beiden Datenblöcken wird die Paritätsinformation gebildet, die einem dritten Block von 64 kByte entspricht. Die Parität ist das Ergebnis einer Exklusiv-Oder-Verknüpfung (XOR) der Datenblöcke eines Sektors. Die Parität wird aus Sicherheitsgründen nicht auf einem separaten Laufwerk gespeichert, sondern gleichmäßig auf alle Platten zwischen den Datenblöcken verteilt (Rotating Parity). Die Kapazität eines RAID 5 ist: (Anzahl der Platten -1) x Kapazität der kleinsten Platte.
RAID 6
Ist eine Weiterentwicklung von RAID 5. Sie benötigen zum Erstellen mindestens 4 Platten (es funktioniert auch mit 3 Platten, die Sinnhaftigkeit ist jedoch fraglich.). Es können 2 Festplatten ausfallen und die Daten sind immer noch lesbar. Je nach Entwickler wird die Parität einfach wie bei RAID 5 berechnet und dann auf 2 Platten geschrieben oder es wird eine neue Parität berechnet, inklusive der ersten Paritätsinformationen. Dieser RAID-Level ist nicht fest und eindeutig definiert, unterschiedliche Hersteller können unterschiedliche Implementierungen vorgenommen haben bzw. vornehmen. RAID 6 wird auch unter der Bezeichnung RAID ADG (Advanced Data Guarding) geführt. Die Kapazität eines RAID 6 ist: (Anzahl der Platten -2) x Kapazität der kleinsten Platte.
Veraltete RAID-Level
RAID 2
Die Daten werden in einzelne Bytes aufgeteilt und ein ECC (Error Correction Code) nach Hamming errechnet und auf dedizierte Festplatten geschrieben. Da heute alle Festplatten interne ECC-Berechnungen durchführen, wird diese Methode zur Korrektur einzelner Bit-Fehler nicht mehr verwendet.
RAID 3
Die Daten werden in einzelnen Bytes aufgeteilt und auf die Festplatten geschrieben. Die Paritätsinformationen werden zu jeder Datenreihe auf die dedizierte Paritäts-Platte geschrieben. Dieser RAID-Level wird nur selten angewendet, da die Paritäts-Platte der Flaschenhals (bottle neck) ist.
RAID 4
Dieses Verfahren ist mit dem RAID-Level 3 vergleichbar, jedoch werden die Daten in Blöcke aufgeteilt. Ein großer Nachteil sind Schreiboperationen, da die Paritätsinformationen berechnet und auf die eine dedizierte Festplatte geschrieben werden müssen. Diese Platte wird schnell zum Flaschenhals im Gesamtsystem. Der Flaschenhals kann dadurch verhindert werden, dass die Paritätsinformationen im RAID-Controller zwischengespeichert und in großen Blöcken auf die Platte geschrieben werden. Der größte Vorteil von RAID 4 ist die Erweiterbarkeit um zusätzliche Festplatten ohne Umorganisation der Festplatteninhalte.
Erwähnenswerte RAIDs
Zu den genannten RAIDs gibt es noch diverse Kombinationen von RAID Leveln auf die hier nicht näher eingegangen wird. Am häufigsten finden Sie wohl RAID 10. Hier werden mehrere Platten gestriped (oft 3-4) und das Stripe-Set wird gespiegelt (also insgesamt 6-8 Platten). RAID 7 ist eine Erweiterung von RAID 6. Hier werden die Paritätsinformationen auf drei Platten verteilt.
Spare-Devices
Sie können in Ihren RAID-Verbund auch so genannte Spares einbinden. Dies sind Reserveplatten, welche automatisch bei Bedarf einen Ausfall ersetzen. Spares können Sie in der Regel auch nachträglich definieren.
RAID einrichten mit mdadm
Unter Linux können Sie mit Hilfe des mdadm RAIDs definieren, verwalten und bearbeiten.
Vorbereitung
Damit Sie ein RAID-Verbund anlegen können, benötigen Sie vorbereitete Platten/Partitionen. Sie sollten mit Hilfe von fdisk die Partitionen erzeugen und die Partitions-ID auf 0xfd (bitte nur fd tippen) setzen.
Beispiel: fdisk /dev/hdb
(m für Hilfe): t
Nummer (1-4): 1
Hexcode (L für Liste): fd
Nach dem Anlegen des Verbunds sollten Sie das neue Device mit einem Dateisystem versorgen:
mke2fs -j -b 4096 /dev/md0
Mdadm bringt auch eine Konfigurationsdatei mit. Diese finden Sie in /etc/mdadm/mdadm.conf
Sie können hier Ihre RAIDs eintragen. Diese Datei finden Sie in den meisten Distributionen, welche auf Debian basieren.
Beispiel-Eintrag:
Auszug aus mdadm.conf
DEVICE /dev/sda1 /dev/hdb1
ARRAY /dev/md0 devices=/dev/sda1,/dev/hdb1 level=0 num-devices=2 spares=1
Keine Kommentare:
Kommentar veröffentlichen