SoftRAID-1 unter SuSE 7.3

 Dieses Beispiel wendet sich in erster Linie an alle Benutzer der SuSE-Distribution 7.3. In anderen Distributionen können Abweichungen auftreten. Grundsätzlich sollte es aber ähnlich aussehen. Im Besonderen verweise ich auf folgende Seiten:

Soft- und Hardware-RAID unter Linux

Vortrag über RAID

 

RAID-0

Um die Daten auf auf die Platten zu verteilen, werden die Platten in gleichgroße Stücke, sogenannte chunks aufgeteilt. Die Stücke in einer Ebene nennt man Streifen. Die Größe der Stücke sollte in Abhängigkeit zur durchschnittlichen Größe der gespeicheten Daten und zur Sektorgröße der Platten gewählt werden. Die Treiber von Linux erlauben per se nur Stückgrößen von von n kBytes.

Die Abbildung zeigt, wie die Daten angeordnet werden. Der Anwender sieht dabei nur die logische Ebene /dev/md0 und nicht die zugrundeliegende physikalische. Für ihn ist das gesamte Gebilde transparent eine einzige Festplatte, auf der die Daten sequenziell abgelegt sind. Stattdessen werden die Daten jedoch ebenfalls in Stücke aufgeteilt und in den Chunks abgelegt. Diese werden wie in der Abbildung alternierend auf die beteiligten Festplatten verteilt.

 

So werden alle Platten gleichmäßig beansprucht und die I/O-Anfragen können besser verteilt werden. Zudem können mehrere Lese- bzw. Schreibvorgänge parallel ablaufen. Dieses Verfahren wird auch als RAID-0 bezeichnet.

 

Sicherheit der Daten wird dadurch gewährleistet, daß sie komplett - oder wenigstens relevante Auszüge daraus - doppelt gespeichert werden. Sicherheit bedeutet hier nicht, daß ein Hacker sensible Daten nicht erreichen kann, dazu benötigt man andere Methoden, sondern Ausfallsicherheit. Wenn eine oder zwei Festplatten ausfallen (Hardwaredefekte etc.), dann können die Daten immer noch komplett restauriert werden.

 

RAID-1 (Mirroring)

Ein RAID-1 Verbund wird auch als »Spiegelsystem« bezeichnet, da hier der gesamte Inhalt einer Partition auf eine oder mehrere andere gespiegelt und damit eins zu eins dupliziert wird. Wir haben hier also den ersten Fall von Redundanz. Desweiteren können hier, falls es erwünscht ist, zum ersten mal Spare-Disks zum Einsatz kommen. Diese liegen pauschal erstmal brach im System und werden erst um Ihre Mitarbeit bemüht, wenn eine Partition des RAID-1 Verbundes ausgefallen ist. Spare-Disks bieten also einen zusätzlichen Ausfallschutz, um nach einem Ausfall möglichst schnell wieder ein redundantes System zu bekommen.

 

RAID-5

Hier wird über alle beschriebenen Stücke in einem Streifen eine Checksumme berechnet, ein simples XOR reicht. Im ersten Streifen wird die Checksumme im letzen Stück gespeichert, im nächsten Streifen steht sie im vorletzten Stück und so fort. Auf diese Weise lassen sich die Daten komplett rekonstruieren, wenn eine Platte ausfallen sollte. Zudem erhält man auch den Vorteil, daß die Platten gleichmäßig beansprucht werden. Da jedoch eine zusätzliche Festplatte benötigt wird, lohnt sich das Verfahren erst ab 4 Platten.

 

Eine Weiterentwicklung ist RAID-6. Hier werden pro Streifen zwei voneinander völlig unabhängige Checksummen berechnet. Wie bei RAID-5 werden sie zuerst in den beiden letzten Chunks gespeichert und nach vorne geschoben.

 

So dürfen sogar zwei Festplatten ausfallen, ohne, daß man Datenverlust hat. Allerdings erkauft man sich diese Sicherheit auch mit einer weiteren Platte, so daß dieses Verfahren nur bei äußerst sensiblen Daten oder viel Festplatten angewendet wird.


Anleitung für RAID-1

  1. cat /proc/mdstat eingeben,
    um zu prüfen ob der Kernel die RAID Option wirklich unterstützt.
     
  2. Partitionen erstellen
    Am sinnvollsten verwendet man dazu zwei gleichgroße Partitionen auf unterschiedlichen Festplatten. Bei IDE-Festplatten ist es auch sinnvoll dafür zu sorgen, daß die beiden Festplatten nicht vom gleichen Controller gesteuert werden (nicht am gleichen Strang(Kabel)).
     
  3. /etc/raidtab erstellen:
    raiddev /dev/md0
    raid-level 1
    nr-raid-disks 2
    nr-spare-disks 0
    chunk-size 4
    persistent-superblock 1
    device /dev/hdc1
    raid-disk 0
    device /dev/hdd1
    raid-disk 1

     
  4. Das RAID-Aray initialisieren mit: mkraid --really-force /dev/md0
     
  5. Das RAID-Array formatieren
    • mit: mkreiserfs /dev/md0
    • oder: mke2fs /dev/md0

  6. Das RAID-Array mounten mit: mount /dev/md0 /spiegel
    Das Verzeichnis /spiegel sollte aber auch vorhanden sein (mit allen benötigten Rechten).
    Damit das ganze automatisiert wird,
    kann eine Zeile in der /etc/fstab angehängt werden:
    /dev/md0 /spiegel        reiserfs        defaults 1 1

Verschiedene Befehle

  • raidstop /dev/md0 Beendet den RAID-Verbund. Vorher sollte ein umount durchgeführt worden sein.
     
  • raidstart /dev/md0 Startet den RAID-Verbund.
     
  • umount /dev/md0
     
  • cat /proc/mdstat

Diese Anleitung habe ich aus vielen verschiedenen Publikationen zusammengestellt. In einigen stand etwas Nützliches. Einige waren zu kompliziert oder bezogen sich auf ältere Soft-RAID-tool's. Wieder andere Publikationen haben sich nur mit RAID an sich auseinandergesetzt. Aber auch daran läßt sich sehr schnell erkennen, daß es zu diesem Thema keine pauschale Anleitung gibt, so wie: "Drücke die Taste F13 und Dein Wunsch geht in Erfüllung."