[libvirt] RFC: Exposing backing chains in <domain> XML

Peter Krempa pkrempa at redhat.com
Wed Mar 12 20:42:13 UTC 2014


On 03/12/14 21:21, Eric Blake wrote:
> tl;dr:
> I am working on a series of patches to expose backing chain information
> in <domain> XML.  Comments are welcome, to make sure my XML design is on
> the right track.
> 

...

> Existing design
> ===============

...

> a domain, and recursively show the entire chain.  Furthermore, there are
> some formats that require multiple resources: for example, both qemu
> 2.0's new quorum driver and HyperV VHDX images can have multiple backing

With this in mind ...

> files, and where these files can in turn have more backing images.
> Thus, any proper representation of disk resources needs to show a full
> tree of relationships.  Thankfully, circular references in backing files
> would form an invalid image (all known virtual disk image formats
> require a DAG of relationships).

...

> 
> Proposal
> ========
> For each <disk> of a domain, I will be adding a new <backingStore>
> element.  The element is optional on input, which allows libvirt to
> continue to understand input from older versions, but will always be
> present on output, to show what libvirt is tracking as the backing chain.
> 
> A backing chain of 3 files (base <- mid <- top) in the local file system:
> 
>     <disk type='file' device='disk'>
>       <driver name='qemu' type='qcow2'/>
>       <source file='/var/lib/libvirt/images/top.qcow2'/>
>       <backingStore type='file'>
>         <driver name='qemu' type='qcow2'/>

... we should add an attribute with the index of the backing chain
element in the backing chain. This will:

1) allow easier user retrieval of the index to be used for block_rebase

2) allow us to avoid ambiguity when a backing chain will become a
backing tree without the need to invent some kind of hierarchical
indexing approach. Instead we can just number the backing elements in
some (internal) fashion and expect the users to provide the correct index.

>         <source file='/var/lib/libvirt/images/mid.qcow2'/>
>         <backingStore type='file'>
>           <driver name='qemu' type='qcow2'/>
>           <source file='/var/lib/libvirt/images/base.qcow2'/>
>           <backingStore/>
>         </backingStore>
>       </backingStore>
>       <target dev='vda' bus='virtio'/>
>     </disk>
> 

My first impression is good though. I will go through the design again
tomorrow in a more in-depth way.

Peter

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 901 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140312/c0fdc6ba/attachment-0001.sig>


More information about the libvir-list mailing list