如何在 Linux 多路径系统上正确处理主动/被动 SAN 多路径中的故障转移?

如何在 Linux 多路径系统上正确处理主动/被动 SAN 多路径中的故障转移?

我尝试使用 SAN HPE EVA 6350(带有 iSCSI 夹层和 FC/iSCSI 多路复用器的 2xHSV340 控制器)和通过 iSCSI 的 Linux debian 12 系统创建多路径配置。

在 EVA 上创建的 Vdisk 有一个“所有者”控制器,我让它们全部属于控制器 1。SAN 呈现的目标在其名称中具有 FC WWPN,因此可以确定此目标连接到哪个 FC 路径和控制器。登录后,只有连接到控制器 1 FC 适配器的目标才会提供块设备(路径)。因此,当 4 个 iSCSI 会话处于活动状态时,只有 2 条路径存在。因此,多路径永远不会知道所有路径。

我重新启动了 SAN 控制器 1,假设 SAN 会自动将其虚拟磁盘重新路由到被动控制器 2。但没有自动出现任何路径,重新登录这些会话后也没有出现任何路径。因此,我最终得到了损坏的块 i/o 和多路径,只有 2 条故障路径。

执行主动到被动故障转移的正确方法是什么?是否应将某些请求从启动器发送到 SAN,还是将其作为 SAN 内部任务?Linux open-iscsi + multipath 能否正确处理此类配置?

答案1

EVA 上每个 ISCSI 模块(也称为“MPX 桥接器”,因为它充当从 ISCSI 到 FC 的 ISCSI 多路复用器的角色)的后端 FC 端口作为 FC Direct Connect 连接到每个 HSV 控制器上的 HSV 前端 FC 端口。据我所知,每个 ISCSI 模块有 2 个后端 FC 端口,这些端口分别连接到控制器 A 和 B。

ISCSI 启动器主机上的 LUN 多路径信息必须显示来自 ISCSI 模块(即通过两个 HSV 控制器)的所有可能的 ISCSI 路径,其中到 LUN 的备用 HSV 控制器的路径列为“备用”,而到 LUN 的活动 HSV 控制器的路径将列为“活动”。来自 ISCSI 模块的 ISCSI 目标名称应包括正确配置 ISCSI 模块的所有 HSV 控制器前端 FC 端口的 FC WWN。

我没有权限在此网站上发表评论和询问有关 HPE EVA CommandView 阵列管理 UI 上显示的 ISCSI 模块配置的更多信息,因此您可能需要检查以下内容:

  1. ISCSI 控制器属性在 CommandView 页面中显示为“良好”状态。(存储网络->阵列->硬件->ISCSI 设备->ISCSI 控制器 1 和 2)。特别是,检查选项卡页面中“FC 端口”和“呈现的目标”的后端状态。对照实际的 HSV 阵列 FC 控制器端口属性页面,交叉检查此页面中显示的 FC 端口状态。

  2. ISCSI MPX 主机(即由 CommandView 在 Array->Hosts 中自动/内部创建的 MultiPleXer 主机)在 CommandView 的页面上正确显示所有数据。每个 MPX 主机应看到配置的 EVA 所需数量的 HSV 控制器 FC 前端端口,并确保检查这些 FC 连接到 HSV FC 端口是否在线。

  3. 您的启动器主机在 CommandView 中正确配置为 Linux 主机。

如果在关闭或重新启动所属控制器时,EVA vdisk 的 HSV 控制器所有权(如 CommandView 中所示)更改为另一个 HSV 控制器,则 EVA 上的 ISCSI 模块配置可能存在问题。

如果确定 ISCSI 模块配置正确,您可能想检查问题是否发生在 Windows Server 主机上?如果在 Windows 上没有看到问题,则 Linux 多路径配置不正确,或者 HPE 可能不支持通过 ISCSI 到 EVA 的 Linux 多路径。如果 HPE 确实支持,请检查 Linux 启动器主机的多路径配置文件文件已正确配置针对 Linux 的 HPE EVA Device Mapper multipath.conf 建议

回答您的另一个问题,SAN 中主机上的多路径软件/驱动程序处理 LUN 路径的故障转移和故障回复。主机上的实际多路径配置取决于供应商的存储系统功能 - 存储系统的控制器是主动/主动、主动/备用还是主动/被动。EVA 是一个主动/备用存储阵列,它符合此类系统的 SCSI ALUA 标准。来自启动器主机的多路径驱动程序的 SCSI 命令通过可用/在线路径发送到阵列的目标端口,以确定哪些路径是活动的,哪些路径是备用的。

相关内容