Howto:mdadm
Hallo und willkommen zu meiner kleinen Einführung in das Linux-Software-Raid-Tool mdadm.
Inhaltsverzeichnis |
Einleitung
Was ist Raid
Gebräuchlich sind als RAID-Level (Finktionen)
- Linear (Append) alle Partitionen werden zu einer großen Partition aneinander gehängt. Daten werden nacheinander auf die Platten geschrieben. Bei Ausfall einer Platte Datenverlust ab ausgefallener Platte.
- RAID 0 ( Striping - Mode) ist das verbinden von mindestens zwei Festplatten zu einer großen Festplatte. Vorteile sind das schnellere Schreiben und Lesen leider kann hier keine Ausfallsicherheit von Festplatten gewährleistet.
- RAID 1 (Mirroring - Mode) ist das Spiegeln von mindestens zwei Festplatten. So wird gewährleistet, dass wenn eine Festplatte ausfällt, die Daten immernoch auf einer anderen vorhanden sind und somit nicht verloren gehen.
- RAID 5 (XOR - Mode) ist das Verbinden von mindestens drei Festplatten zu einem Raid-Verbund. Bei diesem Raid-Modus werden die Unterschiede der einzelnen Festplatten untereinander gespeichert. So kann beim Ausfall einer Festplatte mit Hilfe der anderen beiden die Daten wieder zurückgesichert werden.
- RAID 4 (Striping & Dedicated Parity) wie RAID 0, jedoch wird eine zusätzliche Partition mit Paritätsinformationen benutzt. Es wird eine höhere Datensicherheit erreicht, allerdings steigt die CPU-Auslastung.
- RAID 5 (Striping & Distributed parity) wie RAID 0, jedoch werden die Paritätsinformationen auf alle Platten verteilt. Es sinkt die Kapazität (5x1GiB ergibt 4GiB). Der Datendurchsatz beim Schreiben ist etwas geringer, beim Lesen ähnlich RAID 0.
- RAID 10 (Mirroring & Striping) Kombination aus RAID 0 und RAID 1. Die Kapazität sinkt auf 50%. Der Datendurchsatz wird stark gesteigert.
Mehr Informationen kann unter Wikipedia (http://de.wikipedia.org/wiki/RAID) Nachgelesen werden.
Installation und Einrichtung
Installation von mdadm unter Debian GNU Linux
apt-get install mdadm
Einrichten von mdadm
Im Verzeichnis /etc/mdadm befindet sich die Konfigurationsdatei mdadm.conf
Diese Datei sieht folgendermaßen aus.
DEVICE /dev/sd[abcd]1 ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1
(wird später unten automatisch angelegt)
Festplatten partitionieren
cfdisk /dev/sda cfdisk /dev/sdb cfdisk /dev/sdc
--> Bei jeder Platte Typ: FD (Linux raid autodetect) Partition anlegen
Partitionieren des RAID-Dateisystem
cfdisk /dev/md0
--> Ext3 Partition anlegen.
Raid anlegen
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
Konfiguration aktualisieren
mdadm --detail --scan > /etc/mdadm.conf
RAID starten
mdadm -As /dev/md0
RAID stoppen
mdadm -Ss /dev/md0
RAID-Status
Der Status vom Raid lässt sich per /proc/mdstat ermitteln:
cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid6 sda1[0] sdd1[3] sdc1[2] sdb1[1] 976767872 blocks level 6, 64k chunk, algorithm 2 [4/4] [UUUU] [>....................] resync = 1.3% (6416640/488383936) finish=102.4min speed=78416K/sec unused devices: <none>
RAID-Sync pausieren
Wenn man z.B. beim Backup ein eventuelles Resync verhindern will, muss man die Werte für speed_limit_min bzw. speed_limit_max in /proc/sys/dev/raid/ auf 0 (per echo) setzen. Man kann dann die Pause wieder aufheben, in dem man wieder die Standardwerte setzt:
echo 1000 > /proc/sys/dev/raid/speed_limit_min echo 200000 > /proc/sys/dev/raid/speed_limit_max