mdadm
scheint es nicht zu unterstützen, ein Array von Level 1 auf Level 10 zu vergrößern.
Ich habe zwei Festplatten in RAID 1. Ich möchte zwei neue Festplatten hinzufügen und das Array in ein RAID 10-Array mit vier Festplatten konvertieren.
Meine aktuelle Strategie:
- Mach ein gutes Backup.
- Erstellen Sie ein herabgesetztes RAID 10-Array mit 4 Festplatten und zwei fehlenden Festplatten.
rsync
the RAID 1 array with the RAID 10 array.
eine Festplatte aus dem RAID 1-Array.fail
and remove- Fügen Sie die verfügbare Festplatte zum RAID 10-Array hinzu und warten Sie, bis die Neusynchronisierung abgeschlossen ist.
- Zerstören Sie das RAID 1-Array und fügen Sie die letzte Festplatte zum RAID 10-Array hinzu.
Das Problem ist die fehlende Redundanz in Schritt 5.
Gibt es einen besseren Weg?
linux
software-raid
mdadm
Hans Malherbe
quelle
quelle
Antworten:
Mit Linux Softraid können Sie ein RAID 10-Array mit nur zwei Festplatten erstellen.
Unten verwendete Gerätenamen:
md0
ist das alte Array des Typs / Level RAID1.md1
ist das neue Array von Typ / Level RAID10.sda1
undsdb2
sind neue , leere Partitionen (ohne Daten).sda2
undsdc1
sind alte Partitionen (mit wichtigen Daten).Ersetzen Sie die Namen entsprechend Ihrem Anwendungsfall. Verwenden Sie zB
lsblk
, um Ihr aktuelles Layout anzuzeigen.0) Backup, Backup, Backup, Backup oh und BACKUP
1) Erstellen Sie das neue Array (4 Geräte: 2 vorhanden, 2 fehlen):
Beachten Sie, dass in diesem Beispiel für das Layout
sda1
ein Gegenstück fehlt undsdb2
ein anderes Gegenstück fehlt. Ihre Daten aufmd1
sind zu diesem Zeitpunkt nicht sicher (effektiv ist es RAID0, bis Sie fehlende Mitglieder hinzufügen).So zeigen Sie das Layout und andere Details des erstellten Arrays an:
Hinweis! Sie sollten das Layout des Arrays speichern:
2) Formatieren und mounten. Die
/dev/md1
sollten sofort einsatzbereit sein, müssen aber formatiert und dann gemountet werden.3) Dateien kopieren. Verwenden Sie z. B. 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.)
4) Versagen Sie den ersten Teil des alten RAID1 (md0) und fügen Sie ihn dem neuen RAID10 (md1) hinzu.
Hinweis! Dadurch werden die Daten von gelöscht
sda2
. Dasmd0
sollte aber nur noch verwendbar sein, wenn das andere Raid-Mitglied voll einsatzbereit war.Beachten Sie auch, dass hierdurch Synchronisierungs- / Wiederherstellungsprozesse gestartet werden
md1
. Verwenden Sie einen der folgenden Befehle, um den Status zu überprüfen:Warten Sie, bis die Wiederherstellung abgeschlossen ist.
5) Installieren Sie GRUB auf dem neuen Array (vorausgesetzt, Sie booten von dort). Einige Linux-Rettungs- / Boot-CDs funktionieren am besten.
6) Booten Sie auf einem neuen Array. WENN ES RICHTIG ARBEITET, zerstören Sie das alte Array und fügen Sie die verbleibende Festplatte zum neuen Array hinzu.
PUNKT OHNE WIEDERKEHR
Zu diesem Zeitpunkt werden Sie Daten auf dem letzten Mitglied des alten md0-Arrays zerstören. Seien Sie absolut sicher, dass alles funktioniert.
Und noch einmal - warten Sie, bis die Wiederherstellung abgeschlossen
md1
ist.7) Aktualisiere mdadm config
Denken Sie daran
/etc/mdadm/mdadm.conf
, md0 zu aktualisieren (zu entfernen).Und speichern Sie die Konfiguration in initramfs (verfügbar nach dem Neustart)
quelle
Befolgen Sie das gleiche Verfahren wie bei Mark Turner, aber wenn Sie das RAID-Array erstellen, erwähnen Sie 2 fehlende Datenträger
Fahren Sie dann mit anderen Schritten fort.
Kurz gesagt, erstellen Sie RAID10 mit insgesamt 4 Festplatten (von denen 2 fehlen), führen Sie eine Resynchronisierung durch, und fügen Sie anschließend zwei weitere Festplatten hinzu.
quelle
Ich bin gerade mit dem Wechsel von LVM auf zwei 2-TB-Festplatten-Madadm-RAID 1 zu LVM auf einem RAID 10 mit vier Festplatten (zwei Original- und zwei neue Festplatten) fertig.
Wie @aditsu feststellte, ist die Laufwerkreihenfolge beim Erstellen des Arrays wichtig.
Der obige Code gibt ein verwendbares Array mit zwei fehlenden Datenträgern an (fügen Sie Partitionsnummern hinzu, wenn Sie nicht ganze Datenträger 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 beendet hat. Es wurde als Ersatz angezeigt, bis die dritte Festplatte fertig war und die Synchronisierung begann.
Schritte für meine Situation:
Mach ein gutes Backup.
Erstellen Sie ein herabgesetztes RAID-10-Array mit 4 Festplatten mit zwei fehlenden Festplatten (die fehlenden Festplatten werden als Nr. 2 und 4 bezeichnet).
Sagen Sie Ihrer Frau, sie soll keine Dateien ändern / hinzufügen, die ihr wichtig sind
Fehler und entfernen Sie eine Festplatte aus dem RAID 1-Array (Festplatte 4).
Verschieben Sie physische Extents vom RAID 1-Array in das RAID 10-Array, und lassen Sie die Festplatte 2 leer.
Schalten Sie das aktive RAID 1-Array aus, fügen Sie die jetzt leere Festplatte (Festplatte 2) zum RAID 10-Array hinzu und warten Sie, bis die erneute Synchronisierung abgeschlossen ist.
Fügen Sie dem RAID 10-Array die erste Festplatte hinzu, die aus RAID 1 (Festplatte 4) entfernt wurde.
Gib Frau, mach weiter.
Bei Schritt 7 glaube ich Antrieb 1, 2, OR 4 ausfallen kann (während der Resynchronisierung der Scheibe 4) , ohne die Anordnung zu töten. Wenn Laufwerk 3 ausfällt, sind die Daten auf dem Array Toast.
quelle
Ich habe mein raid1 jetzt auf raid10 verschoben und diese Seite hat mir zwar geholfen, aber in den obigen Antworten fehlen einige Dinge. Besonders mein Ziel war es, ext4-Geburtszeiten einzuhalten.
Das Setup war:
Wie schon gesagt: Der Null-Schritt sollte ein Backup sein und es kann immer etwas schief gehen, was zu extremem Datenverlust führt
BACKUP
Aufbau der neuen Razzia
erstelle einen neuen Überfall
(Ich fand, dass das Layout wichtig ist. Die 2. und 4. scheinen die Duplikate in einem standardmäßigen 'Near'-Raid zu sein.)
Wandern
nun die Daten immer über ... ich zum ersten Mal zu verwenden rsync versuche Weichen gearbeitet , aber es versäumen , die Geburtszeit ... Verwendung dd zu halten Klon von der alten Razzia auf den neuen
WAIT FOR IT können
Sie überprüfen, indem Sie USR1 an diesen Prozess senden
Das Raid zu
reparieren gparted ist ein großartiges Tool: Sie fordern es auf, die Partition zu überprüfen und zu reparieren und sie mit nur wenigen Mausklicks auf die volle Größe dieser Festplatte zu verkleinern;)
Setze eine neue UUID auf diese Partition und aktualisiere deine FSTAB damit (ändere die UUID)
Speichern Sie Ihre Razzia in conf
und entfernen Sie die alte
zerstöre den alten
Schlage den ersten fehl und füge ihn dem neuen Schlachtzug hinzu
Machen Sie dann gpt auf diesem Gerät und legen Sie eine neue leere Partition fest
WAIT FOR IT können
Sie mit überprüfen
Halt den zweiten an
Machen Sie dann gpt auf diesem letzten Gerät und setzen Sie eine neue leere Partition erneut
WARTEN SIE WIEDER AUF ES
quelle
Ich habe es mit LVM gemacht. Erstkonfiguration: - sda2, sdb2 - und erstellt raid1 md1 an der Spitze. sda1 und sdb1 wurden für die zweite raid1 for / boot-Partition verwendet. - md1 war pv im Volumengruppenraum, mit einigen lvms darauf.
Ich habe Festplatten sdc und sdd hinzugefügt und dort Partitionen wie auf sda / sdb angelegt.
So:
md10 erstellt als:
mdadm --create / dev / md10 --level raid10 --raid-devices = 4 / dev / sdc2 missing / dev / sdd2
erweitere vg drauf:
pvcreate / dev / md10 erweitern space / dev / md10
Verschobene Volumes von MD1 nach MD10:
pvmove -v / dev / md1 / dev / md10
(Warten auf erledigt) 4. Volumengruppe reduzieren:
Stoppen Sie Array md1:
mdadm -S / dev / md1
Fügen Sie Datenträger von altem MD1 zu MD10 hinzu:
mdadm -a / dev / md10 / dev / sda2 / dev / sdb2
Aktualisieren Sie die Konfiguration in /etc/mdadm/mdadm.conf:
mdadm -E --scan >> / dev / mdadm / mdadm.conf
(und dort altes md1 entfernen)
Alles auf Live-System gemacht, mit aktiven Volumes für KVMs verwendet;)
quelle