Lösung 1:
Mit Linux Softraid können Sie ein RAID 10-Array mit nur zwei Festplatten erstellen.
Unten verwendete Gerätenamen:
md0
ist das alte Array vom Typ/Level RAID1.md1
ist das neue Array vom Typ/Level RAID10.sda1
undsdb2
sind neu , leere Partitionen (ohne Daten).sda2
undsdc1
sind alte Partitionen (mit wichtigen Daten).
Ersetzen Sie Namen entsprechend Ihrem Anwendungsfall. Verwenden Sie z. lsblk
um Ihr aktuelles Layout anzuzeigen.
0) Backup, Backup, Backup, Backup oh und BACKUP
1) Erstellen Sie das neue Array (4 Geräte:2 vorhandene, 2 fehlende):
mdadm -v --create /dev/md1 --level=raid10 --raid-devices=4 /dev/sda1 missing /dev/sdb2 missing
Beachten Sie, dass in diesem Beispiellayout sda1
hat ein fehlendes Gegenstück und sdb2
hat ein weiteres fehlendes Gegenstück. Ihre Daten auf md1
ist an dieser Stelle nicht sicher (effektiv ist es RAID0, bis Sie fehlende Mitglieder hinzufügen).
Um das Layout und andere Details des erstellten Arrays anzuzeigen, verwenden Sie:
mdadm -D /dev/md1
Notiz! Sie sollten das Layout des Arrays speichern:
# View current mdadm config:
cat /etc/mdadm/mdadm.conf
# Add new layout (grep is to make sure you don't re-add md0):
mdadm --detail --scan | grep "/dev/md1" | tee -a /etc/mdadm/mdadm.conf
# Save config to initramfs (to be available after reboot)
update-initramfs -u
2) Formatieren und mounten. Die /dev/md1
sollten sofort verwendbar sein, müssen aber formatiert und dann gemountet werden.
3) Dateien kopieren. Verwenden Sie z. rsync, um Daten vom alten RAID 1 auf das neue RAID 10 zu kopieren. (Dies ist nur ein Beispielbefehl, lesen Sie die Manpages für rsync)
rsync -arHx / /where/ever/you/mounted/the/RAID10
4) Lassen Sie den ersten Teil des alten RAID1 (md0) fehlschlagen und fügen Sie ihn dem neuen RAID10 (md1) hinzu
mdadm /dev/md0 --fail /dev/sda2 --remove /dev/sda2
mdadm /dev/md1 --add /dev/sda2
Notiz! Dadurch werden Daten von sda2
gelöscht . Die md0
sollte immer noch nutzbar sein, aber nur, wenn das andere Raid-Mitglied voll funktionsfähig war.
Beachten Sie auch, dass dadurch Synchronisierungs-/Wiederherstellungsprozesse auf md1
beginnen . Verwenden Sie einen der folgenden Befehle, um den Status zu überprüfen:
# status of sync/recovery
cat /proc/mdstat
# details
mdadm -D /dev/md1
Warte bis die Wiederherstellung abgeschlossen ist.
5) Installieren Sie GRUB auf dem neuen Array (vorausgesetzt, Sie booten davon). Einige Linux-Rettungs-/Boot-CDs funktionieren am besten.
6) Booten Sie auf einem neuen Array. WENN ES KORREKT FUNKTIONIERT hat, zerstören Sie das alte Array und fügen Sie die verbleibende Festplatte dem neuen Array hinzu.
POINT OF NO RETURN
An diesem Punkt werden Sie Daten auf dem letzten Mitglied des alten md0-Arrays zerstören. Stellen Sie absolut sicher, dass alles funktioniert.
mdadm --stop /dev/md0
mdadm /dev/md0 --remove /dev/sdc1
mdadm /dev/md1 --add /dev/sdc1
Und wieder - warten bis zur Wiederherstellung am md1
ist fertig.
# status of sync/recovery
cat /proc/mdstat
# details
mdadm -D /dev/md1
7) Aktualisieren Sie die mdadm-Konfiguration
Denken Sie daran, /etc/mdadm/mdadm.conf
zu aktualisieren (md0 entfernen).
Und speichern Sie die Konfiguration in initramfs (um nach dem Neustart verfügbar zu sein)
update-initramfs -u
Lösung 2:
Folgen Sie dem gleichen Verfahren wie Mark Turner, aber erwähnen Sie beim Erstellen des Raid-Arrays 2 fehlende Festplatten
mdadm -v --create /dev/md1 --level=raid10 --raid-devices=4 /dev/sda1 missing /dev/sdb2 missing
Fahren Sie dann mit anderen Schritten fort.
Kurz gesagt, erstellen Sie RAID10 mit insgesamt 4 Festplatten (von denen 2 fehlen), synchronisieren Sie neu und fügen Sie danach zwei weitere Festplatten hinzu.
Lösung 3:
Ich habe gerade den Übergang von LVM auf zwei 2-TB-Festplatten mdadm RAID 1 zu LVM auf einem RAID 10 mit vier Festplatten (zwei Original- und zwei neue Festplatten) abgeschlossen.
Wie @aditsu feststellte, ist die Laufwerksreihenfolge beim Erstellen des Arrays wichtig.
mdadm -v --create /dev/md1 --level=raid10 --raid-devices=4 /dev/sda missing /dev/sdb missing
Der obige Code ergibt ein verwendbares Array mit zwei fehlenden Festplatten (fügen Sie Partitionsnummern hinzu, wenn Sie keine ganzen Festplatten verwenden). Sobald die dritte Festplatte hinzugefügt wird, beginnt sie mit der Synchronisierung. Ich habe die vierte Festplatte hinzugefügt, bevor die dritte die Synchronisierung abgeschlossen hat. Es wurde als Reserve angezeigt, bis die dritte Festplatte fertig war, dann begann die Synchronisierung.
Schritte für meine Situation:
-
Erstellen Sie eine gute Sicherung.
-
Erstellen Sie ein heruntergestuftes RAID 10-Array mit 4 Festplatten und zwei fehlenden Festplatten (wir nennen die fehlenden Festplatten Nr. 2 und 4).
-
Sagen Sie Ihrer Frau, dass sie keine Dateien ändern/hinzufügen soll, die ihr wichtig sind
-
Fehler machen und eine Festplatte aus dem RAID 1-Array entfernen (Festplatte 4).
-
Verschieben Sie physische Extents vom RAID1-Array zum RAID 10-Array und lassen Sie Festplatte 2 leer.
-
Beenden Sie das aktive RAID 1-Array, fügen Sie die jetzt leere Festplatte (Festplatte 2) zum RAID 10-Array hinzu und warten Sie, bis die Resynchronisierung abgeschlossen ist.
-
Fügen Sie die erste aus RAID1 entfernte Festplatte (Festplatte 4) dem RAID 10-Array hinzu.
-
Geben Sie Ihrer Frau den Vortritt.
Bei Schritt 7 denke ich, Laufwerk 1, 2, ODER 4 kann (während der Resynchronisierung von Festplatte 4) fehlschlagen, ohne das Array zu beenden. Wenn Laufwerk 3 ausfällt, sind die Daten auf dem Array geröstet.