Libvirt NVME support

Daniel P. Berrangé berrange at redhat.com
Mon Nov 23 14:03:18 UTC 2020


On Wed, Nov 18, 2020 at 11:24:30AM +0100, Peter Krempa wrote:
> On Wed, Nov 18, 2020 at 09:57:14 +0000, Thanos Makatos wrote:
> > > As a separate question, is there any performance benefit of emulating a
> > > NVMe controller compared to e.g. virtio-scsi?
> > 
> > We haven't measured that yet; I would expect it to be slight faster and/or more
> > CPU efficient but wouldn't be surprised if it isn't. The main benefit of using
> > NVMe is that we don't have to install VirtIO drivers in the guest.
> 
> Okay, I'm not sold on the drivers bit but that is definitely not a
> problem in regards of adding support for emulating NVME controllers to
> libvirt.
> 
> As a starting point a trivial way to model this in the XML will be:
> 
>     <controller type='nvme' index='1' model='nvme'>
> 
> And then add the storage into it as:
> 
>     <disk type='file' device='disk'>
>       <source dev='/Host/QEMUGuest1.qcow2'/>
>       <target dev='sda' bus='nvme'/>
>       <address type='drive' controller='1' bus='0' target='0' unit='0'/>
>     </disk>
> 
>     <disk type='file' device='disk'>
>       <source dev='/Host/QEMUGuest2.qcow2'/>
>       <target dev='sdb' bus='nvme'/>
>       <address type='drive' controller='1' bus='0' target='0' unit='1'/>
>     </disk>
> 
> The 'drive' address here maps the disk to the controller. This example
> uses unit= as the way to specify the namespace ID. Both 'bus' and 'target'
> must be 0.

FWIW, I think that our overloeading of type=drive for FDC, IDE, and SCSI
was a mistake in retrospect. We should have had type=fdc, type=ide, type=scsi,
since each uses a different subset of the attributes.

Lets not continue this mistake with NVME - create a type=nvme address
type.

I also wonder whether device='disk' makes sense too, as opposed to using
device='nvme', since this is really not very similar to classic disks.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list