GNU/Linux >> Znalost Linux >  >> Linux

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

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.

Linux
  1. Jak kopírovat nebo klonovat oprávnění z jednoho souboru do druhého v systému Linux

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

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

  1. Jak zkopírovat 10 posledních souborů z jednoho adresáře do druhého?

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

  3. Existuje způsob, jak zkopírovat text v htop?

  1. Kopírovat posledních N řádků z jednoho souboru do druhého?

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

  3. Zkopírujte velký soubor z jednoho linuxového serveru na druhý