From: John Ferlan fs, logical, disk,
iscsi, zfs).
May be repeated multiple times depending on backend driver. Contains
- a single attribute path which is the fully qualified
- path to the block device node. Since 0.4.1
+ a single attribute path which is either the fully
+ qualified path to the block device node or for iscsi
+ the iSCSI Qualified Name (IQN).
+ Since 0.4.1
dirdir), or optionally to select a subdirectory
@@ -292,7 +294,15 @@
or device element. Contains an attribute name
which is the hostname or IP address of the server. May optionally
contain a port attribute for the protocol specific
- port number. Since 0.4.1directory or device
+ element. Name resolution of the provided hostname or IP address
+ is left to the storage driver backend interactions with the remote
+ server. See the storage driver page for
+ any restrictions for specific storage backends.
+ Since 0.4.1
authauth element provides the
authentication credentials needed to access the source by the
diff --git a/docs/storage.html.in b/docs/storage.html.in
index b9b503de82..92e9ae7b59 100644
--- a/docs/storage.html.in
+++ b/docs/storage.html.in
@@ -439,6 +439,12 @@
to use /dev/disk/by-path or /dev/disk/by-id
for the target path. These provide persistent stable naming for LUNs
+ The libvirt iSCSI storage backend does not resolve the provided + host name or IP address when finding the available target IQN's + on the host; therefore, defining two pools to use the same IQN + on the same host will fail the duplicate source pool checks. +
@@ -446,7 +452,7 @@
<name>virtimages</name>
<source>
<host name="iscsi.example.com"/>
- <device path="demo-target"/>
+ <device path="iqn.2013-06.com.example:iscsi-pool"/>
</source>
<target>
<path>/dev/disk/by-path</path>
diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index 61365b9ca4..65b2704108 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -2427,9 +2427,7 @@ virStoragePoolSourceISCSIMatch(virStoragePoolObjPtr matchpool,
virStoragePoolSourcePtr poolsrc = &matchpool->def->source;
virStoragePoolSourcePtr defsrc = &def->source;
- if (!virStoragePoolSourceMatchSingleHost(poolsrc, defsrc))
- return false;
-
+ /* NB: Do not check the source host name */
if (STRNEQ_NULLABLE(poolsrc->initiator.iqn, defsrc->initiator.iqn))
return false;