GNU/Linux >> Znalost Linux >  >> Linux

Přesuňte logický svazek z jedné skupiny svazků do druhé

Skupina svazků se skládá z celých fyzických svazků. Fyzický svazek se skládá z mnoha oblastí (rozsah je obvykle 4 MB); každý rozsah může patřit do jiného logického svazku. Chcete-li přenést logický svazek do jiné skupiny, nemůžete jednoduše přenést rozsahy, protože by to mohlo rozdělit fyzický svazek mezi zdrojový VG a cílový VG.

Co můžete udělat, je přenést jedno nebo více PV ze zdrojového VG do cílového VG pomocí vgsplit příkaz. Můžete určit, které PV chcete převést, nebo které LV (ale pouze po jednom). Pokud zadáte LV, musí být tento a ostatní LV ve zdrojovém VG na samostatných PV. Cílový VG bude vytvořen, pokud neexistuje VG se zadaným názvem.

vgsplit -n source_group/volume_to_copy source_group target_group
vgsplit source_group target_group /dev/sdy99 /dev/sdz99

Možná budete muset použít pvmove nejprve zařiďte, aby logické svazky, které chcete přesunout, byly na samostatných PV.

Pokud jste chtěli zachovat fyzické hranice VG a přesunout data, neexistuje žádný vestavěný nástroj, ale můžete vytvořit zrcadlo a poté odstranit originál.


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.

vgcreate vg1 /dev/loop1
vgcreate vg2 /dev/loop2

Vytvořte logické svazky lv1 a lv2 na vg1 a vg2.

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, abyste mohli později zkontrolovat, zda byla kopie správně vytvořena. Deaktivujte vg1.

vgchange -a n vg1

Spusťte příkaz sloučení v testovacím režimu. Tím se vg1 sloučí do vg2.

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 . dest-pv argument říká lvconvert vytvořit zrcadlovou kopii /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

Udělejte vg2/lv1 neaktivní.

lvchange -a n /dev/vg2/lv1

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í logické svazky v vg1 musí být neaktivní. A na rozdělených logických svazcích v vg2 patřící pod vg1 musí být neaktivní. V našem případě je to lv1 .


Nabídnu své vlastní:

umount /somedir/

lvdisplay /dev/vgsource/lv0 --units b

lvcreate -L 12345b -n lv0 vgtarget

dd if=/dev/vgsource/lv0 of=/dev/vgtarget/lv0 bs=1024K conv=noerror,sync status=progress

mount /dev/vgtarget/lv0 /somedir/

pokud je vše v pořádku, odstraňte zdroj

lvremove vgsource/lv0

Linux
  1. Jak zkopírovat nastavení z jednoho počítače do druhého?

  2. CentOS / RHEL :Přesune fyzický svazek z existující skupiny svazků do jiné skupiny svazků

  3. CentOS / RHEL :Jak přesunout skupinu svazků z jednoho systému do druhého

  1. Jak přesunout swap z diskového oddílu na svazek LVM v Linuxu

  2. Jak zkopírovat tabulku z jedné databáze mysql do jiné databáze mysql

  3. Jak přesunout (a přepsat) všechny soubory z jednoho adresáře do druhého?

  1. Jak najít slova z jednoho souboru v jiném souboru?

  2. Existuje jednoduchý způsob, jak přesunout/zkopírovat logický svazek z jedné skupiny svazků do druhé? (LVM2)

  3. Zkopírujte celou hierarchii systému souborů z jednoho disku na druhý