25.14. 配置 iSCSI 卸载和接口绑定
本章论述了如何在使用软件 iSCSI 时设置 iSCSI 接口,以便将会话绑定到 NIC 端口。它还描述了如何设置接口以用于支持卸载的网络设备。
可以配置网络子系统来确定 iSCSI 接口应该用于绑定的路径/NIC。例如,如果在不同子网中设置了端口和 NIC,则不需要为绑定手动配置 iSCSI 接口。
在尝试为绑定配置 iSCSI 接口前,请先运行以下命令:
$ ping -I ethX target_IP
如果 ping 失败,您将无法将会话绑定到 NIC。如果是这种情况,请先检查网络设置。
25.14.1. 查看可用的 iface 配置
以下 iSCSI 启动器实现支持 iSCSI 卸载和接口绑定:
- 软件 iSCSI
- 此堆栈为每个会话分配一个 iSCSI 主机实例(即 scsi_host),每个会话都有一个连接。因此,
/sys/class_scsi_host
和/proc/scsi
将为您登录的每个连接/会话报告一个 scsi_host。 - 卸载 iSCSI
- 此堆栈为每个 PCI 设备分配一个 scsi_host。因此,主机总线适配器中的每个端口都显示为不同的 PCI 设备,每个 HBA 端口都有不同的 scsi_host。
要管理两种类型的启动器,iscsiadm 使用 iface 结构。使用这种结构时,必须在用于绑定会话的每个 HBA 端口、软件 iSCSI 或网络设备(ethX)的
/var/lib/iscsi/ifaces
中输入 iface 配置。
要查看可用的 iface 配置,请运行 iscsiadm -m iface。这将以以下格式显示 iface 信息:
iface_name transport_name,hardware_address,ip_address,net_ifacename,initiator_name
对于每个值/设置的解释,请参考下表。
设置 | 描述 |
---|---|
iface_name | iface 配置名称。 |
transport_name | 驱动程序的名称 |
hardware_address | MAC 地址 |
ip_address | 此端口使用的 IP 地址 |
net_iface_name | 用于软件 iSCSI 会话的 vlan 或别名绑定的名称。对于 iSCSI 卸载,net_iface_name 将是 <empty> ,因为这个值在重启后不会保留。 |
initiator_name | 此设置用于覆盖启动器的默认名称,该名称在 /etc/iscsi/initiatorname.iscsi 中定义 |
例 25.6. iscsiadm -m iface 命令的输出示例
以下是 iscsiadm -m iface 命令的输出示例:
iface0 qla4xxx,00:c0:dd:08:63:e8,20.15.0.7,default,iqn.2005-06.com.redhat:madmax iface1 qla4xxx,00:c0:dd:08:63:ea,20.15.0.9,default,iqn.2005-06.com.redhat:madmax
对于软件 iSCSI,每个 iface 配置都必须具有唯一的名称(少于 65 个字符)。支持卸载的网络设备的 iface_name 显示为 transport_name 格式。hardware_name.
例 25.7. 带有 Chelsio 网卡的 iscsiadm -m iface 输出
例如,使用 Chelsio 网卡的系统上的 iscsiadm -m iface 输出示例可能显示为:
default tcp,<empty>,<empty>,<empty>,<empty> iser iser,<empty>,<empty>,<empty>,<empty> cxgb3i.00:07:43:05:97:07 cxgb3i,00:07:43:05:97:07,<empty>,<empty>,<empty>
也可以以更友好的方式显示特定 iface 配置的设置。为此,请使用选项 -I iface_name。这将以以下格式显示设置:
iface.setting = value
例 25.8. 使用带有 Chelsio 融合网络适配器的 iface 设置
使用前面的示例,同一 Chelsio 聚合网络适配器的 iface 设置(即 iscsiadm -m iface -I cxgb3i.00:07:43:05:97:07)将显示为:
# BEGIN RECORD 2.0-871 iface.iscsi_ifacename = cxgb3i.00:07:43:05:97:07 iface.net_ifacename = <empty> iface.ipaddress = <empty> iface.hwaddress = 00:07:43:05:97:07 iface.transport_name = cxgb3i iface.initiatorname = <empty> # END RECORD
25.14.2. 为软件 iSCSI 配置 iface
如前文所述,每个网络对象都需要一个 iface 配置,用于绑定会话。
之前
要为软件 iSCSI 创建 iface 配置,请运行以下命令:
# iscsiadm -m iface -I iface_name --op=new
这将创建一个带有指定 iface _name 的新 空 iface 配置。如果现有的 iface 配置已经具有相同的 iface_name,那么它将被一个新的空 iface_name 覆盖。
要配置 iface 配置的特定设置,请使用以下命令:
# iscsiadm -m iface -I iface_name --op=update -n iface.setting -v hw_address
例 25.9. 设置 MAC 地址 iface0
例如,要将
iface0
的 MAC 地址(hardware_address)设置为 00:0F:1F:92:6B:BF
,请运行:
# iscsiadm -m iface -I iface0 --op=update -n iface.hwaddress -v 00:0F:1F:92:6B:BF
警告
不要使用
default
或 iser
作为 iface 名称。这两个字符串都是 iscsiadm 使用的特殊值,用于向后兼容。任何手动创建的名为 default
或 iser
的 iface 配置都会禁用向后兼容。
25.14.3. 为 iSCSI 卸载配置 iface
默认情况下,
iscsiadm
为每个端口创建一个 iface
配置。要查看可用的 iface 配置,请使用软件 iSCSI 中的相同命令: iscsiadm -m iface。
在对 iSCSI 卸载使用网卡的 iface 之前,首先将卸载接口的
iface.ipaddress
值设置为接口应使用的启动器 IP 地址:
- 对于使用
be2iscsi
驱动程序的设备,IP 地址在 BIOS 设置屏幕中配置。 - 对于所有其他设备,若要配置
iface
的 IP 地址,请使用:# iscsiadm -m iface -I iface_name -o update -n iface.ipaddress -v initiator_ip_address
例 25.10. 设置 Chelsio 卡的 iface
IP 地址
例如,在使用
iface
名称 cxgb3i.00:07:43:05:97:07
时,要将 iface
IP 地址设置为 20.15.0.66
,请使用:
# iscsiadm -m iface -I cxgb3i.00:07:43:05:97:07 -o update -n iface.ipaddress -v 20.15.0.66
25.14.4. 绑定/解绑到端口的 iface
每当使用 iscsiadm 扫描互连时,它将首先检查
/var/lib/iscsi/ifaces
中每个 iface 配置的 iface.transport 设置。然后,iscsiadm 工具将发现的端口绑定到其 iface.transport 为 tcp
的任何 iface。
实现此行为是出于兼容的原因。要覆盖此功能,请使用 -I iface_name 指定哪个端口绑定到 iface,如下所示:
# iscsiadm -m discovery -t st -p target_IP:port -I iface_name -P 1 [5]
默认情况下,iscsiadm 工具不会自动将任何端口绑定到使用卸载的 iface 配置。这是因为此类 iface 配置不会将 iface.transport 设置为
tcp
。因此,iface 配置需要手动绑定到发现的门户。
也可以防止端口绑定到任何现有的 iface。要做到这一点,使用
default
作为 iface_name,如下所示:
# iscsiadm -m discovery -t st -p IP:port -I default -P 1
要删除目标和 iface 之间的绑定,请使用:
# iscsiadm -m node -targetname proper_target_name -I iface0 --op=delete[6]
要删除特定 iface 的所有绑定,请使用:
# iscsiadm -m node -I iface_name --op=delete
要删除特定端口(例如,Equalogic 目标)的绑定,请使用:
# iscsiadm -m node -p IP:port -I iface_name --op=delete
注意
如果没有在
/var/lib/iscsi/ iface 中定义的 iface
配置,并且没有使用 -I 选项,iscsiadm 将允许网络子系统决定特定门户应使用哪个设备。