Sampai dengan LVM di Debian peregangan (9.0), yaitu 2.02.168-2, itu mungkin untuk melakukan copy dari volume logis di seluruh kelompok volume dengan menggunakan kombinasi dari vgmerge
, lvconvert
, dan vgsplit
. Karena langkah adalah kombinasi dari salinan dan penghapusan, ini juga akan berfungsi untuk bergerak.
Atau, Anda dapat menggunakan pvmove
untuk hanya memindahkan volume.
Sesi contoh lengkap mandiri menggunakan perangkat loop dan
lvconvert
ikuti.
Ringkasan: kita menciptakan kelompok volume vg1
dengan volume logis lv1
, dan vg2
dengan lv2
, dan membuat salinan dari lv1
dalam vg2
.
Buat file.
truncate pv1 --size 100MB
truncate pv2 --size 100MB
Siapkan perangkat loop pada file.
losetup /dev/loop1 pv1
losetup /dev/loop2 pv2
Buat volume fisik pada perangkat loop (inisialisasi perangkat loop untuk digunakan oleh LVM).
pvcreate /dev/loop1 /dev/loop2
Buat grup volume vg1 dan vg2 di / dev / loop1 dan / dev / loop2 masing-masing.
vgcreate vg1 /dev/loop1
vgcreate vg2 /dev/loop2
Buat volume logis lv1 dan lv2 masing-masing pada vg1 dan vg2.
lvcreate -L 10M -n lv1 vg1
lvcreate -L 10M -n lv2 vg2
Buat filesystem ext4 di lv1 dan lv2.
mkfs.ext4 -j /dev/vg1/lv1
mkfs.ext4 -j /dev/vg2/lv2
Secara opsional, tulis sesuatu di lv1 sehingga nanti Anda dapat memeriksa salinan yang dibuat dengan benar. Jadikan vg1 tidak aktif.
vgchange -a n vg1
Jalankan perintah gabung dalam mode uji. Ini menggabungkan vg1 menjadi vg2.
vgmerge -A y -l -t -v <<destination-vg>> <<source-vg>>
vgmerge -A y -l -t -v vg2 vg1
Dan kemudian nyata.
vgmerge -A y -l -v vg2 vg1
Kemudian buat pasangan cermin RAID 1 dari lv1
menggunakan lvconvert
. The
dest-pv
Argumen mengatakan lvconvert
untuk membuat salinan cermin di /dev/loop2
.
lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2
Lalu belah cermin. LV baru sekarang lv1_copy
.
lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1
Jadikan vg2/lv1
tidak aktif.
lvchange -a n /dev/vg2/lv1
Kemudian (mode pengujian)
vgsplit -t -v <<source-vg>> <<destination-vg>> <<moved-to-pv>>
vgsplit -t -v /dev/vg2 /dev/vg1 /dev/loop1
Nyata
vgsplit -v /dev/vg2 /dev/vg1 /dev/loop1
Output yang dihasilkan:
lvs
[...]
lv1 vg1 -wi-a----- 12.00m
lv1_copy vg2 -wi-a----- 12.00m
lv2 vg2 -wi-a----- 12.00m
CATATAN:
1) Sebagian besar dari perintah ini perlu dijalankan sebagai root.
2) Jika ada duplikasi nama volume logis dalam dua grup volume, vgmerge
akan menolak untuk melanjutkan.
3) Saat digabung, volume logis di vg1
harus tidak aktif. Dan pada split, volume logis dalam vg2
milik vg1
harus tidak aktif. Dalam kasus kami, ini lv1
.