可以将 vSphere HA 配置为通过预留特定百分比的群集 CPU 和内存资源来执行准入控制,用于从主机故障中进行恢复。

使用此准入控制类型,vSphere HA 可确保预留特定百分比的 CPU 和内存资源总量用于进行故障切换。

使用群集资源百分比选项,vSphere HA 可强制执行下列准入控制:

  1. 计算群集内所有已打开电源虚拟机的总资源要求。

  2. 计算可用于虚拟机的主机资源总数。

  3. 计算群集的“当前的 CPU 故障切换容量”和“当前的内存故障切换容量”。

  4. 确定“当前的 CPU 故障切换容量”或“当前的内存故障切换容量”是否小于对应的“配置的故障切换容量”(由用户提供)。

    如果是,则准入控制不允许执行此操作。

vSphere HA 将使用虚拟机的实际预留。如果虚拟机没有预留(即预留量为 0),则会应用默认设置(0MB 内存和 32MHz CPU)。

注:

准入控制的群集资源百分比选项还会检查群集中是否至少有两个启用了 vSphere HA 的主机(不包括正在进入维护模式的主机)。如果只有一个已启用 vSphere HA 的主机,即使可以使用足够的资源百分比,也不允许执行此操作。进行此次额外检查的原因在于如果群集中只有一个主机,则 vSphere HA 无法进行故障切换。

计算当前故障切换容量

已打开电源的虚拟机的总资源要求由两个组件组成,即 CPU 和内存。vSphere HA 将计算这些值。

  • CPU 组件值的计算方法是:加总已打开电源虚拟机的 CPU 预留。如果没有为虚拟机指定 CPU 预留,则系统会为其分配一个默认值 32MHz(可以使用 das.vmcpuminmhz 高级选项更改此值)。

  • 内存组件值的计算方法是:加总每台已打开电源虚拟机的内存预留(以及内存开销)。

计算出主机的 CPU 和内存资源总和,从而得出虚拟机可使用的主机资源总数。这些值包含在主机的根资源池中,而不是主机的总物理资源中。不包括用于虚拟化目的的资源。只有处于连接状态、未进入维护模式而且没有 vSphere HA 错误的主机才列入计算范畴。

先用主机 CPU 资源总数减去总 CPU 资源要求,然后再用这个结果除以主机 CPU 资源总数,从而计算出“当前的 CPU 故障切换容量”。“当前的内存故障切换容量”的计算方式与之相似。

使用群集资源百分比进行准入控制

示例中展示了使用此准入控制策略计算和使用“当前故障切换容量”的方式。对群集进行如下假设:

  • 群集包括三台主机,每台主机上可用的 CPU 和内存资源数各不相同。第一台主机 (H1) 的可用 CPU 资源和可用内存分别为 9 GHz 和 9 GB,第二台主机 (H2) 为 9 GHz 和 6 GB,而第三台主机 (H3) 则为 6 GHz 和 6 GB。

  • 群集内存在五个已打开电源的虚拟机,其 CPU 和内存要求各不相同。VM1 所需的 CPU 资源和内存分别为 2 GHz 和 1 GB,VM2 为 2 GHz 和 1 GB,VM3 为 1 GHz 和 2 GB,VM4 为 1 GHz 和 1 GB,VM5 则为 1 GHz 和 1 GB。

  • CPU 和内存的已配置故障切换容量都设置为 25%。

图 1. 使用“预留的群集资源的百分比”策略的准入控制示例
此处是使用“预留的群集资源的百分比”策略的准入控制示例。

已打开电源的虚拟机的总资源要求为 7 GHz CPU 和 6 GB 内存。可用于虚拟机的主机资源总数为 24 GHz CPU 和 21 GB 内存。根据上述情况,“当前的 CPU 故障切换容量”为 70% ((24GHz - 7GHz)/24GHz)。同样,“当前的内存故障切换容量”为 71% ((21GB-6GB)/21GB)。

由于群集的“配置的故障切换容量”设置为 25%,因此仍然可使用 45% 的群集 CPU 资源总数和 46% 的群集内存资源打开其他虚拟机电源。