Hinweis: Diese Lösung entstand vor geraumer Zeit, noch mit den alten
RAID-Tools. Sie funktioniert für mich seit langem problemlos. Für
eine Neuinstallation empfehle ich jedoch das
Software-RAID-HOWTO
von Niels Happel, das auch die neuen RAID-Tools beschreibt (Vielen Dank an
Eckehard Siegmann für diesen Hinweis).
Einrichten eines RAID1(Mirroring)-Gerätes unter SuSE-Linux
Wozu?
Durch die Spiegelung der Daten auf zwei Platten sind diese recht gut gegen
den Totalausfall einer Platte geschützt.
Der Datenzugriff wird dabei nicht schneller (das wäre beim 'Striping' so).
> Korrektur vom 5.1.00: Der RAID-Treiber im Kernel arbeitet mit 'load balancing'
> und kann die angefordeten Daten jeweils scheibchenweise von der jeweils
> schnelleren Platte abholen, so daß der Zugriff doch schneller wird.
Ein Backup kann das
'Mirroring' aber keinesfalls ersetzen, man denke nur an
rm -r *, bei dem dann halt
auf beiden Platten alles schön synchron gelöscht wird ;)
Das angeführte Beipiel läuft bei mir auf einer
SuSE6.x-Distribution. Dort wird einem von seiten des Boot/Init-Prozesses
schon Arbeit abgenommen.
Existieren die Dateien /etc/mdtab
und /etc/raid1.conf, so übernimmt der
Boot/Init-Prozess das Initialisieren des Gerätes (evtl. die Reparatur),
es muß dann nur noch gemountet werden.
Über andere Distributionen (RedHat etc.) kann ich keine Aussagen
treffen, zumindest das eigentliche Einrichten des Gerätes müßte
wie hier angegeben funktionieren.
Here we go:
-
Einrichten zweier Partitionen:
- zweckmäßigerweise auf zwei Festplatten verteilt.
- zweckmäßigerweise sind die Partitionen gleich groß
Anlegen von /etc/raid1.conf aus dem
Template (bei SuSE unter /usr/doc/packages/mdutils)
Meine sieht z. B. so aus:
# Sample raid-1 configuration
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
nr-spare-disks 0
device /dev/hdc2
raid-disk 0
device /dev/hda2
raid-disk 1
- mkraid /etc/raid1.conf
- mdadd /dev/md0 /dev/hdc2 /dev/hda2
- mdrun -p1 /dev/md0
- mke2fs /dev/md0
- Erzeugen von /etc/mdtab (in Entsprechung zu
/etc/fstab stehen dort die RAID-Geräte
drin, die zum Bootzeitpunkt initialisiert werden sollen)
Meine /etc/mdtab sieht so aus:
/dev/md0 raid1,crc32 /dev/hdc2 /dev/hda2
- In /etc/fstab schreiben bzw. von Hand mounten:
mount -text2 /dev/md0 /mnt/somewhere
Gratulation, das isses...
Noch ein Hinweis: RAID-Geräte sind etwas anfällig fuer
Stromausfälle oder andersartig ungewolltes Rechnerausschalten (sind die
Daten nun auf beiden Platten gleich oder konnten die Daten nur noch rechtzeitig
auf eine Platte geschrieben werden? - Inkonsistenz!).
Wird das Laufwerk nicht ordnungsgemäß 'geunmountet' ('ungemountet'),
läuft bei SuSE automatisch beim nächsten Booten das Programm
ckraid (check raid) an. Bei der SuSE 6.0
funktionierte dies noch nicht so, dort mußte erst von Hand die
Root-Partition read-write gemountet werden und dann
ckraid --fix /etc/raid1.conf aufgerufen werden.
Vielen Dank an Mike Leipold für den
Hinweis zum 'Hot-plugging' (Austausch einer defekten Platte im laufenden Betrieb).
Vorsicht: das geht nicht mt jeder Platte, sie muß dafür vorgesehen sein (Ich besitze keine ;).
So müßte es gehen: 'unmount' -> 'mdstop' -> Austausch der Platte.
Das Problem: Nach dem Umstecken kommt der SCSI-Controller mit der Platte nicht mehr zurecht,
doch der Kernel kann "hot-plug" SCSI:
echo "scsi remove-single-device host channel ID LUN " > /proc/scsi/scsi
echo "scsi add-single-device host channel ID LUN " > /proc/scsi/scsi
Daß das (auch für das nachträgliche Einbinden eines SCSI-Scanners) ohne Reboot
funktioniert, sieht man
hier.
Dann wieder einbinden: 'mdrun' (das RAID wird synchonisiert) -> 'mount'
Nach Software-RAID HOWTO: Error Recovery
gibt es die Möglichkeit des 'hot repair', also das Synchronisieren des RAID ohne es außer Betrieb nehmen zu müssen.
Habe ich aber keine Erfolgsberichte drüber.
Letzte Änderung vom 16.11.00, Für Fragen, Berichtigungen, Ergänzungen:
Holger Daßler