Konvertieren Sie Linux-Software-RAID von RAID5 in RAID6

11

Ich habe derzeit einen Dateiserver mit 3 1,5-TB-Festplatten in einem RAID5-Array. Da es ziemlich voll ist, habe ich drei zusätzliche Festplatten (jeweils jeweils 1,5 TB).

Jetzt möchte ich zu RAID6 wechseln, da 6 TB Speicherplatz ausreichen und ich die erhöhte Sicherheit von raid6 haben möchte. Ich habe zwar eine vollständige Sicherung, dh ich könnte einfach ein neues Array erstellen und die Sicherung wiederherstellen, aber ich würde lieber wechseln, ohne eine Sicherung wiederherstellen zu müssen. Ist das möglich und wenn ja, wie?

DiebMaster
quelle

Antworten:

9

Die Terminologie, nach der Sie suchen, ist eine "Migration auf RAID-Ebene".

Nach diesem ist es möglich. Ich habe es noch nicht getan, aber die Prozedur sieht so aus, als ob Sie das neue Laufwerk als Hotspare zum vorhandenen Array hinzufügen und dann mit mdadm die RAID-Ebene und die Anzahl der RAID-Geräte aktualisieren sollten.

Dazu benötigen Sie ein aktuelles mdadm: mdadm-2.6.9 (z. B. centos 5.x) scheint dies nicht zu unterstützen, mdadm-3.1.4 (z. B. ubuntu 11.10) jedoch:

   Grow   Grow (or shrink) an array, or otherwise reshape it in some way.  Currently supported growth options including changing the active size of component devices and
          changing the number of active devices in RAID levels 1/4/5/6, changing the RAID level between 1, 5, and 6, changing the chunk size and  layout  for  RAID5  and
          RAID5, as well as adding or removing a write-intent bitmap.

Fügen Sie dem RAID5-Array zuerst ein neues Hotspare-Gerät / dev / sdg hinzu:

$ sudo mdadm --manage /dev/md/md0 --add /dev/sdg

Konvertieren Sie dann in ein RAID6-Array und lassen Sie es in einen sauberen Zustand zurückversetzen. Die --raid-Geräte 4 geben an, wie viele Laufwerke Sie insgesamt im neuen Array haben.

$ sudo mdadm --grow /dev/md/md0 --raid-devices 4 --level 6

Ich habe keine Ahnung, wie schnell das gehen wird. Nach meiner Erfahrung mit Migrationen auf RAID-Ebene auf Hardware-RAID-Controllern war es schneller, das neue Array von Grund auf neu zu erstellen und Ihr Backup darauf wiederherzustellen.

Daniel Lawson
quelle
3
Das Migrieren eines RAID 5 zu RAID 6 hat zwei langsame Vorgänge: erneutes Entfernen der Daten über die Festplatten und Berechnen des zweiten Paritätswerts für die zusätzliche Paritätsfestplatte. Das Löschen / Wiederherstellen dauert wahrscheinlich genauso lange wie das Ändern der Größe.
Andrew
1
Es erfordert auch eine bestimmte Kernel-Version. Fand das auf die harte Tour heraus.
Sirex
Da ich auf Gentoo bin, sind sowohl mein Kernel als auch mein MDADM ziemlich neue Versionen - das sollte also kein Problem sein.
ThiefMaster
1
Der Link, auf den Sie verweisen, wurde von mir geschrieben. Bitte beachten Sie: Ich habe die Dokumentation nicht wirklich gelesen, wie es tatsächlich geht. Ich habe gerade eine virtuelle Maschine mit 30 Laufwerken (so ähnlich) erstellt und angefangen zu fummeln. Also nimm den ganzen Beitrag mit einem Körnchen Salz, es ist nur ein Braindump ...
Serverhorror
1
@ ServerHorror: Notiert. Das breitere Internet, einschließlich der Manpage mdadm, behauptet jedoch, dass eine Migration auf Raid-Ebene möglich ist. :)
Daniel Lawson
7

Obligatorische Warnung: Planen Sie einen Ausfall. Halten Sie ein Backup bereit und berücksichtigen Sie mögliche Ausfallzeiten.

Testen Sie es auch in einer VM oder ähnlichem. Dies stammt aus meinen Notizen und ich habe dies schon lange nicht mehr getan. Dies kann unvollständig sein.

  1. Sie benötigen adddie Festplatten zum Array:

    mdadm --manage /dev/md0 --add /dev/sdf  
    

    Tun Sie dies für jede der drei Festplatten und ersetzen Sie die Gerätenamen entsprechend.

  2. Erweitern Sie das Array:

    mdadm --grow /dev/md0 --level 6 --raid-devices 6 
    
Sven
quelle
3

Nutzen Sie die --backup-fileOption, damit Sie das Gerät im Falle eines Stromausfalls nach einem Neustart weiter vergrößern und sicherstellen können, dass keine Daten verloren gehen.

mdadm --grow /dev/md0 --level=raid6 --raid-devices=6 --backup-file=/root/mdadm5-6_backup_md0

Die Sicherungsdatei sollte auf einem Dateisystem gespeichert werden, das nicht Teil des Arrays ist, das Sie erweitern möchten.

--backup-file=wird benötigt, wenn --growdie Anzahl der RAID-Geräte in einem RAID5 oder RAID6 erhöht wird, wenn keine Ersatzgeräte verfügbar sind, oder um die RAID-Stufe oder das Layout zu verkleinern, zu ändern. Weitere Informationen zu RAID-DEVICES-ÄNDERUNGEN finden Sie im Abschnitt GROW MODE. Die Datei muss auf einem separaten Gerät gespeichert werden, nicht auf dem RAID-Array, das umgeformt wird.

--continueist eine Ergänzung zur --freeze-reshapeMontageoption. Es wird benötigt, wenn der --growBetrieb unterbrochen wird und aufgrund der --freeze-reshapeVerwendung während der Array-Montage nicht automatisch neu gestartet wird . Diese Option wird zusammen mit dem Befehl -G( --grow) und dem Gerät verwendet, damit eine ausstehende Umformung fortgesetzt werden kann. Alle für die Fortsetzung der Umformung erforderlichen Parameter werden aus Array-Metadaten gelesen. Wenn für den ersten --growBefehl die --backup-file=Option festgelegt werden musste, muss für die Fortsetzungsoption genau dieselbe Sicherungsdatei angegeben werden.

Alle anderen Parameter, die zusammen mit der --continueOption übergeben werden, werden ignoriert.

Guggi
quelle