25.15. Scanning iSCSI Interconnects
For iSCSI, if the targets send an iSCSI async event indicating new storage is added, then the scan is done automatically.
However, if the targets do not send an iSCSI async event, you need to manually scan them using the
iscsiadm
utility. Before doing so, however, you need to first retrieve the proper --targetname
and the --portal
values. If your device model supports only a single logical unit and portal per target, use iscsiadm
to issue a sendtargets
command to the host, as in:
# iscsiadm -m discovery -t sendtargets -p target_IP:port [5]
The output will appear in the following format:
target_IP:port,target_portal_group_tag proper_target_name
Example 25.11. Using iscsiadm
to issue a sendtargets
Command
For example, on a target with a
proper_target_name
of iqn.1992-08.com.netapp:sn.33615311
and a target_IP:port
of 10.15.85.19:3260
, the output may appear as:
10.15.84.19:3260,2 iqn.1992-08.com.netapp:sn.33615311 10.15.85.19:3260,3 iqn.1992-08.com.netapp:sn.33615311
In this example, the target has two portals, each using
target_ip:port
s of 10.15.84.19:3260
and 10.15.85.19:3260
.
To see which
iface
configuration will be used for each session, add the -P 1
option. This option will print also session information in tree format, as in:
Target: proper_target_name Portal: target_IP:port,target_portal_group_tag Iface Name: iface_name
Example 25.12. View iface
Configuration
For example, with
iscsiadm -m discovery -t sendtargets -p 10.15.85.19:3260 -P 1
, the output may appear as:
Target: iqn.1992-08.com.netapp:sn.33615311 Portal: 10.15.84.19:3260,2 Iface Name: iface2 Portal: 10.15.85.19:3260,3 Iface Name: iface2
This means that the target
iqn.1992-08.com.netapp:sn.33615311
will use iface2
as its iface
configuration.
With some device models a single target may have multiple logical units and portals. In this case, issue a
sendtargets
command to the host first to find new portals on the target. Then, rescan the existing sessions using:
# iscsiadm -m session --rescan
You can also rescan a specific session by specifying the session's
SID
value, as in:
# iscsiadm -m session -r SID --rescan[7]
If your device supports multiple targets, you will need to issue a
sendtargets
command to the hosts to find new portals for each target. Rescan existing sessions to discover new logical units on existing sessions using the --rescan
option.
Important
The
sendtargets
command used to retrieve --targetname
and --portal
values overwrites the contents of the /var/lib/iscsi/nodes
database. This database will then be repopulated using the settings in /etc/iscsi/iscsid.conf
. However, this will not occur if a session is currently logged in and in use.
To safely add new targets/portals or delete old ones, use the
-o new
or -o delete
options, respectively. For example, to add new targets/portals without overwriting /var/lib/iscsi/nodes
, use the following command:
iscsiadm -m discovery -t st -p target_IP -o new
To delete
/var/lib/iscsi/nodes
entries that the target did not display during discovery, use:
iscsiadm -m discovery -t st -p target_IP -o delete
You can also perform both tasks simultaneously, as in:
iscsiadm -m discovery -t st -p target_IP -o delete -o new
The
sendtargets
command will yield the following output:
ip:port,target_portal_group_tag proper_target_name
Example 25.13. Output of the sendtargets
Command
For example, given a device with a single target, logical unit, and portal, with
equallogic-iscsi1
as your target_name
, the output should appear similar to the following:
10.16.41.155:3260,0 iqn.2001-05.com.equallogic:6-8a0900-ac3fe0101-63aff113e344a4a2-dl585-03-1
Note that
proper_target_name
and ip:port,target_portal_group_tag
are identical to the values of the same name in Section 25.7.1, “iSCSI API”.
At this point, you now have the proper
--targetname
and --portal
values needed to manually scan for iSCSI devices. To do so, run the following command:
# iscsiadm --mode node --targetname proper_target_name --portal ip:port,target_portal_group_tag \ --login [8]
Example 25.14. Full iscsiadm
Command
Using our previous example (where
proper_target_name
is equallogic-iscsi1
), the full command would be:
# iscsiadm --mode node --targetname \ iqn.2001-05.com.equallogic:6-8a0900-ac3fe0101-63aff113e344a4a2-dl585-03-1 \ --portal 10.16.41.155:3260,0 --login[8]
[7]
For information on how to retrieve a session's SID value, refer to Section 25.7.1, “iSCSI API”.
[8]
This is a single command split into multiple lines, to accommodate printed and PDF versions of this document. All concatenated lines — preceded by the backslash (\) — should be treated as one command, sans backslashes.