Software-RAID (mdadm): Festplattenwechsel

ACHTUNG: Beim Umgang mit angeschlagenen/beschädigten RAID-Konfigurationen ist höchste Vorsicht geboten! Es besteht die akute Gefahr, bei Fehlern alle Daten unwiderbringlich zu vernichten. Jede Handlung sollte gut überlegt sein. Ich übernehme KEINERLEI HAFTUNG für die Korrektheit/Aktualität/... der folgenden Anleitung! Die Verwendung erfolgt ausschließlich auf eigene Gefahr!

Das RAID ist wie ein Fallschirm: Man hält es bereit für den Fall der Fälle, aber am meist freut man sich doch, wenn sich die Investition nicht "gerechnet" hat und man die Ausrüstung garnicht in Anspruch zu nehmen braucht. Wenn der Fall der Fälle dann aber doch mal eintritt, muss jeder Handgriff sitzen, auch wenn man diesem Szenario im Alltag nicht so regelmäßig begegnet.

Unter Linux verwendet man gerne die Software-RAID-Fähigkeiten des Kernels. Dabei kommt ein offenes Format zum Einsatz, was die Abhängigkeit von proprietärer Software und speziellen Hardwarekomponenten auflöst. Sehr beliebt ist RAID bei (Web-)Servern; hier kommt häufig eine Spiegelung in einem RAID1-Verbund mit 2 baugleichen Festplatten in Frage. Für diesen Fall sollen hier die Schritte erläutert werden, die beim Ausfall einer Festplatte zum Ersetzen eben dieser durchzuführen sind.

Der beliebte deutsche Hoster Hetzner hat in seinem Wiki eine sehr ausführliche Anleitung für diesen Fall: http://wiki.hetzner.de/index.php/Festplattenaustausch_im_Software-RAID

  1. Erkennen eines Ausfalls: Der Ausfall einer Festplatte macht sich sowohl im Kernel-Log ("dmesg") alsauch in der Datei "/proc/mdstat" bemerkbar. Im "gesunden" Zustand steht hier hinter jeder RAID1-Partition "[UU]". Ist eine der Festplatten defekt, taucht hier "[U_]" oder "[_U]" auf. Auch erscheint dann in der Zeile darüber ein "(F)" ganz am Ende.
  2. Identifikation der Festplatte: Nun gilt es, herauszufinden, welche der beiden Festplatten kaputt ist. "/proc/mdstat" und "sudo mdadm --detail /dev/mdX" können dabei ebenso hilfreich sein, wie "sudo smartctl -A /dev/sdX" und "sudo hdparm -i /dev/sdX | grep SerialNo". Wichtig ist, später die kaputte Festplattenhardware eindeutig identifizieren und ersetzen zu können, um nicht versehentlich die intakte Festplatte zu ersetzen. Aus diesem Grund ist es hilfreich, dem Server-Support-Personal z.B. die Seriennummer der intakten Festplatte mitzuteilen.
  3. Entfernen der Festplatte aus dem RAID: Ist im Folgenden "sdX" die kaputte Festplatte und "sdY" die verbliebene intakte Festplatte, so muss "sdX" aus dem RAID-Verbund aktiv entfernt werden. Dies geschieht mittels "sudo mdadm /dev/mdY -r /dev/sdXZ" für alle RAID-Partitionen, in denen Partitionen der kaputten Platte eine Rolle spielen. Dieser Befehl kann unter bestimmten Umständen fehl schlagen -- weitere Details in diesen Sonderfällen bietet die hervorragende Anleitung von Hetzner.
  4. Grub-Installation auf verbliebener Festplatte: Um sicher zu gehen, dass der Server nach dem Festplattentausch noch korrekt hochfährt, kann es hilfreich sein, den Grub-Bootloader auf der noch intakten Festplatte erneut zu installieren: "sudo grub-install /dev/sdY"
  5. Festplattenaustausch durch das Server-Support-Personal: Mit Auszügen aus den entsprechenden Log-Files, die den Fehler belegen, kann beim Hoster der Tausch der Festplatte angefordert werden. Dabei kann es sinnvoll sein, einen Termin zu vereinbaren, an dem der Server heruntergefahren, die Festplatte getauscht, und der Server wieder hochgefahren wird. Auch sollten bei dieser Anfrage unbedingt Informationen angegeben werden, die eine eindeutige zweifelsfreie Identifikation der kaputten Festplatte ermöglichen.
  6. Vorbereitung der neuen Festplatte: Nachdem der Server wieder hochgefahren wurde, muss die neue, vermutlich leere Festplatte (der Festplattenersatz sei "sdX") für die Verwendung im RAID vorbereitet werden. Bei Festplatten mit GPT (GUID Partitionstabelle) muss diese mittels "sudo sgdisk -R /dev/sdX /dev/sdY" von der alten Festplatte auf die neue, leere Festplatte kopiert werden und anschließend mit "sudo sgdisk -G /dev/sdX" eine neue UUID zugewiesen bekommen. Informationen zu Festplatten mit MBR finden sich auf der angegebenen Seite im Hetzner Wiki.
  7. Einbinden der neuen Festplatte: Anschließend kann die neue Festplatte wieder in den RAID-Verbund integriert werden: "sudo mdadm /dev/mdY -a /dev/sdXZ" Die RAID-Partitionen werden daraufhin damit beginnen, die Daten von der alten Festplatte auf die neue Festplatte zu kopieren. Dieser Vorgang kann unter Umständen sehr lange Zeit (in der Größenordnung von Stunden/wenigen Tagen) beanspruchen. Erst nach Abschluss dieses Vorgangs (der über "/proc/mdstat" überwacht werden kann) ist die Ausfallsicherheit des RAID1 wiederhergestellt!
  8. Installation des Grub-Bootloaders: Nun empfielt es sich, den Grub-Bootloader wieder auf alle installierten und intakten Festplatten zu installieren, um im Fall eines Festplattenausfalls von der jeweils anderen Festplatte korrekt booten zu können: "sudo grub-install /dev/sdZ"

Nach dem erfolgreichen Abschluss all dieser Schritte sollte das RAID1 wieder vollumfänglich zur Verfügung stehen und seinen Pflichten im nächsten Fall der Fälle erneut korrekt nachkommen. Es empfielt sich, die Datei "/proc/mdstat" und einschläge System-Logs regelmäßig zu kontrollieren (idealerweise automatisch zu monitoren), um den Ausfall einer Festplatte frühzeitig zu bemerken. Bei Fragen und Unsicherheiten ist ein Blick in den verlinkten Artikel im Hetzner-Wiki meist sehr lohnenswert.

Tags: | Linux Virtualisierung