存储多路径
动态多路径支持适用于光纤通道和 iSCSI 存储后端。
XenServer 使用 Linux 本机多路径 (DM-MP)(通用 Linux 多路径解决方案)作为其多路径处理程序。但是,XenServer 为此处理程序增加了其他功能,以便 XenServer 可以识别存储设备的供应商特定功能。
配置多路径可在出现部分连接断开时为远程存储流量提供冗余。多路径通过多条路径将存储流量路由到存储设备,以实现冗余和提高吞吐量。您最多可以使用 16 个指向单个 LUN 的路径。多路径是一种主动-主动配置。默认情况下,根据存储阵列类型,多路径使用轮询或多总线负载平衡。在正常运行期间,所有路由上都有活动流量,这会导致吞吐量增加。
重要:
我们建议您在创建 SR _之前_为池中的所有主机启用多路径。如果您在启用多路径之前创建 SR,则必须将主机置于维护模式才能启用多路径。
NIC 绑定还可以为存储流量提供冗余。对于 iSCSI 存储,我们建议尽可能配置多路径而非 NIC 绑定。
多路径在以下情况下无效:
- NFS 存储设备
- 您的 NIC 数量有限,需要通过同一个 NIC 路由 iSCSI 流量和文件流量(NFS 或 SMB)
在这些情况下,请考虑改为使用 NIC 绑定。有关 NIC 绑定的详细信息,请参阅网络连接。
必备条件
在启用多路径之前,请验证以下语句是否为真:
-
存储服务器上提供了多个可用目标。
例如,查询给定门户上的
sendtargets
的 iSCSI 存储后端应返回多个目标,如下例所示:iscsiadm -m discovery --type sendtargets --portal 192.168.0.161 192.168.0.161:3260,1 iqn.strawberry:litchie 192.168.0.204:3260,2 iqn.strawberry:litchie
但是,可以执行其他配置,以便为仅公开单个目标的阵列启用 iSCSI 多路径。有关详细信息,请参阅仅公开单个目标的阵列的 iSCSI 多路径。
-
仅限 iSCSI,控制域 (dom0) 在多路径存储使用的每个子网上都有一个 IP 地址。
请确保对于您想拥有的存储的每条路径都有一个 NIC,并且在每个 NIC 上都配置了一个 IP 地址。例如,如果您希望存储有四个路径,则必须有四个 NIC,每个 NIC 都配置一个 IP 地址。
-
(仅限 iSCSI)每个 iSCSI 目标和发起程序都有唯一的 IQN。
-
(仅限 iSCSI)iSCSI 目标端口在门户模式下运行。
-
仅限 HBA,将多个 HBA 连接到交换机结构。
-
配置辅助接口时,每个辅助接口必须位于单独的子网上。例如,如果要为存储额外配置两个辅助接口,则需要 IP 地址位于三个不同的子网中 – 一个用于管理接口的子网,一个用于辅助接口 1 的子网,以及一个用于辅助接口 2 的子网。
此示意图显示了多路径 iSCSI 配置中的主机上的两个 NIC 必须位于不同的子网上。在此示意图中,主机上的 NIC 1 以及两个存储控制器上的交换机 1 和 NIC 1 与存储控制器上的 NIC2、交换机 2 和 NIC 2 位于不同的子网中。
启用多路径
可以在 XenCenter 中或 xe CLI 上启用多路径。
使用 XenCenter 启用多路径
-
在 XenCenter 资源窗格中,在主机上单击鼠标右键,然后选择进入维护模式。
-
请等到主机在资源窗格中重新出现维护模式图标(蓝色方块)后再继续。
-
在主机的常规选项卡上,单击属性,然后转到多路径选项卡。
-
要启用多路径,请选中在此服务器上启用多路径复选框。
-
单击确定以应用新设置。在 XenCenter 保存新的存储配置时,会出现短暂的延迟。
-
在资源窗格中,在主机上单击鼠标右键,然后选择退出维护模式。
-
重复执行这些步骤,在池中的所有主机上启用多路径。
请务必在池中的所有主机上启用多路径。对于每个主机上相应的 NIC,所有电缆连接和子网配置(对于 iSCSI)必须相符。
使用 xe CLI 启用多路径
-
在 XenServer 主机上打开控制台。
-
请使用以下命令拔出主机上的所有 PBD:
xe pbd-unplug uuid=<pbd_uuid> <!--NeedCopy-->
可以使用命令
xe pbd-list
查找 PBD 的 UUID。 -
使用以下命令将
multipathing
参数的值设置为true
:xe host-param-set uuid=<host uuid> multipathing=true <!--NeedCopy-->
-
如果服务器上存在以单一路径模式运行但具有多路径的现有 SR:
-
迁移或挂起在受影响的 SR 中存在虚拟磁盘的任何正在运行的来宾系统
-
重新插入所有受影响的 SR 的 PBD 以使用多路径重新对其进行连接:
xe pbd-plug uuid=<pbd_uuid> <!--NeedCopy-->
-
-
重复执行这些步骤,在池中的所有主机上启用多路径。
请务必在池中的所有主机上启用多路径。对于每个主机上相应的 NIC,所有电缆连接和子网配置(对于 iSCSI)必须相符。
禁用多路径
可以在 XenCenter 中或 xe CLI 上禁用多路径。
使用 XenCenter 禁用多路径
-
在 XenCenter 资源窗格中,在主机上单击鼠标右键,然后选择进入维护模式。
-
请等到主机在资源窗格中重新出现维护模式图标(蓝色方块)后再继续。
-
在主机的常规选项卡上,单击属性,然后转到多路径选项卡。
-
要禁用多路径,请取消选中在此服务器上启用多路径复选框。
-
单击确定以应用新设置。在 XenCenter 保存新的存储配置时,会出现短暂的延迟。
-
在资源窗格中,在主机上单击鼠标右键,然后选择退出维护模式。
-
重复执行这些步骤,以在池中的所有主机上配置多路径。
使用 xe CLI 禁用多路径
-
在 XenServer 主机上打开控制台。
-
请使用以下命令拔出主机上的所有 PBD:
xe pbd-unplug uuid=<pbd_uuid> <!--NeedCopy-->
可以使用命令
xe pbd-list
查找 PBD 的 UUID。 -
使用以下命令将
multipathing
参数的值设置为false
:xe host-param-set uuid=<host uuid> multipathing=false <!--NeedCopy-->
-
如果服务器上存在以单一路径模式运行但具有多路径的现有 SR:
-
迁移或挂起在受影响的 SR 中存在虚拟磁盘的任何正在运行的来宾系统
-
拔出并重新插入所有受影响的 SR 的 PBD 以使用多路径重新对其进行连接:
xe pbd-plug uuid=<pbd_uuid> <!--NeedCopy-->
-
-
重复执行这些步骤,以在池中的所有主机上禁用多路径。
配置多路径
要进行其他多路径配置,请在目录 /etc/multipath/conf.d
中创建带有后缀 .conf
的文件。请在这些文件中添加其他配置。多路径功能按字母顺序在目录中搜索以 .conf
结尾的文件,并从中读取配置信息。
请勿编辑文件 /etc/multipath.conf
。此文件将被 XenServer 的更新所覆盖。
多路径工具
XenServer 中的多路径支持基于设备映射器 multipathd components
。存储管理器 API 自动处理激活和停用多路径节点。与 Linux 中的标准 dm-multipath
工具不同,设备映射器节点是自动为系统中的所有 LUN 创建的。仅当 LUN 由存储管理层主动使用时才会预配设备映射器节点。因此,不必使用任何 dm-multipath
CLI 工具来查询或刷新 XenServer 中的 DM 表节点。
如果需要手动查询设备映射器的状态,或列出系统中活动设备映射器多路径节点,请使用 mpathutil
实用程序:
mpathutil list
<!--NeedCopy-->
mpathutil status
<!--NeedCopy-->
单个子网上的 iSCSI 多路径
可以将 XenServer 配置为使用 iSCSI 多路径和存储阵列,使其目标和 IQN 公开在单个子网上。例如,您可以按照以下步骤设置 Dell EqualLogic PS 和 FS 统一系列存储阵列。
默认情况下,XenServer 仅为每个 iSCSI 目标建立一个连接。因此,对于默认配置,建议使用 NIC 绑定来实现故障转移和负载平衡。本部分中概述的配置过程描述了一种替代配置,即为单个子网或目标建立多个 iSCSI 连接。不需要 NIC 绑定。
注意:
以下配置仅支持以独占方式连接到存储阵列的服务器,这些存储阵列通过单个子网公开其目标和 IQN。这些存储阵列必须符合 XenServer 的这一过程的资格。
要配置多路径,请执行以下操作:
-
备份要保护的任何数据。
-
在 XenCenter 资源窗格中,在主机上单击鼠标右键,然后选择进入维护模式。
-
请等到主机在资源窗格中重新出现维护模式图标(蓝色方块)后再继续。
-
在主机的常规选项卡上,单击属性,然后转到多路径选项卡。
-
要启用多路径,请选中在此服务器上启用多路径复选框。
-
单击确定以应用新设置。在 XenCenter 保存新的存储配置时,会出现短暂的延迟。
-
在主机控制台中,配置两到四个 Open-iSCSI 接口。每个 iSCSI 接口都用于建立单独的路径。以下步骤显示了两个接口的流程:
-
配置两个 iSCSI 接口,运行以下命令:
iscsiadm -m iface --op new -I c_iface1 iscsiadm -m iface --op new -I c_iface2
确保接口名称具有前缀
c_
。如果接口不使用此命名标准,它们将被忽略,而是使用默认接口。注意:
此配置导致所有连接都使用默认接口。这表示所有连接都使用单个接口建立。
-
使用以下命令将 iSCSI 接口绑定到 xenbr1 和 xenbr2:
iscsiadm -m iface --op update -I c_iface1 -n iface.net_ifacename -v xenbr1 iscsiadm -m iface --op update -I c_iface2 -n iface.net_ifacename -v xenbr2
注意:
此配置假定为控制域(包括 xenbr1 和 xenbr2)和 xenbr0 配置的网络接口用于管理。它还假定用于存储网络的 NIC 卡为 NIC1 和 NIC2。 如果不是这样,请参考您的网络拓扑以发现要在这些命令中使用的网络接口和 NIC 卡。
-
-
在 XenCenter 资源窗格中,在主机上单击鼠标右键,然后选择退出维护模式。暂时不要恢复 VM。
-
在主机控制台中,运行以下命令以发现并登录会话:
iscsiadm -m discovery -t st -p <IP of SAN> iscsiadm -m node -L all
-
使用以下命令删除包含旧会话信息的过时条目:
cd /var/lib/iscsi/send_targets/<IP of SAN and port, use ls command to check that> rm -rf <iqn of SAN target for that particular LUN> cd /var/lib/iscsi/nodes/ rm -rf <entries for that particular SAN>
-
断开 LUN 并重新连接。可以使用以下任一方法执行此操作:
- 在池中的所有主机上完成上述步骤后,可以使用 XenCenter 分离并重新连接整个池的 LUN。
-
或者,您可以拔下并销毁每个主机的 PBD,然后修复 SR。
-
运行以下命令以拔出并销毁 PBD:
-
查找 SR 的 UUID:
xe sr-list
-
获取与 SR 关联的 PBD 列表:
xe pbd-list sr-uuid=<sr_uuid>
-
在上一个命令的输出中,查找 SCSI ID 不匹配的 iSCSI 存储库的 PBD 的 UUID。
-
拔下并销毁您确定的 PBD。
xe pbd-unplug uuid=<pbd_uuid> xe pbd-destroy uuid=<pbd_uuid>
-
-
修复 XenCenter 中的存储。
-
-
您现在可以恢复 VM 了。