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