资源池是灵活管理资源的逻辑抽象。资源池可以分组为层次结构,用于对可用的 CPU 和内存资源按层次结构进行分区。

每个独立主机和每个 DRS 集群都具有一个(不可见的)根资源池,此资源池对该主机或集群的资源进行分组。根资源池之所以不显示,是因为主机(或集群)与根资源池的资源总是相同的。

用户可以创建根资源池的子资源池,也可以创建用户创建的任何子资源池的子资源池。每个子资源池都拥有部分父级资源,然而子资源池也可以具有各自的子资源池层次结构,每个层次结构代表更小部分的计算容量。

一个资源池可包含多个子资源池和/或虚拟机。您可以创建共享资源的层次结构。处于较高级别的资源池称为父资源池。处于同一级别的资源池和虚拟机称为同级。集群本身表示 root 资源池。如果不创建子资源池,则只存在根资源池。

在以下示例中,RP-QA 是 RP-QA-UI 的父资源池。RP-Marketing 与 RP-QA 是同级。紧靠 RP-Marketing 下面的三个虚拟机也是同级。

图 1. 资源池层次结构中的父级、子级和同级

此图显示资源池的层次结构。

对于每个资源池,均可指定预留、限制、份额以及预留是否应为可扩展。随后该资源池的资源将可用于子资源池和虚拟机。

注: 本章中“内存”是指物理内存。

为什么使用资源池?

通过资源池可以委派对主机(或集群)资源的控制权,在使用资源池划分集群内的所有资源时,其优势非常明显。可以创建多个资源池作为主机或集群的直接子级,并对它们进行配置。然后便可向其他个人或组织委派对资源池的控制权。

使用资源池具有下列优点。

  • 灵活的层次结构组织 — 根据需要添加、移除或重组资源池,或者更改资源分配。
  • 资源池之间相互隔离,资源池内部相互共享 — 顶级管理员可向部门级管理员提供一个资源池。某部门资源池内部的资源分配变化不会对其他不相关的资源池造成不公平的影响。
  • 访问控制和委派 — 顶级管理员使资源池可供部门级管理员使用后,该管理员可以在当前的份额、预留和限制设置向该资源池授予的资源范围内进行所有的虚拟机创建和管理操作。委派通常结合权限设置一起执行。
  • 资源与硬件的分离 — 如果使用的是已启用 DRS 的集群,则所有主机的资源始终会分配给集群。这意味着管理员可以独立于提供资源的实际主机来进行资源管理。如果将三台 2GB 主机替换为两台 3GB 主机,您无需对资源分配进行更改。

    这一分离可使管理员更多地考虑聚合计算能力而非各个主机。

  • 管理运行多层服务的各组虚拟机 — 为资源池中的多层服务进行虚拟机分组。您无需对每个虚拟机进行资源设置,相反,通过更改所属资源池上的设置,您可以控制对虚拟机集合的聚合资源分配。

例如,假定一台主机拥有多个虚拟机。营销部门使用其中的三个虚拟机,QA 部门使用两个虚拟机。由于 QA 部门需要更多的 CPU 和内存,管理员为每组创建了一个资源池。管理员将 QA 部门资源池和营销部门资源池的 CPU 份额分别设置为正常,以便 QA 部门的用户可以运行自动测试。CPU 和内存资源较少的第二个资源池足以满足营销工作人员的较低负载要求。只要 QA 部门未完全利用所分配到的资源,营销部门就可以使用这些可用资源。

下图中的数字显示了向资源池的有效分配。

图 2. 向资源池分配资源

下图显示了向资源池分配资源的方案。

创建资源池

可以创建任何 ESXi 主机、资源池或 DRS 集群的子资源池。

注: 如果已将某台主机添加到集群,将无法创建该主机的子资源池。如果已为 DRS 启用集群,则可以创建集群的子资源池。
创建子资源池时,系统将提示您输入资源池属性信息。系统使用准入控制确保您不能分配不可用的资源。如果您希望份额在添加或移除虚拟机时动态伸缩,则可以选择可扩展份额。
注: 份额在父级别进行扩展。默认情况下,从具有可扩展份额的父资源池创建的所有后代资源池都具有可扩展份额。

前提条件

vSphere Client 连接到 vCenter Server 系统。

