存储多路径
动态多路径支持适用于光纤通道和iSCSI存储后端。
XenServer® 使用 Linux 原生多路径 (DM-MP)(通用的 Linux 多路径解决方案)作为其多路径处理程序。但是,XenServer 补充了此处理程序,提供了额外功能,以便 XenServer 可以识别存储设备的供应商特定功能。
配置多路径可在部分连接丢失时为远程存储流量提供冗余。多路径通过多条路径将存储流量路由到存储设备,以实现冗余和提高吞吐量。您最多可以使用 16 条路径连接到单个 LUN。多路径是一种主动-主动配置。默认情况下,多路径根据存储阵列类型使用循环或多总线负载平衡。在正常运行期间,所有路径上都有活动流量,从而提高了吞吐量。
重要提示:
我们建议您在创建 SR 之前 为池中的所有主机启用多路径。如果您在启用多路径之前创建 SR,则必须将主机置于维护模式才能启用多路径。
网卡绑定也可以为存储流量提供冗余。对于 iSCSI 存储,我们建议尽可能配置多路径而不是网卡绑定。
在以下情况下,多路径无效:
- NFS 存储设备
- 您拥有的网卡数量有限,需要通过同一网卡路由 iSCSI 流量和文件流量(NFS 或 SMB)
在这些情况下,请考虑改用网卡绑定。有关网卡绑定的更多信息,请参阅 网络。
先决条件
在启用多路径之前,请验证以下陈述是否属实:
-
您的存储服务器上提供了多个目标。
例如,在给定门户上查询
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 地址。
确保对于您希望连接到存储的每个路径,您都有一块网卡,并且每块网卡上都配置了一个 IP 地址。例如,如果您希望有四个路径连接到存储,则必须有四块网卡,每块网卡都配置了一个 IP 地址。
-
仅适用于 iSCSI,每个 iSCSI 目标和发起程序都有一个唯一的 IQN。
-
仅适用于 iSCSI,iSCSI 目标端口在门户模式下运行。
-
仅适用于 HBA,多个 HBA 连接到交换机结构。
-
配置辅助接口时,每个辅助接口必须位于单独的子网上。例如,如果您想为存储配置另外两个辅助接口,则需要在三个不同的子网上配置 IP 地址——一个子网用于管理接口,一个子网用于辅助接口 1,一个子网用于辅助接口 2。

此图显示了多路径 iSCSI 配置中主机上的两块网卡必须位于不同的子网上。在此图中,主机上的网卡 1 以及交换机 1 和两个存储控制器上的网卡 1 位于与网卡 2、交换机 2 和存储控制器上的网卡 2 不同的子网上。
启用多路径
您可以在 XenCenter® 或 xe CLI 上启用多路径。
使用 XenCenter 启用多路径
-
在 XenCenter 的“资源”窗格中,右键单击主机并选择“进入维护模式”。
-
等待主机在“资源”窗格中重新出现并显示维护模式图标(蓝色方块)后,再继续。
-
在主机的“常规”选项卡上,单击“属性”,然后转到“多路径”选项卡。
-
要启用多路径,请选中“在此服务器上启用多路径”复选框。
-
单击“确定”以应用新设置。XenCenter 保存新的存储配置时会稍有延迟。
-
在“资源”窗格中,右键单击主机,然后选择“退出维护模式”。
-
重复这些步骤,以在池中的所有主机上启用多路径。
确保在池中的所有主机上启用多路径。所有布线以及(对于 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-->
-
-
重复这些步骤,以在池中的所有主机上启用多路径。
确保在池中的所有主机上启用多路径。所有布线以及(对于 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 的更新覆盖。如果您想对多路径配置进行永久性更改,请联系您的存储供应商,他们可以请求我们的合作伙伴工程团队永久添加这些更改。
单子网上的 iSCSI 多路径
您可以将 XenServer 配置为与在单个子网上公开其目标和 IQN 的存储阵列一起使用 iSCSI 多路径。例如,您可以按照以下步骤设置 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 用于管理。它还假定用于存储网络的网卡是 NIC1 和 NIC2。 如果情况并非如此,请参考您的网络拓扑以查找要在这些命令中使用的网络接口和网卡。
-
-
在 XenCenter 的资源窗格中,右键单击主机并选择退出维护模式。暂时不要恢复您的虚拟机。
-
在主机控制台中,运行以下命令以发现并登录会话:
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。