Vmware fault tolerance(FT)功能创建一个虚拟机设置可以提供连续性能力。FT建立在ESX/ESXi主机平台。通过创建一个虚拟机一个完全相同的副本。
虚拟机的主要副本,处于活动状态,接受请求,服务信息,并运行程序。次要副本,接收与主副本相同的输入。次要副本完成的所有任务都依照主副本的变动。主副本所有非决定性的活动都将被捕捉,发送到运行在其他host上的次要副本,次要副本在一秒内将活动进行重演。
FT启动后,VM Tools从每个虚机中发送心跳到VMM,此心跳与HA的心跳类似。VMM检查以确保主要和次要副本都在运行。如果主副本所在的host丢失,VMM将不再发送心跳。此时,次要副本立刻变为活动的,并成为主要副本,服务不会经历任何中断。
FT提供了比HA更高的商业连续性级别。FT发生时,次要立刻被激活,所有关于虚机状态的信息都会被完整的保留。存储在内存中的数据不需要被re-entered或reloaded。而HA则要将任何丢失的虚拟机进行重启。这会结束所有虚拟机进程和状态信息,程序和未保存的用户输入信息都会丢失。
VMware HA 通过在主机出现故障时重新启动虚拟机来为虚拟机提供基本级别的保护。VMware 容错可提供更高级别的可用性,允许用户对任何虚拟机进行保护以防止主机发生数据、事务或连接丢失等故障。
容错使用 ESX/ESXi 主机平台上的 VMware vLockstep 技术以提供连续可用性。通过确保主虚拟机和辅助虚拟机的状态在虚拟机的指令执行的任何时间点均相同来完成此过程。vLockstep 通过使主虚拟机和辅助虚拟机执行相同顺序的 x86 指令来完成此过程。主虚拟机捕获所有输入和事件 — 从处理器到虚拟 I/O 设备 — 并在辅助虚拟机上进行重放。辅助虚拟机执行与主虚拟机同一系列的指令,而仅可看到单个虚拟机映像(主虚拟机)在执行工作负载。
如果运行主虚拟机的主机或运行辅助虚拟机的主机发生故障,则会发生透明故障切换,仍在无缝工作的主机将借此变为主虚拟机的主机。使用透明故障切换,不会有数据损失,并且可以维护网络连接。 在发生透明故障切换之后,将自动重新生成新的辅助虚拟机,并将重新建立冗余。整个过程是透明且全自动的,并且即使 vCenter Server 不可用,也会发生。
VMware 容错可通过创建和维护等同于主虚拟机并可在发生故障切换时替换主虚拟机的辅助虚拟机来为虚拟机提供连续可用性。
可以为大多数任务关键虚拟机启用容错。并会创建一个重复虚拟机(称为辅助虚拟机),该虚拟机会以虚拟锁步方式随主虚拟机一起运行。VMware vLockstep 可捕获主虚拟机上发生的输入和事件,并将这些输入和事件发送到正在另一主机上运行的辅助虚拟机。使用此信息,辅助虚拟机的执行将等同于主虚拟机的执行。因为辅助虚拟机与主虚拟机一起以虚拟锁步方式运行,所以它可以无中断地接管任何点处的执行,从而提供容错保护。
虚拟机和辅助虚拟机可持续交换检测信号。这使得虚拟机对中的虚拟机能够监控彼此的状态以确保持续提供容错保护。如果运行主虚拟机的主机发生故障,系统将会执行透明故障切换,此时会立即启用辅助虚拟机以替换主虚拟机,并将启动新的辅助虚拟机,同时在几秒钟内重新建立容错冗余。如果运行辅助虚拟机的主机发生故障,则该主机也会立即被替换。在任一情况下,用户都不会遭遇服务中断和数据丢失的情况。
容错虚拟机及其辅助副本不允许在相同主机上运行。容错功能使用反关联性规则,这些规则可确保容错虚拟机的两个实例永远不会在同一主机上。这可确保主机故障无法导致两个虚拟机都缺失。
容错可避免“裂脑”情况的发生,此情况可能会导致虚拟机在从故障中恢复后存在两个活动副本。共享存储器上锁定的原子文件用于协调故障切换,以便只有一端可作为主虚拟机继续运行,并由系统自动重新生成新辅助虚拟机。
关于VMware HA,参考《VMware vCenter 高可用性 HA 详解》。
与 VMware HA 在默认情况下保护群集内的每个虚拟机不同,VMware 容错在单个虚拟机上启用。要使群集支持VMware 容错,必须满足以下必备条件:
群集/主机必备条件
虚拟机要求
在可以打开容错前,虚拟机必须满足最低要求。
容错虚拟机不支持以下 vSphere 功能。
要为群集启用 VMware 容错,必须满足此功能的必备条件,然后在主机上执行特定的配置步骤。完成这些步骤并创建群集后,还可以检查配置是否符合启用容错的要求。
尝试为群集启用容错之前应该完成的任务包括:
使用主机证书检查,可以将 ESX/ESXi 主机配置为相互验证身份,从而确保维护一个更安全的环境。对于容错虚拟机所在的 ESX/ESXi 主机来说,这是必需的。如果安装了 VMware vCenter Server 4.0 版本,系统会自动启用主机证书检查。如果所用版本是从上一版本升级的版本,则必须手动执行此过程。
在要添加到 VMware HA 群集的每台主机上,必须配置两个不同的网络交换机,以便使主机也可以支持 VMware容错。需要多个千兆位网络接口卡 (NIC)。对于支持容错的每台主机,总共需要两个 VMkernel 千兆位网卡:一个专用于容错日志记录,一个专用于 VMotion。VMotion 和容错日志记录网卡必须位于不同子网上。其他网卡建议用于虚拟机和管理网络流量。
我这里NIC不够,把FT和VMotion放在了同一个vSwitch上:
参考《VMware vCenter 集群及 DRS 详解 》,在为群集和主机准备好容错之后,便可为虚拟机打开容错。
步骤
1 选择“主机和群集”视图。
2 右键单击虚拟机并选择容错 > 打开容错。
当你启用FT时,提示会转换VMDK以及自动disable DRS,参考上文:
特定的虚拟机将指定为主虚拟机,并在另一台主机上建立辅助虚拟机。现在,主虚拟机已启用了容错功能。虚拟机运行在Host 56上,FT保护副本运行在Host 55上。
打开两个VM的concole,一个完全是另外一个镜像,且为read-only,是不接受任何输入的:
不管你是在console选择还是在vCenter操作,主次VM都会同时开关机,要不然怎么是镜像呢:
运行一个程序,人为将主VM蓝屏,发现此时次VM同时蓝屏,再一次证明两边运行的指令是同步的。
重主VM所在的host,次VM立即接管工作,从ping的相应来看,应该是零宕机时间: