你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

按需产能预留

适用于:✔️ Linux VM ✔️ Windows VM ✔️ 统一规模集 ✔️ 灵活规模集

通过按需产能预留,可将 Azure 地区或可用性区域中的计算产能预留任意一段时间。 与预留实例不同,你无需注册一年或三年期承诺。 可以随时创建和删除预留,并且可以完全控制预留管理方式。

创建产能预留后,就可以立即使用资源。 在删除预留之前,容量将一直预留。

产能预留具有一些始终在创建时定义的基本属性:

  • VM 大小:每个预留用于一个虚拟机 (VM) 大小。 示例为 Standard_D2s_v3
  • 位置:每个预留用于一个位置(地区)。 如果该位置具有可用性区域,则预留还可指定其中一个区域。
  • 数量:每个预留都有一个要预留的实例数量。

若要创建产能预留,这些参数将作为容量请求传递到 Azure。 如果 Azure 不能提供符合请求的可用容量,预留部署将会失败。 如果你没有足够的订阅配额,部署将会失败。 可以请求更高的配额,或尝试使用不同的 VM 大小、位置或区域组合。

Azure 接受你的预留请求后,具有匹配配置的 VM 就可使用预留。 若要使用产能预留,VM 必须在其属性中指定预留。 否则不会使用产能预留。 这种设计的一个好处是,你可仅使关键工作负载面向预留,其他非关键工作负载可在不使用预留容量的情况下运行。

产能预留的优势

  • 部署后,容量会保留供你使用,并且在适用服务级别协议 (SLA) 的范围内使用可用。
  • 可随时部署和删除容量,无需期限承诺。
  • 容量可自动与预留实例组合来享用期限承诺折扣。

产能预留的 SLA

请阅读产能预留的 SLA 中的 SLA 详细信息。

对 SLA 的任何索赔都需要计算预留容量的“不可用分钟数”。 下面是如何计算“不可用分钟数”的示例:

  • 某个按需产能预留的总容量为 5 个预留单位。 按需产能预留最初处于“未使用的容量”状态,其“分配的 VM 数”为 0 个。
  • 为按需产能预留分配了“支持的部署”数量 5。 其中 3 个 VM 分配成功,2 个失败并出现 VM 容量错误。 结果是 2 个预留单位开始累积“不可用分钟数”。
  • 有 20 分钟未执行任何操作。 结果是 2 个预留单位累积的“不可用分钟数”都是 15。
  • 在第 20 分钟时,尝试支持的部署数量为 2。 一个 VM 成功,另一个 VM 失败并出现 VM 容量错误。 结果是一个预留单位的累积“不可用分钟数”保留为 15。 另一个预留单位恢复累积“不可用分钟数”。
  • 以 10 分钟间隔进行数量为 1 的额外四次支持部署。 在第四次尝试(首次容量错误后 60 分钟)时部署了 VM。 结果是最后一个预留单位增加了 40 分钟的不可用分钟数(4 次尝试 x 每两次尝试间隔 10 分钟),总不可用分钟数为 55。

下面根据此不可用分钟数的示例累积结果计算服务额度:

  • 一个预留单位累积了 15 分钟的停机时间。 正常运行时间百分比为 99.97%。 此预留单位没有资格享受服务额度。
  • 另一个预留单位累积了 55 分钟的停机时间。 正常运行时间百分比为 99.87。 此预留单位有资格享受 10% 的服务额度。

