Re: Spawn new domains from a snapshot.
|[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]|
I made a couple of tests. Image A.qcow2: - 2 Gb file size (the image size is 10Gb) - OS: Windows XP sp2 installedI create the image B.qcow2 with A as backing store through virStorageVolCreateXML():
- 160 Mb file size (image size alway 10Gb) - OS in the same state as before.I do some updates to the OS in image B like installing sp3 and I shut down the VE
I create the image C.qcow2 with B as backing store through virStorageVolCreateXML():
- File size 230 Mb - OS: Windows XP sp3 with all the changes made in image B.This is extremely powerful in contexts as cloud VM provisioning or system tests. For what I guessed (didn't look at the code yet) libvirt can already set up a hierarchy in a way that, given a complete disk image, can build several COW images and run a coherent VM merging deltas contained in these files.
So shouldn't be hard to do the same procedure with images created from snapshots. As I said in: https://www.redhat.com/archives/libvirt-users/2012-May/msg00105.html I create an image from a snapshot through qemu-img, I obtain a qcow2 file valuable for inspections but not for running a new VE as it doesn't contain the whole disk of the original VM. If I do the same without COW I succeed but I pass from a bunch of seconds to several minutes to complete the task as I basically clone the whole disk.
A nice solution could be giving the capability to specify in the volume XML the source as a snapshot name contained in the running domain. The internal logic should be able to generate a new qcow2 file that knows which backing file has been used to generate the disk the snapshot refers to.
To be more clear running the image C I create the snapshot S, from S through virStorageVolCreateXML() I create the disk image S.qcow2 which contains deltas from C to the moment S has been taken. I can then use S.qcow2 to spawn a new VE with changes made from C to S (including changes made in B etc obviously).
This should allow, for example, to make so that while C is still running I can start other VEs from C disk snapshots; obtaining a dynamic VE branching system. Everything through libvirt API.
_______________________________________________ libvirt-users mailing list libvirt-users@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvirt-users
[Virt Tools] [Lib OS Info] [Fedora Users] [Fedora Maintainers] [Fedora Desktop] [Fedora SELinux] [Big List of Linux Books] [Yosemite News] [Yosemite Photos] [KDE Users] [Fedora Tools]