ESXi服务器发生故障后,VMware的vSphere HA将会快速重启受影响的虚拟机。但是启动虚拟机所需的资源足够用吗?如果不足,可能无法交付必需的虚拟机性能。虚拟化管理员应正确配置vSphere HA,保护虚拟化应用的性能,确保业务价值的实现。
vSphere HA特性最早在ESX 3中引入,硬件出错或者管理员误操作后,能够恢复受影响的虚拟机。正是这些特性使vSphere成为了标准的企业虚拟化平台。
vSphere HA解决了虚拟化的一个主要的关注点:当10个、20个或者100个虚拟机运行在单台ESXi服务器上时存在的脆弱性。在虚拟化之前,单台物理服务器故障只会影响一个应用。现在单台物理服务器可能会承载30个应用。如果ESXi服务器发生故障,HA将会快速重启虚拟机,将硬件故障带来的影响降至最低。
但是vSphere HA只保护预留的资源,因此在配置vSphere高可用性环境时,设置合理的预留值是非常重要的一部分。既然vSphere HA保护为虚拟机预留的资源,那么设置预留值将非常重要;否则在硬件发生故障时虚拟机性能将受到影响。
这是一个常见的误解:HA并不保护虚拟机所消耗的资源,只保护设置的预留资源。如果预留资源不够,将无法保证性能。
如何确保虚拟机正确重启
虚拟化管理员配置HA集群,主设置决定了是否针对故障提供保护以及预留多少资源来应对服务器故障。在生产环境中,你总想使用访问控制设置来应对故障。你应该在访问控制策略设置中预留足够多的资源来应对故障。进行了上述设置后,如果其中一台主机发生故障,能够确保正在运行的虚拟机正常重启。
我们无法确定虚拟机重启之后的性能以及集群中其他虚拟机的性能状况,因为这些虚拟机共享着同一个资源池。这是因为ESXi主机默认并不保证向虚拟机交付任何的CPU或者内存;除非设置了资源预留值否则不会为虚拟机预留任何资源。
在之前的文章《利用优先级列表提升关键虚拟机性能:设定恰当的预留值》中,我们讨论了预留的重要性。预留确保了虚拟机获取到了交付相应的服务级别所需要的最小资源数量。在你使用vCenter启动虚拟机时,在配置完故障级别后HA集群将检查是否有足够多未预留的资源。如果预留值为零,HA将允许你开启大量的虚拟机,但可用的资源将会减少或者虚拟机性能将会下降。
在问题出现前,通过限制正在运行的虚拟机的数量可以确保在主机发生故障后虚拟机能够交付所必需的性能。但更好的方式是为虚拟机配置预留值。为虚拟机设置预留值后,你可能会发现HA不允许你在集群中启动太多的虚拟机,而且ESXi服务器的资源利用率也不会非常高。如果主机出现故障,虚拟机的性能级别将不会受到影响,特别是具有高预留值的运行关键业务虚拟机。关键虚拟机对业务的重要性表明ESXi服务器发生故障将对业务连续性产生不小的影响。
当集群中优先级低的虚拟机较多时,为虚拟机设置的预留值较低,你可能仍会看到ESXi主机硬件资源的利用率较为正常,因为在ESXi服务器发生故障时这些虚拟机占用的资源较少,仍能够继续运行。