本文档介绍了如何在日历模式下创建未来预留请求。如需详细了解此类预留,请参阅日历模式下的未来预留请求概览。
在日历模式下创建未来预留请求,以预留以下资源最多 90 天:
最多 80 个已挂接 GPU 的虚拟机 (VM) 实例。
最多 1,024 个 TPU 芯片。
在您选择的交付日期和时间,您可以通过使用预留容量来创建 GPU 或 TPU 虚拟机。使用日历模式下的未来预留请求可为以下工作负载获取需求量较高的资源:
模型预训练作业
模型微调作业
高性能计算 (HPC) 模拟工作负载
短期增加推理工作负载
如需在单个请求中预留超过 80 个 GPU 虚拟机或预留时间超过 90 天,请参阅 AI Hypercomputer 文档中的预留容量。
限制
以下部分介绍了针对日历模式下的未来预留请求的限制。
所有请求的限制
日历模式下的所有未来预留请求都具有以下限制:
您可以预留 1 到 90 天的资源。
创建并提交请求后,您无法取消、删除或修改该请求。
GPU 虚拟机请求的限制
您只能按以下方式预留 GPU 虚拟机:
TPU 请求的限制
您只能按以下方式预留 TPU:
您可以在每个请求中预留 1、4、8、16、32、64、128、256、512 或 1,024 个 TPU 芯片。
您可以预留以下 TPU 版本:
您只能为服务 (
SERVING
) 工作负载类型预留 1、4 或 8 个 TPU v5e 芯片。您只能在以下可用区预留 TPU:
对于 TPU v6e:
asia-northeast1-b
us-east5-a
us-east5-b
对于 TPU v5p:
us-east5-a
对于 TPU v5e:
对于批量 (
BATCH
) 工作负载类型:us-west4-b
对于服务 (
SERVING
) 工作负载类型:us-central1-a
准备工作
- 如果您无法在日历模式下使用未来预留请求,则您可能不符合访问和使用此功能的条件。在这种情况下,请与您的客户支持团队或销售团队联系。
- 如需与贵组织中的其他项目共享预留容量,请确保您要在日历模式下创建未来预留请求时所在的项目允许创建共享预留。否则,您将遇到错误。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
- Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得在日历模式下创建未来预留请求所需的权限,请让您的管理员为您授予项目的 Compute Future Reservation User (
roles/compute.futureReservationUser
) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色包含在日历模式下创建未来预留请求所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
在日历模式下创建未来预留请求需要具备以下权限:
-
创建未来预留请求:针对项目的
compute.futureReservations.create
权限 -
让 Compute Engine 自动创建预留:针对项目的
compute.reservations.create
权限 -
如需指定实例模板:实例模板的
compute.instanceTemplates.useReadOnly
权限 -
查看资源的未来可用情况:针对项目的
compute.advice.calendarMode
权限
概览
如需在日历模式下创建未来预留请求,请完成以下步骤:
查看资源的未来可用情况。查看您要预留的 GPU 虚拟机或 TPU 的未来可用情况。然后,在创建请求时,指定您已确认为可用的资源的数量、类型和预留时长。如果您提供此信息, Google Cloud 更有可能批准您的请求。
为 GPU 虚拟机或 TPU 创建预留请求。在日历模式下为 GPU 虚拟机或 TPU 创建并提交未来预留请求。如果您可以成功创建请求,则 Google Cloud 会在 1 分钟内批准请求。
查看资源的未来可用情况
您可以按如下方式查看某个区域内 GPU 虚拟机或 TPU 的未来可用情况:
对于 GPU 虚拟机,最多可提前 60 天
对于 TPU,最多可提前 120 天
如需查看某个区域内 GPU 虚拟机或 TPU 的未来可用情况,请选择以下选项之一:
控制台
在日历模式下创建未来预留请求时,您可以查看某个区域内 GPU 虚拟机或 TPU 的未来可用情况。如需了解详情,请参阅本文档中的为 GPU 虚拟机或 TPU 创建预留请求。
gcloud
如需查看某个区域内 GPU 虚拟机或 TPU 的未来可用情况,请使用以下
gcloud beta compute advice calendar-mode
命令之一。 根据您要查看的资源,添加以下标志:如需查看 GPU 虚拟机可用情况,请添加
--vm-count
和--machine-type
标志:gcloud beta compute advice calendar-mode \ --vm-count=NUMBER_OF_VMS \ --machine-type=MACHINE_TYPE \ --region=REGION \ --start-time-range=from=FROM_START_TIME,to=TO_START_TIME \ --end-time-range=from=FROM_END_TIME,to=TO_END_TIME
如需查看 TPU 可用情况,请添加
--chip-count
和--tpu-version
标志:gcloud beta compute advice calendar-mode \ --chip-count=NUMBER_OF_CHIPS \ --tpu-version=TPU_VERSION \ --region=REGION \ --start-time-range=from=FROM_START_TIME,to=TO_START_TIME \ --end-time-range=from=FROM_END_TIME,to=TO_END_TIME
替换以下内容:
NUMBER_OF_VMS
:要预留的 GPU 虚拟机数量。MACHINE_TYPE
:要预留的 GPU 机器类型。NUMBER_OF_CHIPS
:要预留的 TPU 芯片数量。TPU_VERSION
:要预留的 TPU 版本。请指定以下某个值:对于 TPU v6e:
V6E
对于 TPU v5p:
V5P
对于 TPU v5e:
V5E
如果您指定 TPU v5e,则必须添加
--workload-type
标志。 将此标志设置为您要在 TPU 上运行的工作负载类型:对于在单个或多个操作中处理大量数据的工作负载(例如机器学习训练工作负载),请指定
BATCH
。对于处理并发请求且需要尽可能降低网络延迟的工作负载(例如机器学习推理工作负载),请指定
SERVING
。
REGION
:预留 GPU 虚拟机或 TPU 的区域。 如需查看支持的区域和可用区,请参阅本文档中的限制。FROM_START_TIME
和TO_START_TIME
:您希望预留容量的最早日期和最新日期。 将这些日期的格式设置为 RFC 3339 时间戳:YYYY-MM-DDTHH:MM:SSOFFSET
替换以下内容:
YYYY-MM-DD
:格式为 4 位数年份、2 位数月份和 2 位数日期而且相互之间以连字符 (-
) 分隔的日期。HH:MM:SS
:格式为 2 位数小时、2 位数分钟和 2 位数秒钟而且相互之间以冒号 (:
) 分隔的 24 小时制时间。OFFSET
:采用世界协调时间 (UTC) 的偏移量格式的时区。 例如,要使用太平洋标准时间 (PST),请指定-08:00
。如需不使用偏移量,请指定Z
。
FROM_END_TIME
和TO_END_TIME
:您希望容量预留结束的最早日期和最新日期。将这些日期的格式设置为 RFC 3339 时间戳。如果您想为预留期指定时长范围(而非结束时间),请将--end-time-range
标志替换为--duration-range
标志。
输出类似于以下内容:
- recommendationsPerSpec: spec: endTime: '2025-09-07T00:00:00Z' location: zones/us-east5-a otherLocations: zones/us-east5-b: details: this machine family is not supported in this zone status: NOT_SUPPORTED zones/us-east5-c: details: this machine family is not supported in this zone status: NOT_SUPPORTED recommendationId: 0d3f005d-f952-4fce-96f2-6af25e1591eb recommendationType: FUTURE_RESERVATION startTime: '2025-06-09T00:00:00Z'
如果您请求的资源可用,输出将包含
startTime
、endTime
和location
字段。这些字段用于指定资源可用时的最早开始时间、最晚结束时间和可用区。REST
如需查看某个区域内 GPU 虚拟机或 TPU 的未来可用情况,请向 Beta 版
advice.calendarMode
方法发出GET
请求。 根据您要查看的资源,在请求正文中添加以下字段:如需查看 GPU 虚拟机的可用情况,请添加
instanceCount
和machineType
字段:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/advice/calendarMode { "futureResourcesSpecs": { "spec": { "targetResources": { "specificSkuResources": { "instanceCount": "NUMBER_OF_VMS", "machineType": "MACHINE_TYPE" } }, "timeRangeSpec": { "startTimeNotEarlierThan": "FROM_START_TIME", "startTimeNotLaterThan": "TO_START_TIME", "endTimeNotEarlierThan": "FROM_END_TIME", "endTimeNotLaterThan": "TO_END_TIME" } } } }
如需查看 TPU 可用情况,请添加
acceleratorCount
和vmFamily
字段:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/advice/calendarMode { "futureResourcesSpecs": { "spec": { "targetResources": { "aggregateResources": { "acceleratorCount": "NUMBER_OF_CHIPS", "vmFamily": "TPU_VERSION" } }, "timeRangeSpec": { "startTimeNotEarlierThan": "FROM_START_TIME", "startTimeNotLaterThan": "TO_START_TIME", "endTimeNotEarlierThan": "FROM_END_TIME", "endTimeNotLaterThan": "TO_END_TIME" } } } }
替换以下内容:
PROJECT_ID
:您要在其中预留资源的项目的 ID。REGION
:您要预留 GPU 虚拟机或 TPU 的区域。如需查看支持的区域和可用区,请参阅本文档中的限制。NUMBER_OF_VMS
:要预留的 GPU 虚拟机数量。MACHINE_TYPE
:要预留的 GPU 机器类型。NUMBER_OF_CHIPS
:要预留的 TPU 芯片数量。TPU_VERSION
:要预留的 TPU 版本。请指定以下某个值:对于 TPU v6e:
VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E
对于 TPU v5p:
VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P
对于 TPU v5e:
VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP
如果您指定 TPU v5e,则必须在
aggregateResources
字段中添加workloadType
字段。 将此字段设置为您要在 TPU 上运行的工作负载类型:对于在单个或多个操作中处理大量数据的工作负载(例如机器学习训练工作负载),请指定
BATCH
。对于处理并发请求且需要尽可能降低网络延迟的工作负载(例如机器学习推理工作负载),请指定
SERVING
。
FROM_START_TIME
和TO_START_TIME
:您希望预留容量的最早日期和最新日期。 将这些日期的格式设置为 RFC 3339 时间戳:YYYY-MM-DDTHH:MM:SSOFFSET
替换以下内容:
YYYY-MM-DD
:格式为 4 位数年份、2 位数月份和 2 位数日期而且相互之间以连字符 (-
) 分隔的日期。HH:MM:SS
:格式为 2 位数小时、2 位数分钟和 2 位数秒钟而且相互之间以冒号 (:
) 分隔的 24 小时制时间。OFFSET
:采用世界协调时间 (UTC) 的偏移量格式的时区。 例如,要使用太平洋标准时间 (PST),请指定-08:00
。如需不使用偏移量,请指定Z
。
FROM_END_TIME
和TO_END_TIME
:您希望容量预留结束的最早日期和最新日期。将这些日期的格式设置为 RFC 3339 时间戳。如果您想为预留期指定时长范围(而非结束时间),请将endTimeNotEarlierThan
和endTimeNotLaterThan
字段替换为minDuration
和maxDuration
字段。
输出类似于以下内容:
{ "recommendations": [ { "recommendationsPerSpec": { "spec": { "recommendationId": "a21a2fa0-72c7-4105-8179-88de5409890b", "recommendationType": "FUTURE_RESERVATION", "startTime": "2025-06-09T00:00:00Z", "endTime": "2025-09-07T00:00:00Z", "otherLocations": { "zones/us-east5-b": { "status": "NOT_SUPPORTED", "details": "this machine family is not supported in this zone" }, "zones/us-east5-c": { "status": "NOT_SUPPORTED", "details": "this machine family is not supported in this zone" } }, "location": "zones/us-east5-a" } } } ] }
如果您请求的资源可用,输出将包含
startTime
、endTime
和location
字段。这些字段用于指定资源可用时的最早开始时间、最晚结束时间和可用区。为 GPU 虚拟机或 TPU 创建预留请求
在日历模式下创建未来预留请求时,您只能按如下方式指定预留期:
开始时间:根据您要预留的资源,您必须在创建和提交请求时指定一个至少为以下值之一的开始时间:
对于 GPU 虚拟机,为 87 小时(3 天 15 小时)
对于 TPU,为 6 小时
结束时间:您可以预留资源,预留时长最长为 90 天。
如需使用现有 GPU 虚拟机作为参考来创建请求,请使用Google Cloud 控制台。否则,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往预留页面。
点击未来预留标签页。
点击
创建未来预留。系统会显示创建未来预留页面,并选择硬件配置窗格。在配置部分中,通过执行以下操作之一来指定要预留的 GPU 虚拟机或 TPU 的属性:
如需直接指定 GPU 虚拟机或 TPU 属性,请完成以下步骤:
选择指定机器类型。
点击 GPU 或 TPU 标签页,然后选择要预留的 GPU 机器类型或 TPU 版本。
如需使用现有实例模板指定 GPU 虚拟机属性,请选择实例模板,然后选择相应模板。
如需使用现有虚拟机作为参考来指定 GPU 虚拟机属性,请选择使用现有虚拟机,然后选择相应虚拟机。
如果您在上一步中指定了 TPU v5e (CT5LP),请在 TPU v5 工作负载类型列表中选择以下选项之一:
如需在 TPU 上运行在单个或多个操作中处理大量数据的工作负载(例如机器学习训练工作负载),请选择批量。
如需在 TPU 上运行处理并发请求且要求极低网络延迟的工作负载(例如机器学习推理工作负载),请选择服务。
在搜索容量部分中,完成以下步骤:
在区域和可用区列表中,指定您要预留资源的区域和可用区。如需查看支持的区域和可用区,请参阅本文档中的限制。
在所需总容量字段(预留 GPU 虚拟机时)或芯片数量列表(预留 TPU 时)中,指定要预留的 GPU 虚拟机或 TPU 芯片的数量。
在开始时间列表中,选择请求的开始时间。
可选:在选择开始日期灵活性列表中,选择开始日期的准确性。
在预留时长字段中,指定您要预留资源的时长。
点击搜索容量。然后,在可用容量表中,选择一个包含要预留的 GPU 虚拟机或 TPU 的类型、数量和预留期的可用选项。
点击下一步。
在共享类型部分,选择要与之共享您所请求容量的项目:
如需仅在项目中使用预留容量,请选择本地。
如需与其他项目共享预留容量,请选择已共享,点击
添加项目,然后按照提示选择项目。
点击下一步。
在未来预留名称字段中,输入请求的名称。
在预留名称字段中,输入 Compute Engine 自动创建的预留名称,以预配您请求的容量。
点击创建。
gcloud
如需在日历模式下创建未来预留请求并提交以供审核,请使用以下
gcloud beta compute future-reservations create
命令之一。根据您要预留的资源,添加以下标志:如需预留 GPU 虚拟机,请添加
--total-count
和--machine-type
标志:gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-delete-auto-created-reservations \ --total-count=NUMBER_OF_VMS \ --machine-type=MACHINE_TYPE \ --deployment-type=DENSE \ --planning-status=SUBMITTED \ --require-specific-reservation \ --reservation-mode=CALENDAR \ --reservation-name=RESERVATION_NAME \ --share-setting=SHARE_TYPE \ --start-time=START_TIME \ --end-time=END_TIME \ --zone=ZONE
如需预留 TPU,请添加
--chip-count
和--tpu-version
标志:gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-delete-auto-created-reservations \ --chip-count=NUMBER_OF_CHIPS \ --tpu-version=TPU_VERSION \ --deployment-type=DENSE \ --planning-status=SUBMITTED \ --require-specific-reservation \ --reservation-mode=CALENDAR \ --reservation-name=RESERVATION_NAME \ --share-setting=SHARE_TYPE \ --start-time=START_TIME \ --end-time=END_TIME \ --zone=ZONE
替换以下内容:
FUTURE_RESERVATION_NAME
:请求的名称。NUMBER_OF_VMS
:要预留的 GPU 虚拟机数量。MACHINE_TYPE
:要预留的 GPU 机器类型。NUMBER_OF_CHIPS
:要预留的 TPU 芯片数量。TPU_VERSION
:要预留的 TPU 版本。请指定以下某个值:对于 TPU v6e:
V6E
对于 TPU v5p:
V5P
对于 TPU v5e:
V5E
如果您指定 TPU v5e,则必须添加
--workload-type
标志。 将该标志设置为您要在 TPU 上运行的工作负载类型:对于在单个或多个操作中处理大量数据的工作负载(例如机器学习训练工作负载),请指定
BATCH
。对于处理并发请求且需要尽可能降低网络延迟的工作负载(例如机器学习推理工作负载),请指定
SERVING
。
RESERVATION_NAME
:Compute Engine 自动创建的用于预配所请求容量的预留的名称。SHARE_TYPE
:贵组织中的其他项目是否可以使用预留容量。请指定以下某个值:如需仅在项目中使用容量,请指定:
local
如需与其他项目共享容量,请指定:
projects
如果您指定了
projects
,则必须包含--share-with
标志,并将其设置为以英文逗号分隔的项目 ID 列表,例如project-1,project-2
。您最多可以指定组织内的 100 个项目。请勿在此列表中添加您的项目 ID。默认情况下,您可以使用预留容量。START_TIME
:请求的开始时间,采用 RFC 3339 时间戳格式。END_TIME
:采用 RFC 3339 时间戳格式的预留期结束时间。如果您想为预留期指定时长(以秒为单位),而不是结束时间,请将--end-time
标志替换为--duration
标志。ZONE
:您要在其中预留资源的可用区。
REST
如需在日历模式下创建未来预留请求并提交以供审核,请向 Beta 版
futureReservations.insert
方法发送以下POST
请求。根据您要预留的资源,在请求正文中添加以下字段:如需预留 GPU 虚拟机,请添加
totalCount
和machineType
字段:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "name": "FUTURE_RESERVATION_NAME", "autoDeleteAutoCreatedReservations": true, "deploymentType": "DENSE", "planningStatus": "SUBMITTED", "reservationMode": "CALENDAR", "reservationName": "RESERVATION_NAME", "shareSettings": { "shareType": "SHARE_TYPE" }, "specificReservationRequired": true, "specificSkuProperties": { "totalCount": NUMBER_OF_VMS, "instanceProperties": { "machineType": "MACHINE_TYPE" } }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
如需预留 TPU,请添加
acceleratorCount
和vmFamily
标志:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "name": "FUTURE_RESERVATION_NAME", "autoDeleteAutoCreatedReservations": true, "deploymentType": "DENSE", "planningStatus": "SUBMITTED", "reservationMode": "CALENDAR", "reservationName": "RESERVATION_NAME", "shareSettings": { "shareType": "SHARE_TYPE" }, "specificReservationRequired": true, "aggregateReservation": { "reservedResources": [ { "accelerator": { "acceleratorCount": NUMBER_OF_CHIPS } } ], "vmFamily": "TPU_VERSION" }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
替换以下内容:
PROJECT_ID
:您要在其中创建请求的项目的 ID。ZONE
:您要在其中预留资源的可用区。FUTURE_RESERVATION_NAME
:请求的名称。RESERVATION_NAME
:Compute Engine 自动创建的用于预配所请求容量的预留的名称。SHARE_TYPE
:贵组织中的其他项目是否可以使用预留容量。请指定以下某个值:如需仅在项目中使用容量,请指定:
LOCAL
如需与其他项目共享容量,请指定:
SPECIFIC_PROJECTS
如果您指定了
SPECIFIC_PROJECTS
,则必须在shareSettings
字段中添加projectMap
字段,以指定要与之共享容量的项目。您最多可以指定组织内的 100 个项目。请勿指定项目 ID。默认情况下,您可以使用预留容量。例如,如需与其他两个项目共享所请求的容量,请添加以下内容:
"shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }
将
CONSUMER_PROJECT_ID_1
和CONSUMER_PROJECT_ID_2
替换为您要允许使用所请求容量的两个项目的 ID。NUMBER_OF_VMS
:要预留的 GPU 虚拟机数量。MACHINE_TYPE
:要预留的 GPU 机器类型。NUMBER_OF_CHIPS
:要预留的 TPU 芯片数量。TPU_VERSION
:要预留的 TPU 版本。请指定以下某个值:对于 TPU v6e:
VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E
对于 TPU v5p:
VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P
对于 TPU v5e:
VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP
如果您指定 TPU v5e,则必须在
aggregateResources
字段中添加workloadType
字段。 将该字段设置为您要在 TPU 上运行的工作负载类型:对于在单个或多个操作中处理大量数据的工作负载(例如机器学习训练工作负载),请指定
BATCH
。对于处理并发请求且需要尽可能降低网络延迟的工作负载(例如机器学习推理工作负载),请指定
SERVING
。
START_TIME
:请求的开始时间,采用 RFC 3339 时间戳格式。END_TIME
:采用 RFC 3339 时间戳格式的预留期结束时间。如果您想指定预留期的时长(以秒为单位),而不是结束时间,请将endTime
字段替换为duration
字段。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-08-30。
-