要维持主机及其存储之间的持续连接,ESXi 必须支持多路径。借助多路径,您可以使用多条物理路径在主机和外部存储设备之间传输数据。

如果 SAN 网络中的任何元素(如适配器、交换机或电缆)发生故障,则 ESXi 可切换到另一个可行的物理路径。这种避免使用故障组件的路径切换过程称为路径故障切换。

除路径故障切换外,多路径还提供负载均衡。负载均衡是在多个物理路径中分配 I/O 负载的过程。负载均衡可以减少或消除潜在的瓶颈。

注: 在路径故障切换发生时,虚拟机 I/O 最多能延迟 60 秒。通过这些延迟,SAN 可以在拓扑更改后稳定其配置。通常,主动-被动阵列上的 I/O 延迟时间可能会更长,而在主动-主动阵列上则更短。

光纤通道故障切换

要支持多路径,主机通常具有两个或更多个可用的 HBA。此配置对 SAN 多路径配置进行补充。通常,SAN 多路径为 SAN 架构提供一个或多个交换机,并为存储阵列设备本身提供一个或多个存储处理器。

在下图中,可通过多个物理路径将每台服务器与存储设备相连。例如,如果 HBA1 或 HBA1 与 FC 交换机之间的链路发生故障,HBA2 会接管并提供连接。一个 HBA 取代另一个 HBA 的过程称为 HBA 故障切换。

图 1. 多路径和光纤通道故障切换
此图说明了主机如何使用多个 HBA 提供多路径。

同样,如果 SP1 发生故障或 SP1 与交换机之间的链路中断,SP2 会接管。SP2 会提供交换机与存储设备之间的连接。此过程称为 SP 故障切换。VMware ESXi 支持 HBA 和 SP 故障切换。

基于主机的 iSCSI 故障切换

在设置 ESXi 主机的多路径和故障切换功能时,可以使用多个 iSCSI HBA,或者将多个网卡与软件 iSCSI 适配器结合使用。

有关不同类型的 iSCSI 适配器的信息,请参见iSCSI 启动器

使用多路径时,需要注意特定事项。
  • 将独立硬件适配器与同一主机中的软件 iSCSI 适配器或从属 iSCSI 适配器组合使用时,ESXi 不支持多路径。
  • 支持在同一主机内的软件和从属适配器之间使用多路径。
  • 在不同的主机上,可以混合使用从属适配器和独立适配器。
下图显示了对于不同类型的 iSCSI 启动器可能的多路径设置。
图 2. 基于主机的路径故障切换
此图显示了对于不同类型的 iSCSI 启动器可能的多路径设置。
硬件 iSCSI 和故障切换
对于硬件 iSCSI,主机通常具有两个或更多的硬件 iSCSI 适配器。主机使用适配器通过一个或多个交换机访问存储系统。或者,设置可能包括一个适配器和两个存储处理器,以便适配器可以使用不同的路径访问存储系统。

如图所示,主机 1 有两个硬件 iSCSI 适配器(HBA1 和 HBA2),这提供了两条到存储系统的物理路径。主机上的多路径插件,不论是 VMkernel NMP 还是任何第三方 MPP,默认情况下都可以访问这些路径。这些插件可以监控每条物理路径的运行状况。例如,如果 HBA1 或 HBA1 与网络之间的链路发生故障,多路径插件可以将路径切换到 HBA2。

软件 iSCSI 和故障切换
如图中的主机 2 所示,通过软件 iSCSI,您可以使用多张网卡为 iSCSI 连接提供故障切换和负载均衡功能。

多路径插件不能直接访问主机上的物理网卡。因此,对于此设置,您首先必须将每个物理网卡连接至单独的 VMkernel 端口。然后使用端口绑定技术将所有的 VMkernel 端口与软件 iSCSI 启动器相关联。连接到单独网卡的每个 VMkernel 端口将成为 iSCSI 存储堆栈及其存储感知多路径插件可使用的另一条路径。

有关为软件 iSCSI 配置多路径的信息,请参见在 ESXi 中为 iSCSI 和 iSER 设置网络

基于阵列的 iSCSI 故障切换

有些 iSCSI 存储系统以透明的方式自动管理其 ESXi 端口的路径使用。

使用此类存储系统时,主机无法识别存储上的多个端口,且无法选择要连接的存储端口。这些系统提供了一个虚拟端口地址,供您主机用于初始通信。在初始通信期间,存储系统可以重定向主机,使其与存储系统上的另一端口进行通信。主机中的 iSCSI 启动器遵守此重新连接请求,并连接到系统上的其他端口。存储系统使用此技术将负载分散在多个可用端口中。

如果 ESXi 主机与其中某一端口断开连接,则会自动尝试重新连接存储系统的虚拟端口,且应重定向到可用的活动端口。此重新连接和重定向将会快速完成,且通常不会中断正在运行的虚拟机。这些存储系统也可请求 iSCSI 启动器重新连接到系统,以更改其连接的存储端口。这样可以最有效地使用多个端口。

“端口重定向”图显示了端口重定向示例。主机尝试连接到 10.0.0.1 虚拟端口。存储系统将此请求重定向到 10.0.0.2。主机与 10.0.0.2 连接并使用此端口进行 I/O 通信。

注: 存储系统并不会始终重定向连接。10.0.0.1 的端口也可以用于通信。
图 3. 端口重定向
端口重定向

如果存储系统上充当虚拟端口的端口变为不可用,则存储系统会将虚拟端口的地址重新分配给系统上的其他端口。“端口重新分配”显示了此类端口重新分配的示例。在这种情况下,虚拟端口 10.0.0.1 变为不可用,且存储系统会将虚拟端口 IP 地址重新分配给其他端口。第二个端口将响应两个地址。

图 4. 端口重新分配
此图显示端口重新分配示例。

借助这种基于阵列的故障切换形式,仅当使用 ESXi 主机上的多个端口时,才能拥有多个存储路径。这些路径为主动-主动路径。有关其他信息,请参见管理 ESXi 主机上的 iSCSI 会话

路径故障切换和虚拟机

路径发生故障后,存储 I/O 可能会暂停 30-60 秒,直到主机确定链路不可用并且执行故障切换为止。如果尝试显示主机、主机存储设备或适配器,操作可能会停止。虚拟机(其磁盘安装在 SAN 上)可能变得没有响应。故障切换后,I/O 恢复正常,且虚拟机继续运行。

当故障切换需要很长时间时,Windows 虚拟机可能会中断 I/O 并最终出现故障。为了避免出现此故障,请将 Windows 虚拟机的磁盘超时值至少设置为 60 秒。

要在路径故障切换过程中避免中断,增加 Windows 客户机操作系统上的标准磁盘超时值。

此过程说明了如何使用 Windows 注册表更改超时值。

提示: 开始之前:备份 Windows 注册表。
  1. 选择开始 > 运行
  2. 键入 regedit.exe,然后单击确定
  3. 在左侧面板层次结构视图中,双击 HKEY_LOCAL_MACHINE > 系统 > CurrentControlSet > 服务 > 磁盘
  4. 双击 TimeOutValue
  5. 将数据值设置为 0x3c(十六进制)或 60(十进制),然后单击确定

    进行此更改后,Windows 将至少等待 60 秒,以便延迟的磁盘操作完成,然后才会生成错误。

  6. 重新引导客户机操作系统以使更改生效。