Skip to main content

Software-RAID wiederherstellen

Arrayzustand prüfen:

# cat /proc/mdstat

zu jedem mdX device gehoeren mehrere sdX (oder xvd oder nvme, je Hardware), ausserdem sollte da [UU] stehen. Wenn nicht ist was faul.

Partition in Ordnung:

md1 : active raid1 sdb1[1] sda1[0]
      48064 blocks [2/2] [UU]

Eine Platte fehlt:

md0 : active raid1 sda2[0]
      2096384 blocks [2/1] [U_]

Wenn sich das Teil nur verhaspelt hat, kann man die fehlende Platte mit mdadm wieder hinzufügen:

# mdadm [RAID-Device] --add [Platte]

im obigen Beispiel:

# mdadm /dev/md0 --add /dev/sdb2

Sollte eine Platte getauscht worden sein, muss vorher die Partitionstabelle von der funktionierenden Platte geholt und auf die neue Festplatte kopiert werden:

# sfdisk -d /dev/sda | sfdisk /dev/sdb

jetzt kann das RAID wieder zusammengefügt werden:

# mdadm /dev/md1 --add /dev/sdb1

Die Kernel-Defaults für die minimale und maximale Wiederherstellungsgeschwindigkeit sind bei aktuellen Platten/SSDs deutlich zu niedrig. Sofern das System nicht schon wieder produktiv unter Last steht, kann man die Limits wie folgt anschauen, bzw. (schrittweise) hoch setzen:

## Anzeigen:
# sysctl dev.raid.speed_limit_min
dev.raid.speed_limit_min = 1000

# sysctl dev.raid.speed_limit_max
dev.raid.speed_limit_max = 200000

## Setzen:
# sysctl -w dev.raid.speed_limit_min=50000
dev.raid.speed_limit_min = 50000

# sysctl -w dev.raid.speed_limit_max=2000000
dev.raid.speed_limit_max = 2000000

Anschließend muss noch der Grub in den Bootsektor der neuen Disk geschrieben werden. Sofern das System noch bootet und nicht in einem Rettungssystem wiederhergestellt wurde, dann läßt sich der Grub einfach mit folgendem Kommando einrichten:

# grub-install /dev/sdb

Falls das System im Rescue-Mode läuft, wird es evtl. etwas umständlicher. grub-mkdevicemap erzeugt die Devicemap neu, da sich die UUID der Platte ja geändert hat. Für die ganze Prozedur sollten die Platten gemountet und per chroot in das Orginalsystem gewechselt werden.

# mount /dev/mdX /mnt
# mount proc sys dev
# chroot
# grub-mkdevicemap -n
# grub-install /dev/sdb