sử dụng Ubuntu 20.04 làm máy chủ kvm, khởi tạo khách bằng cloud-init. điều này mang lại cho tôi một vị khách đang làm việc, kết quả là một chuỗi hình ảnh. để đơn giản hóa quy trình sao lưu và sử dụng lại tập lệnh hiện có, tôi muốn hợp nhất chuỗi hình ảnh thành một tệp duy nhất.
https://libvirt.org/kbase/merging_disk_image_chains.html#consolidating-an-entire-disk-image-chain-into-a-single-image
cấu hình ban đầu
kiểm tra domblklist virsh
Nguồn mục tiêu
-----------------------------
vda test-rootfs.qcow2
hdd -
củng cố hình ảnh
virsh kiểm tra khối cam kết vda --verbose --pivot --active
Khối cam kết: [100 %]
xoay vòng thành công
kết quả
kiểm tra domblklist virsh
Nguồn mục tiêu
------------------------------------------
vda/data/libvirt/đĩa-hình ảnh/kiểm tra
hdd -
Đây là kết quả mong đợi. Bất cứ khi nào tôi tắt VM và bắt đầu lại, cấu hình hình ảnh sẽ thay đổi thành:
kiểm tra domblklist virsh
Nguồn mục tiêu
-----------------------------
vda test-rootfs.qcow2
hdd -
và hình ảnh hợp nhất không được sử dụng nữa, thay vào đó là sử dụng lại chuỗi hình ảnh gốc ... -> Câu hỏi của tôi: Tại sao?
BR và thx cho gợi ý
//chỉnh sửa:
Tôi đã tắt tính năng khởi tạo đám mây trong máy khách, sau đó là thủ tục shudtown/start.
Đây là sự khác biệt, so sánh sau khi xác nhận khối và sau khi tắt/khởi động miền (sử dụng virsh dumpxml).
$ diff 0_blockcommit 1_shutdown_start
1c1
< <loại miền='kvm' id='8'>
---
> <loại miền='kvm' id='9'>
32c32
< <loại đĩa='tệp' thiết bị='đĩa'>
---
> <loại đĩa='âm lượng' thiết bị='đĩa'>
34,35c34,39
< <file nguồn='/data/libvirt/pools/disk-images/test.qcow2' index='3'/>
< <backingStore/>
---
> <source pool='disk-images' volume='test-rootfs.qcow2' index='2'/>
> <backingStore type='file' index='3'>
> <loại định dạng='qcow2'/>
> <file nguồn='/data/libvirt/pools/disk-images/test.qcow2'/>
> <backingStore/>
> </backingStore>
42c46,47
< <nguồn index='4'/>
---
> <file nguồn='/data/libvirt/pools/disk-images/test.iso' index='1'/>
> <backingStore/>
89c94
< <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-8-test/org.qemu.guest_agent.0'/>
---
> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-9-test/org.qemu.guest_agent.0'/>