docs: Add section for NVMe VFIO driver
Signed-off-by: Fam Zheng <famz@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20180116060901.17413-9-famz@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
This commit is contained in:
parent
a3d9a352d4
commit
e86de5e474
@ -785,6 +785,43 @@ warning: ssh server @code{ssh.example.com:22} does not support fsync
|
||||
With sufficiently new versions of libssh2 and OpenSSH, @code{fsync} is
|
||||
supported.
|
||||
|
||||
@node disk_images_nvme
|
||||
@subsection NVMe disk images
|
||||
|
||||
NVM Express (NVMe) storage controllers can be accessed directly by a userspace
|
||||
driver in QEMU. This bypasses the host kernel file system and block layers
|
||||
while retaining QEMU block layer functionalities, such as block jobs, I/O
|
||||
throttling, image formats, etc. Disk I/O performance is typically higher than
|
||||
with @code{-drive file=/dev/sda} using either thread pool or linux-aio.
|
||||
|
||||
The controller will be exclusively used by the QEMU process once started. To be
|
||||
able to share storage between multiple VMs and other applications on the host,
|
||||
please use the file based protocols.
|
||||
|
||||
Before starting QEMU, bind the host NVMe controller to the host vfio-pci
|
||||
driver. For example:
|
||||
|
||||
@example
|
||||
# modprobe vfio-pci
|
||||
# lspci -n -s 0000:06:0d.0
|
||||
06:0d.0 0401: 1102:0002 (rev 08)
|
||||
# echo 0000:06:0d.0 > /sys/bus/pci/devices/0000:06:0d.0/driver/unbind
|
||||
# echo 1102 0002 > /sys/bus/pci/drivers/vfio-pci/new_id
|
||||
|
||||
# qemu-system-x86_64 -drive file=nvme://@var{host}:@var{bus}:@var{slot}.@var{func}/@var{namespace}
|
||||
@end example
|
||||
|
||||
Alternative syntax using properties:
|
||||
|
||||
@example
|
||||
qemu-system-x86_64 -drive file.driver=nvme,file.device=@var{host}:@var{bus}:@var{slot}.@var{func},file.namespace=@var{namespace}
|
||||
@end example
|
||||
|
||||
@var{host}:@var{bus}:@var{slot}.@var{func} is the NVMe controller's PCI device
|
||||
address on the host.
|
||||
|
||||
@var{namespace} is the NVMe namespace number, starting from 1.
|
||||
|
||||
@node disk_image_locking
|
||||
@subsection Disk image file locking
|
||||
|
||||
|
@ -621,6 +621,7 @@ encrypted disk images.
|
||||
* disk_images_iscsi:: iSCSI LUNs
|
||||
* disk_images_gluster:: GlusterFS disk images
|
||||
* disk_images_ssh:: Secure Shell (ssh) disk images
|
||||
* disk_images_nvme:: NVMe userspace driver
|
||||
* disk_image_locking:: Disk image file locking
|
||||
@end menu
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user