GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man eine noch nicht ausgefallene Festplatte in einem Linux-RAID5-Array sicher ersetzen?

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

  1. online
  2. 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:

  1. Festplatte OLD aus dem Array nehmen (kurzzeitig):mdadm --manage /dev/raid5 --fail /dev/OLD
  2. 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
  3. 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:

  1. Das RAID-5 bekommt /dev/md42 synchron. Das sollte nicht lange dauern.
  2. Das RAID-5 ist wieder normal betriebsbereit (aber langsamer).
  3. /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.


Linux
  1. So verwenden Sie dd unter Linux, ohne Ihre Festplatte zu zerstören

  2. So partitionieren Sie eine Festplatte unter Linux

  3. So finden Sie unter Linux heraus, ob es sich bei der Festplatte um eine SSD oder HDD handelt

  4. Wie finde ich eine Festplatte als SSD oder HDD in Linux?

  5. So ändern Sie UID oder GID sicher in Linux

So mounten Sie eine NTFS-Festplatte unter Linux

So visualisieren Sie die Festplattennutzung unter Linux mit Baobab

So verschlüsseln Sie eine Partition unter Linux

So verschlüsseln Sie das Root-Dateisystem unter Linux

So formatieren Sie Festplattenpartitionen unter Linux

So erstellen Sie Festplattenpartitionen unter Linux