conf: Add support for initiator IQN setting for iSCSI hostdevs

We already allow controlling the initiator IQN for iSCSI based disks.
Add the same for host devices.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2020-07-10 14:00:12 +02:00
parent fdc0d13b2c
commit 90df0f8288
7 changed files with 24 additions and 1 deletions

View File

@ -3771,6 +3771,9 @@ or:
<auth username='myuser'>
<secret type='iscsi' usage='libvirtiscsi'/>
</auth>
<initiator>
<iqn name='iqn.2020-07.com.example:test'/>
</initiator>
</source>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</hostdev>
@ -3910,6 +3913,10 @@ or:
same ``name`` attribute and optionally using the ``auth`` element to
provide the authentication credentials to the iSCSI server.
:since:`Since 6.7.0`, the optional ``initiator`` sub-element controls the
IQN of the initiator ran by the hypervisor via it's ``<iqn name='iqn...'``
subelement.
``scsi_host``
:since:`Since 2.5.0` , multiple LUNs behind a single SCSI HBA are
described by a ``protocol`` attribute set to "vhost" and a ``wwpn``

View File

@ -5058,6 +5058,9 @@
<optional>
<ref name='diskAuth'/>
</optional>
<optional>
<ref name="initiatorinfo"/>
</optional>
</interleave>
</group>
</choice>

View File

@ -8354,6 +8354,8 @@ virDomainHostdevSubsysSCSIiSCSIDefParseXML(xmlNodePtr sourcenode,
iscsisrc->src->auth = g_steal_pointer(&authdef);
}
virStorageSourceInitiatorParseXML(ctxt, &iscsisrc->src->initiator);
if (flags & VIR_DOMAIN_DEF_PARSE_STATUS &&
xmlopt && xmlopt->privateData.storageParse) {
if ((ctxt->node = virXPathNode("./privateData", ctxt)) &&
@ -26164,6 +26166,9 @@ virDomainHostdevDefFormatSubsysSCSI(virBufferPtr buf,
if (iscsisrc->src->auth)
virStorageAuthDefFormat(&sourceChildBuf, iscsisrc->src->auth);
virStorageSourceInitiatorFormatXML(&iscsisrc->src->initiator,
&sourceChildBuf);
} else {
virBufferAsprintf(&sourceChildBuf, "<adapter name='%s'/>\n",
scsihostsrc->adapter);

View File

@ -60,7 +60,8 @@ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
-drive file.driver=iscsi,file.portal=example.org:3260,\
file.target=iqn.1992-01.com.example:storage,file.lun=2,file.transport=tcp,\
file.user=myname,file.password-secret=hostdev5-secret0,if=none,format=raw,\
file.user=myname,file.password-secret=hostdev5-secret0,\
file.initiator-name=iqn.2020-07.com.example:test,if=none,format=raw,\
id=drive-hostdev5 \
-device scsi-generic,bus=scsi0.0,channel=0,scsi-id=3,lun=5,\
drive=drive-hostdev5,id=hostdev5 \

View File

@ -67,6 +67,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
-blockdev '{"driver":"iscsi","portal":"example.org:3260",\
"target":"iqn.1992-01.com.example:storage","lun":2,"transport":"tcp",\
"user":"myname","password-secret":"hostdev5-secret0",\
"initiator-name":"iqn.2020-07.com.example:test",\
"node-name":"libvirt-hostdev5-backend","read-only":false}' \
-device scsi-generic,bus=scsi0.0,channel=0,scsi-id=3,lun=5,\
drive=libvirt-hostdev5-backend,id=hostdev5 \

View File

@ -67,6 +67,9 @@
<auth username='myname'>
<secret type='iscsi' usage='mycluster_myname'/>
</auth>
<initiator>
<iqn name='iqn.2020-07.com.example:test'/>
</initiator>
</source>
<address type='drive' controller='0' bus='0' target='3' unit='5'/>
</hostdev>

View File

@ -74,6 +74,9 @@
<auth username='myname'>
<secret type='iscsi' usage='mycluster_myname'/>
</auth>
<initiator>
<iqn name='iqn.2020-07.com.example:test'/>
</initiator>
</source>
<address type='drive' controller='0' bus='0' target='3' unit='5'/>
</hostdev>