GNU/Linux >> Znalost Linux >  >> Linux

Linux – přesunout logický svazek z jedné skupiny svazků do druhé?

Je možné přesunout logický svazek z jedné skupiny svazků do druhé jako celek?

Je možné vytvořit (více či méně) odpovídající lv a zkopírovat data, ale existuje nějaký způsob, jak to udělat pouze s nástroji LVM?

Pokud ne, existuje teoretický důvod nebo technické omezení (velikosti rozsahu)?

Přijatá odpověď:

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 . Vzhledem k tomu, že přesun je
kombinací kopírování a smazá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í a lvconvert následuje.

Shrnutí:vytváříme skupinu svazků vg1 s logickým svazkem lv1 a vg2 s lv2 a vytvořte kopii lv1 v vg2 .

Vytvářejte soubory.

truncate pv1 --size 100MB
truncate pv2 --size 100MB

Nastavte 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. Toto sloučí vg1 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 k vytvoření zrcadlové kopie
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/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ů v
dvou skupinách svazků, vgmerge odmítne pokračovat.

Související:Jak naprogramovat AVR Raven s Linuxem nebo Macem?

3) Při sloučení logické svazky v vg1 musí být neaktivní. A na rozdělených logických svazcích ve vg2 patřící do vg1 musí být neaktivní. V našem případě je to lv1 .


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

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

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

  1. Příklady příkazů vgextend v Linuxu

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

  3. Jak přejmenovat více souborů z jedné přípony na druhou v Linuxu / Unixu?

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

  2. Jaký je nejrychlejší způsob, jak v Linuxu přesunout milion obrázků z jednoho adresáře do druhého?

  3. Linux NFLOG - dokumentace, konfigurace z C