节选自策划:《虚拟化动手实验室》第3期手把手实现高可用
在VMware vSphere可用性解决方案中,相比着之前的VI3,在可用性解决方案上多了新的功能FT,也就是所谓的容错。接下来就介绍下容错的技术及如何实现(理论部分参考自官方文档)。
一、vSphere可用性的新功能
VMware新的可用性的解决方案中,提供了针对虚拟机的容错(FT)的技术。当为虚拟机启用此技术时,可以获得比VMware HA所提供的级别更高的可用性和数据保护,从而确保业务连续性。
容错基于 ESX/ESXi 主机平台构建(使用 VMware vLockstep 功能),它通过在单独主机上以虚拟锁步方式运行相同的虚拟机来提供连续可用性。
二、容错的工作方式
VMware 容错可通过创建和维护等同于主虚拟机并可在发生故障切换时替换主虚拟机的辅助虚拟机来为虚拟机提供连续可用性。
可以为大多数任务关键虚拟机启用容错。并会创建一个重复虚拟机(称为辅助虚拟机),该虚拟机会以虚拟锁步方式随主虚拟机一起运行。VMware vLockstep 可捕获主虚拟机上发生的输入和事件,并将这些输入和事件发送到正在另一主机上运行的辅助虚拟机。使用此信息,辅助虚拟机的执行将等同于主虚拟机的执行。因为辅助虚拟机与主虚拟机一起以虚拟锁步方式运行,所以它可以无中断地接管任何点处的执行,从而提供容错保护。
主虚拟机和辅助虚拟机可持续交换检测信号。这使得虚拟机对中的虚拟机能够监控彼此的状态以确保持续提供容错保护。如果运行主虚拟机的主机发生故障,系统将会执行透明故障切换,此时会立即启用辅助虚拟机以替换主虚拟机,并将启动新的辅助虚拟机,同时在几秒钟内重新建立容错冗余。如果运行辅助虚拟机的主机发生故障,则该主机也会立即被替换。在任一情况下,用户都不会遭遇服务中断和数据丢失的情况。
容错虚拟机及其辅助副本不允许在相同主机上运行。容错功能使用反关联性规则,这些规则可确保容错虚拟机的两个实例永远不会在同一主机上。这可确保主机故障无法导致两个虚拟机都缺失。
容错可避免“裂脑”情况的发生,此情况可能会导致虚拟机在从故障中恢复后存在两个活动副本。共享存储器上锁定的原子文件用于协调故障切换,以便只有一端可作为主虚拟机继续运行,并由系统自动重新生成新辅助虚拟机。
注意:系统会在主虚拟机启动后执行反关联性检查。当主虚拟机和辅助虚拟机都处于关闭状态时,它们可能会位于相同主机上。但这是正常行为,辅助虚拟机会在主虚拟机启动时在其他主机上启动。
三、容错的用例
容错可提供比 VMware HA 更高级别的业务连续性。当调用辅助虚拟机以替换与其对应的主虚拟机时,辅助虚拟机会立即取代主虚拟机的角色,并会保存其整个状况。应用程序已在运行,并且不需要重新输入或重新加载内存中存储的数据。这不同于 VMware HA 提供的故障切换,故障切换会重新启动受故障影响的虚拟机。
更高的连续性级别以及增加的状况信息和数据保护功能可在您要部署容错时提供方案信息。
l 需要始终保持可用的应用程序,尤其是那些具有长时间客户端连接的应用程序,用户希望在硬件故障期间保持这些连接。
l 不能通过任何其他方式实现群集功能的自定义应用程序。
l 可以通过自定义群集解决方案提供高可用性,但这些解决方案太复杂,很难进行配置和维护的情况。
四、容错的配置要求
要使 VMware 容错 (FT) 按预期方式执行,群集、主机和虚拟机的配置必须满足特定要求。
1、群集必备条件
与 VMware HA 在默认情况下保护群集内的每个虚拟机不同,VMware 容错在单个虚拟机上启用。要使群集支持VMware 容错,必须满足以下必备条件:
l 必须针对群集启用 VMware HA。还应当启用主机监控。如果没有启用主机监控,那么,当容错功能使用辅助虚拟机替换主虚拟机时,将不会创建新的辅助虚拟机且不会还原冗余。
l 必须为将用于容错的所有主机启用主机证书检查。请参见第 30 页,“启用主机证书检查”。
l 每台主机必须配置有 VMotion 和容错日志记录网卡。请参见第 31 页,“为主机配置网络”。
l 至少两台主机的处理器必须来自同一兼容处理器组。尽管容错功能支持异构群集(混合处理器组),但是,如果所有主机均兼容,则将获取最大的灵活性。有关受支持处理器的信息,请参见 VMware 知识库文章,网址为 http://kb.vmware.com/kb/1008027。
l 所有主机的 ESX/ESXi 版本和修补程序级别都必须相同。
l 所有主机必须对虚拟机的数据存储和网络具有访问权。
要确认群集内的主机是否兼容,从而判断其是否支持容错,请运行配置文件合规性检查。
注意 VMware HA 在执行接入控制计算时会包括容错辅助虚拟机的资源使用情况。对于“群集允许的主机故障数目”策略,将为辅助虚拟机分配一个插槽;而对于“群集资源的百分比”策略,在计算群集的可用容量时将考虑辅助虚拟机的资源使用情况。
2、主机必备条件
主机需满足以下条件,才能支持容错虚拟机:
l 主机上的处理器必须来自与容错兼容的处理器组。请参见位于 http://kb.vmware.com/kb/1008027 的VMware 知识库文章。
l 主机必须经 OEM 认证为支持容错。请参阅当前的硬件兼容性列表 (HCL) 获取支持容错的服务器的列表(请参见 http://www.vmware.com/resources/compatibility/search.php)。
l 主机配置必须在 BIOS 中启用了硬件虚拟化 (HV)。某些硬件制造商交付产品时禁用了硬件虚拟化。各种 BIOS中启用硬件虚拟化的过程不同。请参见主机的 BIOS 文档以获取有关如何启用硬件虚拟化的详细信息。如果未启用硬件虚拟化,则尝试启动容错虚拟机将产生错误,而且虚拟机不会启动。
3、虚拟机要求
在可以打开容错前,虚拟机必须满足以下最低要求:
l 虚拟机文件必须存储在共享存储器上。可接受共享的存储解决方案包括光纤通道、(硬件和软件)iSCSI、NFS 和 NAS。
l 虚拟机必须存储在虚拟 RDM 或厚置备的虚拟机磁盘 (VMDK) 文件(已启用“群集功能”选项)中。如果将虚拟机存储在精简置备或厚置备的 VMDK 文件(未启用群集功能)中,则在尝试启用容错时将会出现一则指示必须转换 VMDK 文件的消息。用户可以接受此自动转换(需要关闭虚拟机),允许转换磁盘并使用容错保护虚拟机。此转换过程所需的时间根据磁盘的大小和主机处理器类型而有所不同。
l 虚拟机必须在一个受支持的客户机操作系统上运行。
五、容错与不支持的vSphere功能
容错虚拟机不支持以下 vSphere 功能。
l 快照。 在虚拟机上启用容错前,必须移除或提交快照。此外,不可能对已启用容错的虚拟机执行快照。
l Storage VMotion。 不能为已启用容错的虚拟机调用 Storage VMotion。要迁移存储器,应当先暂时关闭容错,然后再执行 Storage VMotion 操作。在完成迁移之后,可以重新打开容错。
l DRS 功能。 容错虚拟机会自动配置为禁用 DRS。DRS 最初将放置一个辅助虚拟机,但在对群集进行负载平衡时,DRS 不会提出建议,也不会对主虚拟机或辅助虚拟机进行负载平衡。主虚拟机和辅助虚拟机在正常运行期间可以进行手动迁移。
六、为容错准备群集和主机
要为群集启用 VMware 容错,必须满足此功能的必备条件,然后在主机上执行特定的配置步骤。完成这些步骤并创建群集后,还可以检查配置是否符合启用容错的要求。
尝试为群集启用容错之前应该完成的任务包括:
1、 启用主机证书检查
Step 1:将 vSphere Client 连接到 vCenter Server。
Step 2: 选择系统管理,然后选择 vCenter Server 设置。此时会出现 vCenter Server 设置窗口。
Step 3:在左窗格中单击 SSL 设置。
Step 4:选中 vCenter 需要已验证的主机 SSL 证书复选框。
Step 5:单击确定。
2、 为每台主机配置网络
在两台ESX主机上,分别选择VMKERNEL(网络标签是EQL),查看属性。
确保此端口组启用“VMotion”或“容错日志记录”。
在上图中选中EQL,点选“编辑”。可以看到如何启用。
3、创建 VMware HA 群集,添加主机,并检查合规性
Step1:VMware HA 群集在第五章及第六章已建立,且进行了验证:
Step2:检查群集的合规性。
注意:正常情况下,也是需要检查主机配置文件的合规性的。
六、为虚拟机打开容错功能
在为群集和主机准备好容错条件之后,便可为虚拟机打开容错
Step1:关闭虚拟机windows2003,右键“容错”--“打开容错”(截图有误的,应是windows2003虚拟机关闭的情况进行同样的操作):
Step2:此时会弹出个警告窗口,点“是”。
Step3:任务进行中。实际上是在另外一台ESX主机上在进行着安装一个此虚拟机的一个副本---次要虚拟机(第二图)。
Step4:完成后,可以看到右下角的,容错所建立的虚拟机并不受保护。需要启动后方可。
Step5:开启位于esxone主机上的windows2003,这时,就会把此虚拟机的状态等迁移同步到位于esxtwo主机上的次要虚拟机windows2003上。
当完成启动后,就真正实现了容错功能。
Step6:接下来进行容错功能的测试,也就是在当前的虚拟机桌面上创建一个文件夹。然后关闭此台虚拟机或是其所在的主机,看是否会在另外一ESX主机上启动次要虚拟机,并且不影响应用,且能同样存在这样的一个文件夹。
Step7:关机后,次要虚拟机开始启动,且PING值只有一个是TIME OUT的。
Step8:连接ESXTWO上的次要虚拟机,可以看到容错的效果已达到。
通过和第六章的结合实验,完成了真正应用业务上的可用性。硬件和软件条件满足的朋友不防部署在生产环境中,以实现关键业务的真正高可用性。