GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:spostare un volume logico da un gruppo di volumi a un altro?

È possibile spostare un volume logico da un gruppo di volumi all'altro per intero?

È possibile creare un lv (più o meno) corrispondente e copiare i dati, ma c'è un modo per farlo solo con gli strumenti LVM?

In caso negativo, c'è un motivo teorico o un limite tecnico (dimensioni delle dimensioni)?

Risposta accettata:

A partire da LVM in Debian stretch (9.0), ovvero 2.02.168-2, è
possibile eseguire una copia di un volume logico attraverso gruppi di volumi usando una
combinazione di vgmerge , lvconvert e vgsplit . Poiché una mossa è
una combinazione di una copia e di un'eliminazione, funzionerà anche per una mossa.

In alternativa, puoi usare pvmove per spostare semplicemente il volume.

Una sessione di esempio completa e autonoma che utilizza dispositivi loop e lvconvert segue.

Riepilogo:creiamo il gruppo di volumi vg1 con volume logico lv1 e vg2 con lv2 e fai una copia di lv1 in vg2 .

Crea file.

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

Configura i dispositivi in ​​loop sui file.

losetup /dev/loop1 pv1
losetup /dev/loop2 pv2

Crea volumi fisici su dispositivi di loop (inizializza i dispositivi di loop per
l'utilizzo da parte di LVM).

pvcreate /dev/loop1 /dev/loop2

Crea gruppi di volumi vg1 e vg2 rispettivamente su /dev/loop1 e /dev/loop2
.

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

Crea volumi logici lv1 e lv2 rispettivamente su vg1 e vg2.

lvcreate -L 10M -n lv1 vg1
lvcreate -L 10M -n lv2 vg2

Crea filesystem ext4 su lv1 e lv2.

mkfs.ext4 -j /dev/vg1/lv1
mkfs.ext4 -j /dev/vg2/lv2

Facoltativamente, scrivi qualcosa su lv1 in modo da poter verificare in seguito che la copia è stata
creata correttamente. Rendi vg1 inattivo.

vgchange -a n vg1

Esegui il comando di unione in modalità test. Questo unisce vg1 in vg2.

vgmerge -A y -l -t -v <<destination-vg>> <<source-vg>>
vgmerge -A y -l -t -v vg2 vg1

E poi per davvero.

vgmerge -A y -l -v vg2 vg1

Quindi crea una coppia di mirror RAID 1 da lv1 usando lvconvert . Il dest-pv argomento dice a lvconvert per eseguire la copia speculare
su /dev/loop2 .

lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2

Quindi dividi lo specchio. Il nuovo LV è ora lv1_copy .

lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1

Crea vg2/lv1 inattivo.

lvchange -a n /dev/vg2/lv1

Quindi (modalità test)

vgsplit -t -v <<source-vg>> <<destination-vg>> <<moved-to-pv>>
vgsplit -t -v /dev/vg2 /dev/vg1 /dev/loop1

Per davvero

vgsplit -v /dev/vg2 /dev/vg1 /dev/loop1

Risultato:

lvs
[...]
lv1        vg1       -wi-a-----  12.00m
lv1_copy   vg2       -wi-a-----  12.00m
lv2        vg2       -wi-a-----  12.00m

NOTE:

1) La maggior parte di questi comandi dovrà essere eseguita come root.

2) In caso di duplicazione dei nomi dei volumi logici nei
nei due gruppi di volumi, vgmerge rifiuterà di procedere.

Correlati:come programmare un AVR Raven con Linux o Mac?

3) All'unione, volumi logici in vg1 deve essere inattivo. E su volumi logici divisi in vg2 appartenente a vg1 deve essere inattivo. Nel nostro caso, questo è lv1 .


Linux
  1. Wormhole:condividi in modo sicuro i file da un computer all'altro in Linux

  2. CentOS / RHEL:sposta un volume fisico da un gruppo di volumi esistente a un altro gruppo di volumi

  3. CentOS / RHEL:come spostare un gruppo di volumi da un sistema all'altro

  4. Come spostare lo scambio dalla partizione del disco al volume LVM in Linux

  5. Esempi di comandi vgextend in Linux

Reptyr:sposta un processo in esecuzione da un terminale all'altro senza chiuderlo

Gestione del volume logico

Come spostare tutti i file (inclusi quelli nascosti) da una directory all'altra?

Come spostare gli account da un server cPanel a un altro server cPanel?

Esiste un modo semplice per spostare/copiare un volume logico da un gruppo di volumi a un altro? (LVM2)

Copia file di grandi dimensioni da un server Linux a un altro