Począwszy od LVM w odcinku Debiana (9.0), a mianowicie 2.02.168-2, jest możliwe do wykonania kopii objętości logicznego w grupach objętości za pomocą kombinacji vgmerge
, lvconvert
i vgsplit
. Ponieważ przeniesienie jest kombinacją kopii i usunięcia, zadziała to również w przypadku przeniesienia.
Możesz też użyć pvmove
do przeniesienia głośności.
Kompletna, samodzielna przykładowa sesja z wykorzystaniem urządzeń pętlowych i
lvconvert
następnych.
Podsumowanie: tworzymy grupę woluminów vg1
z woluminem logicznym lv1
oraz za vg2
pomocą lv2
i tworzymy kopię lv1
w vg2
.
Utwórz pliki.
truncate pv1 --size 100MB
truncate pv2 --size 100MB
Skonfiguruj urządzenia pętlowe na plikach.
losetup /dev/loop1 pv1
losetup /dev/loop2 pv2
Utwórz woluminy fizyczne na urządzeniach pętli (zainicjuj urządzenia pętli do użytku przez LVM).
pvcreate /dev/loop1 /dev/loop2
Utwórz grupy woluminów vg1 i vg2 odpowiednio w / dev / loop1 i / dev / loop2.
vgcreate vg1 /dev/loop1
vgcreate vg2 /dev/loop2
Utwórz woluminy logiczne lv1 i lv2 odpowiednio w wersjach vg1 i vg2.
lvcreate -L 10M -n lv1 vg1
lvcreate -L 10M -n lv2 vg2
Twórz systemy plików ext4 na poziomach 1 i 2.
mkfs.ext4 -j /dev/vg1/lv1
mkfs.ext4 -j /dev/vg2/lv2
Opcjonalnie napisz coś na lv1, aby później sprawdzić, czy kopia została poprawnie utworzona. Uaktywnij vg1.
vgchange -a n vg1
Uruchom polecenie scalania w trybie testowym. Łączy to vg1 z vg2.
vgmerge -A y -l -t -v <<destination-vg>> <<source-vg>>
vgmerge -A y -l -t -v vg2 vg1
A potem naprawdę.
vgmerge -A y -l -v vg2 vg1
Następnie utwórz parę kopii RAID 1 lv1
przy użyciu lvconvert
.
dest-pv
Argumentem opowiada lvconvert
zrobić kopię lustrzaną na /dev/loop2
.
lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2
Następnie podziel lustro. Nowa LV jest teraz lv1_copy
.
lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1
Dokonaj vg2/lv1
nieaktywna.
lvchange -a n /dev/vg2/lv1
Następnie (tryb testowy)
vgsplit -t -v <<source-vg>> <<destination-vg>> <<moved-to-pv>>
vgsplit -t -v /dev/vg2 /dev/vg1 /dev/loop1
Na serio
vgsplit -v /dev/vg2 /dev/vg1 /dev/loop1
Wynikowy wynik:
lvs
[...]
lv1 vg1 -wi-a----- 12.00m
lv1_copy vg2 -wi-a----- 12.00m
lv2 vg2 -wi-a----- 12.00m
UWAGI:
1) Większość tych poleceń będzie musiała być uruchomiona jako root.
2) W przypadku jakiegokolwiek powielenia nazw woluminów logicznych w dwóch grupach woluminów vgmerge
odmówi kontynuowania.
3) Podczas scalania woluminy logiczne vg1
muszą być nieaktywne. A przy podziale vg2
przynależność do woluminów logicznych vg1
musi być nieaktywna. W naszym przypadku tak jest lv1
.