Software Raid wiederherstellen

So ein Root Server mit Raid ist schön und gut, doch was ist zu tun wenn sich eine Platte aus dem System verabschiedet? Die Wiederherstellung eines Softwareraids mit mdadm ist relativ einfach, und benötigt auch nur eine Hand voll Kommandos.

Erstmal schauen wir, welche Raids eingerichet sind, und welches Raid ausgefallen ist:

server:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sda2[2](F) sdb2[1]
 152087232 blocks [2/1] [_U]

md0 : active raid1 sda1[2](F) sdb1[1]
 4200896 blocks [2/1] [_U]

unused devices: <none>

Hier sieht man gut, dass es 2 Raids gibt und jeweils die Platte sda fehlt. Da wir die Platte gegen eine Baugleiche austauschen, brauchen wir die ausgefallenen Partitionen nicht aus den Raids entfernen, sondern informieren gleich erstmal den Hoster, dass die 1.Platte getauscht werden soll.

In meinem Fall war dies bereits nach 90 Minuten nach der Ausfallmeldung erledigt *Hut ab*.

Damit die neue Platte die selben Partitionen erhält wie die noch im Raid befindliche, sichern wir einfach die Partitionstabelle der heilen Platte und schreiben sie auf die neue Platte. Außerdem soll der Kernel danach die Partitionstabelle der neuen Platte frisch einlesen, damit die Geräte unter /dev/sdx angelegt werden.

sfdisk -d /dev/sdb > partition-table.pt
sfdisk /dev/sda < partition-table.pt
sfdisk -R /dev/sda

Damit haben die neue Platte vorbereitet, die Partitionen sind wieder da, und wir können das Raid wieder zusammenbauen.

mdadm -a /dev/md0 /dev/sda1
mdadm -a /dev/md1 /dev/sda2

Damit das System auch von der neuen Platte starten kann, kann man jetzt grub auf beide Platten schreiben lassen. Die andere Möglichkeit ist einfach den Masterbootrecord zu kopieren:

dd if=/dev/sdb of=sdb.mbr bs=512 count=1
dd if=sdb.mbr of=/dev/sda bs=512 count=1

Achtung, dies funktioniert so nur, wenn die Platten die gleiche Partitionstabelle haben. Wenn die Partitionen unterschiedlich sind, lautet der 2. Befehl wie folgt, um Partitionstabelle nicht zu überschreiben.

dd if=sb.mbr of=/dev/sda bs=446 count=1

So, und nun viel Erfolg beim Wiederherstellen ausgefallener Softwareraids 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.