过程

  1. vSphere Client 中,选择资源池的父对象(主机、其他资源池或 DRS 集群)。
  2. 右键单击对象,然后选择新建资源池
  3. 键入用来标识资源池的名称。
  4. 如果要启用可扩展份额,请选中该复选框。
  5. 指定 CPU 和内存资源的分配方式。

    资源池的 CPU 资源是主机为资源池预留的保证物理资源。通常,您接受默认值,并让主机处理资源分配。

    选项 描述
    份额 指定此资源池相对于父级的总资源的份额值。同级资源池根据由其预留和限制限定的相对份额值共享资源。
    • 选择正常,这三个级别分别按 1:2:4 这个比率指定份额值。
    • 选择自定义可为每个虚拟机提供表示比例权重的特定份额数。
    预留 为此资源池指定保证的 CPU 或内存分配量。默认值为“0”。

    非零预留将从父级(主机或资源池)的未预留资源中减去。这些资源被认为是预留资源,无论虚拟机是否与该资源池相关联也是如此。

    可扩展预留 选中此复选框(默认设置)后,会在接入控制过程中考虑可扩展预留。

    如果在该资源池中打开一台虚拟机的电源,并且虚拟机的总预留大于该资源池的预留,则该资源池可以使用父级或父项的资源。

    限制 指定此资源池的 CPU 或内存分配量的上限。您通常可以接受默认值(无限)。

    要指定限制,请取消选中无限复选框。

  6. 单击确定

结果

创建资源池后,即可向其添加虚拟机。虚拟机的份额与同一父资源池内的其他虚拟机(或资源池)相关。

示例: 创建资源池

假定有一个主机,提供 6 GHz 的 CPU 和 3 GB 的内存,这些 CPU 和内存必须在营销部门和 QA 部门间进行共享。还需要不均等地共享资源,并授予一个部门 (QA) 更高的优先级。通过为每个部门创建一个资源池并使用份额属性区分资源分配优先级,可完成此任务。

本示例展示了如何使用 ESXi 主机作为父资源来创建资源池。

  1. 新建资源池对话框中,键入 QA 部门的资源池的名称(例如,RP-QA)。
  2. 将 RP-QA 的 CPU 和内存资源份额指定为
  3. 创建第二个资源池 RP-Marketing。

    将 CPU 和内存的“份额”保留为正常

  4. 单击确定

如果存在资源冲突,则 RP-QA 接收 4GHz 和 2GB 的内存,RP-Marketing 接收 2GHz 和 1GB 的内存。否则,它们可以接收超过此分配的量。这些资源随后即可供各自资源池内的虚拟机使用。

编辑资源池

创建资源池后,可以编辑其 CPU 和内存资源设置。

过程

  1. vSphere Client中,浏览到资源池。
  2. 操作下拉菜单中选择编辑资源设置
  3. (可选) 您可以更改选定资源池的所有属性,如创建资源池中所述。
    • 如果要启用可扩展份额,请选中该复选框。
      注: 份额在父级别进行扩展。默认情况下,从具有可扩展份额的父资源池创建的所有后代资源池都具有可扩展份额。
    • CPU 下,选择 CPU 资源设置。
    • 内存下,选择内存资源设置。
  4. 单击确定保存更改。

将虚拟机添加到资源池

创建虚拟机时,可以在创建过程中指定资源池位置。也可以将现有的虚拟机添加到资源池。

将虚拟机移至新的资源池时:
  • 该虚拟机的预留和限制不会发生变化。
  • 如果该虚拟机的份额为高、中或低,份额百分比会有所调整以反映新资源池中使用的份额总数。
  • 如果已为该虚拟机指定了自定义份额,该份额值将保持不变。
    注: 由于份额分配是相对于资源池的,因此,当您将虚拟机移入资源池时可能必须手动更改虚拟机的份额,以便虚拟机的份额与新资源池中的相对值保持一致。如果虚拟机所占总份额的比例过大(或过小),将显示警告。
  • 监控下,资源预留选项卡中显示的有关资源池的预留和未预留 CPU 和内存资源的信息将发生变化,以反映与该虚拟机关联的预留(如果有)。
    注: 如果虚拟机已关闭电源或挂起,可以移动该虚拟机,但资源池的可用资源总量(例如预留和未预留的 CPU 和内存资源)不受影响。

过程

  1. vSphere Client 中,浏览到虚拟机。
    1. 要查找虚拟机,请选择数据中心、文件夹、集群、资源池或主机。
    2. 单击虚拟机选项卡。
  2. 右键单击虚拟机,然后单击迁移
    • 可以将虚拟机移到另一主机。
    • 可以将虚拟机的存储移到另一数据存储。
    • 可以将虚拟机移到另一主机,并将其存储移到另一数据存储。
  3. 选择要在其中运行该虚拟机的资源池。
  4. 检查选择内容,然后单击完成

结果

如果某个虚拟机已打开电源,且目标资源池的 CPU 或内存不足以保证该虚拟机的预留,移动操作将会失败,因为准入控制不允许该操作。一个错误对话框将显示可用资源与请求的资源,以便您可以考虑是否能够通过调整来解决此问题。

从资源池移除虚拟机

通过将虚拟机移动到另一个资源池或将其删除,可以从资源池中移除虚拟机。

