LVM und RAID
Dieser Artikel ist eine Ergänzung der schon vorhandenen Artikel zu RAID LVM unter Linux.
Vorwort
Dieser Artikel soll nicht direkt eine neue Beschreibung der schon existierenden Artikel zu den Themen RAID und LVM unter Linux darstellen. Vielmehr ist er eine Ergänzung der schon vorhandenen Artikel. Aus diesem Grund gehe ich nicht auf die Grundlagen von RAID ein. Sollten Ihnen die Grundlagen nicht bekannt sein, so können Sie sich hier informieren. Der Schwerpunkt dieses Artikels wird auf RAID1 und besonders auf RAID5 liegen und den Problemen, die sich damit ergeben können. Außerdem möchte ich hier noch genauer den Unterschied zwischen RAID und LVM erklären, da ich bei meinem letzten Artikel sehr viele Anfragen zu diesem Thema bekommen habe.
Voraussetzungen
Mein System sah wie folgt aus: PII-450, 256 MB RAM, drei 2 GB SCSI Festplatten und eine 4,3 GB SCSI Festplatte. Die 4,3 GB SCSI Festplatte wurde dazu verwendet, um eine Austauschplatte bereit zu halten, damit sie in ein bestehendes RAID-System integriert werden kann. Mein Betriebssystem ist SuSE 6.4. Die Software (Paket: mdutils) ist bereits in SuSE 6.4 enthalten, oder kann problemlos nachträglich installiert werden. Die Software gibt es in zwei verschiedenen Versionen (eine ältere und eine aktuellere), die in ihrer Funktion aber identisch sind.
Konfiguration des RAID1-Systems
Als erstes muß das RAID1-System initialisiert werden. Dazu müssen wir die Datei raid1.conf.sample editieren. Sie finden die Datei entweder im /usr/doc/packages/mdutils Verzeichnis (bei der Standard SuSE-Installation) oder in Ihrem Quellverzeichnis falls Sie es heruntergeladen haben. Eigentlich müssen in der Datei nur Ihre Laufwerke bzw. die Partitionen angepaßt werden, falls Sie SCSI-Laufwerke verwenden und nur zwei Platten spiegeln möchten. Kopieren Sie danach die Datei nach /etc/raid1.conf.
Layout der Datei /etc/raid1.conf:
# Sample raid-1 configuration raiddev /dev/md0 | |
raid-level 1 | |
nr-raid-disks 2 | |
nr-spare-disks 0 | |
device | /dev/sda1 |
raid-disk | 0 |
device | /dev/sdb1 |
raid-disk | 1 |
Bevor wir das Array angelegen, müssen wir auf jeden Fall alle Festplatten neu partitionieren (normale Linux-Partitionen). Nun kann das RAID-Array angelegt werden:
mkraid -f /etc/raid1.conf
Dieser Vorgang dauert je nach Größe und Anzahl der Festplatten unterschiedlich lange. Jetzt müssen wir dem md-Gerät noch mitteilen, mit welchen physikalischen Festplatten es zu tun hat, aktivieren das Array und schreiben alle Informationen in die Datei /etc/mdtab. Dadurch müssen wir nicht jedesmal wieder alles neu tippen.
mdadd /dev/md0 /dev/sda1 /dev/sdb1 mdrun -f0 -p1 /dev/md0 mdcreate -f0 raid1 /dev/md0 /dev/sda1 /dev/sdb1
Nun kann das Dateisystem geschrieben und gemountet werden.
mke2fs /dev/md0 mount /dev/md0 /mnt/raid1
Wenn Sie jetzt den Rechner neu starten, kann das Array mit dem Befehl mdadd -ar
aktiviert und danach gemountet werden. Beim Herunterfahren darf das Array nicht gemountet sein und muß mit dem Befehl mdstop -a
deaktiviert werden. Dieses gilt nur für Personen, die die mdutils aus dem Internet geladen und installiert haben. Diese Befehle sollten im Boot-Skript vorhanden sein. Siehe dazu auch »Probleme mit RAID-Systemen«.
Konfiguration des RAID5-Systems
Die Konfiguration eines RAID5-Systems sieht ähnlich aus wie die eines RAID1-Systems. Als erstes nehmen Sie die Beispiel-Konfigurationsdatei (raid5.conf.sample) für das RAID5-System, passen sie an und kopieren sie nach /etc/raid5.conf.
Layout der Datei /etc/raid5.conf:
# Sample raid-5 configuration raiddev /dev/md0 raid-level 5 nr-raid-disks 3 chunk-size 32 # Parity placement algorithm #parity-algorithm left-asymmetric parity-algorithm left-symmetric #parity-algorithm right-asymmetric #parity-algorithm right-symmetric | |
# Spare disks for hot reconstruction (not supported yet) | |
#nr-spare-disks | 0 |
device | /dev/sda1 |
raid-disk | 0 |
device | /dev/sdb1 |
raid-disk | 1 |
device | /dev/sdc1 |
raid-disk | 2 |
Jetzt werden die Festplatten neu partitioniert und das Array initialisiert:
mkraid -f /etc/raid5.conf
Nun wird das RAID-System angelegt, aktiviert und die Informationen werden wieder in die Datei /etc/mdtab abgespeichert.
mdadd /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 mdrun -p5 /dev/md0 mdcreate -c32k raid5 /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1
Nun kann das Dateisystem geschrieben und gemountet werden.
mke2fs /dev/md0 mount /dev/md0 /mnt/raid1
Wenn Sie jetzt den Rechner neu starten, kann das Array mit dem Befehl mdadd -ar
aktiviert und danach gemountet werden. Beim Herunterfahren darf das Array nicht gemountet sein und muß mit dem Befehl mdstop -a
deaktiviert werden. Dieses gilt nur für Personen, die sich die mdutils aus dem Internet geladen und installiert haben. Diese Befehle sollten im Boot-Skript vorhanden sein. Siehe dazu auch »Probleme mit RAID-Systemen«.
Der Ausfall einer Festplatte
Sollte eine Festplatte ausfallen, so empfiehlt sich als erstes eine Datensicherung auf eine andere Festplatte, um kein Risiko einzugehen. Danach muß der Rechner ordnungsgemäß abgeschaltet werden (umount /dev/md0; mdstop -a
), und die Festplatte kann ausgetauscht werden. Jetzt ist besonders die Reihenfolge wichtig, in der Sie die neue Festplatte wieder einbauen. Achten Sie bei SCSI darauf, daß die neue Festplatte die selbe ID hat um, die korrekte Reihenfolge zu gewährleisten. Bei IDE müssen Sie darauf achten, ob Ihre vorherige HD Master oder Slave war und an welchen IDE-Kanal sie angeschlossen war.
Nun wird die neue Festplatte partitioniert und rekonstruiert:
<strong>Bei RAID1</strong> ckraid --fix /etc/raid1.conf <strong>Bei RAID5</strong> ckraid --fix /etc/raid5.conf
Dieser Vorgang kann ebenfalls ziemlich lange dauern. Danach kann das Array wieder aktiviert werden.
mdadd -ar