我在跨两个主机(vsphereA 和 vsphereB)的 HA 集群中运行 vSphere 5。我为主机监控和数据存储心跳监控配置了 HA 集群,并禁用了准入控制(希望我正确理解数据存储心跳监控可以防止由于管理网络隔离而导致的无意和不需要的 HA 故障转移)。每个主机都有一个到专用 iSCSI 网络和 iSCSI 目标(无 MPIO)的连接。所有 VM 的所有 vmdk 都存在于 iSCSI 数据存储上。作为 HA 测试,我断开了 vsphereB 上的 iSCSI 连接,惊讶地发现 vsphereB 上正在运行的虚拟机继续在 vsphereB 上运行。关闭的 VM 显示为不可访问(我预计这是因为它们不是 t 正在运行并且从 vsphereB 到 iSCSI 目标的连接被切断)但正在运行的 VM 继续运行并继续由 vsphereB“拥有”。我希望看到这些 VM 发生 HA 故障转移,并希望在 HA 故障转移(没有发生)后看到它们被 vsphereA“拥有”。我无法理解为什么这些 VM 没有发生 HA 故障转移。我是否误解了在哪些情况下应该发生 HA 故障转移?
您似乎混淆了 vMotion 和 HA,它们是做不同事情的不同功能。
vMotion 是一项功能,它允许将虚拟机从一个物理主机迁移到另一个物理主机,而不会停机并且服务中断最少(毫秒)。它是在维护之前完成的,需要 VM 以及源主机和目标主机都处于健康状态。HA 是一项重新启动失败虚拟机(或无法访问的虚拟机,如果配置了主机隔离)并且确实会导致 VM 停机的功能,因为整个虚拟机已关闭电源并重新启动。
重要提示:vMotion 不是 HA 故障转移。HA 故障转移是 HA 故障转移。
vMotions 由以下情况触发:
HA 故障转移由以下情况触发:
底线:vMotion 因性能事件而发生,而 HA 故障转移因可用性事件而发生。
您所做的是将磁盘从正在运行的 VM 下拉出。在这种情况下,vSphere 和大多数管理程序的标准行为是不理会虚拟机,让它处理自己的磁盘问题。这有几个很好的理由:
另一方面,对于许多工作负载(想到数据库)来说,一旦有可能发生损坏或丢失事务就立即关闭是个好主意。但是,在最好的情况下,由于没有磁盘就无法完全停止数据库,因此您可能最终会处于不一致状态。
最终:有一些很好的用例可以让 HA 响应不可靠的存储,但它今天并没有这样做,你看到的行为是完全正常的。