Linux Software Raid Festplatte ausgefallen / Raid Rebuild

Wir betreiben mehrere Offline Backup Server mit Ubuntu Linux und einem Software RAID 5 über 4 Festplatten.

Heute ist eine der Festplatten ausgefallen. Bei einem RAID 5 droht zum Glück kein Datenverlust. Die Platte sollte aber schnell getauscht werden, denn eine weitere ausgefallene Festplatte bedeutet den kompletten Datenverlust der Backups. Daher machen wir einen Raid rebuild mit der neuen Festplatte. Aus diesem Grund ist ein Monitoring der Server mit Checkmk oder Icinga2 unerlässlich und überlebenswichtig.

Wie gehen wir nun konkret vor:

1.) Ermitteln der defekten Festplatte

Mit dem Befehl

cat /proc/mdstat

lässt sich der RAID Status überprüfen. In unserem Fall sind vier Festplatten in einem RAID 5 im Server konfiguriert.

Die Aufgabe sollte dann so aussehen :

Wichtig ist bei der Ausgaben : [4/4] [UUUU]

In unserem Beispiel ist jedoch die 3. Festplatte /dev/sdc defekt :

Wichtig ist bei der Ausgaben : [4/3] [UU_U] ( nur drei von vier Platten im RAID und es handelt sich um die. 3. Platte ( Position ders _ )

Zur Sicherheit frühen wir alle Festplatten nochmals mit den SMART Tools:

smartctl -a /dev/sda

smartctl -a /dev/sdb

smartctl -a /dev/sdc

smartctl -a /dev/sdd

Bei /dev/sdc bekommen wir keine Festplatteninformationen geliefert.

Die Platte kann nicht gelesen werden.

Um die defekte Platte /dev/sdc nun auch ganz sicher identifizieren zu können lesen wir die Seriennummeren aller anderen Platten aus:

smartctl -a /dev/sda | grep Serial

smartctl -a /dev/sdb | grep Serial

smartctl -a /dev/sdd | grep Serial

Die Ausgabe sieht so aus :

Nun fahren wir den Server sauber herunter und schalten diesen aus :

init 0

2. Ausbau und Tausch der defekten Festplatte

Die defekte Festplatte kann nun anhand er Seriennummer ermittelt und getauscht werden.

In unserem Beispiel handelt es sich um eine neu Festplatte ohne Partition etc.

Wenn der Server wieder gestartet ist überprüfen wir diese mit

smartctl -a /dev/sdc

und

fdisk -l /dev/sdc

Die Platte wird erkannt und ist für den Linux Server wieder sichtbar.

3. Platte formatieren und ins RAID integrieren

Anschließend kopieren wir die Partitionstablellen einer intakten Festplatte auf die neue /dev/sdc: ( in unserem Fall sind es mit GPT formatierte Platten. )

sudo sgdisk --backup=table /dev/sda
sudo sgdisk --load-backup=table /dev/sdc
sudo sgdisk -G /dev/sdc

Danach binden wir die Platte ins RAID ein :

sudo parted /dev/sdc set 1 raid on

Nun muss jede Partition noch ins RAID hinzugefügt werden :


mdadm --manage /dev/md1 --add /dev/sdc2
mdadm --manage /dev/md3 --add /dev/sdc3
mdadm --manage /dev/md3 --add /dev/sdc4
mdadm --manage /dev/md2 --add /dev/sdc3

Die Ausgabe sollte so aussehen

Nun können wir den RAID Rebuild Status überwachen mit:

cat /proc/mdstat

In unserem Beispiel sieht man, dass das grosse MD3 gerade synchronisiert wird und aktuell 1,2% synchronisiert sind. Da wir 16 TB Platten verwenden, kann dies mehrere Stunden dauern. Ist alles synchron und wieder online, dann sollte die Ausgabe wieder wie beim 1. Bild aussehen.

Wie erwähnt, ist es unerlässlich, die physischen Festplatten als auch den RAID-Status zu überwachen. Hierfür eignen sich entweder Checkmk oder Icinga2 ideal. Wenn wir Sie bei Ihren Linux Servern als IT Dienstleister unterstützen können dann nehmen gerne Kontakt zu uns auf.