Software-RAID wiederaufbauen (Linux)

In diesem Artikel wird erklärt, wie Sie ein Software-RAID nach dem Austausch einer 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:

Festplatte 1 (sda) wurde getauscht

Wurde die Festplatte 1 (sda) getauscht, müssen Sie prüfen, ob diese korrekt erkannt wurde. Unter Umständen müssen Sie einen Reboot ausführen. Booten Sie den Server anschließend in das Rescue-System und führen Sie die unten aufgeführten Schritte durch. 

  • Kopieren Sie als erstes die Partitionstabellen auf die neue (leere) Festplatte:
    [root@host ~]# sfdisk -d /dev/sdb | sfdisk /dev/sda
    (Ggf. müssen Sie die Option -–force verwenden)

  • Fügen Sie die Partitionen dem RAID hinzu:
    [root@host ~]# mdadm /dev/md1 -a /dev/sda1
    [root@host ~]# 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:
    [root@host ~]# mount /dev/md1 /mnt
    [root@host ~]# mount /dev/mapper/vg00-var /mnt/var
    [root@host ~]# mount /dev/mapper/vg00-usr /mnt/usr
    [root@host ~]# mount /dev/mapper/vg00-home /mnt/home

  • Damit später Grub fehlerfrei installiert werden kann, mounten Sie noch proc, sys und dev:
    [root@host ~]# mount -o bind /proc /mnt/proc
    [root@host ~]# mount -o bind /sys /mnt/sys
    [root@host ~]# mount -o bind /dev /mnt/dev

  • Nachdem Sie die Partitionen gemountet haben, springen Sie in die Chroot-Umgebung und installieren den Grub-Bootloader:
    [root@host ~]# chroot /mnt
    [root@host ~]# grub-install /dev/sda

  • Verlassen Sie Chroot mit Exit und hängen alle Festplatten wieder aus:
    [root@host ~]# 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:
    [root@host ~]# mkswap /dev/sda2
    [root@host ~]# swapon -a

Festplatte 2 (sdb) wurde getauscht

Wurde die Festplatte 2 (sdb) getauscht, gehen Sie wie folgt vor:

  • Führen Sie einen Neustart durch, damit die Festplatte 2 (sdb) angezeigt wird.

  • Kopieren Sie im lokalen System die Partitionstabellen auf die neue (leere) Festplatte:
    [root@host ~]# sfdisk -d /dev/sda | sfdisk /dev/sdb
    (Ggf. müssen Sie die Option -–force verwenden)

  • Fügen Sie die Partitionen dem RAID hinzu:
    [root@host ~]# mdadm /dev/md1 -a /dev/sdb1
    [root@host ~]# mdadm /dev/md3 -a /dev/sdb3
    Sie können nun mit cat /proc/mdstat den Rebuild des RAIDs verfolgen.

  • Abschließend müssen Sie nun noch die Swap-Partition über die folgenden Befehle aktivieren:
    [root@host ~]# mkswap /dev/sdb2