[libvirt] [PATCH v2 01/12] virstoragefile: Introduce virStoragePRDef
John Ferlan
jferlan at redhat.com
Fri Mar 2 12:49:22 UTC 2018
On 02/21/2018 01:11 PM, 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>
> ---
> docs/formatdomain.html.in | 25 +++-
> docs/schemas/domaincommon.rng | 34 +----
> docs/schemas/storagecommon.rng | 50 +++++++
> src/conf/domain_conf.c | 36 +++++
> src/libvirt_private.syms | 3 +
> src/util/virstoragefile.c | 148 +++++++++++++++++++++
> src/util/virstoragefile.h | 15 +++
> .../disk-virtio-scsi-reservations-not-managed.xml | 40 ++++++
> .../disk-virtio-scsi-reservations.xml | 38 ++++++
> .../disk-virtio-scsi-reservations-not-managed.xml | 1 +
> .../disk-virtio-scsi-reservations.xml | 1 +
> tests/qemuxml2xmltest.c | 4 +
> 12 files changed, 364 insertions(+), 31 deletions(-)
> create mode 100644 tests/qemuxml2argvdata/disk-virtio-scsi-reservations-not-managed.xml
> create mode 100644 tests/qemuxml2argvdata/disk-virtio-scsi-reservations.xml
> create mode 120000 tests/qemuxml2xmloutdata/disk-virtio-scsi-reservations-not-managed.xml
> create mode 120000 tests/qemuxml2xmloutdata/disk-virtio-scsi-reservations.xml
>
Something else that dawned on me when looking at the original series.
[...]
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index f2ddde7a3..a1a6b0162 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -5199,6 +5199,13 @@ virDomainDiskDefValidate(const virDomainDiskDef *disk)
> }
> }
>
> + if (disk->src->pr &&
> + disk->device != VIR_DOMAIN_DISK_DEVICE_LUN) {
> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> + _("<reservations/> allowed only for lun disks"));
> + return -1;
> + }
> +
If someone is using a storage pool such as:
<disk type='volume' device='lun'>
<driver name='qemu' type='raw'/>
<source pool='sourcepool' volume='unit:0:4:0'/>
<target dev='sda' bus='scsi'/>
</disk>
then how do they define/use the PR? For LUN's like iSCSI and NPIV it can
be easier or even preferred to use the storage pool as opposed to using
the <source protocol=..."/> syntax.
Search on iscsi in the formatdomain page for iSCSI syntax examples.
See: https://wiki.libvirt.org/page/NPIV_in_libvirt for the NPIV syntax
examples.
John
> /* Reject disks with a bus type that is not compatible with the
> * given address type. The function considers only buses that are
> * handled in common code. For other bus types it's not possible
> @@ -8613,6 +8620,29 @@ virDomainDiskSourcePrivateDataParse(xmlXPathContextPtr ctxt,
> }
>
>
[...]
More information about the libvir-list
mailing list