1. use qemu-img to convert from an lvm to qcow2 format:
qemu-img convert -O qcow2 /dev/vg_name/lv_name/ /var/lib/libvirt/images/image_name.qcow2If you want the image compressed add '-c' right after the word convert.
2. edit the xml for the image
virsh edit image_namemodify the disk stanza, adding a type to the driver line; on the source line change 'dev' to 'file' and modify the path:
driver name='qemu' type='qcow2' source file='/var/lib/libvirt/images/image_name.qcow2'
Creating images from with a base image allows quick rollouts of many boxes based on an single install - for example I have a 'golden image' of centos, I can stop that VM and create 2 servers using the original VM disk as a base file and writing changes to different files.
qemu-img create -b original_image.qcow2 -f qcow2 clone_image01.qcow2 qemu-img create -b original_image.qcow2 -f qcow2 clone_image02.qcow2
Taking this further I can then snapshot both images so once I start making changes, rolling back to a point in time prior to the changes is very easy:
qemu-img snapshot -c snapshot_name vm_image_name.qcow2
references:
http://www.linux-kvm.com/content/how-you-can-use-qemukvm-base-images-be-more-productive-part-1
4 comments:
RHEL and CENTOS documentation people should take note of this. To me, it seems like an easy request: I want to take an image of my LVM based virtual machine. Frustrating how much boogaboo one must wade through to find this guy's direct solution. Nice!
Thank you for posting your solution.
I was looking for a way to snapshot and rollback kvm based vm.
Works really well. As of libvirt 5.1.0 (8/8/2019), the edit to the XML has to stay as 'dev' and not be changed to 'file'; libvirt perceives the qcow2 file as a 'dev' now for some reason. This is seen on openSUSE Leap 15.1 with latest patches installed.
Good rreading
Post a Comment