浅谈vSphere高可用性

■ 文/ 天云软件 吴亚松

vSphere 高可用性自发布以来就备受企业用户关注,它具有易操作,低成本,高可用的优点。也不像传统的应用集群技术,需要提供额外的备用硬盘或分层软件。企业可以低成本的利用VMware这特性为服务提供连续性,避免长时间宕机而造成不必要的损失。

谈及HA,这里介绍下vSphere的两大核心组件:ESXi和vCenter Server

  • ESXi

ESXi就是Hypervisor,类似操作系统,直接安装在裸设备上,可以实现虚拟化核心功能的软件,实现一台物理机上可并发运行多个操作系统。

  • vCenter Server

现实生产环境中,通常有很多台ESXi主机,而vCenter Server可以将众多的ESXi主机组成集群进行统一管理,避免了不同ESXi主机间来回切换的麻烦。与ESXi不同之处在于,vCenter Server有两个版本:window版本和Linux appliance版本(区别后面介绍)。

集群

谈及到vSphere高可用性,这里需要熟悉vSphere中集群的概念。在vSphere中,vCenter Server将多台ESXi主机组织起来,作为一个集群(Cluster)来组成一个更大的资源池,利用vSphere的高可用性,可以实现虚拟机在集群内ESXi主机上迁移。

vSphere的集群功能主要有以下几类

  • DRS:分布式资源调度

主要用于动态调整Cluster内ESXi主机的负载,主动实现把负载较重的ESXi主机上的虚拟机动态迁移到其它负载较轻的ESXi主机上,最终实现Cluster中ESXi主机资源的消耗平衡。

  • HA:高可用性

主要用于意外情况下,资源的动态切换。当监控到Cluster中的主机或者虚拟机出现意外故障时,可以在其它ESXi主机上启动故障机器承载的虚拟机。

  • DPM:分布式电源管理

分布式电源管理,用于在负载较轻时,把虚拟机动态“集中”到Cluster中的少部分主机上,然后把其它ESXi主机待机,以节省电力消耗,等负载较大时,再重新唤醒之前待机的主机。

一、 配置集群 vSphere HA属性

那么具体如何在vSphere中保证服务的高可用性呢?主要是通过vSphere HA、Fault Tolerance(FT)两种技术来提拱服务中断快速恢复能力和服务连续性能力来保证关键服务的高可用性。

在集群的功能页属性菜单里,打开vSphere HA功能。利用vSphere HA功能来实现集群的ESXi主机或主机承载虚拟机出现意外情况时,由首选主机及时在集群内选择合适ESXi主机来重启故障主机所承载虚拟机,防止ESXi主机故障或虚拟机及应用程序故障,以此来提高服务的可靠性、可用性。利用vSphere HA功能主要对ESXi主机监控、虚拟机等监控。

  • ESXi主机状态监控

创建 vSphere HA 群集时,会自动选择一台主机作为首选主机。首选主机可与 vCenter Server 进行通信,并监控所有受保护的虚拟机以及从属主机的状态。可能会发生不同类型的主机故障,首选主机必须检测并相应地处理故障。首选主机必须可以区分故障主机与处于网络分区中或已与网络隔离的主机。因为集群HA必须是共享存储,当A主机异常时,B主机则会A主机上的虚拟机文件拷贝一份,重新在B主机上运行(前提条件为B主机资源充足)。从而避免因ESXi主机故障所导致承载业务中断。当ESXi主机处于隔离网络时,会检查存储数据信号。

  • 虚拟机和应用程序监控

针对该类故障,主要是通过安装vmware代理工具,与vCenter  Server互相发送心跳检测信号。如果vCenter Server在规定周期内未收到该虚拟机或应用程序的心跳检测信号,则认为该虚拟机或应用异常,由vCenter Server负责重启虚拟机及应用。(针对6.x版本,需要在虚拟机监控手动设置何种监控)

同时,应根据实际生产情况,动态调整vSphere HA监控灵敏度,高灵敏度,更有助于监控到虚拟机及应用的异常,快速实现虚拟机及应用的重启。

vSphere HA高可用性要求

  • 集群内主机必须获得vSphere HA许可。
  • 集群内至少具备两台ESXi主机。
  • 需要为ESXi主机分配静态IP。
  • 为了使虚拟机监控工作,必须安装VMware Tools。
  • 所有ESXi主机连接公共管理网络,建议为所有ESXi主机提供冗余的公共管理网络。
  • 确保ESXi主机可以访问相同的虚拟网络及数据存储,确保虚拟机迁移成功。

vSphere HA高可用性优势:

随着大数据时代的到来,当前绝大数服务要求高可靠性,高可用性。相较于传统的服务器备份方案,要求额外存储,专业的管理软件,甚至于后期的专业人员维护。

vSphere HA 利用配置为群集的多台 ESXi 主机,为虚拟机中运行的应用程序提供快速中断恢复和具有成本效益的高可用性。

  • 通过在群集内的其他主机上重新启动虚拟机,防止服务器故障。
  • 通过持续监控虚拟机并在检测到故障时对其进行重新设置,防止应用程序故障。

