<disk type='vhostuser' device='disk'>
<driver name='qemu' type='raw'/>
<source type='unix' path='/tmp/vhost-blk.sock'
mode='client'>
<reconnect enabled='yes' timeout='10'/>
</source>
<target dev='vda' bus='virtio'/>
</disk>
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
docs/formatdomain.rst | 32 ++++++++++++++++++++++++++++++--
docs/schemas/domaincommon.rng | 19 +++++++++++++++++++
2 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index a09868bed5..99f5cad571 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -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'
mode='client'>
+ <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,18 @@ 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.
+
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 +2722,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
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 7bab818bc9..98d5cee8c0 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -1645,6 +1645,7 @@
<ref name="diskSourceNetwork"/>
<ref name="diskSourceVolume"/>
<ref name="diskSourceNvme"/>
+ <ref name="diskSourceVhostUser"/>
</choice>
</define>
@@ -2155,6 +2156,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>
--
2.29.2