VMware除了在vSphere 6.5中增加了少量新功能外,还对已有的功能进行了重大更新,资源管理服务包括分布式资源调度以及高可用性旧貌换新颜。在本文中我们将探讨下vSphere 6.5升级的部分功能。
全新的准入控制默认设置
直到vSphere 6,准入控制的默认设置是使用高可用性插槽计算,设置可容忍的出现故障的主机数。这一插槽计算在虚拟机预留值差异性非常大的环境中遇到了问题。例如,如果部分虚拟机没有设置预留值,而一些虚拟机设置了8GB的预留值,这会导致内存大小为4GB的虚拟机占用8GB的插槽。
在之前vSphere版本中,你还可以使用基于百分比的设置,但该方法往往导致用户过度使用集群,因为用户设置的百分比太低了。更糟糕的是,在众多部署中,准入控制策略会提示没有资源可用,导致管理员完全禁用了该功能。
如图A所示,该默认设置已经被更改为使用集群资源百分比设置,那么VMware将基于你能够容忍的故障主机数选择百分比。例如,在四节点集群中,百分比是25%—这意味着一台主机故障不会影响集群的可用性。
图A.使用集群资源百分比设置定义主机故障数
发生故障后以预先确定的顺序启动虚拟机
当ESXi主机出故障后,正在该主机上运行的虚拟机自动在另一台主机上重启。这非常棒,但当一台虚拟机依赖于另一台虚拟机加载的服务时,这时加载应用堆栈可能会出故障而且在出现故障后服务将无法恢复。
在vSphere 6.5中,你可以配置一系列的虚拟机先后启动的依赖关系。该功能被称为协调重启,一个典型的用例是分层应用。你需要在应用服务器连接数据库服务器前,先启动数据库服务器,当应用服务器虚拟机完全加载后,就到了启动Web服务器的时间。另一个例子是在启动其他机器前先启动特定的基础设施设备,域控制器、DNS或者DHCP服务器。
在使用重启优先级时可以使用该功能,但并未针对准确的重启顺序或者启动延迟进行细粒度的控制。
使用这一全新的功能你可以使用全新命名的虚拟机/主机规则VM2VM配置虚拟机相关性。如图B所示,定义了一个规则,在启动数据库虚拟机组中的虚拟机前启动位于基础设施虚拟机组中的虚拟机。
使用全新命名的虚拟机/主机规则VM2VM配置虚拟机相关性
当有许多虚拟机需要启动,且存在较大的依赖关系链时,那么将所有虚拟机分组,并针对所有分组制订规则是非常重要的。没有位于分组内的虚拟机将会随机启动。三个分组的完整列表可能如图C所示。在基础设施虚拟机启动后,数据库服务器将会启动。然后应用服务器将会在第二个阶段启动,Web服务器将会在第三阶段启动。
已创建的虚拟机/主机规则
在打算使用该特性前必须先进行配置。出现故障时,只有在位于上一阶段的虚拟机启动并能够对外提供服务后下一阶段的虚拟机才会启动。虚拟机优先级设置也采取上述策略:如果高优先级的所有虚拟机都启动了,高可用性将继续启动低优先级的虚拟机。
然而,仅仅是因为虚拟机启动并不意味着虚拟机上的操作系统或应用准备就绪了。因此,配置全新的虚拟机依赖重启条件设置并在条件满足时以允许配置HA进入下一阶段是非常重要的。在上述设置下,可以选择客户机心跳检测。一旦VMware Tools启动,条件就会触发。但这仍不能保证应用正在运行。为解决该问题,如图D所示,可以选择虚拟机依赖重启条件设置下的应用心跳检测选项。
当vSphere可用性从一个优先级进入另一优先级时,将会用重启条件。因此即使没有配置任何规则,在每个HA集群中重启条件都是非常重要的。
图D.使用虚拟机依赖重启条件设置
监控应用状态功能一般不会用到,尤其是在VMware停止开发vSphere App HA产品并宣布在2015年终止该产品后。但启用该功能的API接口已经被升级,可以在vSphere 6.5中使用。
使用该功能需要用到的产品之一是Veritas ApplicationHA。然而,大多数用户并没有一款这样的产品。因此无法做到100%的依赖性检查。数据库服务器初始化时间过长,超出VMware Tools报告的时间并不罕见。这会导致下一阶段的虚拟机在依赖应用就绪前就启动了。为解决该问题,某些管理员自己编写了脚本,在启动关联机器上的应用或服务前,先检查其他服务器或服务是否可用。