与其他群集解决方案不同,vSphere HA 提供基础架构并使用该基础架构保护所有工作负载:

  • 无需在应用程序或虚拟机内安装特殊软件。所有工作负载均受 vSphere HA 保护。配置 vSphere HA 之后,不需要执行操作即可保护新虚拟机。它们会自动受到保护。
  • 可以将 vSphere HA 与 vSphere Distributed Resource Scheduler (DRS) 结合使用以防止出现故障,以及在群集内的主机之间提供负载平衡。
  • 有效保证大部分关键应用程序的可用性。
  • 有助于将非计划的应用程序宕机时间降至最低。

与传统的故障切换解决方案相比,vSphere HA 具有多个优势: 

  • 最小化设置

设置 vSphere HA 群集之后,群集内的所有虚拟机无需额外配置即可获得故障切换支持。

  • 减少了硬件成本和设置

虚拟机可充当应用程序的移动容器,可在主机之间移动。管理员会避免在多台计算机上进行重复配置。使用 vSphere HA 时,必须拥有足够的资源来对要通过 vSphere HA 保护的主机数进行故障切换。但是,vCenter Server 系统会自动管理资源并配置群集。

  • 提高了应用程序的可用性

虚拟机内运行的任何应用程序的可用性变得更高。虚拟机可以从硬件故障中恢复,提高了在引导周期内启动的所有应用程序的可用性,而且没有额外的计算需求,即使该应用程序本身不是群集应用程序也一样。通过监控和响应 VMware Tools 检测信号并重新启动未响应的虚拟机,可防止客户机操作系统崩溃。

  • DRS 和 vMotion 集成

如果主机发生了故障,并且在其他主机上重新启动了虚拟机,则 DRS 会提出迁移建议或迁移虚拟机以平衡资源分配。如果迁移的源主机和/或目标主机发生故障,则 vSphere HA 会帮助从该故障中恢复。

二、配置vSphere Fault Tolerance 提供连续可用性

上文中提到集群开启vSphere HA后,当ESXi主机或虚拟机异常时,会重启虚拟机来提供基本的可用性保证。但因为资源或负载等原因,虚拟机的重启可能几分钟到十几分钟,这个时间的不确定性,对一些实时性要求较高的服务则无法保证要求。

我们可以为关键虚拟机开启vSphere Fault Tolerance功能,系统会为主虚拟机创建和维护一份辅助虚拟机,该虚拟机会以虚拟锁步(vLockstep)方式随主虚拟机一起运行。VMware vLockstep 可捕获主虚拟机上发生的输入和事件,并将这些输入和事件发送到正在另一主机上运行的辅助虚拟机,辅助虚拟机的执行将等同于主虚拟机的执行。因为辅助虚拟机与主虚拟机一起以虚拟锁步方式运行保证主虚拟机及辅助虚拟机的一致性。在故障情况下,随时替换主虚拟机,提供容错保护,进一步保证服务的连续性实时性。

吴亚松

在使用 Fault Tolerance 之前,必须满足以下群集要求。

  • 主机证书检查功能已启用。(默认启用—主页—vMotion设置—ssl设置)
  • 至少有两台通过FT 认证的主机运行相同的 Fault Tolerance 版本号或主机内部版本号
  • ESXi 主机可以访问相同的虚拟机数据存储(SAN、NAS、ISCSI)和网络。
  • 配置了Fault Tolerance 日志记录和 vMotion 网络(DRS负载用)
  • vSphere HA 群集已创建并启用。
  • 最好与DRS功能配合使用,可以实现负载均和故障恢复相结合。

同时需要注意使用FT功能会限制vSphere相关功能:

  • 虚拟机必须存储在厚置备模式的虚拟机磁盘中。
  • 不支持虚拟机快照。
  • 不支持虚拟机存储迁移。
  • 不支持虚拟机备份功能(备份数据,需要删除)。
  • 集群内主机最大容错虚拟机数量为4。
  • 容错虚拟机的vCpu数量,在x中为1个,而6.x版本为4个。

关于vCenter版本选择

VMware vCenter已经成为虚拟基础框架的核心以及任何软件定义数据中必要组建之一。VMware推出了一款基于Linux appliance的vCenter,可以简化部署和管理流程。现在Linux appliance已经逐渐成熟,能够支持小型业务或者企业,并且包含了所有功能。那么作为企业用户该如何选择?

  • 安装流程

在体验virtual appliance的简易部署流程之后,任何Windows安装方式都会显得过于繁琐。尽管Windows安装过程仅仅需要多次单击“下一步”按钮,但是appliance仍然在安装流程方面占据优势。

  • 扩展性

在使用嵌入式内置数据库时,Linux appliance与window版本支持主机和虚拟机数量是一致的。Virtual appliance只支持Oracle,而Windows版本的vCenter能够支持Oracle或者SQL。值得注意的是:Oracle并未为Virtual appliance提供维护与支持,但是VMware对SQL提供官方支持。

vCenter的这两种模型在安装完成之后都很少需要进行维护。两种产品都能够通过Web浏览器或者Windows服务来启动或者重启服务。vCenter本身功能并未有太大区别,区别在于所依赖的操作系统本身。Linux的稳定性相比window拥有更好的口碑,但是window拥有更多的用户,相应也会有更多的支持。

  • 成本开销

众所周知,window是收费的,但是Linux appliance版本的vCenter并不需要使用Windows授权。