Verschieben eines logischen Volumes von einer Volume-Gruppe in eine andere
18
Ist es möglich, ein logisches Volume von einer Volume-Gruppe in eine andere zu verschieben?
Es ist möglich, eine (mehr oder weniger) passende Version zu erstellen und die Daten zu kopieren. Gibt es eine Möglichkeit, dies nur mit LVM-Tools zu tun?
Wenn nicht, gibt es einen theoretischen Grund oder eine technische Einschränkung (Umfanggrößen)?
Eine Volume-Gruppe besteht aus ganzen physischen Volumes. Ein physisches Volume besteht aus vielen Bereichen (ein Bereich ist normalerweise 4 MB groß). Jedes Extent kann zu einem anderen logischen Volume gehören. Um ein logisches Volume an eine andere Gruppe zu übertragen, können Sie nicht einfach Extents übertragen, da dies zu einer Aufteilung des physischen Volumes zwischen der Quell-VG und der Ziel-VG führen kann.
Sie können eine oder mehrere PVs mit dem vgsplitBefehl von der Quell-VG zur Ziel-VG übertragen . Sie können angeben, welche PVs Sie übertragen möchten oder welche LV (jeweils nur eine). Wenn Sie eine LV angeben, müssen sich diese und die anderen LVs in der Quell-VG auf separaten PVs befinden. Die Ziel-VG wird erstellt, wenn keine VG mit dem angegebenen Namen vorhanden ist.
Möglicherweise müssen Sie pvmovezunächst festlegen, dass sich die zu verschiebenden logischen Volumes auf separaten PVs befinden.
Wenn Sie die physischen Grenzen der VG beibehalten und die Daten verschieben möchten, gibt es kein integriertes Tool. Sie können jedoch einen Spiegel erstellen und dann das Original entfernen .
Sieht so aus, als ob die Zielgruppe bereits vorhanden sein kann?
XTL
8
Wie in den LVM Debian Stretch (9,0), nämlich 2.02.168-2, dann ist es möglich , eine Kopie eines logischen Datenträger über Volumengruppen mit einer Kombination von zu tun vgmerge, lvconvertund vgsplit. Da ein Zug eine Kombination aus Kopieren und Löschen ist, funktioniert dies auch für einen Zug.
Alternativ können Sie auch pvmoveeinfach die Lautstärke verschieben.
Eine vollständige eigenständige Beispielsitzung mit Loop-Geräten und
lvconvertfolgenden Schritten.
Zusammenfassung: Wir erstellen eine Datenträgergruppe vg1mit logischem Datenträger lv1und vg2mit lv2und erstellen eine Kopie von lv1in vg2.
Schreiben Sie optional etwas in lv1, damit Sie später überprüfen können, ob die Kopie korrekt erstellt wurde. Schalten Sie vg1 inaktiv.
vgchange -a n vg1
Führen Sie den Befehl merge im Testmodus aus. Dies führt vg1 zu vg2 zusammen.
vgmerge -A y -l -t -v <<destination-vg>> <<source-vg>>
vgmerge -A y -l -t -v vg2 vg1
Und dann echt.
vgmerge -A y -l -v vg2 vg1
Dann erstellen Sie ein RAID 1 - Spiegelpaar aus lv1mit lvconvert. Das
dest-pvArgument besagt lvconvert, dass die Spiegelkopie erstellt werden soll /dev/loop2.
1) Die meisten dieser Befehle müssen als root ausgeführt werden.
2) Wenn die Namen der logischen Datenträger in den beiden Datenträgergruppen doppelt vorhanden sind, vgmergewird der Vorgang abgelehnt.
3) Beim Zusammenführen müssen die logischen Volumes vg1inaktiv sein. Bei der Aufteilung müssen die logischen Datenträger vg2, zu vg1denen gehört, inaktiv sein. In unserem Fall ist dies lv1.
Wie in den LVM Debian Stretch (9,0), nämlich 2.02.168-2, dann ist es möglich , eine Kopie eines logischen Datenträger über Volumengruppen mit einer Kombination von zu tun
vgmerge
,lvconvert
undvgsplit
. Da ein Zug eine Kombination aus Kopieren und Löschen ist, funktioniert dies auch für einen Zug.Alternativ können Sie auch
pvmove
einfach die Lautstärke verschieben.Eine vollständige eigenständige Beispielsitzung mit Loop-Geräten und
lvconvert
folgenden Schritten.Zusammenfassung: Wir erstellen eine Datenträgergruppe
vg1
mit logischem Datenträgerlv1
undvg2
mitlv2
und erstellen eine Kopie vonlv1
invg2
.Erstellen Sie Dateien.
Richten Sie Loop-Geräte für Dateien ein.
Erstellen Sie physische Volumes auf Loop-Geräten (initialisieren Sie Loop-Geräte für die Verwendung durch LVM).
Erstellen Sie die Volume-Gruppen vg1 und vg2 in / dev / loop1 bzw. / dev / loop2.
Erstellen Sie logische Volumes lv1 und lv2 auf vg1 bzw. vg2.
Erstellen Sie ext4-Dateisysteme auf lv1 und lv2.
Schreiben Sie optional etwas in lv1, damit Sie später überprüfen können, ob die Kopie korrekt erstellt wurde. Schalten Sie vg1 inaktiv.
Führen Sie den Befehl merge im Testmodus aus. Dies führt vg1 zu vg2 zusammen.
Und dann echt.
Dann erstellen Sie ein RAID 1 - Spiegelpaar aus
lv1
mitlvconvert
. Dasdest-pv
Argument besagtlvconvert
, dass die Spiegelkopie erstellt werden soll/dev/loop2
.Dann teilen Sie den Spiegel. Der neue LV ist jetzt
lv1_copy
.Machen
vg2/lv1
inaktiv.Dann (Testmodus)
Wirklich
Resultierende Ausgabe:
ANMERKUNGEN:
1) Die meisten dieser Befehle müssen als root ausgeführt werden.
2) Wenn die Namen der logischen Datenträger in den beiden Datenträgergruppen doppelt vorhanden sind,
vgmerge
wird der Vorgang abgelehnt.3) Beim Zusammenführen müssen die logischen Volumes
vg1
inaktiv sein. Bei der Aufteilung müssen die logischen Datenträgervg2
, zuvg1
denen gehört, inaktiv sein. In unserem Fall ist dieslv1
.quelle
Ich werde mein eigenes anbieten:
Wenn alles in Ordnung ist, entfernen Sie die Quelle
quelle