[libvirt] [PATCH v5 01/11] virstoragefile: Introduce virStoragePRDef

John Ferlan jferlan at redhat.com
Sun Apr 29 12:12:12 UTC 2018



On 04/23/2018 09:14 AM, Michal Privoznik wrote:
> This is a definition that holds information on SCSI persistent
> reservation settings. The XML part looks like this:
> 
>   <reservations enabled='yes' managed='no'>
>     <source type='unix' path='/path/to/qemu-pr-helper.sock' mode='client'/>
>   </reservations>
> 
> If @managed is set to 'yes' then the <source/> is not parsed.
> This design was agreed on here:
> 
> https://www.redhat.com/archives/libvir-list/2017-November/msg01005.html
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> Reviewed-by: John Ferlan <jferlan at redhat.com>

Even though this is present there's still an adjustment or two that
needs to be made to formatdomain.html.in

> ---
>  docs/formatdomain.html.in                          |  23 +++-
>  docs/schemas/domaincommon.rng                      |  34 +-----
>  docs/schemas/storagecommon.rng                     |  50 ++++++++
>  src/conf/domain_conf.c                             |  38 ++++++
>  src/libvirt_private.syms                           |   3 +
>  src/util/virstoragefile.c                          | 131 +++++++++++++++++++++
>  src/util/virstoragefile.h                          |  14 +++
>  .../disk-virtio-scsi-reservations.xml              |  49 ++++++++
>  .../disk-virtio-scsi-reservations.xml              |   1 +
>  tests/qemuxml2xmltest.c                            |   2 +
>  10 files changed, 314 insertions(+), 31 deletions(-)
>  create mode 100644 tests/qemuxml2argvdata/disk-virtio-scsi-reservations.xml
>  create mode 120000 tests/qemuxml2xmloutdata/disk-virtio-scsi-reservations.xml
> 
> diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
> index ada0df227f..6ed2fd349d 100644
> --- a/docs/formatdomain.html.in
> +++ b/docs/formatdomain.html.in
> @@ -2565,7 +2565,10 @@
>    </disk>
>    <disk type='block' device='lun'>
>      <driver name='qemu' type='raw'/>
> -    <source dev='/dev/sda'/>
> +    <source dev='/dev/sda'>
> +      <reservations enabled='yes' managed='no'>
> +        <source type='unix' path='/path/to/qemu-pr-helper' mode='client'/>
> +      </reservations>
>      <target dev='sda' bus='scsi'/>
>      <address type='drive' controller='0' bus='0' target='3' unit='0'/>
>    </disk>
> @@ -2928,6 +2931,24 @@
>              <a href="formatstorageencryption.html">Storage Encryption</a>
>              page for more information.
>            </dd>
> +          <dt><code>reservations</code></dt>
> +          <dd><span class="since">Since libvirt 4.3.0</span>, the

4.4.0

> +            <code>reservations</code> can be a sub-element of the> +            <code>source</code> element for storage sources (QEM
driver only).

QEMU

> +            If present (and enabled) it enables persistent reservations for SCSI
> +            based disks. The element has one mandatory attribute
> +            <code>enabled</code> with accepted values <code>yes</code> and
> +            <code>no</code>. If the feature is enabled, then there's another
> +            mandatory attribute <code>managed</code> (accepted values are the
> +            same as for <code>enabled</code>) that enables or disables libvirt
> +            spawning a helper process. When the PR is unmanaged, then hypervisor
> +            acts as a client and path to server socket must be provided in child
> +            element <code>source</code>, which currently accepts only the
> +            following attributes: <code>type</code> with one value
> +            <code>unix</code>, <code>path</code> with path the socket, and
> +            finally <code>mode</code> which accepts either <code>server</code>
> +            or <code>client</code> and specifies the role of hypervisor.

I know I've pointed this out before - mode only accepts client.  Yes the
grammar supports both, but the code supports only one and that's all we
should list.


> +          </dd>

Can we squeeze in a (somewhat facetiously :-)):

It's recommended to allow libvirt manage the persistent reservations.

Or

Please don't use unmanaged mode, it's going to be really painful for all
involved ;-)


John


>          </dl>
>  
>          <p>




More information about the libvir-list mailing list