本文档介绍了 Compute Engine 可用区级资源的未来预留的行为、结算和限制。
使用未来预留来提前请求保证重要或难以获得的容量。
概览
与按需预留相比,未来预留为获取 Compute Engine 可用区级资源的容量提供了更高级别的保证。通过未来预留,您可以请求预留未来最长 1 年内从特定日期开始的容量。在您创建未来预留后,Google Cloud 会审核您的请求,在获得批准后,Compute Engine 会在您指定的日期和时间预配请求的容量。此过程有助于确保在需要时为您的项目提供和预留请求的资源,从而防止由于资源可用性错误而无法获得请求的资源。例如,未来的预订功能可用于执行以下操作:
迁移大量虚拟机 (VM) 实例。
获得高需求资源。
保障用于峰值事件的容量。
每项未来预留都为特定可用区中具有相同属性的一个或多个虚拟机提供了极高保障。如果 Google Cloud 批准未来预留请求,则在您请求具有预留容量可用的日期,Compute Engine 会减去任何匹配的现有预留和正在运行的虚拟机,并自动创建预留,以达到未来预留中指定的请求容量。然后,可以像按需预留一样使用新自动创建的预留;它们会阻止任何其他人使用预留资源,直到这些资源被删除为止。
创建未来预留请求不会产生额外费用。仅当在 Compute Engine 预配预留资源时,您才需开始付费,并且您将支付与按需预留相同的费用。
未来预留的工作原理
以下几个部分概述了未来预留的工作原理。
未来预留属性
创建未来预留请求时,必须定义以下属性:
名称前缀
名称前缀指定要包含在为此请求预配的每个自动创建的预留名称的开头的字符串。然后,您可以按一个或多个名称前缀进行过滤,以在查看预留列表时标识自动创建的预留。
(单项目或共享)
预留期(开始时间和结束时间)
开始时间指定预留期的开始时间,即 Compute Engine 完成自动创建的预留的日期和时间。然后,您可以创建虚拟机来使用自动创建的预留。确保指定开始时间,该时间涵盖创建虚拟机以使用自动创建的预留所需的时间。开始时间只能在您提交未来预留请求供审核的日期和时间算起的 1 年内。
结束时间指定预留期的结束时间,即可以删除未来预留请求以及可以删除或修改含预留资源的自动创建的预留的日期和时间。结束时间必须至少比开始时间晚 24 小时,没有上限;但是,结束时间应与建议的最短预留期相同,以增加 Google Cloud 批准未来预留请求的概率。
总数
总数指定您要在开始时间保证具有指定可用区和虚拟机属性的虚拟机总数。在 Google Cloud 批准未来预留请求后,Compute Engine 会考虑任何只能由未来预留请求中指定的(部分或全部)项目使用的现有匹配预留,籍此预配自动创建的预留。如需了解详情,请参阅本文档中的 Compute Engine 如何计算和预配预留资源。
虚拟机属性
虚拟机属性定义您要预留的虚拟机的硬件要求(内存和 CPU)以及可选资源(本地 SSD 磁盘和 GPU)。创建未来预留请求时,您可以直接指定这些属性,也可以根据现有虚拟机指定这些属性,或者使用实例模板指定这些属性。仅当虚拟机属性和自动创建的预留的虚拟机属性完全匹配时,虚拟机才能使用自动创建的预留。使用未来预留时,您只能指定自动使用类型,而不能指定紧凑布置政策。
可用区
您要在其中请求容量的可用区。您为预留资源指定的可用区和机器类型(请参阅虚拟机属性)的组合会影响 Google Cloud 批准未来预留请求的概率。如需了解详情,请参阅本文档中的未来预留审核流程。
此外,您还可以定义以下属性:
自动删除
自动删除选项指定您是否希望 Compute Engine 自动删除为此请求预配的任何自动创建的预留,无论这些预留是否已完全使用。Compute Engine 会在指定的删除时间后的 2 小时内删除自动创建的预留。自动删除自动创建的预留有助于避免一段时间未使用的自动创建的预留产生不必要的费用。
说明
说明指定可选文本,用于描述未来预留请求的属性。
计划状态
计划状态指定未来预留请求是否已提交到 Google Cloud 供审核。如需了解详情,请参阅本文档中的未来预留状态。
未来预留状态
本部分指定可以将未来预留请求设置为的可能状态。未来预留请求包含以下状态字段:
-
本部分介绍您在创建未来预留请求时指定的计划状态。计划状态指定未来预留请求是否处于草稿状态,或者是否已提交到 Google Cloud 供审核。
-
本部分介绍采购状态,它在您创建未来预留请求后由 Compute Engine 设置。最初,采购状态字段会显示未来预留请求的审批状态。Google Cloud 批准未来预留请求并且请求进入锁定时间后,此字段会显示所请求资源的采购状态。
未来预留计划状态
创建未来预留请求时,您可以将其计划状态 (planningStatus
) 设置为以下值之一:
草稿 (
DRAFT
):默认情况下,您将创建一个未来预留草稿请求。您可以根据需要修改未来预留请求的草稿,并且对更改感到满意后,可以将其提交给 Google Cloud 进行审核。Google 建议您先创建草稿请求,这样您就可以确定 Compute Engine 将为请求预配的虚拟机数量(而不是手动估算此数量),并在提交请求以供审核之前选择修改请求中的预留虚拟机数量。已提交 (
SUBMITTED
):未来预留请求已提交至 Google Cloud 供审核。提交未来预留请求供审核后,无法再将其计划状态更改回DRAFT
。(可选)您可以在创建未来预留请求时立即提交该预留请求供审核。
未来预留采购状态
创建未来预留请求后,Compute Engine 会将其采购状态 (procurementStatus
) 设置为以下值之一:
草稿 (
DRAFTING
):未来预留请求处于草稿状态。待审批 (
PENDING_APPROVAL
):未来预留请求将提交到 Google Cloud 供审批。在请求审核期间,可以将未来预留请求的采购状态设置为下列项之一:已拒绝 (
DECLINED
):Google Cloud 拒绝了未来预留请求。您仍然可以修改未来预留请求,并在完成更改后再次提交该请求供审批。已批准 (
APPROVED
):Google Cloud 批准了未来预留请求,Compute Engine 计划在预留期开始时间使用请求的容量预配自动创建的预留。 如果 Google Cloud 在未来预留开始时间后的 56 天(8 周)内批准了未来预留请求,则未来预留会在几分钟内进入锁定时间。已取消 (
CANCELED
):用户在审核期间或 Google Cloud 批准或拒绝请求之后取消了未来预留请求。
未来预留请求获得批准或拒绝后,您可以修改未来预留请求的一个或多个属性,然后再次将其提交到 Google Cloud 供审核。此操作会将未来预留的状态设置回待审批。
采购 (
PROCURING
):从预留期开始时间算起 56 天(8 周),未来预留将进入锁定时间。未来预留进入此状态后:您无法再取消未来预留。
您只能在未来预留结束时间后将其删除。
如果您想要修改未来预留的预留期、共享设置、总数或虚拟机属性,则必须请求 Google Cloud 批准。之后,Google Cloud 会通过更改请求的更新状态来批准或拒绝请求。如果 Google Cloud 拒绝了请求,并且您未提交新请求,则 Compute Engine 会使用先前指定的属性预配预留的资源。
如果未来预留指定的预留期从您提交未来预留请求的日期和时间算起少于 56 天,则未来预留会在获得批准后几分钟内进入其锁定时间。
正在预配 (
PROVISIONING
):在未来预留中指定的开始时间之前 24 小时,Compute Engine 通过自动创建预留开始预配请求的资源。然后,Compute Engine 会将未来预留的采购状态设置为以下之一:已完成 (
FULFILLED
):Compute Engine 已预配达到未来预留中指定的总数所需的所有资源。部分完成 (
FAILED_PARTIALLY_FULFILLED
):由于配额不足,Compute Engine 仅预配了达到未来预留中指定的总量所需的部分资源。失败 (
FAILED
):Compute Engine 未能预配预留的资源。
自动创建的预留从开始时间起可以使用。为确保您拥有请求的总容量,请确认所有未使用的自动创建的预留,并创建虚拟机来使用它们。您只能在未来预留中指定的结束时间之后修改或删除自动创建的预留。如需了解详情,请参阅本文档中的 Compute Engine 如何预配资源。
未来预留更新
创建未来预留请求后,您可以选择对其进行更新 - 取消、删除、修改或请求修改它。但是,您只能在特定时间范围内更新未来预留请求,如以下部分所述。
未来预留锁定时间
提交未来预留请求后,您可以在 Google Cloud 开始采购 (PROCURING
) 其资源之前(即该预留进入其锁定时间时)取消或删除该请求。在未来预留的锁定时间内,您无法再将其取消,也无法在结束时间结束之前将其删除。
此外,锁定时间会影响您何时可以请求修改。未来预留请求的锁定时间将从以下时间之一开始:
如果未来预留请求指定的开始时间距离提交后不到 56 天(8 周),则未来预留请求会在获得批准后不久进入锁定时间。
否则,未来预留请求的锁定时间将从其开始时间后 56 天开始。
未来预留修改
如果未来预留请求未取消或待批准,那么您可以在该请求达到处于正在预配 (PROVISIONING
) 的采购状态之前随时修改该请求。
未来预留请求获得批准后,您只有在向 Google Cloud 请求修改后,才能修改以下属性:
GPU 和 GPU 类型
本地固态硬盘磁盘和磁盘接口类型
机器系列和机器类型
满足最低 CPU 要求的平台
共享设置
预留期的开始时间和结束时间
总数(虚拟机数量)
您一次只能请求对已获批的未来预留(的一个或多个属性)进行一次修改。此外,如果您提交以下类型的修改请求,Google Cloud 可能会拒绝这些请求:
在开始时间后 72 小时内提交的所有请求。
在开始时间后 14 天内提交的修改虚拟机属性的请求。
在开始时间后 14 天内提交的大幅增加或减少总数的请求。
提交修改请求会在未来预留中创建更新状态 (AmendmentStatus
) 字段。Google Cloud 审核请求后,Compute Engine 会将更新状态设置为以下值之一:
更新待审批 (
AMENDMENT_PENDING_APPROVAL
):Google Cloud 正在审核您的请求。更新已获批准 (
AMENDMENT_APPROVED
):Google Cloud 已批准您的请求。Compute Engine 会使用已批准的属性预配预留资源。更新遭拒 (
AMENDMENT_DECLINED
):Google Cloud 已拒绝您的请求。除非您提交新请求并且请求获得批准,否则 Compute Engine 会使用之前批准的属性预配预留资源。
如需详细了解如何修改未来预留请求以及您可以修改的属性,请参阅修改未来预留请求。
未来预留审核流程
如需预配请求的容量,任何未来预留请求都必须提交到 Google Cloud 供审核。您提交请求后,Google Cloud 最多可能需要 5 个工作日来审核您的请求。如果 Google Cloud 需要 5 个以上的工作日来审核您的请求或有疑问,则您的专属技术支持客户经理或销售团队将与您联系。
如果某个未来预留请求或修改请求获得批准,则 Google Cloud 会尽商业上合理的努力,在您未来预留的预留期开始时间提供所请求的容量。相较于具有相同属性的未来预留未经批准的其他客户,Google Cloud 会优先提供您预留的容量。如需了解详情,请参阅服务专用条款。
为了提高 Google Cloud 批准未来预留请求的可能性,请务必在创建或修改未来预留请求时指定以下内容:
建议的开始时间
从预留期开始时间算起的第 56 天(8 周),任何已获批准的未来预留请求都会进入锁定时间。如果已获批准的未来预留中指定的开始时间距离您提交未来预留请求供审核的日期和时间不到 56 天,则未来预留请求会在批准后的几分钟内进入其锁定时间。
如需有足够的时间取消或删除未来预留请求,以及提交修改请求,建议指定的开始时间从您提交未来预留请求供审核的日期和时间算起超过 56 天。
建议的最短预留期
只要未来预留的预留期超过 24 小时,预留期的时长就没有限制。但是,根据未来预留请求中指定的机器类型和可用区,如果其预留期指定以下建议的最短预留期之一,Google Cloud 更有可能批准未来预留请求:
14 天。当您未来的预留请求同时指定以下两项时,请指定 14 天的最短预留期:
N1、N2 或 N2D 机器系列
位于以下区域之一的可用区:
美洲 亚洲 欧洲 爱荷华 ( us-central1
)新加坡 ( asia-southeast1
)比利时 ( europe-west1
)俄勒冈 ( us-west1
)德国 ( europe-west3
)南卡罗来纳 ( us-east1
)荷兰 ( europe-west4
)弗吉尼亚 ( us-east4
)
365 天。如果您的未来预留请求指定 Compute Engine 的可用区域和支持的机器系列的任何其他组合,请指定 365 天的最短预留期。
如果您指定的预留期与建议的预留期不同,则 Google Cloud 不太可能批准未来预留请求或修改请求。
Compute Engine 如何预配预留资源
本部分介绍了 Compute Engine 如何预配预留资源:
-
本部分介绍在为已获批准的未来预留预配资源总数时,Compute Engine 如何计入与请求匹配的现有未来预留、预留和虚拟机。
-
本部分介绍 Compute Engine 在开始时间为已获批准的未来预留创建的预留类型。
计算和预配预留资源
为了达到已获批准的未来预留请求的总数,Compute Engine 会执行以下操作:
Compute Engine 会减去仅与未来预留中指定的项目共享的任何匹配的现有(已使用和未使用)预留。
Compute Engine 会自动为剩余金额创建预留。这有以下含义:
所有现有的匹配虚拟机都开始使用自动创建的预留。
您需要为未使用的自动创建的预留创建匹配的虚拟机。
例如,假设您在可用区 us-central1-a
中创建共享的未来预留请求。此未来预留请求总共指定 10 个虚拟机,机器类型为 n2-standard-2
,项目 A 是所有者项目,项目 B 和 C 是使用方项目。在此未来预留请求获得批准且 Compute Engine 在预留期开始时间开始创建预留后,假设这些项目包含以下资源,并且虚拟机属性与未来预留相匹配:
在项目 A 中,有 1 个正在运行的虚拟机未使用预留。
在项目 B 中,2 个虚拟机的项目 C 有 1 个未使用的共享预留。
在项目 C 中,1 个虚拟机有 1 个未使用的单项目预留。
在这种情况下,Compute Engine 会自动为 7 个虚拟机创建共享预留,使其在开始时间达到 10 个虚拟机的总数。
如需了解如何确定 Compute Engine 计划为现有未来预留请求预配的虚拟机数量,请参阅确定预配的虚拟机数量。
自动创建的预留
在未来预留中指定的开始时间之前 24 小时,Compute Engine 会通过自动创建预留开始在获得批准的未来预留中预配请求的容量,但您只需为在开始时间自动创建的预留付费。每个自动创建的预留都具有以下属性:
可以通过创建具有匹配属性的虚拟机来自动使用预留。
每个预留都有与其未来预留请求中指定的虚拟机属性匹配的虚拟机属性。
预留与其未来预留请求的共享设置一致。具体而言:
如果您创建了单项目未来预留请求,则每个自动创建的预留都是单项目预留。
如果您创建了共享的未来预留请求,则每个自动创建的预留都是共享预留,并指定相同的所有者项目和使用方项目。
预留名称以其未来预留请求中指定的名称前缀开头。
如果您在创建或修改未来预留请求时启用了自动删除选项,每个自动创建的预留都会指定
deleteAtTime
字段设置为 Compute Engine 自动删除自动创建的预留的时间。
在未来预留请求的结束时间之前不能修改或删除自动创建的预留。否则,您可以像使用按需预留一样使用、修改和删除自动创建的预留。
限制
以下部分概述了预订的限制。
创建时的限制
创建未来预留请求时,需要遵循以下限制:
如果您的现有预留具有匹配的属性,请阅读以下内容:
如果您的项目已包含自动创建的预留或按需预留,或者这些预留与项目共享,则您只能创建在现有预留中指定的所有项目之间共享的未来预留请求。
如果您的项目已包含单项目未来预留请求,则只能创建单项目未来预留请求。
如果您的项目已包含共享未来预留请求,或者这些未来预留请求与项目共享,则您只能在同一项目中创建共享未来预留请求。例如,如果项目 A(所有者项目)中的共享未来预留请求与项目 B 和 C(使用方项目)共享,意味着您可以执行以下操作:
在项目 A 中创建另一个共享未来预留请求,并将其与项目 B 和 C 共享。
在项目 B 中创建共享未来预留请求,并将其与项目 A 和 C 共享。
在项目 C 中创建共享未来预留请求,并将其与项目 A 和 B 共享。
您只能指定使用自动使用的预留来预配请求的资源。
您不能指定 A3 或 E2 机器类型。
您不能指定短于 24 小时的预留期。
如果另一个现有的未来预留请求具有匹配的虚拟机属性和可用区,则不能指定与该请求的预留期重叠的预留期。现有的未来预留请求可以位于您用于创建未来预留请求的同一项目中,也可以位于您希望与之共享未来预留请求的项目中。
您指定的开始时间不能晚于从您提交未来预留请求供审核的日期和时间算起的 1 年。
您无法指定布置政策。
创建后的限制
创建未来预留请求后,需要遵循以下限制:
如果您将创建了未来预留请求的项目移至其他组织,并且该未来预留尚未进入其锁定时间,则未来预留请求会被删除。
未来预留请求获得批准并进入其锁定时间后,具有以下限制:
您无法再取消未来预留。
如果要将自动创建的预留附加到承诺,则具有以下限制:
您只能在预留期开始时间之前的最后 24 小时内购买承诺。
您只能附加停用了自动删除选项的自动创建预留。如果您在创建或修改未来预留请求时启用了自动删除选项,则必须停用该选项。
您只能在未来预留结束时间后将其删除。
未来预留进入其开始时间后,您只能在结束时间后修改或删除为未来预留预配的自动创建预留。
结算
创建未来预留请求不会产生额外费用。
在未来预留请求获得批准并进入其锁定时间后,您将承诺为整个预留期的总预配容量付费,除非您请求 Google Cloud 修改数量或在预留期开始时间之前预留的资源的虚拟机属性。如果 Google Cloud 批准该请求,您承诺为更新后的请求容量付费。
在未来预留的预留期开始时间,Google Cloud 仅针对达到未来预留中指定的总数的自动创建预留收费。如果 Compute Engine 只能部分提供请求的容量,则您只需为已预配的资源付费。
任何自动创建的预留都会产生如下费用:
以与按需预留相同的费率计费。
只要预留存在,无论您是否使用预留资源,都需要支付费用。
后续步骤
了解如何创建未来预留请求:
- 了解如何根据虚拟机的实际或预测用量预留容量。