Tính đến LVM trong Debian căng (9.0), cụ thể là 2.02.168-2, nó có thể làm một bản sao của một khối lượng hợp lý giữa các nhóm khối lượng sử dụng kết hợp vgmerge
, lvconvert
và vgsplit
. Vì di chuyển là sự kết hợp của một bản sao và xóa, nên điều này cũng sẽ hoạt động cho một di chuyển.
Ngoài ra, bạn có thể sử dụng pvmove
để chỉ di chuyển âm lượng.
Một phiên ví dụ hoàn toàn khép kín sử dụng các thiết bị lặp và làm
lvconvert
theo.
Tóm tắt: chúng tôi tạo nhóm âm lượng vg1 với khối lượng logic lv1 và vg2 với lv2 và tạo một bản sao của lv1 trong vg2.
Tạo tập tin.
truncate pv1 --size 100MB
truncate pv2 --size 100MB
Thiết lập các thiết bị lặp trên các tập tin.
losetup /dev/loop1 pv1
losetup /dev/loop2 pv2
Tạo khối lượng vật lý trên các thiết bị vòng lặp (khởi tạo các thiết bị vòng lặp để LVM sử dụng).
pvcreate /dev/loop1 /dev/loop2
Tạo các nhóm âm lượng vg1 và vg2 trên / dev / loop1 và / dev / loop2 tương ứng.
vgcreate vg1 /dev/loop1
vgcreate vg2 /dev/loop2
Tạo khối lượng logic lv1 và lv2 trên vg1 và vg2 tương ứng.
lvcreate -L 10M -n lv1 vg1
lvcreate -L 10M -n lv2 vg2
Tạo các hệ thống tập tin ext4 trên lv1 và lv2.
mkfs.ext4 -j /dev/vg1/lv1
mkfs.ext4 -j /dev/vg2/lv2
Tùy chọn, viết một cái gì đó trên lv1 để sau này bạn có thể kiểm tra bản sao đã được tạo chính xác. Làm cho vg1 không hoạt động.
vgchange -a n vg1
Chạy lệnh hợp nhất trong chế độ thử nghiệm. Điều này hợp nhất lv1 thành lv2.
vgmerge -A y -l -t -v <<destination-vg>> <<source-vg>>
vgmerge -A y -l -t -v vg2 vg1
Và sau đó là thật.
vgmerge -A y -l -v vg2 vg1
Sau đó, tạo một cặp nhân bản RAID 1 từ lv1
việc sử dụng lvconvert
. Đối số <> cho biết lvconvert
để sao chép bản sao
lv1_copy
trên /dev/loop2
.
lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2
Sau đó tách gương. LV mới bây giờ là lv1_copy.
lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1
Làm cho vg2 không hoạt động.
vgchange -a n vg2
Sau đó (chế độ thử nghiệm)
vgsplit -t -v <<source-vg>> <<destination-vg>> <<moved-to-pv>>
vgsplit -t -v /dev/vg2 /dev/vg1 /dev/loop1
Cho thật
vgsplit -v /dev/vg2 /dev/vg1 /dev/loop1
Kết quả đầu ra:
lvs
[...]
lv1 vg1 -wi-a----- 12.00m
lv1_copy vg2 -wi-a----- 12.00m
lv2 vg2 -wi-a----- 12.00m
GHI CHÚ:
1) Hầu hết các lệnh này sẽ cần phải được chạy dưới quyền root.
2) Nếu có bất kỳ sự trùng lặp nào về tên của các khối hợp lý trong hai nhóm âm lượng, vgmerge
sẽ từ chối tiếp tục.
3) Khi hợp nhất:
Logical volumes in `vg1` must be inactive
Và chia tay:
Logical volume `vg2/lv1` must be inactive.