Wechsel von RAID 0 oder 1 zu RAID 5 unter Linux: Anleitung
In dieser Anleitung erkläre ich, wie man von RAID 0 oder 1 auf RAID 5 gewechselt. Wie konvertiert man unter Linux mit mdadm oder LVM das Software-RAID1 (0) in RAID5, wobei alle gespeicherten Daten erhalten bleiben?
- So konvertieren Sie RAID 1(Spiegelung) in RAID 5 (parity)
- So ändern Sie RAID 0 (Striping) in RAID5 (parity)
- So konvertieren Sie LVRAID1 zu LVRAID5
- So konvertieren Sie LVRAID0 in LVRAID5
- Wie Sie Daten aus beschädigten RAID-Arrays wiederherstellen
- Fazit
- Fragen und Antworten
- Bemerkungen
RAID0-Arrays zeichnen sich durch eine hohe Datenzugriffsgeschwindigkeit aus und werden nur wegen der deutlichen Erhöhung der Lese-/Schreibgeschwindigkeit eingesetzt. Aber ihre Zuverlässigkeit und Fehlertoleranz lassen zu wünschen übrig. Denn bei Ausfall mindestens eines Trägers sind alle gespeicherten Informationen nicht mehr verfügbar. Die Wiederherstellung ist eine extrem schwierige Aufgabe, und die Daten, die man erhalten kann, werden garantiert beschädigt sein. Dieser Typ kann gerade noch als Array bezeichnet werden, da es keinerlei Redundanz gibt.
RAID1 zeichnet sich durch seine gute Zuverlässigkeit und Fehlertoleranz aus, da alle Daten gespiegelt werden und somit ein kompletter «Spiegel» auf dem zweiten Datenträger entsteht. Die Lese-/Schreibgeschwindigkeit der Daten leidet jedoch darunter und kann nicht die gleiche Geschwindigkeit wie beim «Null»-Typ aufweisen.
Wenn Sie ein zusätzliches Laufwerk haben, dann kann «der erste» Typ auf «fünfte» Ebene erweitert werden. Dies wiederum bietet zusätzliche Zuverlässigkeitsbonusse im Vergleich zum «Null» -Niveau und erhöht auch die Geschwindigkeit des Lesens / Schreibens von Informationen im Vergleich zum «ersten» Typ. Als Ergebnis erhalten Sie ein ziemlich zuverlässiges, fehlertolerantes und schnelles RAID 5-Array.
Parameter | RAID 0 | RAID 1 | RAID 5 |
---|---|---|---|
Struktur | Striping | Spiegelung | Striping mit Parität |
Anzahl der Festplatten | Mindestens 2 | Mindestens 2 | Mindestens 3 |
Leistung | Hoch | Durchschnittlich | Hoch |
Platznutzung | 100% | 50% | (n-1)/n |
Zuverlässigkeit | Niedrig | Hoch | Medium |
Wiederherstellung | Keine | Einfach | Komplexer |
Anwendungsfall | Für Geschwindigkeit | Für kritische Daten | Für Balance zwischen Geschwindigkeit und Zuverlässigkeit |
So konvertieren Sie RAID 1(Spiegelung) in RAID 5 (parity)
Wir haben also eine Software md_RAID 1 auf einem Linux-Betriebssystem erstellt. Dieses Array besteht aus zwei Festplatten.
Wir müssen es in RAID5 konvertieren und eine weitere Festplatte hinzufügen, gleichzeitig müssen die darin enthaltenen Informationen dort bleiben, wo sie sind. Auf dem Festplattenarray befinden sich verschiedene Dateien: Fotos, Videos, Dokumente usw.
Es wird empfohlen, eine Sicherungskopie zu erstellen, bevor Sie mit dem Konvertierungsvorgang fortfahren, da bei falsch ausgeführten Befehlen wichtige Informationen verloren gehen können.
Öffnen Sie ein Terminal, um Befehle als root auszuführen, führen Sie den Befehl:
sudo -i
und geben Sie das Passwort ein.
Wenn das Array gemountet ist, müssen Sie es aushängen. Dazu geben Sie den folgenden Befehl ein:
umount /dev/md0
oder
umount /mnt
Wenn das System sagt, dass das Ziel besetzt ist (target is busy), versuchen Sie, es zu erzwingen:
umount -f /dev/md0
Um RAID1 zu stoppen, führen Sie als Nächstes den folgenden Befehl aus:
mdadm --stop /dev/md0
(md0 oder einen anderen Namen, um den Pfad zu sehen)
wobei md0 unsere RAID-ID ist.
Wenn Sie von diesem Raid booten, ist es natürlich nicht möglich, es zu stoppen und Sie müssen eine Art von LiveCD verwenden.
Als Nächstes überschreiben Sie die Metadaten auf dem alten RAID1, indem Sie ein RAID5 darüber erstellen, indem Sie dieselben Festplatten verwenden, die Teil des RAID1 waren, sdb und sdc, und den folgenden Befehl eingeben:
mdadm --create /dev/md0 -a yes -l 5 -n 2 /dev/sdb1 /dev/sdc1
wobei,
l5 - die Array-Ebene angibt,
n2 - die Anzahl der Festplatten, aus denen es besteht, und dann werden diese Festplatten angezeigt.
Nach dem Ausführen des Befehls zeigt das Programm eine Warnung an, dass diese Laufwerke bereits im RAID1 verwendet werden; drücken Sie die Eingabetaste, um fortzufahren.
Um zu prüfen, ob die Konvertierung erfolgreich war, geben Sie den Befehl:
cat /proc/mdstat
Nun müssen Sie warten, bis der RAID5-Neuaufbau abgeschlossen ist, die Prozentzahl zeigt seinen Status an.
Nach Abschluss gibt der Befehl cat /proc/mdstat die folgenden Daten aus.
Anschließend können Sie dem Array eine neue Festplatte hinzufügen und daraus ein vollwertiges RAID5 machen. Die neue Festplatte wird als Ersatz hinzugefügt (spare). Geben Sie zum Hinzufügen den folgenden Befehl ein:
mdadm --add /dev/md0 /dev/sdd1
Als Nächstes müssen Sie das Raid mit diesem Befehl auf drei aktive Festplatten erweitern, indem Sie die Ersatzplatte verwenden:
mdadm --grow /dev/md0 --raid-disks=3
Prüfen Sie mit dem Befehl, was daraus geworden ist:
cat /proc/mdstat
Jetzt sind 3 Festplatten sdb, sdc, sdd am Raid beteiligt und der Änderungsprozess hat begonnen (reshap).
Der Prozentsatz zeigt seinen Fortschritt an, warten Sie, bis er zu Ende ist.
Prüfen Sie abschließend das Festplattenarray mit folgendem Befehl auf Fehler:
e2fsck -f /dev/md0
und erweitern Sie es mit dem folgenden Befehl:
resize2fs -p /dev/md0
Aktualisieren Sie abschließend die Konfigurationsdatei, indem Sie den folgenden Befehl ausführen:
mdadm --examine --scan >> /etc/mdadm.conf
Wenn während dieser Befehle kein Fehler auftritt, werden alle Daten, die sich auf dem RAID1 befanden, auf das neue RAID5-Array übertragen.
Mounten Sie die Festplatte und prüfen Sie, ob alle Dateien unberührt geblieben sind und die Array-Ebene auf Ebene fünf geändert wurde.
So ändern Sie RAID 0 (Striping) in RAID5 (parity)
Es gibt keine Möglichkeit, von RAID0 zu RAID5 zu konvertieren, ohne zu formatieren und Informationen zu verlieren. Aber stattdessen gibt es eine schnelle Möglichkeit, mit einem einzigen Befehl zu konvertieren.
Ein Übergang von RAID0 zu RAID5 ist nur bei der Verwendung von zwei Festplatten möglich, wobei RAID0 bequem mit RAID5 abgeglichen wird. Dadurch wird lediglich der RAID-Level geändert, ohne die Informationen auf den Festplatten zu beeinflussen.
Dieser Befehl konvertiert RAID0 mit zwei Laufwerken in RAID5 mit drei Laufwerken.
mdadm --grow /dev/md0 --level=5 --raid-devices=3 --add /dev/sdd --backup-file=/tmp/grow_md0.bak
Sie müssen das Laufwerk vorher aushängen.
Prüfen Sie mit dem Befehl:
cat /proc/mdstat
Warten Sie auf das Ende des reshap
Sobald Sie auf RAID-5 umgestellt haben, können Sie dem Array weitere Festplatten hinzufügen, wie ich oben geschrieben habe:
mdadm --add /dev/md0 /dev/sdc1
Nach dem Neustart in der Datenträgerverwaltung ändert sich sein Name in RAID5.
Wenn mehr als zwei Festplatten im RAID0 vorhanden sind, müssen Sie zuerst die Anzahl der Festplatten reduzieren, und erst dann ist es möglich, es in RAID5 umrechnen.
So konvertieren Sie LVRAID1 zu LVRAID5
Wenn Sie die LVM-Funktionalität zum Erstellen eines RAID-Arrays verwendet haben, können Sie mit dem Befehl einen Typ in einen anderen umwandeln:
lvconvert
Führen Sie einen Befehl aus
pvdisplay
So zeigen Sie Informationen über eine Gruppe von Festplatten an.
Details zum Erstellen von MD- und LV-RAID finden Sie in einem der vorherigen Videos.
Um die Konvertierung zu starten, müssen Sie also das logische Volume aushängen. Geben Sie den Befehl:
umount /dev/vg1/lv1
Um den RAID-Level zu konvertieren, geben Sie den folgenden Befehl ein:
lvconvert --type raid5 /dev/vg1/lv1
Nun bleibt noch, der bestehenden Laufwerksgruppe ein drittes Laufwerk hinzuzufügen, und zwar mit dem Befehl:
vgextend vg1 /dev/sdd1
Beim Ausführen des Programms werden Sie gewarnt, dass die Festplatte bereits partitioniert ist; geben Sie zur Bestätigung "yes" ein und drücken Sie die Eingabetaste.
Um zu sehen, ob das Laufwerk der Gruppe hinzugefügt wurde, führen Sie den Befehl:
pvdisplay
Wie Sie sehen, sind 3 Festplatten an der Gruppe beteiligt.
Mounten Sie das Laufwerk wieder und öffnen Sie es im Dateimanager, wie Sie sehen können, sind alle Daten noch vorhanden.
So konvertieren Sie LVRAID0 in LVRAID5
Der gleiche Befehl wird verwendet, um RAID0 in RAID5 zu konvertieren. Das Einzige, was vor der Durchführung der Konvertierung getan werden muss, ist, eine dritte Festplatte zur Gruppe hinzuzufügen, da das System sonst meldet, dass es nicht genug Platz hat, um diesen Befehl auszuführen.
Fügen Sie die dritte Festplatte hinzu:
vgextend vg1 /dev/sdd1
Und um den RAID-Level zu konvertieren, geben Sie den folgenden Befehl ein:
lvconvert --type raid5 /dev/vg1/lv1
Lassen Sie uns das Array einhängen und sehen, was noch darauf ist. Wie Sie sehen können, sind alle Dateien an ihrem Platz.
Wie Sie Daten aus beschädigten RAID-Arrays wiederherstellen
Wenn die Konvertierung von einem RAID-Level in einen anderen fehlschlägt oder Sie Ihre Daten versehentlich überschreiben, können Sie eine Datenrettungssoftware verwenden, um Ihre Daten wiederherzustellen – Hetman RAID Recovery. Das Dienstprogramm liest alle Informationen über den Controller, die Hauptplatine oder die Software, auf der das Disk-Array erstellt wurde, aus dem System aus.
Es stellt das zerstörte RAID wieder her und ermöglicht es Ihnen, die verlorenen Informationen daraus zu kopieren.
Weitere Details zur MD LV RAID-Wiederherstellung können Sie in einem der vorherigen Videos nachlesen, ich lasse den Link in der Beschreibung.
Fazit
Der Wechsel von einem RAID-Typ zu einem anderen ist in wenigen Schritten erledigt. Sie müssen das Array zunächst in den mittleren RAID-Typ und dann erneut in den gewünschten RAID-Typ konvertieren. Um zum Beispiel den «ersten» Typ in den «sechsten» Typ zu konvertieren, müssten Sie ihn zuerst in den «fünften» Typ konvertieren, und erst danach können Sie ihn in den «sechsten» Typ konvertieren.
Md126 ist hier nicht das primäre RAID-Array, sondern md127, also würde ich die neue Platte mit dem Befehl md127 neu hinzufügen mdadm --manage /dev/md127 --force --add /dev/sdb
Und Raid wird sich allmählich wieder erholen.
Alle auf LVM-Volumes befindlichen Dateisysteme mit umount aushängen, LVM-Volume-Gruppe vg0 deaktivieren mit vgchange -an vg0,
deaktivieren Sie den RAID-Array mit dem Befehl: mdadm --stop /dev/md0,
entfernen Sie das RAID-Gerät mit dem Befehl: mdadm --delete /dev/md0
und erst danach den Superblock auf sda4 auf Null zurücksetzen durch mdadm --zero-superblock /dev/sda4.