高可靠性是 vSphere 的一个重要功能,vSphere 6.5 进一步增强了 HA 功能,为关键应用提供更周到的保护。
更多虚机重启优先级
当故障转移(failover)发生时,虚机重启优先级决定了虚机重启的先后顺序。需要重启的虚机被分配给还有空闲资源的服务器,高优先级的虚机被优先分配,然后是次一级优先级的虚机,直到所有的空闲资源用完。服务器然后按照优先顺序启动虚机,如果资源不够了,vSphere 会暂停重启动作,直到有足够的资源可用(因为有其他的虚机释放资源了)。
在 vSphere 6.5 中新增了两个虚机重启优先级(下面加黑的两个级别),让管理员有更多的配置选择,把虚机的优先等级分得更细。
- Highest
- High
- Medium
- Low
- Lowest
虚机重启顺序可控
一个多层应用 (Multi-Tiered Application) 是由多个虚机组成的,如数据库、应用服务器、Web 服务器等,这些虚机的启动应该有一个先后顺序,在一般的情况下,应该遵循数据库→应用服务器→Web服务器的顺序。vSphere 用 vApp 把这些虚机组成一组,作为一个整体来进行管理。管理员可以给 vApp 分配资源,把 vApp 作为一个整体来启动或关闭等。在 vApp 的配置中,通过指定每一个虚机启动的延迟时间来调整各个虚机的启动顺序。
vSphere 6.5 引入了虚机之间的依赖链机制来控制多层应用的启动,通过指定虚机之间的依赖关系来定义它们的启动顺序,这称之为顺序可控的重启(Orchestrated Restart)。在下图的例子中,APP 依赖于 DB,WEB 依赖于 APP,所以它们的启动顺序就如数字标识所示。vSphere 会检依赖链的有效性,避免产生无效的依赖关系:
- 循环依赖:例如下图中 DB 又依赖于 WEB;
- 依赖关系跟重启优先级相矛盾:例如下图中 APP 和 WEB 为高优先级,但是 DB 却被定义为低优先级。
主动预防系统故障
传统的 HA 都是被动的,只有当服务器故障时,才会把受保护的虚机故障转移 (failover) 到其他的服务器上去。现在主流的服务器厂商都提供了硬件系统的监控和预警功能,使得主动预防成为可能。vSphere 6.5 可以通过插件与以下服务器厂商的系统管理工具相集成,以实现主动预防式 HA (Proactive HA):
- Dell Openmanage
- HP Insight Manager
- Cisco UCS Manager
这些系统管理工具会把服务器的一些异常状况向 vSphere 告警,例如某个散热风扇发生故障,某块硬盘的读写故障率超出正常阈值范围等等。当这种告警发生时,意味着服务器处于亚健康状态,这时 vSphere 就会把这台服务器处于隔离模式(Quarantine mode),这意味着该服务器上不会再启动新的虚机,并且 vSphere 会尽可能地把该服务器上的虚机 vMotion 到其他健康服务器上去。
传统的 HA 是当服务器发生故障时才起作用,主动预防式 HA 把故障防患于未然,主动获取服务器的故障预警,在宕机发生之前就把应用负载转移到其他服务器上去,从而为企业关键应用提供更高等级的可靠性保护。