本文档介绍了 Compute Engine 可用区级资源预留的行为、要求、限制,以及结算。
概览
为确保 Compute Engine 资源在需要时可用,请使用预留。预留为获取 Compute Engine 可用区级资源的容量提供了极高保障。您可以使用预留来确保项目拥有相关资源,以便应对未来需求的增长,例如以下情况:
- 发展
- 计划内或计划外的峰值
- 迁移大量虚拟机 (VM) 实例
- 备份和灾难恢复
使用预留时,95% 的虚拟机可在 120 秒内启动。每个预留都为具有相同属性的一个或多个虚拟机提供了保证。创建预留后,预留的资源会立即可用且一直可用,直到您删除预留为止。同样,预留的资源会立即开始计费;当不再需要预留时,您可以删除预留以免继续产生费用。当虚拟机使用预留时,不会额外产生费用。
无论您使用多少预留资源,预留都会阻止任何其他人使用预留资源。由于预留占用的资源与未预留的运行中虚拟机一样,因此预留资源会按照与运行中虚拟机相同的按需费率计费,包括任何适用的折扣。
预留工作原理
预留为具有指定配置的一个或多个 Compute Engine 虚拟机提供容量保证。 您还可以使用具有 Compute Engine 承诺或其他使用虚拟机的产品的预留。
创建预留时,请定义以下属性:
- 预配类型(按需或未来)
- 按需预留(默认)会在您申请时预配(如果请求的容量可用)。
未来预留可让您提前请求保证重要或难以获得的容量。具体而言,未来预留由两种资源类型组成:未来预留请求数(如果获得批准,将提供在您未来指定时间自动创建的预留)。请求的预留期过后,自动创建的预留会被自动删除,或表现类似于按需预留。
与按需预留相比,使用未来预留可以让 Google Cloud 有更多时间来满足您的请求,从而为获取容量提供更高级别的保证。如果您要使用未来预留,请参阅关于未来预留请求,而不是本文档。
- 自动删除
自动删除选项指定自动删除预留,无论其是否已被使用。如果启用自动删除选项,则预留将在指定日期和时间后的两个小时内删除。自动删除自动创建的预留有助于避免一段时间未使用的预留产生不必要的费用。
- 使用类型(自动或特定)
- 单项目预留(默认)只能由与预留位于同一项目中的虚拟机使用。
- 共享预留可供预留所在的项目中的虚拟机以及与之共享该预留的其他任何项目中的虚拟机使用。使用共享预留有助于提高预留利用率,并减少需要创建和管理的预留的数量。如需了解详情,请参阅本文档中的共享预留的工作原理。
共享政策用于指定 A2 或 A3 虚拟机的预留是否可供 Vertex AI 中的自定义训练作业或预测作业使用。默认情况下,自定义训练作业或预测作业不允许使用 A2 或 A3 虚拟机的预留资源。如需更改此设置,请参阅如何创建或更新要在 Vertex AI 中使用的预留。
- 虚拟机数量
虚拟机数量是您在创建预留时要预留的具有匹配属性和可用区的虚拟机数量。创建预留后,您可以修改虚拟机数量。
- 虚拟机属性
虚拟机属性描述您要预留的虚拟机的硬件要求(内存和 CPU)和可选资源(本地 SSD 磁盘和 GPU)。创建预留时,您可以直接指定这些属性,根据现有虚拟机指定属性,也可以使用实例模板指定属性。仅当虚拟机的属性和预留的虚拟机属性完全匹配时,虚拟机才能使用预留。如需了解详情,请参阅本文档中的要求。
- 可选:资源布置政策(紧凑)
紧凑布置政策表明预留的虚拟机应尽可能地彼此靠近,从而减少它们之间的网络延迟时间。
创建预留后,请注意以下事项:
如果您停止、暂停或删除正在使用预留的虚拟机,则该虚拟机将不再计入预留。停止、暂停或删除虚拟机完成后,之前使用的资源可再次供使用。
如果删除预留但不删除使用预留资源的虚拟机,则该虚拟机将继续存在,并且您需要照常为资源付费。
共享预留的工作原理
共享预留中的每个虚拟机都可供创建预留的项目(所有者项目)中的虚拟机或与之共享预留的任何项目(使用方项目)中的虚拟机使用。当一个虚拟机停止使用共享预留时,该共享预留可供与之共享该预留的任何项目中的其他虚拟机使用。如果共享预留预留了多个虚拟机,则多个项目中的虚拟机可以同时使用同一共享预留。
默认情况下,项目无法创建和修改共享预留。如需创建和修改项目中的共享预留,则该项目必须添加到共享预留所有者项目 (compute.sharedReservationsOwnerProjects
) 组织政策限制条件的许可名单中。如果您共享预留,则预留会受到其他配额要求的影响,并且与单项目预留的使用行为不同。
要求
所有预留都具有以下要求:
只有当虚拟机和预留的以下所有属性完全匹配时,虚拟机才能使用预留:
项目
- 项目要求因预留的共享类型而异。
可用区
机器类型
满足最低要求的 CPU 平台
GPU 类型和数量(如果有)
本地 SSD 磁盘类型和数量(如果有)
预留亲和性
- 预留亲和性要求因预留的使用类型而异。
紧凑布置政策(如果有)
- 一个预留可以选择包含紧凑布置政策,以表明其预留的虚拟机应尽可能地彼此靠近,从而减少它们之间的网络延迟。如果某个预留指定了紧凑布置政策,则该预留只能由指定了相同紧凑布置政策的虚拟机使用。
位置提示(如果有)
- 预留可以选择性地包含
locationHint
字段,您只能在使用 REST 创建预留或虚拟机时指定该字段。Google 不建议您在创建预留时指定locationHint
字段。
- 预留可以选择性地包含
您的项目中必须有足够的配额满足要预留的资源。如果预留创建成功,则该资源的配额将产生相应费用。
附加到承诺的预留的其他要求
此外,附加到承诺的预留具有以下要求:
预留和承诺必须属于同一项目和区域。
预留和承诺必须用于相同的机器家族系列。但是,您可以选择相应机器家族系列中的任何机器类型。
预留必须停用自动删除选项。
如果承诺指定任何 GPU 和/或本地 SSD 磁盘,则附加的预留(或附加预留的组合)必须指定与承诺完全相同的资源数量和类型。
如需了解详情,请参阅将预留附加到基于资源的承诺。
通过实例模板创建的预留的其他要求
此外,如果您通过指定实例模板来创建预留,请确保以下各项:
您必须在模板中的资源所在的区域、可用区和项目中创建预留。具体而言:
如果实例模板指定了紧凑布置政策,则必须创建特定预留。然后,在创建虚拟机以使用此预留时,您必须按名称明确指向此预留。否则,虚拟机无法使用此预留。
共享预留的其他配额要求
此外,共享预留的所有者和使用方项目也会产生以下配额影响:
所有者项目:所有者项目的配额用量如下:
创建共享预留时,所有者项目会消耗总预留资源的配额。
消耗预留资源时,所有者项目会消耗其所消耗资源的配额。
使用方项目:使用方项目仅在使用预留资源时消耗配额,并且仅消耗其所使用的资源的配额。
例如,假设项目 A(所有者项目)创建了 10 个资源的共享预留,并与项目 B 和 C(使用方项目)共享该预留。创建共享预留后,项目 A 会消耗 10 个资源的配额。然后,如果项目 A 和 B 各消耗 2 个预留资源,则项目 A 和 B 各消耗 2 个资源的配额。总体而言,项目 A 消耗了 12 个资源的配额,项目 B 消耗了 2 个资源的配额,项目 C 消耗了 0 个资源的配额(因为它没有消耗预留资源)。
使用紧凑布置政策的预留的其他要求
此外,要为预留指定紧凑布置政策,请确保满足以下要求:
紧凑布置政策必须支持预留:
紧凑布置政策不能指定最大距离值为
1
。不能一次同时由多个预留指定紧凑布置政策。
该预留必须支持紧凑布置政策:
您只能为未附加到承诺的单项目、按需进行且明确针对的预留指定紧凑布置政策。
该预留所预留的虚拟机必须受紧凑布置政策支持:
该预留的可用区必须在紧凑布置政策的区域内。
该预留的虚拟机数量不能超过紧凑布置政策支持的虚拟机数量上限。
该预留的机器类型必须受紧凑布置政策支持。
限制
所有预留都具有以下限制:
每个预留最多可预留 1,000 个虚拟机。
您只能通过按需且明确指向的预留来预留 A3 虚拟机。
预留仅适用于以下 Google Cloud 产品中的虚拟机使用:
- 批量
- Compute Engine
- Dataflow
- Dataproc
- Google Kubernetes Engine
- Vertex AI
预留不适用于以下资源:
f1-micro
和g1-small
机器类型- 抢占式虚拟机
- 单租户节点
- 之前未列出的其他服务(如 Cloud SQL)
在您创建预留时,Compute Engine 会尝试分配按需资源。如果请求时可用区中资源不足,则预留会失败,并会出现 资源可用性错误 (因为容量不足)。如果预留成功创建,则资源可供您使用,即使您不立即使用它们。
附加到承诺的预留的其他限制
此外,附加到承诺的预留具有以下限制:
您只能将预留附加到基于资源的承诺。
您只能在购买承诺时附加预留。
您只能将特定预留附加到一项承诺。
您无法删除附加到承诺的预留或调整其大小。请参阅如何替换附加到承诺的预留。
如需了解详情,请参阅将预留附加到基于资源的承诺。
共享预留的其他限制
此外,共享预留具有以下限制:
您只能同与创建预留的项目在同一组织中的项目共享预留。
每个共享预留可以与 1 到 100 个使用方项目共享。
对于每个组织,您可以为虚拟机属性的每个唯一组合创建最多 100 个共享预留。
您只能列出由特定项目创建的预留。这意味着每个共享预留仅列在创建它的项目中,您无法列出组织中的所有共享预留或与特定项目共享的所有预留。
如果您通过指定实例模板创建共享预留,则只有您项目中的用户才能访问同一实例模板,并使用该模板创建虚拟机或其他预留。
创建共享预留时,您无法指定紧凑布置政策。
如果您将使用共享预留的项目移至新组织,其共享预留不会迁移到新组织。在此项目中创建的任何共享预留都会被删除,并且之前组织中与此项目共享的任何预留都无法在新组织中使用。如需了解详情,请参阅本文档中的共享预留的工作原理。
您可以按照共享预留的最佳实践来缓解其中一些要求的限制。
使用紧凑布置政策的预留的其他限制
此外,指定紧凑布置政策的预留面临以下限制:
您不能在多个预留之间共享紧凑布置政策。相反,您必须为要应用紧凑布置政策的每个预留使用单独的紧凑布置政策。
您只能指定紧凑布置政策。任何其他类型的资源政策(例如实例时间表或快照时间表)不受支持。
结算
预留与其预留资源按相同的费率计费,包括按需价格和 1 分钟最低费用与未预留的运行中虚拟机相同。 与运行中虚拟机一样,持续使用折扣 (SUD)、CUD 和自定义价格同样适用。
例如,假设场景如下:
us-central1
中有一个包含 3 个 vCPU 的承诺。us-central1-a
中正在运行 5 个 vCPU。us-central1-a
中有一个包含 10 个 vCPU 的预留。
在这种情况下,Google Cloud 的计费方式如下:
为云端硬盘设置的保全 | vCPU 的数量 |
---|---|
承诺使用折扣价格 | 3 |
按需价格(2 个 vCPU 已使用的预留 + 5 个 vCPU 未使用的预留) | 7 |
只要预留存在,则无论其资源是否正在使用,预留都会产生预留资源费用。使用预留时,虚拟机不会产生重复的资源费用,因为系统已针对预留资源的费用收取预留的费用。 如需了解详情,请参阅虚拟机价格。
此外,您还可以监控预留的使用趋势,以减少浪费或未使用的资源导致的不必要费用。如需了解详情,请参阅监控预留使用情况。
共享预留的其他结算信息
使用共享预留不会产生额外费用,其计费价格与单项目 Compute Engine 预留相同。 但是,针对共享预留计费的项目会随着使用情况而变化,因为不同的项目可能有资格享受不同的 CUD。
共享预留的结算项目和价格的管理方式如下:
- 结算项目:默认情况下,所有者项目为共享预留付费。但是,如果共享项目的资源已被使用方项目使用,则预留项目将由使用方项目付费。
- 结算折扣:默认情况下,结算采用按需价格。但是,如果您有资格享受正在计费的项目或与该项目关联的 Cloud Billing 账号的 CUD,则会改用折扣价格。