Pokud můžete zařídit, aby byl logický svazek na samostatné podmnožině fyzických svazků od zbytku skupiny zdrojových svazků (lvconvert sourcevg/sourcelv /dev/pv1 ... může pomoci), můžete použít vgsplit k rozdělení lv na nový vg a vgmerge pro sloučení nového vg do cílového vg.
Přestože má LVM funkci zrcadlení, nemůžete ji (rozumně) použít k vytvoření kopie mezi skupinami svazků, protože obě nohy zrcadlení musí žít na stejném vg a asociaci nelze přerušit.
Svazek LVM můžete zkopírovat do jiného stejným způsobem, jakým byste kopírovali jakýkoli svazek do jiného:vytvořte cílový lv příslušné velikosti a poté zkopírujte obsah pomocí dd if=/dev/sourcevg/sourcelv of=/dev/targetvg/targetlv bs=4M . Pokud je zdrojový svazek aktivní, můžete využít LVM k vytvoření konzistentní kopie:nejprve pořiďte snímek zdrojového svazku s lvcreate -s a poté zkopírujte snímek.
pvmove -n lvol1 /dev/sdb1 /dev/sdc1
pvmove umí přesouvat data mezi fyzickými svazky:LVM Administrator's Guide
Od LVM v Debian stretch (9.0), konkrétně 2.02.168-2, je možné vytvořit kopii logického svazku napříč skupinami svazků pomocí kombinace vgmerge , lvconvert a vgsplit . Protože přesun je kombinací kopírování a mazání, bude to fungovat i pro přesun.
Případně můžete použít pvmove stačí přesunout hlasitost.
Kompletní samostatná ukázková relace využívající smyčková zařízení alvconvert následuje.
Shrnutí:vytvoříme skupinu svazků vg1 s logickým svazkem lv1 a vg2 s lv2 a vytvořte kopii lv1 v vg2 .
Vytvořte soubory.
truncate pv1 --size 100MB
truncate pv2 --size 100MB
Nastavit smyčková zařízení u souborů.
losetup /dev/loop1 pv1
losetup /dev/loop2 pv2
Vytvořte fyzické svazky na smyčkových zařízeních (inicializujte smyčková zařízení pro použití LVM).
pvcreate /dev/loop1 /dev/loop2
Vytvořte skupiny svazků vg1 a vg2 na /dev/loop1 a /dev/loop2 respektive.
vgcreate vg1 /dev/loop1
vgcreate vg2 /dev/loop2
Vytvořte logické svazky lv1 a lv2 na vg1 a vg2 respektive.
lvcreate -L 10M -n lv1 vg1
lvcreate -L 10M -n lv2 vg2
Vytvořte souborové systémy ext4 na lv1 a lv2 .
mkfs.ext4 -j /dev/vg1/lv1
mkfs.ext4 -j /dev/vg2/lv2
Volitelně napište něco na lv1 takže můžete později zkontrolovat, zda byla kopie správně vytvořena. Udělejte vg1 neaktivní.
vgchange -a n vg1
Spusťte příkaz sloučení v testovacím režimu. Toto sloučí lv1 do lv2 .
vgmerge -A y -l -t -v <<destination-vg>> <<source-vg>>
vgmerge -A y -l -t -v vg2 vg1
A pak doopravdy.
vgmerge -A y -l -v vg2 vg1
Poté vytvořte zrcadlový pár RAID 1 z lv1 pomocí lvconvert . Argument <> říká lvconvert aby se zrcadlení zkopírovalolv1_copy na /dev/loop2 .
lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2
Pak rozdělte zrcadlo. Nový LV je nyní lv1_copy .
lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1
Vytvořte vg2 neaktivní.
vgchange -a n vg2
Potom (režim testování)
vgsplit -t -v <<source-vg>> <<destination-vg>> <<moved-to-pv>>
vgsplit -t -v /dev/vg2 /dev/vg1 /dev/loop1
Skutečně
vgsplit -v /dev/vg2 /dev/vg1 /dev/loop1
Výsledný výstup:
lvs
[...]
lv1 vg1 -wi-a----- 12.00m
lv1_copy vg2 -wi-a----- 12.00m
lv2 vg2 -wi-a----- 12.00m
POZNÁMKY:
1) Většinu těchto příkazů bude nutné spouštět jako root.
2) Pokud dojde k duplicitě názvů logických svazků ve dvou skupinách svazků, vgmerge odmítne pokračovat.
3) Při sloučení:
Logical volumes in `vg1` must be inactive
A na rozdělení:
Logical volume `vg2/lv1` must be inactive.