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 ta tạo ra volume group vg1
với khối lượng hợp lý lv1
, và vg2
với lv2
, và tạo một bản sao của lv1
năm 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 vg1 thành vg2.
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
. Các
dest-pv
đối số nói lvconvert
để làm cho bản sao nhân bản 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ờ lv1_copy
.
lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1
Làm cho vg2/lv1
không hoạt động.
lvchange -a n /dev/vg2/lv1
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, khối lượng logic trong vg1
phải không hoạt động. Và khi phân chia, khối lượng logic vg2
thuộc về vg1
phải không hoạt động. Trong trường hợp của chúng tôi, đây là lv1
.