限制和局限

  • 创建产能预留需要配额,方式与创建 VM 时一样。

  • 创建产能预留目前仅限于特定的 VM 系列和大小。 计算资源 SKU 列表公布了受支持 VM 大小的集合。

  • 以下 VM 系列支持创建产能预留:

    • Av2
    • B
    • Bpsv2
    • Bsv2 (Intel) 和 Basv2 (AMD)
    • D 和 Ds 系列 v2 及更高版本;AMD 和 Intel
    • Dadsv5
    • Dav4 系列
    • Dasv4 及更高版本
    • Ddv4 和 v5 系列
    • Dds 系列、v4 及更高版本
    • Dlsv5 及更高系列
    • Dldsv5 及更高系列
    • DCsv2 系列
    • DCasv5 和 DCadsv5 系列
    • DCesv5 和 DCedsv5 系列
    • ECasv5 和 ECadsv5 系列
    • ECesv5 和 ECedsv5 系列
    • Dplsv5 及更高系列
    • Dps 和 Dpds 系列、v5 及更高版本
    • Dplds 系列、v5 及更高版本
    • Eps 和 Epds 系列、v5 及更高版本
    • E 系列所有版本;AMD 和 Intel
    • Eav4 和 Easv4 系列
    • Easv5 和 Eadsv5 系列
    • Ebdsv5 和 Ebsv5 系列
    • Ed 和 Eds 系列、v4 及更高版本
    • F 系列所有版本
    • Fx 系列
    • Lsv3 (Intel) 和 Lasv3 (AMD)

    部署 VM 时,最多可以使用 Azure 虚拟机规模集将容错域 (FD) 计数设置为 3。 FD 超过 3 个的部署无法针对产能预留进行部署。

  • 在以下 VM 系列的产能预留的 VM 部署中,可以使用虚拟机规模集将 FD 计数设置为 1。 FD 超过 1 个的部署无法针对产能预留进行部署:

    • NC 系列、V3
    • NCasT4_v3 系列
    • NCADSA10_v4 系列
    • NC_A100_v4 系列
    • NV 系列、v3 及更高版本
    • NVadsA10_v5 系列
    • NGads V620_v1 系列
    • M 系列,v2
    • M 系列,v3
  • 以下 VM 系列产能预留的支持为公共预览版:

    • Lsv2
  • 目前不支持其他 VM 系列:

    • M 系列,v1
    • M 系列、HM 和 VHM
    • ND 系列
    • Hb 系列
    • Hc 系列
  • 支持以下部署类型:

    • 单个 VM
    • 采用统一业务流程的虚拟机规模集
    • 具有灵活的业务流程的虚拟机规模集
  • 不支持以下部署类型:

    • 点 VM
    • Azure 专用主机节点或部署到专用主机的 VM
    • 可用性集
  • 其他部署约束不受支持。 例如:

    • 邻近放置组
    • 更新域
    • 单一放置组设置为 true 的虚拟机规模集
    • Azure 超级磁盘存储(以前称为 UltraSSD)
    • 从休眠状态恢复的 VM
    • 需要虚拟网络加密的 VM
  • 固定的订阅无法使用该功能。

  • 只有创建了预留的订阅可以使用该预留。

  • 预留仅适用于 Azure 付费客户。 免费试用版和面向学生的 Azure 等折扣帐户没有资格使用此功能。

  • 容量预留支持的云:

    • Azure 云
    • Azure 政府
    • 中国区 Azure(预览版)
      • 不支持中国北部和中国东部

定价和计费

产能预留的价格费率与基础 VM 大小相同。 例如,如果为 10 个 D2s_v3 VM 创建了一个预留,则即使未使用该预留,也需要支付 10 个 D2s_v3 VM 的费用。

如果你随后部署了一个 D2s_v3 VM 并指定预留属性,则会使用产能预留。 使用 VM 后,你只需为该 VM 付费,而无需为产能预留付费。 假设你针对上述产能预留部署 6 个 D2s_v3 VM。 你的帐单上将显示 6 个 D2s_v3 VM 和 4 个未使用的产能预留的费用,两者都按 D2s_v3 VM 的费率收费。

已使用和未使用的产能预留都有资格享受节省计划和预留实例期限承诺折扣。 在上例中,如果你对同一 Azure 区域中的 2 个 D2s_v3 VM 具有预留实例,则这两个资源(VM 或未使用的产能预留)的计费归零。其余 8 个 D2s_v3 正常计费。 可对 VM 或未使用的产能预留应用期限承诺折扣。

按需产能预留与预留实例之间的差异