从某个资源池中移除虚拟机时,与该资源池相关联的份额总数将减少,从而使每个剩余的份额代表更多资源。例如,假定您有一个有权使用 6 GHz 的资源池,其中包含三台份额设置为正常的虚拟机。假定虚拟机受 CPU 限制,每个虚拟机获得 2 GHz 的相等分配额。如果将其中一个虚拟机移至其他资源池,剩余的两个虚拟机将各获得 3GHz 的相等分配额。

过程

  1. vSphere Client 中,浏览到资源池。
  2. 选择下列方法之一将虚拟机从资源池移除。
    • 右键单击虚拟机,然后选择移至...,将虚拟机移到其他资源池。

      在移动虚拟机之前,无需关闭其电源。

    • 右键单击虚拟机,然后选择从磁盘删除

      必须关闭虚拟机电源才能将其完全移除。

移除资源池

您可以从清单中移除资源池。

过程

  1. vSphere Client 中,右键单击资源池,然后选择删除
    此时将显示确认对话框。
  2. 单击以移除资源池。

资源池接入控制

在资源池内打开虚拟机电源时,或尝试创建子资源池时,系统会执行其他接入控制以确保不违反资源池的限制。

在打开虚拟机的电源或创建资源池之前,请使用 vSphere Client 中的资源预留选项卡来确保有足够的资源可用。CPU 和内存的可用预留值显示了未预留的资源。

如何计算可用的 CPU 和内存资源以及是否执行操作取决于预留类型

表 1. 预留类型
预留类型 描述
固定 系统检查所选资源池是否有足够的未预留资源。如果有,则可以执行操作。否则将显示一条消息,而且无法执行操作。
可扩展

(默认)

系统考虑所选资源池及其直接父资源池中的可用资源。如果对于父资源池也选中了可扩展预留选项,它还可以从其父资源池中借用资源。只要选中了可扩展预留选项,就会以递归方式向当前资源池的祖先借用资源。将该选项保持选中状态可提供更高的灵活性,但提供的保护将会同时减少。子资源池所有者预留的资源可能大于您的预期值。

系统不允许违反预先配置的预留限制设置。每次重新配置资源池或打开虚拟机电源时,系统都会验证所有参数以确保仍能实现各服务级别保证。

可扩展预留示例 1

此示例显示了具有可扩展预留的资源池的工作方式。

假定某个管理员负责管理资源池 P,并定义了两个子资源池 S1 和 S2,分别用于两个不同的用户(或组)。

该管理员知道用户将要打开具有预留的虚拟机的电源,但不知道每个用户需要预留多少资源。为 S1 和 S2 设置可扩展预留可使管理员更加灵活地共享和继承资源池 P 的公用预留。

如果不使用可扩展预留,管理员需要向 S1 和 S2 明确分配具体的资源量。这种具体的分配可能欠缺灵活性,特别是在较深的资源池层次结构中,并且可能使资源池层次结构中的预留设置操作复杂化。

可扩展预留会造成缺少严格的隔离。S1 可使用 P 的全部预留启动,致使 S2 无法直接使用任何 CPU 或内存资源。

可扩展预留示例 2

此示例显示了具有可扩展预留的资源池的工作方式。

假定以下情形,如图所示。

  • 父资源池 RP-MOM 具有 6 GHz 的预留及一台预留了 1 GHz 的运行中的虚拟机。
  • 您创建了一个具有 2 GHz 预留的子资源池 RP-KID,并选中可扩展预留
  • 您向子资源池添加两个各具有 2 GHz 预留的虚拟机(即 VM-K1 和 VM-K2),并尝试打开其电源。
  • VM-K1 可直接从 RP-KID(具有 2 GHz)预留资源。
  • VM-K2 没有本地资源可用,因此它将从父资源池 RP-MOM 中借用资源。RP-MOM 现有资源为 6 GHz 减去 1 GHz(由虚拟机预留)再减去 2 GHz(由 RP-KID 预留),剩下 3 GHz 的未预留资源。利用 3 GHz 的可用资源,您可以打开这个 2 GHz 虚拟机的电源。
    图 3. 可扩展资源池的接入控制:成功打开电源

    这是可扩展资源池和已成功打开电源的虚拟机的接入控制。

现在假设另一个包含 VM-M1 和 VM-M2 的应用场景。

  • 打开 RP-MOM 中总预留为 3 GHz 的两个虚拟机的电源。
  • 您依然可打开 RP-KID 中的 VM-K1 的电源,因为本地有 2 GHz 可用。
  • 当您尝试打开 VM-K2 的电源时,RP-KID 已无未预留的 CPU 容量,因此会检查其父级。RP-MOM 只有 1 GHz 的未预留容量可用(RP-MOM 的 5 GHz 已被占用 — 3 GHz 由本地虚拟机预留,2 GHz 由 RP-KID 预留)。因此,您无法打开需要 2 GHz 预留的 VM-K2 的电源。
    图 4. 可扩展资源池的接入控制:无法打开电源

    这是无法打开电源的虚拟机的可扩展资源池的接入控制。