Mit mdadm kann man unter linux ein softwarebasiertes RAID (Redundant Array of Independent Disks)aufbauen.
Hier einige Beispiele zum mdadm
tool.
Erstellen kann man ein softwarebasiertes RAID in Linux mit dem Tool mdadm
.
mdadm --create /dev/md# --level=# --raid-devices=# /dev/hd<x># /dev/sd<x># --spare-devices=# /dev/sd<x>
Erklärung:
Folgende Level können erstellt werden:
mdadm Level | RAID Level | Beschreibung | Ausfallsicherheit |
---|---|---|---|
level=0 | RAID0 | 2 oder mehrere Festplatten werden zu einer großen zusammengeschlossen (2x500GB=10000GB) | Beim Beispiel darf keine Platte Ausfallen |
level=1 | RAID1 | 2 oder mehrere Festplatten werden gespiegelt (2x500GB=500GB gespiegelt) | Beim Beispiel darf eine/mehrere Platten Ausfallen |
level=4 | RAID4 | 3 oder mehrere Festplatten werden zu 1 großen zusammengeschlossen, wobei eine Festplatte die Paritätsplatt ist (3x500GB=1000GB+500GB Parität) | eine Platte darf ausfallen |
level=5 | RAID5 | 3 oder mehrere Festplatten werden zu 1 großen zusammengeschlossen, wobei Paritätsinformationen auf alle Festplatten verteilt werden (3x500GB=1000GB+500GB Parität) | eine Platte darf ausfallen |
level=6 | RAID6 | 4 oder mehrere Festplatten werden zu 1 großen zusammengeschlossen, wobei 2 Paritätsplatten verwendet und auch auf alle Platten verteilt werden (4x500GB=1000GB+2x500GB Parität) | zwei Platten dürfen ausfallen |
level=10 | RAID10 | 4 oder mehrere Festplatten werden zu einem Mischlevel aus Level 1 und Level 0 zusammengeschlossen (4x500GB=1000GB gespiegelt) | Es darf alle Festplatten bis auf eine aus jedem Spiegelsatz ausfallen |
Wenn man ein RAID-Verbund vergrößern möchte oder wenn eine ersetzte Festplatte wieder zum Verbund hinzugefügt werden soll, fügt man diese einfach dem Verbund hinzu.
mdadm --manage -a /dev/md# /dev/sd<x>#
Nach dem Hinzufügen, erkennt mdadm
sofort die Festplatte/Partition und beginnt automatisch mit dem Recovering.
Wie oben bereits beschrieben können Hotsparefestplatten einem RAID-Verbund zugewiesen werden um bei Ausfall einer oder mehrerer Festplatten einspringen zu können.
Diese Hotsparefestplatte kann auch zu einem bestehenden Verbund mit, dem vorhin schon vorgestellten Befehl, hinzugefügt werden
mdadm /dev/md# -a /dev/sd<x>#
Eine Hotsparfestplatte kann für mehrere RAID-Verbunde verwendet werden.
Eine Option im „ARRAY“ Eintrag in der mdadm.conf kann dieses erreichen, hier ein Beispiel:
vi /etc/mdadm/mdadm.conf
ARRAY /dev/md0 level=raid6 num-devices=4 UUID=9b2c49f3:aab3a59f:319fd604:8d84ab53 devices=/dev/sda,/dev/sdb,/dev/sdc,/dev/sdd,spare-group=global ARRAY /dev/md1 level=raid5 num-devices=3 spares=1 UUID=ccfde74d:ddbf8e63:4079f0e2:0c9a0cbc devices=/dev/sde,/dev/sdf,/dev/sdg,/dev/sdh,spare-group=global
Man sieht hier das eigentlich nur ein „ARRAY“ eine Hotsparefestplatte enthält aber durch die Option „spare-group=global“, wobei global nur eine Bezeichnung ist die auch
z.B. „group1“ heißen könnte, werden beide „ARRAYs“ mit dieser Hotsparefestplatte gesichert.
Mit folgendem Befehl kann ein RAID-Verbund aufgelöst werden.
mdadm --stop /dev/md#
Hierbei ist es allerdings möglich diesen später wieder zu Aktivieren, da der Kernel die Partition/en auf der Festplatte als ehemalige RAID-Partition/en erkennt.
mdadm /dev/md# -r /dev/sd<x>#
Es kann sein dass z.B. nicht die ganze Festplatte fehlerhaft ist oder gar nicht erkannt wird. Hier kann sich dann ein oder mehrere/alle RAID-Verbünde im Status
oder
befinden. Wenn dies der Fall ist, müssen vor dem Entfernen der defekten Festplatten/Partitionen die RAID-Verbünde auf (U_) gesetzt werden. Hier der Befehl.
mdadm --manage /dev/md# --fail /dev/sd<x>#
Um einen RAID-Verbund entgültig zu löschen (Kernel erkennt eine ehem. RAID-Partition) einfach folgendes ausführen
mdadm --zero-superblock /dev/sd<x>#
Wenn das System nicht mehr starten kann, weshalb auch immer, dann kann eine Live-Distribution Daten retten.
Einfach mit einer Linux-Live-CD starten und mdadm installieren.
Nun kann man mit folgendem Befehl nach RAID-Verbunden suchen lassen
mdadm --assemble --scan
Hiernach werden die gefundenen Verbunde auch direkt in das System als md-Devices eingebunden.
Sobald Zusammengehörige Verbunde, aber auch gebrochene RAID-Partitionen, gefunden werden, werden diese sofort,
solang eine Spare-Platte vorhanden ist, restauriert.
Der RAID-Verbund (zusammengehörige Partitionen müssen bekannt sein) kann auch wie folgt wieder erstellt und
gemountet werden.
mdadm --assemble /dev/md# /dev/sd<x># /dev/sd<x>#
Hiermit erstellen wir wieder den RAID-Verbund.
Befehlserläuterung:
Zum Abschluß kann der Status des RAID-Verbundes beauskunftet werden.
cat /proc/mdstat
Hier noch eine detailiertere Ansicht
mdadm --examine /dev/sd<x>#
Wenn ein RAID-Verbund mal auf fehlerhaft gestellt werden soll, so kann man das mit folgenden Befehlen getan werden.
mdadm --manage --set-faulty /dev/md# /dev/sd<x>#
oder
mdadm --manage --faulty /dev/md# /dev/sd<x>#
Der Bootloader Grub wird, bei der Installation, meckern dass er nicht installiert werden kann weil er eigentlich auf zwei Festplatten installiert werden müsste. Gleichzeitig kann er das aber nicht.
Bevor Grub den Kernel booten kann, muss vorher in einer Live-Umgebung, mit hilfe der chroot-Umgebung, mdadm
installiert werden, damit das System überhaupt vom Kernel gebootet werden kann. Mit dieser Installation wird auch das initramfs aktualisiert. So werden dann die mdadm treiber in den Kernel eingebunden.
Wenn dies nicht geschehen sollte, dann einfach das ausführen:
update-initramfs -u
Nun installiert man Grub mit diesen Befehlen (hier sda und sdb):
grub-install --recheck /dev/sda grub-install --recheck /dev/sdb
dannach noch
update-grub
Jetzt sollte einem ersten Start nichts mehr im Wege stehen.