差异 按需产能预留 预留实例
术语 无需期限承诺。 可以按客户要求创建和删除。 固定期限承诺(一年或三年)。
计费折扣 按基础 VM 大小的即用即付费率收费。* 与即用即付费率相比可显著节省成本。
容量 SLA 提供指定位置(区域或可用性区域)的容量保证。 不提供容量保证。 客户可以选择“容量优先级”以获得更好的访问,但该选项没有 SLA。
区域与可用性区域 可以按区域或可用性区域部署。 仅在区域级别可用。

*如果单独购买,则可享受预留实例折扣。

使用产能预留

在 Azure 区域或可用性区域中为特定 VM 大小创建产能预留。 所有预留是作为产能预留组的一部分创建和管理的。

该组指定 Azure 位置:

  • 该组将设置要在其中创建所有预留的区域。 例如美国东部、北欧或东南亚。
  • 该组将设置合格的区域。 例如 AZ1、AZ2、AZ3 的任意组合。
  • 如果未指定局部区域,Azure 将选择 Azure 区域中的某个位置作为组的位置。 每个预留将指定 Azure 区域,但不一定会设置局部区域。

组中的每个预留用于一种 VM 大小。 如果为组选择了合格的区域,则预留必须用于支持的区域之一。

一个组可以包含每个区域每种 VM 大小的一个预留,如果未选择区域,则包含每种 VM 大小的一个预留。

若要使用产能预留,请指定产能预留组作为 VM 属性之一。 如果组没有与大小和位置匹配的预留,则 Azure 将返回错误消息。

初始部署后,可通过更改容量属性来调整预留的预留数量。 不可对容量预留进行其他更改,例如 VM 大小或位置。 建议创建一个新的预留,迁移任何现有的 VM,然后删除不再需要的旧预留。

产能预留不对 VM 部署数设定限制。 Azure 支持针对预留分配所需数量的 VM。 由于预留本身需要配额,因此不超过预留数量的 VM 部署省略配额检查。 分配超出预留数量的 VM 称为“过度分配预留”。 SLA 不涵盖过度分配 VM,VM 将接受配额检查,Azure 将满足额外的容量需求。 部署后,这些额外的 VM 实例会导致针对预留分配的 VM 数超过预留数量。 若要了解详细信息,请参阅过度分配产能预留

产能预留生命周期

创建预留后,Azure 会在指定位置留出请求的容量实例数。

此图显示某个位置的已请求容量实例数。

通过以下属性跟踪整体预留的状态:

  • capacity:客户预留的实例总数。
  • virtualMachinesAllocated:针对产能预留分配且计入使用容量的 VM 的列表。 这些 VM 的状态是“正在运行”或“已停止(已分配)”,或者处于“正在启动”或“正在停止”等过渡状态。 此列表不包含处于“已解除分配”状态的 VM,此状态称为“已停止”(已解除分配)
  • virtualMachinesAssociated:与产能预留关联的 VM 列表。 此列表包含已配置为使用预留的所有 VM,包括处于“已解除分配”状态的 VM。

在上例中,初始设置是 capacity 为 2,长度为 virtualMachinesAllocatedvirtualMachinesAssociated 为 0。

随后在针对产能预留分配 VM 后,该 VM 将使用其中一个预留容量实例。

此图显示已消耗的预留容量实例之一。

产能预留的状态显示 capacity 为 2,长度为 virtualMachinesAllocated,而 virtualMachinesAssociated 为 1。

只有 VM 具有匹配的属性,且至少有一个空的容量实例,针对产能预留的分配才会成功。

根据我们的示例,针对产能预留分配第三个 VM 时,预留会进入过度分配状态。 第三个 VM 将需要未使用的配额且要求 Azure 额外提供容量。 分配第三个 VM 后,产能预留现如下图所示:

此图显示分配了第三个 VM 的产能预留。

capacity 为 2,长度为 virtualMachinesAllocated,而 virtualMachinesAssociated 为 3。

