25
Fehlerhaftes RAID – Wiederherstellung
Was macht man wenn in einem Server eine Festplatte ihren Dienst verweigert (achja, es geht um einen Linux-Server mit Software-RAID)?
Richtig, sich erstmal einen Kaffee holen, da die Nacht etwas länger werden könnte und dann schaut man sich in Ruhe an, wie es dem RAID geht.
cat /proc/mdstat
oder
mdadm --detail /dev/mdX
Hat man die fehlerhafte Platte identifiziert wäre der nächste Schritt zu testen ob mit der Festplatte noch etwas anzufangen ist… z.B. durch einfaches hinzufügen der Platte zum RAID
mdadm --manage /dev/mdX --add /dev/sdaX
Wenn das nicht hilft, die Festplatte nochmal als fehlerhaft markieren, aus dem Verbund entfernen und nochmal hinzufügen
mdadm --manage /dev/mdX --fail /dev/sdaX mdadm --manage /dev/mdX --remove /dev/sdaX mdadm --manage /dev/mdX --add /dev/sdaX
Wenn auch das nicht hilft, könnte man vll. noch versuchen die SMART-Daten der Festplatte auszulesen (falls man die Festplatte nicht so oder so überwacht hatte)
smartctl -i /dev/sdb
Wenn man Pech hat, bekommt man hier keine Informationen mehr zur Festplatte… und muss sich vll. an anderer Stelle z.B. nach der Seriennummer der Festplatte umsehen (im Bootlog kann man unter Umständen Glück haben)…
Folgend wäre nun der Austausch der defekten Festplatte (und wenn es nur ein Mietserver ist, das Anstossen des entsprechenden Vorgangs am besten inkl. Seriennummer der defekten Festplatte, damit es keine Ausreden gibt warum die Falsche getauscht wurde)…
Aber halt, falls es die aktive „Boot“-Festplatte erwischt hatte, dann könnte man noch schnell den Bootloader auf die noch funktionierende Festplatte schreiben
grub-install /dev/sdb
Nach dem Tausch könnte man sich nochmals die SMART-Daten anschauen (und sich die Seriennummer notieren, für den nächsten Notfall)… und dann gehts ans reaktivieren der Festplatte. Als erstes sollte die Partitionierung wieder hergestellt werden (noch aktive Festplatte -> neue Festplatte)
sfdisk -d /dev/sdb | sfdisk /dev/sda
Danach sollte man die einzelnen Partitionen wieder ins RAID einfügen
mdadm --manage /dev/mdX --add /dev/sdaX
Und gegebenenfalls den Bootloader wieder verschieben
grub-install /dev/sda
Ansonsten darf man nun je nach Größe der Festplatte eine ganze Weile warten bis das RAID nach Tagen wiederhergestellt ist… oder man schraubt etwas an den Einstellungen
echo 50000 > /proc/sys/dev/raid/speed_limit_min echo 75000 > /proc/sys/dev/raid/speed_limit_max
Bei den Werten muss man ein bischen probieren was auf dem System möglich ist, ohne den eigentlichen Betrieb zu sehr einzuschränken. Das und weitere Stellschrauben sind z.B. hier erklärt.
P.S.: Falls auf der defekten Festplatte noch eine SWAP-Partition vorhanden war und sich nicht deaktivieren lässt, könnte man das Swappen kurzfristig auch deaktivieren
sysctl vm.swappiness=0