[libvirt] libvirt API/design questions

Peter Krempa pkrempa at redhat.com
Thu Dec 12 14:10:15 UTC 2019


On Thu, Dec 12, 2019 at 11:13:02 +0000, Daniel Berrange wrote:
> On Wed, Dec 11, 2019 at 09:45:07AM -0500, Cole Robinson wrote:

[...]

> > * vhost-user-scsi and vhost-user-blk XML schema
> > https://www.redhat.com/archives/libvirt-users/2019-October/msg00018.html
> > 
> > Last proposal was using <hostdev> for this, which revisiting it now
> > makes more sense than <disk>, because it vhost-user-X doesn't seem to
> > use qemu's block layer at all. So vhost-user-scsi would be:
> > 
> >     <hostdev mode='subsystem' type='scsi_host'>
> >       <source protocol='vhostuser' type='unix'
> > path='/path/to/vhost-user-scsi.sock' mode='client'/>
> >     </hostdev>
> > 
> > vhost-user-blk maybe requires a new type='block' ? Otherwise it's
> > unclear how to differentiate between the two. Regardless it would be
> > nice to give the original patch author guidance here, they seemed
> > motivated to get this working
> 
> This is a really tricky question in general. It is basically saying
> whether we consider <disk> to refer to the guest visible device
> type or the QEMU visible backend type.
> 
> Originally these were always the same thing, but offloading to
> vhostuser has blurred the boundaries. I think in non-QEMU hypervisors
> where you don't have a split of frontend&backend in the config, you'd
> just have disks no matter what.
> 
> With network we've continued to use <interface> with vhost-user.
> 
> This makes me biased towards <disk>, at least for vhost-user-blk.

Alternatively we can make it more clear by properly using the <driver
name=''> attribute. If qemu is driving the backend we put 'qemu' in it,
but other values can apply.

This will also make sense e.g. when the qemu storage daemon will become
a thing to configure that interface without confusion.




More information about the libvir-list mailing list