现在假设应用程序纵向缩减到最少两个 VM。 VM 0 需要更新,因此选择它来解除分配。 预留会自动切换到此状态:

此图显示产能预留纵向缩减到至少两个 VM。

virtualMachinesAllocated 的长度和 capacity 都是 2。 不过,virtualMachinesAssociated 的长度仍然是 3,因为 VM 0 虽然已解除分配,但仍与产能预留关联。 为了防止配额超限,已解除分配的 VM 0 仍会计入分配给预留的配额。 只要有足够的未使用配额,就可以将新的 VM 部署到产能预留,并从任何未使用的预留容量接受 SLA 保障。 也可删除 VM 0 以防止它占用配额。

产能预留将一直存在,直到被显式删除为止。 若要删除产能预留,首先要在 virtualMachinesAssociated 属性中取消关联所有 VM。 取消关联后,产能预留应如下图所示:

此图显示取消关联后的产能预留。

产能预留的状态显示 capacity 为 2,长度为 virtualMachinesAssociated,而 virtualMachinesAllocated 为 0。 在此状态中,可删除产能预留。 删除后,你不再为预留付费。

此图显示已删除产能预留。

使用情况和计费

当产能预留为空时,将报告相应 VM 大小和位置的 VM 使用量。 即使未部署 VM,VM 预留实例也将涵盖部分或全部预留容量使用量。

示例

例如,假设创建了一个产能预留,它的预留数量为 2。 订阅有权访问一个大小相同的匹配预留 VM 实例。 结果就是产能预留有两个使用流,其中一个由预留容量涵盖。

此图显示具有两个使用流的产能预留。

在上图中,向一个未使用的实例应用了 VM 预留实例折扣,因此该实例的成本归零。对于其他实例,预留的 VM 大小采用即用即付费率计费。

针对产能预留分配 VM 时,还必须分配其他 VM 组件(例如磁盘、网络、扩展和其他任何请求的组件)。 在此状态中,VM 使用量将反映出一个已分配的 VM 和一个未使用的容量实例。 预留 VM 实例将使该 VM 或未使用的容量实例的费用归零。 帐单上还将显示与分配的 VM 关联的磁盘、网络和其他组件的其他费用。

此图显示一个已分配的 VM 和一个未使用的容量实例。

在上图中,VM 预留实例折扣应用于 VM 0,这将仅针对磁盘和网络等其他组件收费。 另一个未使用的实例按预留的 VM 大小的即用即付费率计费。

常见问题解答

  • 按需产能预留的价格是多少?

    按需产能预留的价格和与预留关联的基础 VM 大小的价格相同。 使用产能预留时,无论 VM 是否已预配,我们都将按即用即付费率对你选择的 VM 大小收费。 有关详细信息,请参阅 WindowsLinux VM 定价页。

  • 对于按需产能预留和我最终预配后的实际 VM,会分别向我收费吗?

    不会,我们将仅对按需产能预留收费一次。

  • 我是否可以将 Azure 虚拟机预留实例应用于按需产能预留来节省成本?

    是的,你可将现有或未来的预留实例应用于按需产能预留并享受预留实例折扣。 可用预留实例会按应用到 VM 的方式自动应用于产能预留。

  • 虚拟机预留实例和按需产能预留之间有何区别?

    预留实例和按需产能预留都适用于 Azure VM。 但是,得益于一年或三年期承诺,预留实例与即用即付费率相比为 VM 提供更优惠的预留费率。 相反,无需作出承诺即可按需容量预留。

    你可随时创建或取消容量预留。 但是,不会应用折扣,而且在成功预配产能预留后,将按即用即付费率向你收费。 预留实例优先考虑容量但不保证提供,与它不同的是,当你购买按需产能预留时,Azure 会为你的 VM 留出计算容量并提供 SLA 保证。

  • 哪些方案从按需容量预留中获益最大?

    典型方案包括业务连续性、灾难恢复和任务关键型应用程序横向扩展。

开始预留计算容量。 查看其他产能预留文章: