Jika Anda dapat mengatur agar volume logis berada pada subset terpisah dari volume fisik dari grup volume sumber lainnya (lvconvert sourcevg/sourcelv /dev/pv1 ...
dapat membantu), Anda dapat menggunakan vgsplit
untuk memisahkan lv menjadi vg baru dan vgmerge
untuk menggabungkan vg baru ke vg target.
Meskipun LVM memiliki fitur pencerminan, Anda tidak dapat (secara wajar) menggunakannya untuk membuat salinan antar grup volume, karena kedua kaki cermin harus berada di vg yang sama dan asosiasi tidak dapat diputus.
Anda dapat menyalin volume LVM ke volume lain dengan cara menyalin volume apa pun ke volume lain:buat target lv dengan ukuran yang sesuai, lalu salin isinya dengan dd if=/dev/sourcevg/sourcelv of=/dev/targetvg/targetlv bs=4M
. Jika volume sumber aktif, Anda dapat memanfaatkan LVM untuk membuat salinan yang konsisten:pertama ambil snapshot lv sumber dengan lvcreate -s
, lalu salin snapshot.
pvmove -n lvol1 /dev/sdb1 /dev/sdc1
pvmove dapat memindahkan data antar volume fisik:Panduan Administrator LVM
Pada LVM di bentangan Debian (9.0), yaitu 2.02.168-2, dimungkinkan untuk menyalin volume logis di seluruh grup volume menggunakan kombinasi vgmerge
, lvconvert
, dan vgsplit
. Karena pemindahan adalah kombinasi dari salinan dan penghapusan, ini juga akan berfungsi untuk pemindahan.
Sebagai alternatif, Anda dapat menggunakan pvmove
untuk hanya memindahkan volume.
Sesi contoh mandiri lengkap menggunakan perangkat loop danlvconvert
mengikuti.
Rangkuman:kami membuat grup volume vg1
dengan volume logis lv1
, dan vg2
dengan lv2
, dan buat salinan lv1
di 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
pada /dev/loop1
dan /dev/loop2
masing-masing.
vgcreate vg1 /dev/loop1
vgcreate vg2 /dev/loop2
Buat volume logis lv1
dan lv2
pada vg1
dan vg2
masing-masing.
lvcreate -L 10M -n lv1 vg1
lvcreate -L 10M -n lv2 vg2
Buat sistem file 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. Buat vg1
tidak aktif.
vgchange -a n vg1
Jalankan perintah gabungan dalam mode uji. Ini menggabungkan lv1
ke dalam lv2
.
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 mirror RAID 1 dari lv1
menggunakan lvconvert
. Argumen <> memberi tahu lvconvert
untuk membuat salinan cerminlv1_copy
di /dev/loop2
.
lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2
Kemudian membagi cermin. LV baru sekarang adalah lv1_copy
.
lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1
Buat vg2
tidak aktif.
vgchange -a n vg2
Lalu (mode pengujian)
vgsplit -t -v <<source-vg>> <<destination-vg>> <<moved-to-pv>>
vgsplit -t -v /dev/vg2 /dev/vg1 /dev/loop1
Sungguh
vgsplit -v /dev/vg2 /dev/vg1 /dev/loop1
Keluaran 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 perintah ini harus dijalankan sebagai root.
2) Jika ada duplikasi nama volume logis di kedua grup volume, vgmerge
akan menolak untuk melanjutkan.
3) Saat digabungkan:
Logical volumes in `vg1` must be inactive
Dan terbagi:
Logical volume `vg2/lv1` must be inactive.