25.15. 扫描 iSCSI Interconnects
对于 iSCSI,如果目标发送指示新存储的 iSCSI async 事件,则会自动执行扫描。
但是,如果目标没有发送 iSCSI async 事件,您需要使用 iscsiadm 程序手动扫描它们。但是,在这样做前,您需要首先检索正确的 --targetname 和 --portal 值。如果您的设备模型只支持每个目标的单一逻辑单元和门户,请使用 iscsiadm 向主机发出 sendtargets 命令,如下所示:
# iscsiadm -m discovery -t sendtargets -p target_IP:port [5]
输出将以以下格式显示:
target_IP:port,target_portal_group_tag proper_target_name
例 25.11. 使用 iscsiadm 发出 sendtargets 命令
例如,在一个带有 proper_target_name 为
iqn.1992-08.com.netapp:sn.33615311
且 target_IP:port 为 10.15.85.19:3260
的目标中,输出可能显示为:
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
在这个示例中,目标有两个门户,每个门户都使用 target_ip:ports 为
10.15.84.19:3260
和 10.15.85.19:3260
。
要查看每个会话将使用哪个 iface 配置,请添加 -P 1 选项。这个选项还将以树形格式打印会话信息,如下所示:
Target: proper_target_name Portal: target_IP:port,target_portal_group_tag Iface Name: iface_name
例 25.12. 查看 iface 配置
例如,使用 iscsiadm -m discovery -t sendtargets -p 10.15.85.19:3260 -P 1,输出可能显示为:
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
这意味着目标
iqn.1992-08.com.netapp:sn.33615311
将使用 iface2
作为其 iface 配置。
对于某些设备模型,一个目标可能有多个逻辑单元和门户。在这种情况下,首先向主机发出 sendtargets 命令,以查找目标上的新门户。然后,使用以下命令重新扫描现有会话:
# iscsiadm -m session --rescan
您还可以通过指定会话的 SID 值来重新扫描特定的会话,如下所示:
# iscsiadm -m session -r SID --rescan[7]
如果您的设备支持多个目标,则需要向主机发出 sendtargets 命令,以查找每个目标的新门户。重新扫描现有会话,以使用 --rescan 选项发现现有会话上的新逻辑单元。
重要
用于检索 --targetname 和 --portal 值的 sendtargets 命令会覆盖
/var/lib/iscsi/nodes
数据库的内容。然后,将使用 /etc/iscsi/iscsid.conf
中的设置重新填充此数据库。但是,如果会话当前已登录并在使用,则不会发生这种情况。
要安全地添加新目标/端口或删除旧目标/端口,请分别使用 -o new 或 -o delete 选项。例如,要在不覆盖
/var/lib/iscsi/nodes
的情况下添加新目标/端口,请使用以下命令:
iscsiadm -m discovery -t st -p target_IP -o new
要删除在发现过程中没有显示目标的
/var/lib/iscsi/nodes
条目,请使用:
iscsiadm -m discovery -t st -p target_IP -o delete
您还可以同时执行这两个任务,如下所示:
iscsiadm -m discovery -t st -p target_IP -o delete -o new
sendtargets 命令将生成以下输出:
ip:port,target_portal_group_tag proper_target_name
例 25.13. sendtargets 命令的输出
例如,如果一个具有单个目标、逻辑单元和门户的设备,具有 equallogic-iscsi1 作为您的 target_name,输出应类似于如下:
10.16.41.155:3260,0 iqn.2001-05.com.equallogic:6-8a0900-ac3fe0101-63aff113e344a4a2-dl585-03-1
此时,您现在具有手动扫描 iSCSI 设备所需的正确 --targetname 和 --portal 值。为此,请运行以下命令:
# iscsiadm --mode node --targetname proper_target_name --portal ip:port,target_portal_group_tag \ --login [8]
例 25.14. 完整的 iscsiadm 命令
使用我们前面的示例(其中 proper_target_name 是 equallogic-iscsi1),完整的命令将是:
# 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 第 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.