Hi Peter,
Just wanted to follow up. As Thanos mentioned that we want a virtual NVMe controller in
the guest for which the support doesn't yet exist in libvirt. Is it something that
would be accepted if we were to implement it?
Thanks,
Suraj
On 11/9/20, 8:54 AM, "Thanos Makatos" <thanos.makatos(a)nutanix.com>
wrote:
-----Original Message-----
From: Peter Krempa <pkrempa(a)redhat.com>
Sent: 09 November 2020 16:44
To: Suraj Kasi <suraj.kasi(a)nutanix.com>
Cc: libvirt-list(a)redhat.com; Thanos Makatos
<thanos.makatos(a)nutanix.com>; John Levon <john.levon(a)nutanix.com>
Subject: Re: Libvirt NVME support
On Mon, Nov 09, 2020 at 16:38:11 +0000, Suraj Kasi wrote:
> Hi,
>
> We wanted to check if it’s possible to specify a disk’s target as nvme (so
that the disk shows up as a nvme disk to the guest VM).
>
> Per libvirt documentation it looks like (since Libvirt 6.0.0) we can specify the
disk type as nvme and disks source as a nvme. But the documentation does
not say anything about being specify the disk’s target as nvme. Is it possible
to present the disk to the guest as a nvme disk, if so how?
>
NVMe device emulation is not supported at this point. I'm not even sure
what the state of the feature in qemu upstream is.
In older QEMU versions (~2.12) it was broken, not sure whether it's fixed now. In
any case, we plan to provide NVMe emulation using SPDK once the multiprocess QEMU and
vfio-user/out-of-process device emulation patch series are merged.
If you have a real NVMe device, you can obviously use PCI device
assignment with it to pass it to the guest os.
We want a _virtual_ NVMe controller in the guest where the backend can be connected to
anything, e.g. iSCSI, raw block, NVMe, etc.