Mit mdadm 3.3
Seit mdadm
3.3 (veröffentlicht am 3. September 2013), wenn Sie einen 3.2+ Kernel haben, können Sie wie folgt vorgehen:
# mdadm /dev/md0 --add /dev/sdc1
# mdadm /dev/md0 --replace /dev/sdd1 --with /dev/sdc1
sdd1
ist das Gerät, das Sie ersetzen möchten, sdc1
ist hierfür das bevorzugte Gerät und muss in Ihrem Array als Ersatzgerät deklariert werden.
Die --with
Option ist optional, wenn nicht angegeben, wird jeder verfügbare Ersatz verwendet.
Ältere mdadm-Version
Hinweis:Sie benötigen immer noch einen 3.2+ Kernel.
Fügen Sie zuerst ein neues Laufwerk als Ersatz hinzu (ersetzen Sie md0
und sdc1
mit Ihrem RAID bzw. Festplattengerät):
# mdadm /dev/md0 --add /dev/sdc1
Starten Sie dann einen Kopier-Ersetzungs-Vorgang wie diesen (sdd1
das fehlerhafte Gerät sein):
# echo want_replacement > /sys/block/md0/md/dev-sdd1/state
Ergebnis
Das System kopiert alle lesbaren Blöcke von sdd1
bis sdc1
. Kommt es zu einem unlesbaren Block, wird dieser aus der Parität rekonstruiert. Sobald der Vorgang abgeschlossen ist, wird der vorherige Ersatz (hier:sdc1
) wird aktiv und das fehlerhafte Laufwerk wird als ausgefallen (F) markiert, sodass Sie es entfernen können.
Hinweis: Kredit geht an frostschutz und Ansgar Esztermann wer die ursprüngliche Lösung gefunden hat (siehe die doppelte Frage).
Ältere Kernel
Andere Antworten schlagen vor:
- Johnny Ansatz von :Konvertieren Sie das Array in RAID6, "ersetzen" Sie die Festplatte und dann zurück in RAID5,
- Hauke Ling 's Ansatz:Entfernen Sie die Festplatte kurz aus dem RAID5-Verbund, machen Sie sie mit der neuen Festplatte zu einem Teil eines RAID1 (Spiegelung) und fügen Sie dieses Spiegellaufwerk wieder dem RAID5-Verbund hinzu (theoretisch) ...
Wenn es Ihnen nichts ausmacht, RAID-6 (2 Paritätsfestplatten statt 1) auszuführen, und wenn Sie mdadmin 3.1.x oder höher ausführen, können Sie Ihr RAID-5-Array in RAID-6 konvertieren, um eine zusätzliche Paritätsfestplatte hinzuzufügen . Dadurch wird das Array jedoch während des Neuaufbaus belastet. Und es hat einige Auswirkungen auf die Leistung, da mehr Paritätsfestplatten während Schreibvorgängen aktualisiert werden müssen.
Aber wenn es erfolgreich abgeschlossen wird, können Sie Ihre fehlerhafte Festplatte an Ort und Stelle halten, und wenn sie schließlich ausfällt, haben Sie immer noch Paritätsschutz für das Array. Ich denke, Sie können das Array von RAID6 zurück zu RAID5 konvertieren, wenn Sie nicht warten, es als RAID6 zu behalten.
Ich kenne keine Online-Möglichkeit, das Array als RAID-5 zu behalten und die Festplatte zu ersetzen, ohne das Array in den herabgesetzten Modus zu versetzen, da ich denke, dass Sie es als fehlgeschlagen markieren müssen, um es zu ersetzen. Ihre DD-Copy-Idee könnte der Weg sein, dies zu tun.
Dies kann unter Berücksichtigung der Anforderungen möglich sein
- online
- Belasten Sie keine Festplatte außer der, die ersetzt werden soll
Aber selbst wenn das Folgende funktioniert, werden Sie "in den Büchern" wahrscheinlich keine Empfehlung dieser Art finden ...
Idee:
- Festplatte OLD aus dem Array nehmen (kurzzeitig):
mdadm --manage /dev/raid5 --fail /dev/OLD
- Erstellen Sie ein neues MD-Gerät (RAID-1) aus den Festplatten ALTE und NEUE:
mdadm --build /dev/md42 --level=mirror --raid-devices=2 /dev/OLD /dev/NEW
- Fügen Sie das RAID-1 wieder in das Array ein (anstelle von /dev/OLD):
mdadm --manage /dev/raid5 --re-add /dev/md42
Was sollte :-) passieren:
- Das RAID-5 bekommt /dev/md42 synchron. Das sollte nicht lange dauern.
- Das RAID-5 ist wieder normal betriebsbereit (aber langsamer).
- /dev/NEW wird mit /dev/OLD synchronisiert.
Beobachten Sie den Synchronisierungsfortschritt (cat /proc/mdstat
oder mdadm --monitor
). Wenn die Synchronisierung abgeschlossen ist, entfernen Sie RAID-1 aus RAID-5, stoppen Sie RAID-1, fügen Sie /dev/NEW erneut zu RAID-5 hinzu. Wenn alles in Ordnung ist, überschreiben Sie die mdraid-Superblöcke auf /dev/OLD, um Probleme zu vermeiden:mdadm --zero-superblock
Warnung: Die schnelle RAID-5-Synchronisierung funktioniert möglicherweise nur, wenn Sie eine Bitmap verwenden. Wenn Sie keins haben, machen Sie zuerst einen Test mit einem Dummy-RAID-5 (ohne Bitmap). Oder füge einen hinzu. Zumindest das Hinzufügen eines externen sollte möglich sein. Andernfalls kann es erforderlich sein, das RAID-5 zu stoppen, bevor Sie die Geräte wechseln. Wenn Sie vom RAID-5 booten, wird dies jedoch etwas kompliziert.