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.