高可用性和双机热备是VMware vSphere 5.0最重要的一部分,高可用性并不是vSphere独有的,企业使用高可用性就是为了服务的连续性和数据的安全性。HA(High Availability)是以一群ESXi服务器为主的群集功能,主要目的是当虚拟机运行的主机发生故障时能及时转移主机,避免长时间的停机。而FT(Fault Tolerance)双机热备则是保障虚拟机最长时间不停机,将虚拟机以双机热备的方式同时在两台主机这样运行,这样可以大大增强业务的可连续性。本章将本别解释HA的高可用性和FT双机热备功能。
一、 vSphere HA高可用性
vSphere HA是一款功能丰富的产品,它可持续监控资源池中的所有物理服务器,并重启受服务器故障影响的虚拟机;可监控和检查虚拟机的“客户操作系统”故障,并且在用户指定的间隔后自动启动虚拟机;可利用服务器上的“心跳信号”:来自动检测服务器故障;几乎可立即在同一资源池的其他物理服务器上重启虚拟机而且无须人工干预。选择要在vSphere HA上重启虚拟机(如果与VMware DRS配合使用)的资源池中的最佳物理服务器,vSphere HA为虚拟化的IT环境提供普遍适用且经济高效的故障切换保护。保护不带其他故障切换选项的应用程序,并使原本可能不被置于保护下的软件应用程序也具有高可用性。当检测到操作系统故障时,通过自动重启虚拟机来保护虚拟机免受故障的影响(处于实验阶段)。vSphere HA的这种保护功能为整个IT基础架构建立第一道坚固的屏障。
(一)vSphere中的HA
通过上面的介绍我们知道了HA能带来的好处。那么HA到底是什么?高可用性HA是指通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。它与被认为不间断操作的容错技术有所不同。HA系统是目前企业防止核心计算机系统因故障停机的最有效手动。vSphere HA允许ESXi主机集合作为一个组协同工作,这些主机为虚拟机提供的可用性级别比ESXi主机单独提供的级别要高。当规划新的vSphere HA群集中的创建和使用时,选择的选项会影响群集对主机或者虚拟机故障的响应方式。
vSphere HA群集一般具有一个包括两个或两个以上ESXi主机的逻辑队列。在一个HA群集中,每一台VMware ESXi服务器配有一个HA代理,持续不断地检测群集中其他主机的心跳信号。ESXi主机每隔5秒就会通过服务主机的网络连接发送心跳信号。假如某台ESXi主机在连续的3个时间间隔后都没有发出心跳信号,那么主机就被默认为发生了故障或与网络的连接出现了问题。
当出现无法检测的情况时,原本在该主机上运行的虚拟机就会自动被转移到群集中的其他主机上。反之,如果一台主机无法接收到来自群集中的其中主机的心跳信号,那么该主机便会启动一个内部进程来检测自己跟群集中其他主机的连接是否出现了问题。如果真的出现了问题,那么就会中断在这台主机上所有正在运行的虚拟机,并启动预先设定好的备用主机。
其实,vSphere HA的另一个显著的特点是能够在一个群集中的多台ESXi服务器上进行故障转移。对于一次vSphere HA故障转移,客户端操作系统认为只是一次因硬件的崩溃而进行的重启,并不会察觉到是一次有序的关机。因此,这样的修复并不会改变操作系统的状态。此外,虚拟机中任何正在进行的业务也不会丢失。即使备用ESXi服务器主机的硬件设备跟原ESXi服务器主机的硬件设备有所不同,客户端操作系统也不会检测到这种不同。所以,vSphere HA的故障转移对于客户来说可以算是完全透明的,几乎不会出现任何停机的危险。
(二)vSphere HA的工作方式
HA不间断的监控群集中所有的ESXi Server主机,并检测故障。放置在每台主机上的代理程序不断地向群集中的其他主机发出“心跳信号”,“心跳信号”的终止将引发所有受影响的虚拟机在其他主机上的重启过程。vSphere HA的具体工作方式如图:
当创建vSphere HA群集时,可以选择使用单个主机作为首选主机以与vCenter Server通信并监控其他主机、从属主机及其虚拟机的状况。可能会发生不同类型的主机故障,首选主机必须检测并相应的处理故障,必须可以区分故障主机与处于网络分区中或已与网络隔离的主机。首选主机使用数据存储检测信号来确定故障的类型。
如果为群集启用了vSphere HA,则所有活动主机都将参与选举以选择群集的首选主机。挂载最多数量的数据存储的主机在选举中具有优势。每个群集只有一台首选主机其他所有主机都是从属主机。如果首选主机出现故障、关机或从群集中移除等情况,则会进行新的选举。
首选主机监控群集中从属主机的活跃度,通过每秒交换一次网络检测信号来完成。当首选主机停止从从属主机接收这些检测信号时,它会在声明该主机已出现故障之前检查主机活跃度。首先主机执行的活跃度检查是要确定从属主机是否在数据存储之间交换检测信号。而且,首先主机还检查主机是否对发送至其管理IP地址的ICMP ping进行响应。如果首选主机无法直接与从属主机上的代理进行通信,则该从属主机不会对ICMP ping进行响应,并且该代理不会发出被视为已出现故障的检测信号,会在备用主机上重新启动主机的虚拟机。如果此类从属主机与数据存储交换检测信号后,则首选主机会假定它处于某个网络分区或隔离网络中,因此会继续监控该主机及其虚拟机,如图:
当vSphere HA群集中的首选主机无法通过管理网络与从属主机通信时,首选主机将使用数据存储检测信号来确定从属主机是否出现故障,是否位于网络分区中,或者是否与网络隔离。如果从属主机已停止数据存储检测信号,则认为该从属主机出现故障,并且其虚拟机已在别处重新启动。
(三)vSphere HA群集的要求
vSphere HA要求在群集中打开HA,在群集中的所有主机必须获得vSphere HA许可,至少需要两台主机,为所有主机配置静态IP地址。如果使用的是DHCP,必须确保每台主机的地址在重新引导期间保留,否则会造成虚拟机网络中断。为了确保任何虚拟机都可以在群集内的任何主机上运行,所有主机都应该可以访问相同的虚拟机网络和数据存储。同样,虚拟机必须位于共享存储而非本地存储器上,否则在主机出现故障时它们将无法进行故障切换。
管理网络必须要有网络冗余,且主机的vSphere HA检测信号数据存储数目为2,如图: