vSphere Fault Tolerance 通过创建和维护与主虚拟机相同,且可在发生故障切换时随时替换主虚拟机的辅助虚拟机,来确保虚拟机的连续可用性。

可以为大多数任务关键虚拟机启用 Fault Tolerance。并会创建一个重复虚拟机(称为辅助虚拟机),该虚拟机会以虚拟锁步方式随主虚拟机一起运行。VMware vLockstep 可捕获主虚拟机上发生的输入和事件,并将这些输入和事件发送到正在另一主机上运行的辅助虚拟机。使用此信息,辅助虚拟机的执行将等同于主虚拟机的执行。因为辅助虚拟机与主虚拟机一起以虚拟锁步方式运行,所以它可以无中断地接管任何点处的执行,从而提供容错保护。

注:

主虚拟机与辅助虚拟机之间的 FT 日志记录通信是未加密的,且包含客户机网络和存储器 I/O 数据以及客户机操作系统的内存内容。此通信可以包含敏感数据,如纯文本格式的密码。为避免这些数据被泄漏,尤其是避免受到“中间人”攻击,请确保此网络是受保护的。例如,可以对 FT 日志记录通信使用专用网络。

图 1. Fault Tolerance 对中的主虚拟机和辅助虚拟机
Fault Tolerance 对有主虚拟机和辅助虚拟机。

主虚拟机和辅助虚拟机可持续交换检测信号。此交换使得虚拟机对中的虚拟机能够监控彼此的状态,以确保持续提供 Fault Tolerance 保护。如果运行主虚拟机的主机发生故障,系统将会执行透明故障切换,此时会立即启用辅助虚拟机以替换主虚拟机,并将启动新的辅助虚拟机,同时在几秒钟内重新建立 Fault Tolerance 冗余。如果运行辅助虚拟机的主机发生故障,则该主机也会立即被替换。在任一情况下,用户都不会遭遇服务中断和数据丢失的情况。

容错虚拟机及其辅助副本不允许在相同主机上运行。此限制可确保主机故障无法导致两个虚拟机都丢失。也可以使用虚拟机-主机关联性规则来确定要在其上运行指定虚拟机的主机。如果使用这些规则,应了解对于受这种规则影响的任何主虚拟机,其关联的辅助虚拟机也受这些规则影响。有关关联性规则的详细信息,请参见vSphere 资源管理文档。

Fault Tolerance 可避免“裂脑”情况的发生,此情况可能会导致虚拟机在从故障中恢复后存在两个活动副本。共享存储器上锁定的原子文件用于协调故障切换,以便只有一端可作为主虚拟机继续运行,并由系统自动重新生成新辅助虚拟机。

注:

系统会在主虚拟机打开电源后执行反关联性检查。当主虚拟机和辅助虚拟机都处于关闭电源状态时,它们可能会位于相同主机上。但这是正常行为,辅助虚拟机会在主虚拟机打开电源时在其他主机上启动。