vSphere 支持托管 WSFC 节点的虚拟机的 vMotion。

vMotion 支持的必备条件:

  • 仅跨物理主机的虚拟机集群 (CAB) 支持 vMotion。
  • 对于具有集群共享资源的虚拟机,请勿同时迁移超过 8 个 WSFC 虚拟机。否则,可能会导致将集群角色故障切换到其他虚拟机。
  • vMotion 网络必须是 10Gbps 以太网链路。对 WSFC 虚拟机执行 vMotion 时,不支持 1 Gbps 以太网链路。
  • Windows Server 2012 及更高版本支持 vMotion。不支持 Windows Server 2008 SP2 及更低版本。
  • WSFC 集群检测信号超时必须至少修改为以下列出的值:
    • (get-cluster -name <cluster-name>).SameSubnetThreshold = 10
    • (get-cluster -name <cluster-name>).CrossSubnetThreshold = 20
    • (get-cluster -name <cluster-name>).RouteHistoryLength = 40
  • WSFC 虚拟机的虚拟硬件版本必须是版本 11 及更高版本。

修改 WSFC 检测信号超时:

WSFC 节点通过网络向集群中的其他节点发送检测信号数据包。如果节点未在指定时间段内收到其他节点的响应,则集群将从集群成员资格中移除该节点。默认情况下,在 Windows 2012 和 2012 R2 中,如果客户机集群节点未在 5 秒内做出响应,则会被视为已关闭。属于集群成员的其他节点将接替在已移除节点上运行的任何集群角色。

WSFC 虚拟机可能会在 vMotion 期间停止几秒钟。如果停止时间超过检测信号超时时间间隔,则客户机集群会将该节点视为已关闭,这可能导致不必要的故障切换。为了留有余地并提高客户机集群的容错能力,需要将检测信号超时时间间隔修改为至少允许丢失 10 个检测信号。控制允许的检测信号丢失数的属性是 SameSubnetThreshold。需要将此属性的默认值至少修改为 10。从加入 WSFC 集群的任一节点运行以下命令:

(get-cluster -name <cluster-name>).SameSubnetThreshold = 10

还可以调整其他属性以控制故障切换的工作负载容错。通过调整延迟,可以控制在集群节点之间发送检测信号的频率。默认设置为 1 秒,最大设置为 2 秒。将 SameSubnetDelay 的值设置为 1。阈值控制在节点将其合作伙伴视为不可用并触发故障切换过程前可丢失的连续检测信号数。默认阈值为 5 个检测信号,最大值为 120 个检测信号。延迟和阈值的组合用于确定一个总时间,在此期间内,集群 Windows 节点在触发故障切换之前可能会丢失通信。当集群节点位于不同子网中时,它们分别称为 CrossSubnetDelayCrossSubnetThreshold。将 CrossSubnetDelay 的值设置为 2,将 CrossSubnetThreshold 的值设置为 20。
注: 在 Windows Server 2016 及更高版本中,WSFC 检测信号设置的建议值现在为默认值。