Software-RAID wiederaufbauen (Linux)

Hier zeigen wir Ihnen, wie Sie ein Software-RAID nach dem Austausch der defekten Festplatte wiederaufbauen.

Hinweis

Nachdem die Festplatte ausgetauscht wurde, kann es passieren, dass diese als sdc erkannt wird. Dies passiert immer bei einem Austausch via Hot-Swap. Hier hilft nur ein Reboot, damit die Festplatte wieder als sda oder sdb erkannt wird.

Beispielszenario

In dieser Anleitung wird folgende Konfiguration angenommen:

# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda1[0] sdb1[1]
4194240 blocks [2/2] [UU]

md3 : active raid1 sda3[0] sdb3[1]
1458846016 blocks [2/2] [UU]

Es existieren 2 Arrays:

/dev/md1 als /

/dev/md3 für die log. Partitionen /var /usr /home

Typischerweise gibt es mit sda2 und sdb2 noch zwei Swap-Partitionen, die nicht zum RAID gehören.

RAID wiederherstellen

Das weitere Vorgehen hängt davon ab, ob Festplatte 1 (sda) oder Festplatte 2 (sdb) getauscht wurde:

Fall 1: Fesplatte 2 wurde getauscht

Wenn die zweite Festplatte (sdb) ausgetauscht und bereits ein Reboot durchgeführt wurde, kann es ein, dass die Platte direkt richtig erkannt und eingebunden wird. Ist das der Fall, sind bis auf die Aktivierung der Swap-Partition keine weiteren Schritte notwendig, da bereits ein Rebuild läuft.

Ob der Rebuild bereits läuft, können Sie über die Ausgabe von mdstat prüfen:

cat /proc/mdstat
Personalities : [raid1]
read_ahead 1024 sectors
md3 : active raid1 sdb1[1] sda1[0]
102208 blocks [2/2] [UU]

md1 : active raid1 sdb3[1] sda3[0]
119684160 blocks [2/1] [U_]
[>....................] recovery = 0.2% (250108/119684160) finish=198.8min speed=10004K/sec
unused devices: <none>

In diesem Beispiel läuft der Rebuild bereits. An An [U_] bzw. [_U] können sie erkennen, dass eine Festplatte (noch) nicht synchron ist. Wenn das RAID-Array intakt ist, steht dort [UU].

Ist hier kein Rebuild zu sehen müssen Sie die Festplatte manuell einbinden und den Rebuild starten.

Im ersten Schritt kopieren Sie die Partitionstabellen manuell von der ersten auf die zweite Festplatte. Dies erfolgt mit diesem Befehl:

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

Ggf. müssen Sie die Option -–force verwenden:

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

Danach können Sie mit fdisk -l prüfen ob die zweite Festplatte nun wieder so eingeteilt ist wie die erste.

Nachdem Sie die Partitionierung wiederhergestellt haben, können Sie die einzelnen Festplattenteile wieder ins RAID einfügen:

mdadm /dev/md1 -a /dev/sdb1
mdadm /dev/md3 -a /dev/sdb3

Die Ausgaben können Sie soweit ignorieren. Wichtig ist nur, dass im Anschluss unter /proc/mdstat der Rebuild läuft.

Ist der Rebuild abgeschlossen, können Sie die Swap-Partition über die folgenden Befehle aktivieren:

mkswap /dev/sdb2
swapon -a
Fall 2: Festplatte 1 wurde getauscht

Wurde Festplatte 1 (sda) getauscht, müssen Sie prüfen, ob die Festplatte korrekt erkannt wurde und eventuell einen Reboot ausführen.

Booten Sie den Server anschließend in das Rescue-System und führen Sie die folgenden Schritte durch:

Kopieren Sie als erstes die Partitionstabellen auf die neue (leere) Festplatte:

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

(Ggf. müssen Sie die Option -–force verwenden)

Fügen Sie nun die Partitionen dem RAID hinzu:

mdadm /dev/md1 -a /dev/sda1
mdadm /dev/md3 -a /dev/sda3

Sie können nun mit cat /proc/mdstat den Rebuild des RAIDS verfolgen.

Mounten Sie dann die Partitionen var, usr und home:

mount /dev/md1 /mnt
mount /dev/mapper/vg00-var /mnt/var
mount /dev/mapper/vg00-usr /mnt/usr
mount /dev/mapper/vg00-home /mnt/home

Damit später Grub fehlerfrei installiert werden kann, mounten Sie noch proc, sys und dev:

mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev

Nachdem Sie die Partitionen gemountet haben, springen Sie in die Chroot-Umgebung und installieren den Grub-Bootloader:

chroot /mnt
grub-install /dev/sda 

Verlassen Sie Chroot mit Exit und hängen alle Festplatten wieder aus:

umount -a     

Warten Sie, bis der Rebuildvorgang abgeschlossen ist und booten Sie dann den Server wieder in das normale System.

Abschließend müssen Sie nun noch die Swap-Partition über die folgenden Befehle aktivieren:

mkswap /dev/sda2
swapon -a