====== Softwareraid ===== Mit //mdadm// kann man unter linux ein softwarebasiertes RAID (**R**edundant **A**rray of **I**ndependent **D**isks)aufbauen. Hier einige Beispiele zum ''mdadm'' tool. ===== RAID erstellen ===== Erstellen kann man ein softwarebasiertes RAID in Linux mit dem Tool ''mdadm''. mdadm --create /dev/md# --level=# --raid-devices=# /dev/hd# /dev/sd# --spare-devices=# /dev/sd Erklärung: * ///dev/md#// stellt das neuzuerstellende RAID Device dar * //--level=#// gibt den RAID-Level an. * //--raid-devices=#// gibt an aus wievielen Festplatten dieser Verbund bestehen soll; gefolgt wird diese Option von Angaben der einzelnen Festplattendevices die in diesem Verbund verwendet werden sollen. Angegeben werden diese als //hd// oder //sd// * //--spare-devices=#// gibt an wieviele hotspare Platten verwendet werden sollen; direkt nach dieser Option werden die einzelnen Festplattendevices angegeben als //hd// oder //sd// 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| ===== Festplatten/Partitionen zu Verbund hinzufügen ===== 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# Nach dem Hinzufügen, erkennt ''mdadm'' sofort die Festplatte/Partition und beginnt automatisch mit dem Recovering. ===== Hotspare ===== 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# 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. ===== RAID auflösen ===== 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. ===== Festplatte/Partition vom Verbund entfernen ===== mdadm /dev/md# -r /dev/sd# 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 * (UU) --> OK oder * (U_) --> fehlerhaft 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# ===== RAID löschen ===== Um einen RAID-Verbund entgültig zu löschen (Kernel erkennt eine ehem. RAID-Partition) einfach folgendes ausführen mdadm --zero-superblock /dev/sd# ===== RAID-Verbund einbinden ===== 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# /dev/sd# Hiermit erstellen wir wieder den RAID-Verbund. Befehlserläuterung: * /dev/md<#>: z.B.: /dev/md0 Ist das zu erstellende Device für mdadm. * /dev/sdx<#>: z.B.: /dev/sda1 Das sind die beiden Festplatten oder Partitionen auf diesen, welche sich ursprünglich im RAID-Verund, vor dem Ausfall, befanden. ===== RAID Status ===== Zum Abschluß kann der Status des RAID-Verbundes beauskunftet werden. cat /proc/mdstat Hier noch eine detailiertere Ansicht mdadm --examine /dev/sd# ===== RAID-Verbund status ändern ===== 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# oder mdadm --manage --faulty /dev/md# /dev/sd# ===== grub installieren ===== 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.