[libvirt] [Qemu-block] [libvirt RFC PATCH 00/10] Add support for qemu's JSON pseudo'protocol for backing store

Peter Krempa pkrempa at redhat.com
Mon Jul 18 06:39:43 UTC 2016


On Fri, Jul 15, 2016 at 13:11:16 -0600, Eric Blake wrote:
> On 07/15/2016 07:49 AM, Daniel P. Berrange wrote:
> > On Fri, Jul 15, 2016 at 03:46:33PM +0200, Peter Krempa wrote:
> >> Libvirt didn't handle this for a long time and VMs with such config would not
> >> start we should implement it.
> >>
> >> Using JSON is basically the only option to specify advanced configuration for a
> >> backing file.
> >>
> >> Field names were taken from qemu's source since there isn't really
> >> documentation for this.
> > 
> > Actually, this syntax is formally specified via QEMU   QAPI schema
> > language. In particular for block device options see $QEMU/qapi/block-core.json
> 
> Except that it is incomplete; as long as BlockdevOptions doesn't cover

and wrong in some cases:

ftp,http and others implemented by curl use the 'url' filed but the
documentation still hints that 'filename' is used while the driver does
not allow it.

$ qemu-img create -f qcow2 -b 'json: { "file.driver":"http", "file.filename":"http://..." }' bla.img
qemu-img: bla.img: curl block driver requires an 'url' option

> every driver, such as NBD, gluster, and sheepdog, there are still some

Drivers such as NBD and SSH are actually implemented but not documented.

> und(er)ocumented aspects.

Mostly how this maps to the JSON pseudo-protocol as blockdev add uses
nested JSON objects whereas the JSON protocol requires the fileds in the
"flattened" form.

The code looks like the only credible source in this case.

Peter




More information about the libvir-list mailing list