
Daniel P. Berrange:
http://libvirt.org/formatstorage.html#StorageVolBacking
This is currently support for Cow, QCow, QCow2, VMDK and LVM storage types. Some of these allow for the underling backing store to be writable, others require that its readonly.
I tried the following under libvirt 0.6.0: vol = pool.createXML("""<volume type="block"> <name>hurgle</name> <capacity>2147483648</capacity> <backingStore> <path>/dev/VMs/test-disk</path> <format>raw</format> </backingStore> </volume>""", 0) It promptly created a volume, but not as a copy-on-write snapshot: "dmsetup ls --target snapshot" shows nothing, and the image has none of the data from the test-disk volume. The pool I used to create these volumes is clearly LVM: virsh # pool-dumpxml VMs <pool type='logical'> <name>VMs</name> <uuid>bde8f8ed-7e65-8323-ea93-51223d86fedd</uuid> <capacity>66433581056</capacity> <allocation>2281701376</allocation> <available>64151879680</available> <source> <name>VMs</name> <format type='lvm2'/> </source> <target> <path>/dev/VMs</path> <permissions> <mode>0700</mode> <owner>0</owner> <group>0</group> </permissions> </target> </pool> You mentioned some constraints about permissions earlier, but I would have expected that to raise an exception--vol is a valid volume object and I can query it and mkfs it and so forth. The test-disk volume is completely quiescent and unmounted. Do I need to prepare it in some other way to make it suitable for livirt to use as the base of a snapshot? (Just for sanity's sake, I verified that libvirt.getVersion() returns 6000) -- "Forget the damned motor car Nick Moffitt and build cities for lovers and friends." nick@zork.net -- Lewis Mumford