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ụ độc lập hoàn chỉnh 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 khối 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 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ì đó lê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 lv1
bằng cách sử dụng lvconvert
. Đối số <> nói lvconvert
để làm cho bản sao nhân bản
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ờ 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.