docs: introduces new vhostuser disk type

<disk type='vhostuser' device='disk'>
       <driver name='qemu' type='raw'/>
       <source type='unix' path='/tmp/vhost-blk.sock'>
         <reconnect enabled='yes' timeout='10'/>
       </source>
       <target dev='vda' bus='virtio'/>
     </disk>

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
Pavel Hrdina 2021-01-25 15:59:02 +01:00
parent 592fb164e9
commit e88bdaf789
2 changed files with 54 additions and 2 deletions

View File

@ -2419,6 +2419,13 @@ paravirtualized driver is specified via the ``disk`` element.
</source>
<target dev='vde' bus='virtio'/>
</disk>
<disk type='vhostuser' device='disk'>
<driver name='qemu' type='raw'/>
<source type='unix' path='/tmp/vhost-blk.sock'>
<reconnect enabled='yes' timeout='10'/>
</source>
<target dev='vdf' bus='virtio'/>
</disk>
</devices>
...
@ -2429,8 +2436,8 @@ paravirtualized driver is specified via the ``disk`` element.
``type``
Valid values are "file", "block", "dir" ( :since:`since 0.7.5` ),
"network" ( :since:`since 0.8.7` ), or "volume" ( :since:`since 1.0.5` ),
or "nvme" ( :since:`since 6.0.0` ) and refer to the underlying source for
the disk. :since:`Since 0.0.3`
or "nvme" ( :since:`since 6.0.0` ), or "vhostuser" ( :since:`since 7.1.0` )
and refer to the underlying source for the disk. :since:`Since 0.0.3`
``device``
Indicates how the disk is to be exposed to the guest OS. Possible values
for this attribute are "floppy", "disk", "cdrom", and "lun", defaulting to
@ -2581,6 +2588,23 @@ paravirtualized driver is specified via the ``disk`` element.
is not involved (compared to passing say ``/dev/nvme0n1`` via
``<disk type='block'>`` and therefore lower latencies can be achieved.
``vhostuser``
Enables the hypervisor to connect to another process using vhost-user
protocol. Requires shared memory configured for the VM, for more details
see ``access`` mode for `memoryBacking <#elementsMemoryBacking>` element.
The ``source`` element has following mandatory attributes:
``type``
The type of char device. Currently only ``unix`` type is supported.
``path``
Path to the unix socket to be used as disk source.
Note that the vhost server replaces both the disk frontend and backend
thus almost all of the disk properties can't be configured via the
``<disk>`` XML for this disk type. Additionally features such as blockjobs,
incremental backups and snapshots are not supported for this disk type.
With "file", "block", and "volume", one or more optional sub-elements
``seclabel``, `described below <#seclabel>`__ (and :since:`since 0.9.9` ),
can be used to override the domain security labeling policy for just that
@ -2703,6 +2727,15 @@ paravirtualized driver is specified via the ``disk`` element.
of these attributes is omitted, then that field is assumed to be the
default value for the current system. If both ``user`` and ``group``
are intended to be default, then the entire element may be omitted.
``reconnect``
For disk type ``vhostuser`` configures reconnect timeout if the connection
is lost. It has two mandatory attributes:
``enabled``
If the reconnect feature is enabled, accepts ``yes`` and ``no``
``timeout``
The amount of seconds after which hypervisor tries to reconnect.
For a "file" or "volume" disk type which represents a cdrom or floppy (the
``device`` attribute), it is possible to define policy what to do with the

View File

@ -1646,6 +1646,7 @@
<ref name="diskSourceNetwork"/>
<ref name="diskSourceVolume"/>
<ref name="diskSourceNvme"/>
<ref name="diskSourceVhostUser"/>
</choice>
</define>
@ -2156,6 +2157,24 @@
</optional>
</define>
<define name="diskSourceVhostUser">
<attribute name="type">
<value>vhostuser</value>
</attribute>
<element name="source">
<attribute name="type">
<value>unix</value>
</attribute>
<attribute name="path">
<ref name="absFilePath"/>
</attribute>
<optional>
<ref name="reconnect"/>
</optional>
<empty/>
</element>
</define>
<define name="diskTarget">
<data type="string">
<param name="pattern">(ioemu:)?(fd|hd|sd|vd|xvd|ubd)[a-zA-Z0-9_]+</param>