可以将 vSphere HA 配置为允许指定的主机故障数目。使用“群集允许的主机故障数目”接入控制策略,vSphere HA 允许指定数目的主机出现故障,同时可以确保群集内留有足够的资源来对这些主机上的虚拟机进行故障切换。

使用“群集允许的主机故障数目”策略,vSphere HA 以下列方式执行接入控制:

  1. 计算插槽大小。

    插槽是内存和 CPU 资源的逻辑表示。默认情况下,会调整插槽的大小来满足群集中任何已打开电源虚拟机的要求。

  2. 确定群集内每台主机可以拥有的插槽数目。

  3. 确定群集的当前故障切换容量。

    这是可以发生故障并仍然有足够插槽满足所有已打开电源虚拟机的主机的数目。

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

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

注:

您可以从 vSphere Web Client 中 vSphere HA 设置的接入控制部分设置 CPU 和内存的特定插槽大小。

插槽大小计算

插槽大小由两个组件(CPU 和内存)组成。

  • vSphere HA 计算 CPU 组件的方法是先获取每台已打开电源虚拟机的 CPU 预留,然后再选择最大值。如果没有为虚拟机指定 CPU 预留,则系统会为其分配一个默认值 32 MHz。可以使用 das.vmcpuminmhz 高级选项更改此值。)

  • vSphere HA 计算内存组件的方法是先获取每台已打开电源虚拟机的内存预留和内存开销,然后再选择最大值。内存预留没有默认值。

如果群集内虚拟机的预留值大小不一致,则会影响插槽大小的计算。为避免出现这种情况,可以使用 das.slotcpuinmhzdas.slotmeminmb 高级选项分别指定插槽大小的 CPU 或内存组件的上限。请参见vSphere HA 高级选项

您也可以通过查看需要多个插槽的虚拟机数来确定群集中资源碎片的风险。可以从 vSphere Web Client 中 vSphere HA 设置的接入控制部分对此进行计算。如果已使用高级选项指定了固定插槽大小或最大插槽大小,则虚拟机可能需要多个插槽。

使用插槽数目计算当前故障切换容量

计算出插槽大小后,vSphere HA 会确定每台主机中可用于虚拟机的 CPU 和内存资源。这些值包含在主机的根资源池中,而不是主机的总物理资源中。可以在 vSphere Web Client 中主机的摘要选项卡上查找 vSphere HA 所用主机的资源数据。如果群集中的所有主机均相同,则可以用群集级别指数除以主机的数量来获取此数据。不包括用于虚拟化目的的资源。只有处于连接状态、未进入维护模式且没有任何 vSphere HA 错误的主机才列入计算范畴。

然后,即可确定每台主机可以支持的最大插槽数目。为确定此数目,请用主机的 CPU 资源数除以插槽大小的 CPU 组件,然后将结果化整。对主机的内存资源数进行同样的计算。然后,比较这两个数字,较小的那个数字即为主机可以支持的插槽数。

通过确定可以发生故障并仍然有足够插槽满足所有已打开电源虚拟机要求的主机的数目(从最大值开始)来计算当前故障切换容量。

高级运行时信息

如果选择“群集允许的主机故障数目”接入控制策略,高级运行时信息窗格会在 vSphere Web Client 中群集的监控选项卡上的 vSphere HA 区域中显示。该窗格将显示以下关于群集的信息:

  • 插槽大小。

  • 群集内的插槽总数。群集内正常主机所支持的插槽总数。

  • 已使用的插槽数。分配给已打开电源的虚拟机的插槽数目。如果已使用高级选项定义插槽大小的上限,则此数目可以大于已打开电源的虚拟机的数目。这是因为有些虚拟机会占用多个插槽。

  • 可用插槽数。可用于打开群集内其他虚拟机的电源的插槽数量。vSphere HA 保留故障切换所需的插槽数量。剩余的插槽可用于打开新虚拟机电源。

  • 故障切换插槽数。除已使用的插槽和可用插槽之外的插槽总数。

  • 群集中已打开电源虚拟机的总数。

  • 群集中的主机总数。

  • 群集内正常主机的总数。处于连接状态、未进入维护模式而且没有 vSphere HA 错误的主机数目。

使用“群集允许的主机故障数目”策略的接入控制

示例中展示了使用此接入控制策略计算和使用插槽大小的方式。对群集进行如下假设:

  • 群集包括三台主机,每台主机上可用的 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。

  • “群集允许的主机故障数目”设置为 1。

图 1. 使用“群集允许的主机故障数目”策略的接入控制示例
此处是使用“群集允许的主机故障数目”策略的接入控制示例。
  1. 比较虚拟机的 CPU 和内存要求,然后选择最大值,从而计算出插槽大小。

    最大 CPU 要求(由 VM1 和 VM2 共享)为 2 GHz,而最大内存要求(针对 VM3)为 2 GB。根据上述情况,插槽大小为 2 GHz CPU 和 2 GB 内存。

  2. 由此可确定每台主机可以支持的最大插槽数目。

    H1 可以支持四个插槽。H2 可以支持三个插槽(取 9GHz/2GHz 和 6GB/2GB 中较小的一个),H3 也可以支持三个插槽。

  3. 计算出当前故障切换容量。

    最大的主机是 H1,如果它发生故障,群集内还有六个插槽,足够供所有五个已打开电源的虚拟机使用。如果 H1 和 H2 都发生故障,群集内将仅剩下三个插槽,这是不够用的。因此,当前故障切换容量为 1。

群集内可用插槽的数目为 1(H2 和 H3 上的六个插槽减去五个已使用的插槽)。