On 03/13/2014 05:18 PM, Richard W.M. Jones wrote:
It seems like for (1) we don't need to change anything. For (2)
we might add:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='overlay.qcow2'/>
<backingStore type='file'>
<source file='disk.img'/>
</backingStore>
</disk>
Note not specifying disk.img's backing store (we don't know it).
Also, non-disk sources: nbd, iscsi, gluster, ceph etc. It's
especially hard to discover what is in these since it may involve
multiple opens [breaks nbd sometimes], from multiple processes
[security context issues]; and network connections are slower than
opening a local file.
For most network files, libvirt currently treats it as the end of the
chain and that the network is 'raw', but our recent work with gluster
allows for a non-raw network file where libvirt can expand the xml to
follow the chain even further. On the input side, your proposed usage
would be just fine - by omitting the nested <backingStore> element,
you've admitted that you don't know/care about the rest of the chain;
then libvirt will populate the rest of the chain (where it can) to show
you what files it actually tweaked sVirt labels on.
I'm also hoping that this work in exposing the entire backing chain may
make it easier to someday implement the <transient/> tag, where libvirt
would create the overlay on your behalf.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org