承诺使用折扣 (CUD) 为 Compute Engine 资源提供大幅折扣,以换取 1 年期或 3 年期承诺使用合约(也称为承诺)。您承诺达到最低资源用量或最低支出金额,以获得资源使用费用的 CUD。但是,承诺不会为您的承诺资源预留可用区级容量。如需以折扣价格获取可用区级资源,并确保为它们预留容量,您必须购买承诺并为这些可用区级资源创建预留。
本文档介绍如何享受预留资源的 CUD,以及如何将预留附加到基于资源的承诺。
准备工作
- 查看预留的基础知识及其要求和限制。如需了解详情,请参阅 Compute Engine 可用区级资源的预留。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 您没有获得任何其他形式的资源使用折扣。
- 在承诺处于有效状态时,您的虚拟机必须使用预留。
有效承诺与虚拟机使用的预留必须至少有以下匹配属性:
- 应用的项目和区域
- 机器系列
vCPU 和内存:如需获得一种或两种资源类型的 CUD,您可以购买包含所需资源类型的基于资源或基于支出的承诺。当项目中的虚拟机使用属性与此类有效承诺匹配的任何预留时,您将自动获得这些类型的预留资源的适用 CUD。如果您预留的资源超出承诺量,那么超出的资源不享受 CUD。
GPU 和本地 SSD 磁盘:如需获得一种或两种资源的 CUD,您必须执行以下操作:
- 购买包含所需资源类型的基于资源的承诺。
- 为所有承诺的资源创建预留并使用与承诺匹配的属性,并将这些预留附加到承诺。
当项目中的虚拟机使用这些附加预留时,这些类型的预留资源将享受适用的 CUD。
- 使用属性与承诺匹配的现有预留
- 在购买承诺时创建新的匹配预留
- 完全不附加任何预留。
附加指定这些资源类型的任意组合的预留;例如:
- 4 个 vCPU 和 30 GB 内存
- 2 个 vCPU 和 50 GB 内存
- 10 个 vCPU 和 10 GB 内存
- 6 个 NVIDIA P100 GPU
- 2 个 NVIDIA P100 GPU
- 4 个 NVIDIA P100 GPU 和 2 个 NVIDIA V100 GPU
- 4 个 NVIDIA P100 GPU 和 4 个本地 SSD 磁盘
- 您必须购买承诺并在同一项目和区域中创建附加的预留。
- 您必须购买承诺并为同一机器系列中的资源创建附加的预留。
- 您必须在附加预留上停用自动删除选项。
- 如果您的承诺具有 GPU,则预留中指定的 GPU 类型与承诺必须匹配。
- 对于 GPU 和本地 SSD 磁盘,每种资源类型的预留资源数量必须与该资源类型的承诺资源数量完全一致。比方说,如果要购买 4 个 V100 GPU 的承诺,则承诺附加的预留必须指定总共 4 个 V100 GPU。但是,您预留的 vCPU 和内存的数量可能多于或少于您承诺中的数量。
- 对于 GPU,请购买您要使用的特定 GPU 类型的承诺使用合约。例如,您可以为 NVIDIA P100 或 NVIDIA V100 购买承诺使用合约,但不能使用为 NVIDIA P100 GPU 购买的承诺使用合约来涵盖 NVIDIA V100 GPU。
如果附加预留是共享预留,并且您希望在承诺项目以外使用该预留时获得适用的 CUD,则必须执行以下两项操作:
- 仅在与承诺属于同一 Cloud Billing 账号的项目之间共享预留。
- 为该 Cloud Billing 账号启用 CUD 共享。
在 Google Cloud 控制台中,前往承诺使用折扣页面。
如需购买新的承诺,请点击
购买使用承诺。系统会打开购买承诺使用折扣页面,并显示硬件标签页。在名称字段中,为承诺输入名称。
在区域字段中,选择您要将代码提交到哪个 Compute Engine 资源所在的区域。
在承诺类型字段中,选择已承诺资源的机器家族系列。以下承诺类型支持 GPU 和/或本地 SSD 磁盘:
- 加速器优化的 A2,适用于 A2 机器类型资源
- 加速器优化的 A3(适用于 A3 Edge 和 High 机器类型资源)
- 加速器优化的 A3 Mega(适用于 A3 Mega 机器类型资源)
- 计算优化的 C2,适用于 C2 机器类型资源
- 计算优化的 C2D,适用于 C2D 机器类型资源
- 通用 C3,适用于 C3 机器类型资源
- 通用 C3D,适用于 C3D 机器类型资源
- 通用 N1,适用于 N1 机器类型资源
- 通用 N2,适用于 N2 机器类型资源
- 通用 N2D,适用于 N2D 机器资源
- 图形优化的 G2,适用于 G2 机器类型资源
- 内存优化的 M3,适用于 M3 机器类型资源
- 存储优化型 Z3(适用于 Z3 机器类型资源)
对于时长,请执行以下操作:
- 如需指定承诺方案,请选择 1 年或 3 年。此设置决定了您的承诺的预设期限长度。
可选。如需为承诺指定自定义期限,请点击延长结束日期切换开关,然后在日期字段中指定自定义结束日期。如需了解详情,请参阅延长承诺期限。
在核心数字段中,输入您要提交的 vCPU 数量。
在内存字段中,输入您要提交的内存量(以 GB 为单位)。
如需提交到 GPU,请在 GPU 部分中,点击
添加 GPU,然后执行以下操作:- 在 GPU 类型字段中,选择 GPU 的类型。
- 在 GPU 数量字段中,输入 GPU 的数量。
- 可选:如果您的 GPU 模型支持适用于图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS),并且您计划运行图形密集型工作负载,请选择启用虚拟工作站 (NVIDIA GRID)复选框。
如需承诺使用本地 SSD 磁盘,请在本地 SSD 部分中点击
添加 SSD,然后在 SSD 数量字段中指定磁盘数量。如需将一个或多个现有预留附加到承诺,请在预留字段中,选择附加现有预留。
Google Cloud 控制台会显示项目中所有与该承诺匹配的区域、机器类型和 GPU 类型的预留的列表。之后,执行以下操作:
- 可选。如需查看包含特定房源的预订,请在过滤条件菜单中,为所需房源添加或移除过滤条件。
- 选择要附加到承诺的所有预订。
如需完成购买承诺及其附加预留的操作,请执行以下操作:
- 点击购买。
- 在购买承诺使用折扣对话框中,如果您同意服务专用条款,请再次点击购买。
COMMITMENT_NAME
:承诺的名称。REGION
:承诺所在的区域。PROJECT_ID
:项目的 ID,您将在其中购买包含附加预留的承诺。DURATION
:承诺的期限,12-month
或36-month
。CUSTOM_END_DATE
:可选。学期的自定义结束日期,格式必须为YYYY-MM-DD
。例如,如需指定自定义结束日期(2024 年 4 月 20 日),请将其格式设置为2024-04-20
。COMMITMENT_TYPE
:承诺类型。以下承诺类型支持 GPU 和/或本地 SSD 磁盘:accelerator-optimized
(适用于 A2 机器类型资源)accelerator-optimized-a3
(适用于 A3 Edge 和 High 机器类型资源)accelerator-optimized-a3-mega
(适用于 A3 Mega 机器类型资源)compute-optimized
(适用于 C2 机器类型资源)compute-optimized-c2d
(适用于 C2D 机器类型资源)compute-optimized-c3
(适用于 C3 机器类型资源)compute-optimized-c3d
(适用于 C3D 机器类型资源)general-purpose
(适用于 N1 机器类型资源)general-purpose-n2
(适用于 N2 机器类型资源)general-purpose-n2d
(适用于 N2D 机器资源)- 适用于 G2 机器类型资源的
graphics-optimized
memory-optimized-m3
(适用于 M3 机器类型资源)storage-optimized-z3
(适用于 Z3 机器类型资源)
COMMITTED_VCPUS
:您的承诺中包含的 vCPU 数量。该数字必须是正整数。COMMITTED_MEMORY
:您的承诺中包含的内存量,以 MB 或 GB 为单位。例如10240MB
或10GB
。如果您未指定单位,Compute Engine 将使用 GB 作为单位。您可以按 0.25 GB 的增量购买内存。COMMITTED_LOCAL_SSD
:您的承诺中包含的本地 SSD 空间,以 GB 为单位。每个本地 SSD 磁盘为 375 GB。COMMITTED_ACCELERATOR_COUNT
:您的承诺中包含的 GPU 数量。COMMITTED_ACCELERATOR_TYPE
:您的承诺中包含的 GPU 类型。RESERVATION_NAME_1
和RESERVATION_NAME_2
:要附加到承诺的现有预留的名称。RESERVATION_ZONE_1
和RESERVATION_ZONE_2
:要附加到承诺的现有预留的可用区。COMMITMENT_NAME
:承诺的名称。REGION
:承诺所在的区域。PROJECT_ID
:项目的 ID,您将在其中购买包含附加预留的承诺。DURATION
:承诺的期限,TWELVE_MONTH
或THIRTY_SIX_MONTH
。COMMITMENT_TYPE
:承诺类型。以下承诺类型支持 GPU 和/或本地 SSD 磁盘:ACCELERATOR_OPTIMIZED
(适用于 A2 机器类型资源)ACCELERATOR_OPTIMIZED_A3
(适用于 A3 Edge 和 High 机器类型资源)ACCELERATOR_OPTIMIZED_A3_MEGA
(适用于 A3 Mega 机器类型资源)COMPUTE_OPTIMIZED
(适用于 C2 机器类型资源)COMPUTE_OPTIMIZED_C2D
(适用于 C2D 机器类型资源)COMPUTE_OPTIMIZED_C3
(适用于 C3 机器类型资源)COMPUTE_OPTIMIZED_C3D
(适用于 C3D 机器类型资源)GENERAL_PURPOSE
(适用于 N1 机器类型资源)GENERAL_PURPOSE_N2
(适用于 N2 机器类型资源)GENERAL_PURPOSE_N2D
(适用于 N2D 机器资源)- 适用于 G2 机器类型资源的
GRAPHICS_OPTIMIZED
MEMORY_OPTIMIZED_M3
(适用于 M3 机器类型资源)STORAGE_OPTIMIZED_Z3
(适用于 Z3 机器类型资源)
COMMITTED_VCPUS
:您的承诺中包含的 vCPU 数量。该数字必须是正整数。COMMITTED_MEMORY
:您的承诺中包含的内存量,以 MB 为单位。例如10240MB
。您可以按 256 MB 的增量购买内存。COMMITTED_LOCAL_SSD
:您的承诺中包含的本地 SSD 存储空间,以 GB 为单位。每个本地 SSD 磁盘为 375 GB。COMMITTED_ACCELERATOR_COUNT
:您的承诺中包含的 GPU 数量。COMMITTED_ACCELERATOR_TYPE
:您的承诺中包含的 GPU 类型。CUSTOM_END_DATE
:可选。学期的自定义结束日期,格式必须为YYYY-MM-DD
。例如,如需指定自定义结束日期(2024 年 4 月 20 日),请将其格式设置为2024-04-20
。END_TIME
:美国和加拿大太平洋时间零点(UTC-8 或 UTC-7),采用世界协调时间 (UTC) 的偏移量格式。仅当您为承诺指定了自定义结束日期时,才应指定此值。请指定以下某个值:- 在夏令时期间:
07:00:00
- 在其他时间:
08:00:00
- 在夏令时期间:
RESERVATION_URLs
:要附加到承诺的现有预留的网址的逗号分隔列表。例如,如需附加res-1
和res-2
这两个预留,请指定以下网址:"https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/example-res-1", "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/reservations/example-res-2"
在 Google Cloud 控制台中,前往承诺使用折扣页面。
如需购买新的承诺,请点击
购买使用承诺。系统会打开购买承诺使用折扣页面,并显示硬件标签页。在名称字段中,为承诺输入名称。
在区域字段中,选择您要将代码提交到哪个 Compute Engine 资源所在的区域。
在承诺类型字段中,选择已承诺资源的机器家族系列。以下承诺类型支持 GPU 和/或本地 SSD 磁盘:
- 加速器优化的 A2,适用于 A2 机器类型资源
- 加速器优化的 A3(适用于 A3 Edge 和 High 机器类型资源)
- 加速器优化的 A3 Mega(适用于 A3 Mega 机器类型资源)
- 计算优化的 C2,适用于 C2 机器类型资源
- 计算优化的 C2D,适用于 C2D 机器类型资源
- 通用 C3,适用于 C3 机器类型资源
- 通用 C3D,适用于 C3D 机器类型资源
- 通用 N1,适用于 N1 机器类型资源
- 通用 N2,适用于 N2 机器类型资源
- 通用 N2D,适用于 N2D 机器资源
- 图形优化的 G2,适用于 G2 机器类型资源
- 内存优化的 M3,适用于 M3 机器类型资源
- 存储优化型 Z3(适用于 Z3 机器类型资源)
对于期限,请选择1 年或3 年作为承诺的期限。
在核心数字段中,输入您要提交的 vCPU 数量。
在内存字段中,输入您要提交的内存量(以 GB 为单位)。
如需提交到 GPU,请在 GPU 部分中,点击
添加 GPU,然后执行以下操作:- 在 GPU 类型字段中,选择 GPU 的类型。
- 在 GPU 数量字段中,输入 GPU 的数量。
- 可选:如果您的 GPU 模型支持适用于图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS),并且您计划运行图形密集型工作负载,请选择启用虚拟工作站 (NVIDIA GRID)复选框。
如需承诺使用本地 SSD 磁盘,请在本地 SSD 部分中点击
添加 SSD,然后在 SSD 数量字段中指定磁盘数量。如需创建新的预留并将其附加到承诺,请在预留字段中选择创建预留,然后执行以下操作。针对您要创建并附加的每个新预订重复此步骤。
- 点击添加预订。系统随即会显示新建预留部分。
- 在名称字段中,为关联的预订输入名称。
- 在区域字段中,选择与您的承诺相同的区域。
- 在可用区字段中,选择您要预留资源的可用区。
在共享类型部分,通过以下方式之一指定您要如何共享此预订:
- 如需创建单项目预留,请选择本地。
- 如需创建与多个项目共享的预留,请选择共享。然后,如需指定要与哪些项目共享此预留,请点击 Add projects(添加项目),然后从当前项目的组织中选择所需的项目。
在搭配虚拟机实例使用字段中,通过以下任一方式选择您希望虚拟机如何使用预留:
- 如需允许具有匹配属性的虚拟机自动使用此预留,请点击自动使用预留(默认)。
- 如需在创建具有匹配属性且通过名称明确指向此预留的虚拟机时使用此预留的资源,请点击选择特定预留。
在资源详情部分中,执行以下操作:
- 在虚拟机实例数量字段中,输入要预留的虚拟机实例数量。
在机器配置部分中,通过以下任一方式指定预留虚拟机的属性:
如需使用现有实例模板指定虚拟机的属性,请选择使用实例模板。
在实例模板字段中,选择一个实例模板,其指定的机器家族系列与您的承诺一致。如果您选择区域级实例模板,则该实例模板的区域也必须与您在承诺中指定的区域一致。
如需手动指定虚拟机的属性,请选择选择机器类型,然后执行以下操作:
选择适用于您为预付款指定的机器系列的机器家族:
- 通用(适用于通用机器系列)
- 计算优化(适用于计算优化机器系列)
- 内存优化(适用于内存优化机器系列)
- 加速器优化机器系列的 GPU
在包含系列列的表格中,选择与您为提交内容指定的机器系列相同的机器系列。
在机器类型字段中,通过以下任一方式指定预定义或自定义机器类型:
- 如需选择预定义机器类型,请选择预设,然后选择所需的机器类型。
- 如需选择自定义机器类型,请选择自定义,然后指定所需的核心和内存。
如需指定满足最低要求的 CPU 平台和/或 GPU,请展开
CPU 平台和 GPU 菜单,然后执行以下操作:- 可选:如需指定满足最低要求的 CPU 平台,请在 CPU 平台列表中选择一个选项。
可选:如需预留 GPU,请点击
添加 GPU。然后,在 GPU 类型和 GPU 数量字段中,选择每个虚拟机的 GPU 类型和数量。
如需预留本地 SSD 磁盘,请执行以下操作:
- 在磁盘数量字段中,选择每个虚拟机的本地 SSD 磁盘数量。
- 在接口类型字段中,选择本地 SSD 磁盘的接口。
如需完成为此预留指定属性,请点击完成。
如需完成购买承诺及其附加预留的操作,请执行以下操作:
- 点击购买。
- 在购买承诺使用折扣对话框中,如果您同意服务专用条款,请再次点击购买。
如需创建单个预留并附加到承诺,请运行以下命令来定义附加预留的属性:
gcloud compute commitments create COMMITMENT_NAME \ --region=REGION \ --project=PROJECT_ID \ --plan DURATION \ --type COMMITMENT_TYPE --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \ --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \ --custom-end-time=CUSTOM_END_DATE \ --reservation=RESERVATION_NAME \ --reservation-zone=RESERVATION_ZONE \ --machine-type=RESERVED_MACHINE_TYPE \ --require-specific-reservation=REQUIRE_SPECIFIC_RESERVATION_VALUE \ --vm-count=NUMBER_OF_RESERVED_VMs \ --accelerator=type=RESERVED_ACCELERATOR_TYPE,count=RESERVED_ACCELERATOR_COUNT \ --local-ssd=interface=INTERFACE_1,size=375 \ --local-ssd=interface=INTERFACE_2,size=375 \ --minimum-cpu-platform=MINIMUM_CPU_PLATFORM \ --share-setting=SHARE_SETTING \ --share-with=CONSUMER_PROJECT_ID_1,CONSUMER_PROJECT_ID_2
如需创建多个预留并附加到承诺,请使用 YAML 文件定义预留的属性,然后在用于购买承诺的命令中指定该 YAML 文件。(可选)您还可以使用此 YAML 文件方法创建单个预留并附加到承诺。如需使用此方法创建附加预留,请执行以下操作:
在当前目录中创建 YAML 文件,并指定每个附加预留的配置。例如,如需指定与两个指定 GPU、两个本地 SSD 磁盘和满足最低要求的 CPU 平台的项目共享的共享预留的配置,请在 YAML 文件中添加以下文本:
- reservation: RESERVATION_NAME reservation_zone: RESERVATION_ZONE require_specific_reservation: REQUIRE_SPECIFIC_RESERVATION_VALUE vm_count: NUMBER_OF_RESERVED_VMs machine_type: RESERVED_MACHINE_TYPE accelerator: - count: RESERVED_ACCELERATOR_COUNT type: RESERVED_ACCELERATOR_TYPE localssd: - interface: INTERFACE_1 size: 375 - interface: INTERFACE_2 size: 375 project: OWNER_PROJECT_ID minimum-cpu-platform: MINIMUM_CPU_PLATFORM share-setting: SHARE_SETTING share-with: - CONSUMER_PROJECT_ID_1 - CONSUMER_PROJECT_ID_2
如需为多个预留指定配置,请为要创建的每个预留重复这些属性。您可以将任意数量的现有预留附加到承诺。
运行
gcloud compute commitments create
命令并添加--reservation-from-file
标志。gcloud compute commitments create COMMITMENT_NAME \ --region REGION \ --project PROJECT_ID \ --plan DURATION \ --type COMMITMENT_TYPE \ --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \ --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \ --reservations-from-file=YAML_FILE
COMMITMENT_NAME
:承诺的名称。REGION
:承诺所在的区域。PROJECT_ID
:项目的 ID,您将在其中购买包含附加预留的承诺。DURATION
:承诺的期限,12-month
或36-month
。CUSTOM_END_DATE
:可选。学期的自定义结束日期,格式必须为YYYY-MM-DD
。例如,如需指定自定义结束日期(2024 年 4 月 20 日),请将其格式设置为2024-04-20
。COMMITMENT_TYPE
:承诺类型。以下承诺类型支持 GPU 和/或本地 SSD 磁盘:accelerator-optimized
(适用于 A2 机器类型资源)accelerator-optimized-a3
(适用于 A3 Edge 和 High 机器类型资源)accelerator-optimized-a3-mega
(适用于 A3 Mega 机器类型资源)compute-optimized
(适用于 C2 机器类型资源)compute-optimized-c2d
(适用于 C2D 机器类型资源)compute-optimized-c3
(适用于 C3 机器类型资源)compute-optimized-c3d
(适用于 C3D 机器类型资源)general-purpose
(适用于 N1 机器类型资源)general-purpose-n2
(适用于 N2 机器类型资源)general-purpose-n2d
(适用于 N2D 机器资源)- 适用于 G2 机器类型资源的
graphics-optimized
memory-optimized-m3
(适用于 M3 机器类型资源)storage-optimized-z3
(适用于 Z3 机器类型资源)
COMMITTED_VCPUS
:您的承诺中包含的 vCPU 数量。该数字必须是正整数。COMMITTED_MEMORY
:您的承诺中包含的内存量,以 MB 或 GB 为单位。例如10GB
或10240MB
。如果您未指定单位,Compute Engine 将使用 GB 作为单位。您可以按 0.25 GB 的增量购买内存。COMMITTED_LOCAL_SSD
:您的承诺中包含的本地 SSD 存储空间,以 GB 为单位。每个本地 SSD 磁盘为 375 GB。COMMITTED_ACCELERATOR_COUNT
:您的承诺中包含的 GPU 数量。COMMITTED_ACCELERATOR_TYPE
:您的承诺中包含的 GPU 类型。YAML_FILE
:包含附加预留配置的 YAML 文件的路径。RESERVATION_NAME
:附加预留的名称。RESERVATION_ZONE
:附加预留的可用区。REQUIRE_SPECIFIC_RESERVATION_VALUE
:指定附加预留是否为明确指定的预留(true
或false
)。如需详细了解明确指定的预留,请参阅预留的工作原理。NUMBER_OF_RESERVED_VMS
:在附加预留中预留的虚拟机数量。RESERVED_MACHINE_TYPE
:附加预留中的虚拟机机器类型。- 对于预定义机器类型,请使用
MACHINE_FAMILY-standard-CPUS
格式;例如n2-standard-4
。 对于自定义机器类型,请使用
MACHINE_FAMILY-custom-CPUS-MEMORY
格式;例如n2-custom-4-5120
。如需查看限制条件的完整列表,请参阅自定义机器类型的规范。替换以下内容:
MACHINE_FAMILY
:机器类型系列;例如,为 N2 虚拟机指定n2
。CPUS
:vCPU 的数量。MEMORY
:预留虚拟机的总内存。内存必须是 256 MB 的整数倍,且必须以 MB 为单位提供;例如,如需创建配备 4 个 vCPU 和 5 GB 内存(大小为 5120 MB)的 N2 虚拟机,请使用n2-custom-4-5120
。
- 对于预定义机器类型,请使用
RESERVED_ACCELERATOR_COUNT
:您要在附加预留中为每个虚拟机添加的 GPU 数量。RESERVED_ACCELERATOR_TYPE
:您要在附加预留中添加的加速器类型。INTERFACE_1
和INTERFACE_2
:您希望每个预留虚拟机的本地 SSD 磁盘使用的接口类型。有效选项包括scsi
和nvme
。每个本地 SSD 磁盘为 375 GB。对要添加的每个本地 SSD 磁盘重复local_ssd
参数。您最多可以指定 24 个本地 SSD 磁盘。OWNER_PROJECT_ID
:项目的 ID,您将在其中购买包含附加预留的承诺。如果要在多个使用方项目之间共享附加预留,请指定此字段。MINIMUM_CPU_PLATFORM
:您要为附加预留指定的满足最低要求的 CPU 平台。SHARE_SETTING
:附加预留的共享类型。如果要在多个使用方项目之间共享附加预留,请将此字段的值指定为projects
。如果要创建单项目预留,请排除此字段。CONSUMER_PROJECT_ID_1
和CONSUMER_PROJECT_ID_2
:可以共享此预留的项目的项目 ID,例如project-1
和project-2
。您最多可以添加 100 个使用方项目。这些项目必须与所有者项目位于同一组织中。请勿添加创建此预留的项目的 ID,因为默认情况下,该项目可以使用此预留。如果要创建单项目预留,请排除这些字段。如需通过手动指定所有虚拟机属性来创建新预留,请添加
instanceProperties
字段并排除sourceInstanceTemplate
字段。例如,如需手动指定与两个指定 GPU、两个本地 SSD 磁盘和满足最低要求的 CPU 平台的项目共享的共享预留的配置,请发出以下请求:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments { "name": "COMMITMENT_NAME", "plan": "DURATION", "type": COMMITMENT_TYPE, "resources": [ { "amount": "COMMITTED_VCPUS", "type": "VCPU" }, { "amount": "COMMITTED_MEMORY", "type": "MEMORY" }, { "acceleratorType": "COMMITTED_ACCELERATOR_TYPE", "amount": "COMMITTED_ACCELERATOR_COUNT", "type": "ACCELERATOR" } { "amount": "COMMITTED_LOCAL_SSD", "type": "LOCAL_SSD" } ], "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", "reservations": [ { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_RESERVED_VMS", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": "RESERVED_ACCELERATOR_COUNT", "acceleratorType": "RESERVED_ACCELERATOR_TYPE" } ], "localSsds": [ { "diskSizeGb": "375", "interface": "RESERVED_INTERFACE_1" }, { "diskSizeGb": "375", "interface": "RESERVED_INTERFACE_2" } ], "machineType": "RESERVED_MACHINE_TYPE", "minCpuPlatform": "MINIMUM_CPU_PLATFORM" } }, "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE", "zone": "RESERVED_ZONE", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } } } ] }
如需通过指定实例模板创建新预留,请添加
sourceInstanceTemplate
字段并排除instanceProperties
字段。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments { "name": "COMMITMENT_NAME", "plan": "DURATION", "type": COMMITMENT_TYPE, "resources": [ { "amount": "COMMITTED_VCPUS", "type": "VCPU" }, { "amount": "COMMITTED_MEMORY", "type": "MEMORY" }, { "acceleratorType": "COMMITTED_ACCELERATOR_TYPE", "amount": "COMMITTED_ACCELERATOR_COUNT", "type": "ACCELERATOR" } { "amount": "COMMITTED_LOCAL_SSD", "type": "LOCAL_SSD" } ], "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", "reservations": [ { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_RESERVED_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" }, "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE", "zone": "RESERVED_ZONE", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } } } ] }
COMMITMENT_NAME
:承诺的名称。REGION
:承诺所在的区域。PROJECT_ID
:项目的 ID,您将在其中购买包含附加预留的承诺。DURATION
:承诺的期限,TWELVE_MONTH
或THIRTY_SIX_MONTH
。COMMITMENT_TYPE
:承诺类型。以下承诺类型支持 GPU 和/或本地 SSD 磁盘:ACCELERATOR_OPTIMIZED
(适用于 A2 机器类型资源)ACCELERATOR_OPTIMIZED_A3
(适用于 A3 Edge 和 High 机器类型资源)ACCELERATOR_OPTIMIZED_A3_MEGA
(适用于 A3 Mega 机器类型资源)COMPUTE_OPTIMIZED
(适用于 C2 机器类型资源)COMPUTE_OPTIMIZED_C2D
(适用于 C2D 机器类型资源)COMPUTE_OPTIMIZED_C3
(适用于 C3 机器类型资源)COMPUTE_OPTIMIZED_C3D
(适用于 C3D 机器类型资源)GENERAL_PURPOSE
(适用于 N1 机器类型资源)GENERAL_PURPOSE_N2
(适用于 N2 机器类型资源)GENERAL_PURPOSE_N2D
(适用于 N2D 机器资源)- 适用于 G2 机器类型资源的
GRAPHICS_OPTIMIZED
MEMORY_OPTIMIZED_M3
(适用于 M3 机器类型资源)STORAGE_OPTIMIZED_Z3
(适用于 Z3 机器类型资源)
COMMITTED_VCPUS
:您的承诺中包含的 vCPU 数量。该数字必须是正整数。COMMITTED_MEMORY
:您的承诺中包含的内存量,以 MB 为单位。例如10240MB
。您可以按 256 MB 的增量购买内存。COMMITTED_LOCAL_SSD
:您的承诺中包含的本地 SSD 存储空间,以 GB 为单位。每个本地 SSD 磁盘为 375 GB。COMMITTED_ACCELERATOR_COUNT
:您的承诺中包含的 GPU 数量。COMMITTED_ACCELERATOR_TYPE
:您的承诺中包含的 GPU 类型。CUSTOM_END_DATE
:可选。学期的自定义结束日期,格式必须为YYYY-MM-DD
。例如,如需指定自定义结束日期(2024 年 4 月 20 日),请将其格式设置为2024-04-20
。END_TIME
:美国和加拿大太平洋时间零点(UTC-8 或 UTC-7),采用世界协调时间 (UTC) 的偏移量格式。仅当您为承诺指定了自定义结束日期时,才应指定此值。请指定以下某个值:- 在夏令时期间:
07:00:00
- 在其他时间:
08:00:00
- 在夏令时期间:
RESERVATION_NAME
:附加预留的名称。RESERVATION_ZONE
:附加预留的可用区。REQUIRE_SPECIFIC_RESERVATION_VALUE
:指定附加预留是否为明确指定的预留(true
或false
)。如需详细了解明确指定的预留,请参阅预留的工作原理。NUMBER_OF_RESERVED_VMS
:在附加预留中预留的虚拟机数量。RESERVED_MACHINE_TYPE
:附加预留中的虚拟机机器类型。- 对于预定义机器类型,请使用
MACHINE_FAMILY-standard-CPUS
格式;例如n2-standard-4
。 对于自定义机器类型,请使用
MACHINE_FAMILY-custom-CPUS-MEMORY
格式;例如n2-custom-4-5120
。如需查看限制条件的完整列表,请参阅自定义机器类型的规范。替换以下内容:
MACHINE_FAMILY
:机器类型系列;例如,为 N2 虚拟机指定n2
。CPUS
:vCPU 的数量。MEMORY
:预留虚拟机的总内存。内存必须是 256 MB 的整数倍,且必须以 MB 为单位提供;例如,如需创建配备 4 个 vCPU 和 5 GB 内存(大小为 5120 MB)的 N2 虚拟机,请使用n2-custom-4-5120
。
- 对于预定义机器类型,请使用
RESERVED_ACCELERATOR_COUNT
:您要在附加预留中为每个虚拟机添加的 GPU 数量。RESERVED_ACCELERATOR_TYPE
:您要在附加预留中添加的加速器类型。INTERFACE_1
和INTERFACE_2
:您希望每个预留虚拟机的本地 SSD 磁盘使用的接口类型。有效选项包括scsi
和nvme
。每个本地 SSD 磁盘为 375 GB。对要添加的每个本地 SSD 磁盘重复localSsds
参数。您最多可以指定 24 个本地 SSD 磁盘。MINIMUM_CPU_PLATFORM
:您要为附加预留指定的满足最低要求的 CPU 平台。INSTANCE_TEMPLATE_NAME
:您要用于创建附加预留的实例模板的名称。SHARE_SETTING
:附加预留的共享类型。如果要在多个使用方项目之间共享附加预留,请将此字段的值指定为SPECIFIC_PROJECTS
。如果要创建单项目预留,请排除此字段。CONSUMER_PROJECT_ID_1
和CONSUMER_PROJECT_ID_2
:可以共享此预留的项目的项目 ID,例如project-1
和project-2
。您最多可以添加 100 个使用方项目。这些项目必须与所有者项目位于同一组织中。请勿添加创建此预留的项目的 ID,因为默认情况下,该项目可以使用此预留。如果要创建单项目预留,请排除这些字段。- 您可以预留其他机器类型的虚拟机。但是,您仍必须预留同一机器系列中的虚拟机,以便继续享受预留资源的 CUD。
- 您可以更改要预留的虚拟机数量。
- 只要预留的 GPU 和本地 SSD 磁盘的总数保持不变,就可以更改每个虚拟机附加的 GPU 和本地 SSD 磁盘的数量。
您可以将替换后的预留指定为本地预留或共享预留。
- 一次只能用一个新的附加预留替换一个附加预留。如需替换附加预留,请通过将虚拟机数量设置为 0 来移除现有的附加预留,并定义要替换它的新附加预留。
- 新预留必须与承诺位于同一项目中。
- 新预留必须与已移除预留位于同一可用区。
- 新预留中指定的 GPU 数量和类型必须与已移除预留匹配。
- 新预留中指定的本地 SSD 磁盘的数量和类型必须与已移除预留匹配。
- 每个请求最多只能更改 100 个虚拟机。如需进行涉及 100 多个虚拟机的更改,请将更改分成多个较小的请求,或与 Google Cloud 支持团队联系。
在当前目录中创建一个 YAML 文件,其中包含以下附加预留的配置:
您要替换的当前预订。
如需检索此预留的详细信息,请参阅查看预留详细信息。
新的替换预订。
YAML 文件的内容类似如下所示:
- reservation: CURRENT_RESERVATION_NAME reservation_zone: CURRENT_RESERVATION_ZONE vm_count: 0 machine_type: CURRENT_RESERVATION_MACHINE_TYPE accelerator: - count: CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS type: CURRENT_RESERVATION_ACCELERATOR_TYPE local_ssd: - interface: CURRENT_RESERVATION_INTERFACE_1 size: 375 - interface: CURRENT_RESERVATION_INTERFACE_2 size: 375 project: CURRENT_RESERVATION_PROJECT_ID share_setting: CURRENT_RESERVATION_SHARE_SETTING share_with: - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2 - reservation: REPLACEMENT_RESERVATION_NAME reservation_zone: REPLACEMENT_RESERVATION_ZONE vm_count: REPLACEMENT_RESERVATION_NUMBER_OF_VMs machine_type: REPLACEMENT_RESERVATION_MACHINE_TYPE accelerator: - count: REPLACEMENT_RESERVATION_ACCELERATOR_COUNT type: REPLACEMENT_RESERVATION_ACCELERATOR_TYPE local_ssd: - interface: REPLACEMENT_RESERVATION_INTERFACE_1 size: 375 - interface: REPLACEMENT_RESERVATION_INTERFACE_2 size: 375 project: REPLACEMENT_RESERVATION_PROJECT_ID share_setting: REPLACEMENT_RESERVATION_SHARE_SETTING share_with: - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2
将以下内容替换为当前预订和替换预订的相应属性:
当前预留
对于当前预留,以下所有属性必须与您查看预留时完全相同。忽略当前预留还没有的任何属性的字段。
CURRENT_RESERVATION_NAME
:当前附加预留的名称。CURRENT_RESERVATION_ZONE
:当前附加预留的可用区。CURRENT_RESERVATION_MACHINE_TYPE
:当前附加预留的机器类型。CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS
:当前附加预留中预留的 GPU 数量。CURRENT_RESERVATION_ACCELERATOR_TYPE
:当前附加预留中预留的加速器类型。CURRENT_RESERVATION_INTERFACE_1
和CURRENT_RESERVATION_INTERFACE_2
:在当前附加预留中每个预留虚拟机的本地 SSD 磁盘使用的接口类型。有效选项包括scsi
和nvme
。每个本地 SSD 磁盘为 375 GB。对所有预留的本地 SSD 磁盘重复local_ssd
参数。CURRENT_RESERVATION_PROJECT_ID
:包含承诺和附加预留的当前项目的项目 ID。如果在多个使用方项目之间共享当前附加预留,请指定此字段。CURRENT_RESERVATION_SHARE_SETTING
:当前预留的共享类型。如果在多个使用方项目之间共享当前附加预留,请将此字段的值指定为projects
。CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1
和CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2
:您与之共享当前附加预留的项目的项目 ID,例如project-1
和project-2
。
替换预留
对于替换预留,根据需要设置以下属性。确保指定这些属性时满足所有要求。忽略您不想使用的任何其他字段。
REPLACEMENT_RESERVATION_NAME
:新替换预留的名称。REPLACEMENT_RESERVATION_ZONE
:新替换预留的可用区。REPLACEMENT_RESERVATION_NUMBER_OF_VMS
:您要在新替换预留中预留的虚拟机数量。REPLACEMENT_RESERVATION_MACHINE_TYPE
:您希望新替换预留中的虚拟机采用的机器类型。- 对于预定义机器类型,请使用
MACHINE_FAMILY-standard-CPUS
格式;例如n2-standard-4
。 - 对于自定义机器类型,请使用
MACHINE_FAMILY-custom-CPUS-MEMORY
格式;例如n2-custom-4-5120
。如需查看限制条件的完整列表,请参阅自定义机器类型的规范。
替换以下内容:
MACHINE_FAMILY
:机器类型系列;例如,为 N2 虚拟机指定n2
。CPUS
:vCPU 的数量。MEMORY
:预留虚拟机的总内存。内存必须是 256 MB 的整数倍,且必须以 MB 为单位提供;例如,如需创建配备 4 个 vCPU 和 5 GB 内存(大小为 5120 MB)的 N2 虚拟机,请使用n2-custom-4-5120
。
- 对于预定义机器类型,请使用
REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS
:您要在替换预留中为每个虚拟机添加的 GPU 数量。REPLACEMENT_RESERVATION_ACCELERATOR_TYPE
:您要在替换预留中添加的加速器类型。REPLACEMENT_RESERVATION_INTERFACE_1
和REPLACEMENT_RESERVATION_INTERFACE_2
:您希望每个预留虚拟机的本地 SSD 磁盘使用的接口类型。有效选项包括scsi
和nvme
。 每个本地 SSD 磁盘为 375 GB。对要添加的每个本地 SSD 磁盘重复local_ssd
参数。您最多可以指定 24 个本地 SSD 磁盘。REPLACEMENT_RESERVATION_PROJECT_ID
:包含承诺和附加预留的当前项目的项目 ID。如果要在多个使用方项目之间共享替换预留,请指定此字段。REPLACEMENT_RESERVATION_SHARE_SETTING
:替换预留的共享类型。如果要在多个使用方项目之间共享替换预留,请将此字段的值指定为projects
。REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1
和REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2
:可以共享此预留的项目的项目 ID,例如project-1,project-2
。您最多可以添加 100 个使用方项目。 这些项目必须与所有者项目位于同一组织中。请勿添加REPLACEMENT_RESERVATION_PROJECT_ID
,默认情况下,它可以使用此预留。
运行
gcloud beta compute commitments update-reservations
命令并使用--reservations-from-file
标志指定 YAML 文件的路径。gcloud beta compute commitments update-reservations COMMITMENT_NAME \ --project= PROJECT_ID \ --region= REGION \ --reservations-from-file= YAML_FILE
替换以下内容:
COMMITMENT_NAME
:含附加预留的承诺的名称。PROJECT_ID
:含附加预留的承诺的项目 ID。REGION
:承诺所在的区域。YAML_FILE
:包含当前预留和替换预留的配置的 YAML 文件的路径。
在当前目录中创建一个名为
two-reservations.yaml
的文件,该文件包含以下内容:- reservation: res-1 reservation_zone: asia-east1-a vm_count: 0 machine_type: n1-standard-4 accelerator: - count: 1 type: nvidia-tesla-p100 local_ssd: - interface: scsi size: 375 - interface: scsi size: 375 - reservation: res-2 reservation_zone: asia-east1-a vm_count: 2 machine_type: n1-standard-8 accelerator: - count: 2 type: nvidia-tesla-p100 project: my-project share_setting: projects share_with: - project-1 - project-2 local_ssd: - interface: scsi size: 375 - interface: scsi size: 375 - interface: scsi size: 375 - interface: scsi size: 375
运行以下命令:
gcloud beta compute commitments update-reservations my-commitment-with-reservations \ --region=asia-east1 \ --reservations-from-file=two-reservations.yaml
COMMITMENT_NAME
:含附加预留的承诺的名称。PROJECT_ID
:含附加预留的承诺的项目 ID。这也是当前预留和附加预留的项目 ID。COMMITMENT_ZONE
:含附加预留的承诺的可用区。CURRENT_RESERVATION_NAME
:当前附加预留的名称。CURRENT_RESERVATION_ZONE
:当前附加预留的可用区。CURRENT_RESERVATION_MACHINE_TYPE
:当前附加预留的机器类型。CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS
:当前附加预留中预留的 GPU 数量。CURRENT_RESERVATION_ACCELERATOR_TYPE
:当前附加预留中预留的加速器类型。CURRENT_RESERVATION_INTERFACE_1
和CURRENT_RESERVATION_INTERFACE_2
:在当前附加预留中每个预留虚拟机的本地 SSD 磁盘使用的接口类型。有效选项包括scsi
和nvme
。每个本地 SSD 磁盘为 375 GB。对所有预留的本地 SSD 磁盘重复localSsds
参数。CURRENT_RESERVATION_SHARE_SETTING
:当前预留的共享类型。如果在多个使用方项目之间共享当前附加预留,请将此参数的值指定为projects
。CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1
和CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2
:您与之共享当前附加预留的项目的项目 ID,例如project-1
和project-2
。REPLACEMENT_RESERVATION_NAME
:新替换预留的名称。REPLACEMENT_RESERVATION_ZONE
:新替换预留的可用区。REPLACEMENT_RESERVATION_NUMBER_OF_VMS
:您要在新替换预留中预留的虚拟机数量。REPLACEMENT_RESERVATION_MACHINE_TYPE
:您希望新替换预留中的虚拟机采用的机器类型。- 对于预定义机器类型,请使用
MACHINE_FAMILY-standard-CPUS
格式;例如n2-standard-4
。 - 对于自定义机器类型,请使用
MACHINE_FAMILY-custom-CPUS-MEMORY
格式;例如n2-custom-4-5120
。如需查看限制条件的完整列表,请参阅自定义机器类型的规范。
替换以下内容:
MACHINE_FAMILY
:机器类型系列;例如,为 N2 虚拟机指定n2
。CPUS
:vCPU 的数量。MEMORY
:预留虚拟机的总内存。内存必须是 256 MB 的整数倍,且必须以 MB 为单位提供;例如,如需创建配备 4 个 vCPU 和 5 GB 内存(大小为 5120 MB)的 N2 虚拟机,请使用n2-custom-4-5120
。
- 对于预定义机器类型,请使用
REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS
:您要在替换预留中为每个虚拟机添加的 GPU 数量。REPLACEMENT_RESERVATION_ACCELERATOR_TYPE
:您要在替换预留中添加的加速器类型。REPLACEMENT_RESERVATION_INTERFACE_1
和REPLACEMENT_RESERVATION_INTERFACE_2
:您希望每个预留虚拟机的本地 SSD 磁盘使用的接口类型。有效选项包括scsi
和nvme
。 每个本地 SSD 磁盘为 375 GB。对要添加的每个本地 SSD 磁盘重复localSsds
参数。您最多可以指定 24 个本地 SSD 磁盘。REPLACEMENT_RESERVATION_SHARE_SETTING
:替换预留的共享类型。如果要在多个使用方项目之间共享替换预留,请将此参数的值指定为projects
。REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1
和REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2
:可以共享此预留的项目的项目 ID,例如project-1,project-2
。您最多可以添加 100 个使用方项目。 这些项目必须与所有者项目位于同一组织中。请勿添加PROJECT_ID
,默认情况下,它可以使用此预留。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
预留资源的 CUD
对于项目中任何符合条件的资源使用量,您都可以享受有效承诺的 CUD。如果您还有任何预留为该项目中的资源保留容量,则有效承诺中的 CUD 也适用于这些预留资源。如需使任何预留资源有资格享受 CUD,您需要满足以下要求:
根据资源类型的不同,您可以通过以下任一方式享受预留资源的 CUD:
将预留附加到基于资源的承诺
您可以将预留附加到任何基于资源的承诺,并确保在特定可用区中为您计划使用的承诺资源保留容量。您可以将多个预留附加到单个承诺;但但一个预留只能附加到一个承诺。购买承诺时,您可以通过以下方式之一将预留附加到该承诺:
在您购买包含附加预留的承诺后,只要承诺处于有效状态,预留就会一直保持有效状态。承诺使用合约到期时,Compute Engine 会自动删除所有附加预留。 删除这些预留不会影响使用这些预留的任何正在运行的虚拟机。正在运行的虚拟机将继续运行,您仍需要为这些虚拟机付费。
不需要附加预留的承诺资源
承诺的 vCPU 和内存不需要您将匹配的预留附加到承诺。但是,当您购买包含 vCPU 和/或内存的承诺时,您仍然可以选择附加指定这些资源的预留。如需了解如何仅为 vCPU 和/或内存购买承诺,而不附加预留,请参阅购买不含附加预留的承诺。
需要附加预留的承诺资源
承诺的 GPU 和本地 SSD 磁盘需要您将匹配的预留附加到承诺。当您购买包含任何 GPU 和/或本地 SSD 磁盘的承诺时,你必须预留这些资源,并将这些预留附加到承诺。您可以使用单个预留或预留组合来这样做。购买此类承诺时,您还可以包含 vCPU 和/或内存。但是,您无需预留这些 vCPU 或内存。如需了解如何购买包含 GPU 和/或本地 SSD 磁盘的承诺,请参阅本文档中的购买包含附加预留的承诺。
如需查看支持 GPU 和本地 SSD 磁盘 CUD 的机器系列的完整列表,请参阅基于资源的 CUD 文档中的硬件承诺类型部分。
附加预留中允许的资源数量
对于 vCPU 和内存,您可以使预留指定多于或少于承诺数量的资源数量。如果您承诺的 vCPU 或内存多于您预留量,那么 Compute Engine 只会为这些预留的资源预留容量。但是,您仍然可以使用其他承诺的资源,具体取决于这些资源在您区域中的可用性。如果您预留的 vCPU 或内存多于承诺量,那么超出的预留资源不享受 CUD。
例如,如果您购买 4 个 vCPU 和 30 GB 内存的承诺,则可以选择执行以下操作之一:
但是,如果您的承诺包含任何 GPU 和/或本地 SSD 磁盘,则必须预留并附加所有这些资源。附加预留必须指定您承诺的 GPU 和本地 SSD 磁盘的确切数量和类型。因此,您的附加预留中也不能有任何其他数量或类型的 GPU 或本地 SSD 磁盘。例如,假设您购买了 30 GB 内存和 4 个 NVIDIA P100 GPU 的承诺。附加预留(或附加预留的组合)可以指定任意数量的 vCPU 或内存,但必须恰好指定 4 个 NVIDIA P100 类型的 GPU。在此示例中,您无法附加指定以下任何资源组合的预留:
购买包含附加预留的承诺使用合约
购买新承诺时,您可以通过以下任一方式将预留附加到承诺:
购买承诺后,您的承诺将于次日美国和加拿大太平洋时间(UTC-8,或夏令时期间为 UTC-7)上午 12 点生效。 从承诺购买到激活的这段时间内,承诺的状态保持为
NOT_YET_ACTIVE
(在 Google Cloud 控制台中保持为PENDING
)。激活后,您的承诺状态将更改为ACTIVE
。例如,假设您在美国和加拿大太平洋时间(UTC-8 或 UTC-7)1 月 20 日晚上 10:00 购买了承诺。Compute Engine 会立即创建您的承诺,其状态为NOT_YET_ACTIVE
。但是,承诺仅在美国和加拿大太平洋时间(UTC-8 或 UTC-7)1 月 21 日零点才会变为ACTIVE
。要求
在购买包含附加预留的承诺之前,请先查看这些要求,并确保您的承诺和预留符合以下条件:
附加现有预留
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST,在购买承诺时附加现有预留。
控制台
在使用 Google Cloud 控制台购买承诺之前,请先选择要用于购买承诺的项目。如果为 Cloud Billing 账号启用了 CUD 共享,您可以使用该 Cloud Billing 账号中的任何项目购买承诺。选择项目后,请执行以下操作:
gcloud
如需通过附加现有预留来购买承诺,请运行
gcloud compute commitments create
命令。在您的命令中,添加--existing-reservation
标志以指定要附加到承诺的现有预留。为要附加的每个现有预留添加一次此标志。您可以将任意数量的现有预留附加到承诺。例如,如需通过附加两个预留来购买承诺,请运行以下命令:
gcloud compute commitments create COMMITMENT_NAME \ --region=REGION \ --project=PROJECT_ID \ --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \ --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \ --plan=DURATION \ --type=COMMITMENT_TYPE \ --custom-end-time=CUSTOM_END_DATE \ --existing-reservation=name='RESERVATION_NAME_1',zone='RESERVATION_ZONE_1' \ --existing-reservation=name='RESERVATION_NAME_2',zone='RESERVATION_ZONE_2'
替换以下内容:
示例:通过附加现有预留来购买承诺
假设项目
myproject
的us-central1-a
和us-central1-b
可用区中有两个预留res-01
和res-02
。假设这些预留包含 4 个 NVIDIA P100 GPU 和 4 个本地 SSD 磁盘的总容量。如需在此项目的us-central1
区域中为这些 GPU 和本地 SSD 磁盘购买新承诺,并将这些现有预留用作附加预留,请运行以下命令。请注意,示例承诺还包含 vCPU 和内存。gcloud compute commitments create commitment-01 \ --region=us-central1 \ --project=myproject \ --resources=vcpu=96,memory=624GB,local-ssd=1500 \ --resources-accelerator=type=nvidia-tesla-p100,count=4 \ --plan 12-month \ --existing-reservation=name=res-01,zone=us-central1-a \ --existing-reservation=name=res-02,zone=us-central1-b
REST
如需通过附加现有预留来购买承诺,请向
regionCommitments.insert
方法发出POST
请求。在您的请求中添加existingReservations
字段,以指定要附加到承诺的所有现有预留的逗号分隔列表。您可以将任意数量的现有预留附加到承诺。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments { "name": "COMMITMENT_NAME", "plan": "DURATION", "type": COMMITMENT_TYPE, "resources": [ { "amount": "COMMITTED_VCPUS", "type": "VCPU" }, { "amount": "COMMITTED_MEMORY", "type": "MEMORY" }, { "acceleratorType": "COMMITTED_ACCELERATOR_TYPE", "amount": "COMMITTED_ACCELERATOR_COUNT", "type": "ACCELERATOR" } { "amount": "COMMITTED_LOCAL_SSD", "type": "LOCAL_SSD" } ], "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", "existingReservations": "RESERVATION_URLs" }
替换以下内容:
示例:通过附加现有预留来购买承诺
假设项目
myproject
的us-central1-a
和us-central1-b
可用区中有两个预留res-01
和res-02
。假设这些预留包含 4 个 NVIDIA P100 GPU 和 4 个本地 SSD 磁盘的总容量。如需在此项目的us-central1
区域中为这些 GPU 和本地 SSD 磁盘购买新承诺,并将这些现有预留用作附加预留,请发出以下POST
请求。请注意,示例承诺还包含 vCPU 和内存。POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments { "name": "commitment-01", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE" "resources": [ { "amount": "96", "type": "VCPU" }, { "amount": "638976", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-p100", "amount": "4", "type": "ACCELERATOR" }, { "amount": "1536000", "type": "LOCAL_SSD" } ], "existingReservations": [ "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/reservations/res-01", "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-b/reservations/res-02" ] }
创建要附加的新预留
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST,在购买承诺时创建附加预留。
控制台
在使用 Google Cloud 控制台购买承诺之前,请先选择要用于购买承诺的项目。如果为 Cloud Billing 账号启用了 CUD 共享,您可以使用该 Cloud Billing 账号中的任何项目购买承诺。选择项目后,请执行以下操作:
gcloud
如需在购买承诺时创建附加预留,请运行
gcloud compute commitments create
命令。根据您要附加单个预留还是多个预留,通过以下方式之一运行该命令:
将以下字段替换为承诺和附加预留的相应属性:
承诺
附加预留
只有在请求时目标可用区中有足够的指定机器类型资源和足够的配额时,Compute Engine 才会创建承诺和附加预留。如果您的购买成功,您会看到如下所示的成功消息:
Created[https://www.googleapis.com/compute/v1/projects/your-project/regions/your-region/commitments/your-commitment-name]
通过创建要附加的新预留来购买承诺的示例
以下示例场景和命令展示了如何通过创建要附加到承诺的新预留来为 GPU 和/或本地 SSD 磁盘购买承诺。
示例 1:通过附加单个新预留为 GPU 购买承诺
假设您要在
us-central1
区域中购买包含 4 个 NVIDIA V100 GPU 的承诺commitment-01
。您要创建新预留reservation-01
作为这些 GPU 的附加预留。假设您还想要指定 Compute Engine 在us-central1-a
可用区中的 2 个n1-standard-32
虚拟机上使用这些预留的 GPU。如需购买此示例承诺及其附加预留,请运行以下命令:gcloud compute commitments create commitment-01 \ --region=us-central1 \ --project=myproject \ --resources=vcpu=96,memory=624GB \ --resources-accelerator=type=nvidia-tesla-v100,count=4 \ --plan 12-month \ --reservation=reservation-01 \ --reservation-zone=us-central1-a \ --machine-type=n1-standard-32 \ --accelerator=type=nvidia-tesla-v100,count=2 \ --vm-count=2
示例 2:为 GPU 购买承诺,但不为 vCPU 或内存购买承诺
如需为 GPU 和本地 SSD 磁盘购买承诺并预留 GPU 和本地 SSD 磁盘,但不为 vCPU 或内存购买承诺,请指定
0
作为 vCPU 和内存数量的值。例如,假设您想要为us-west2
区域中的单个 NVIDIA P4 GPU 购买承诺commitment-02
。您还希望创建新的预留作为附加预留,并指定 Compute Engine 在us-west2-b
可用区中的n1-standard-2
虚拟机上使用预留的 GPU。如需购买此示例承诺及其附加预留,请运行以下命令:gcloud compute commitments create commitment-02 \ --region=us-west2 \ --project=myproject \ --resources=vcpu=0,memory=0 \ --resources-accelerator=type=nvidia-tesla-p4,count=1 \ --plan 12-month \ --reservation=reservation-01 \ --reservation-zone=us-west2-b \ --machine-type=n1-standard-2 \ --accelerator=type=nvidia-tesla-p4,count=1 \ --vm-count=1
示例 3:通过附加多个新预留为 GPU 和本地 SSD 磁盘购买承诺
假设您想要为
us-central1
区域中的 1 个 NVIDIA V100 GPU 和 2 个本地 SSD 磁盘购买承诺commitment-03
。您还希望在us-central1-a
可用区中创建和附加两个预留。在第一个预留res-01
中,您想要预留 1 个n1-standard-2
虚拟机和 1 个 GPU。您希望将res-01
设置为指定的预留,这表示您必须明确指定该预留的名称才能使用其预留的虚拟机。在第二个预留res-02
中,您想要预留 1 个n1-standard-8
虚拟机,并挂接 2 种本地 SSD 磁盘。如需购买包含附加预留的此示例承诺,请先创建具有两个预留属性的 YAML 文件。
- reservation: res-01 reservation_zone: us-central1-a require_specific_reservation: true vm_count: 1 machine_type: n1-standard-2 accelerator: - count: 1 type: nvidia-tesla-v100 - reservation: res-02 reservation_zone: us-central1-a vm_count: 1 machine_type: n1-standard-8 local_ssd: - interface: scsi size: 375 - interface: nvme size: 375
创建 YAML 文件后,如需完成购买承诺及其附加预留的操作,请运行以下命令。请注意,示例承诺还包含 vCPU 和内存资源。
gcloud compute commitments create commitment-03 \ --region=us-central1 \ --project=myproject \ --resources=vcpu=96,memory=624,local-ssd=750 \ --resources-accelerator=type=nvidia-tesla-v100,count=1 \ --plan 12-month \ --reservations-from-file=YAML_FILE
REST
如需在购买承诺时创建附加预留,请向
regionCommitments.insert
方法发出POST
请求。在请求中添加reservations
字段,以定义要创建和附加的所有新预留的列表。您可以将任意数量的现有预留附加到承诺。将以下字段替换为承诺和附加预留的相应属性:
承诺
附加预留
只有在请求时目标可用区中有足够的指定机器类型资源和足够的配额时,Compute Engine 才会创建承诺和附加预留。如果购买成功,Compute Engine 会为您的 REST API 请求返回
200
状态。通过创建要附加的新预留来购买承诺的示例
以下示例场景和命令展示了如何通过创建要附加到承诺的新预留来为 GPU 和/或本地 SSD 磁盘购买承诺。
示例 1:通过附加单个新预留为 GPU 购买承诺
假设您要在
us-central1
区域中购买包含 4 个 NVIDIA V100 GPU 的承诺commitment-01
。您要创建新预留reservation-01
作为这些 GPU 的附加预留。假设您还想要指定 Compute Engine 在us-central1-a
可用区中的 2 个n1-standard-8
虚拟机上使用这些预留的 GPU。如需购买此示例承诺及其附加预留,请发出以下POST
请求:POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments { "name": "commitment-01", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE" "resources": [ { "amount": "96", "type": "VCPU" }, { "amount": "638976", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-v100", "amount": "4", "type": "ACCELERATOR" } ], "reservations": [ { "name": "reservation-01", "specificReservation": { "count": "2", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 2, "acceleratorType": "nvidia-tesla-v100" } ], "machineType": "n1-standard-8" } }, "specificReservationRequired": false, "zone": "us-central1-a" } ] }
示例 2:为 GPU 购买承诺,但不为 vCPU 或内存购买承诺
如需为 GPU 和本地 SSD 磁盘购买承诺并预留 GPU 和本地 SSD 磁盘,但不为 vCPU 或内存购买承诺,请指定
0
作为 vCPU 和内存数量的值。例如,假设您想要为us-west2
区域中的单个 NVIDIA P4 GPU 购买承诺commitment-02
。您还希望创建新的预留作为附加预留,并指定 Compute Engine 在us-west2-b
可用区中的n1-standard-2
虚拟机上使用预留的 GPU。如需购买此示例承诺及其附加预留,请发出以下POST
请求:POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west2/commitments { "name": "commitment-02", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE", "resources": [ { "amount": "0", "type": "VCPU" }, { "amount": "0", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-p4", "amount": "4", "type": "ACCELERATOR" } ], "reservations": [ { "name": "reservation-01", "specificReservation": { "count": "1", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 4, "acceleratorType": "nvidia-tesla-p4" } ], "machineType": "n1-standard-2" } }, "specificReservationRequired": false, "zone": "us-west2-b" } ] }
示例 3:通过附加多个新预留为 GPU 和本地 SSD 磁盘购买承诺
假设您想要为
us-central1
区域中的 1 个 NVIDIA V100 GPU 和 2 个本地 SSD 磁盘购买承诺commitment-03
。您还希望在us-central1-a
可用区中创建和附加两个预留。在第一个预留res-01
中,您想要预留 1 个n1-standard-2
虚拟机和 1 个 GPU。您希望将res-01
设置为指定的预留,这表示您必须明确指定该预留的名称才能使用其预留的虚拟机。在第二个预留res-02
中,您想要预留 1 个n1-standard-8
虚拟机,并挂接 2 种本地 SSD 磁盘。如需购买带有附加预留的此示例承诺,请发出以下POST
请求。请注意,示例承诺还包含 vCPU 和内存资源。POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments { "name": "commitment-03", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE", "resources": [ { "amount": "96", "type": "VCPU" }, { "amount": "638976", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-v100", "amount": "1", "type": "ACCELERATOR" }, { "amount": "768000", "type": "LOCAL_SSD" } ], "reservations": [ { "name": "res-01", "specificReservation": { "count": "1", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 1, "acceleratorType": "nvidia-tesla-v100" } ], "machineType": "n1-standard-2" } }, "specificReservationRequired": true, "zone": "us-central1-a" }, { "name": "res-02", "specificReservation": { "count": "1", "instanceProperties": { "localSsds": [ { "diskSizeGb": "375", "interface": "SCSI" }, { "diskSizeGb": "375", "interface": "NVME" } ] "machineType": "n1-standard-8" } }, "specificReservationRequired": false, "zone": "us-central1-a" } ] }
更换附加到承诺使用合约的预留
如果要修改使用承诺资源的虚拟机类型和数量,请将承诺使用合约的现有附加预留替换为新预留。
替换预留始终是新创建的预留。如需替换已附加的预留,您必须指定要用作替换项的预留的属性。然后,Compute Engine 会自动使用这些属性创建新的预留,并使用该预留替换您附加的预留。您无法使用现有预留来替换已附加的预留。
允许的更改
将承诺使用合约的现有附加预留替换为新预留时,您可以请求进行以下任一更改:
要求
将承诺的附加预留替换为新预留时,您的请求必须满足以下所有要求:
您替换预留的请求还取决于当时的容量可用性。如果请求的容量不可用,则请求将失败并返回资源可用性错误,您可以尝试通过修改或推迟请求来解决这个问题。 如需了解详情,请参阅排查资源可用性问题的文档。
如果替换附加预留的请求失败,则附加预留和现有预留资源不会受影响。如需保留容量,请等至替换资源的请求成功后,对虚拟机进行相应的更改。
替换附加预留的步骤
您可以使用 Google Cloud CLI 或 REST 替换承诺的预留。
gcloud
如需替换附加到承诺的预留,请执行以下操作:
替换附加到承诺的预留的示例
为了演示这一点,本部分显示含附加预留的承诺示例,以及如何替换附加预留示例。
含附加预留的承诺示例
例如,假设您要使用以下命令更新购买的
my-commitment-with-reservations
承诺的附加预留:gcloud beta compute commitments create my-commitment-with-reservations \ --region=asia-east1 \ --resources=vcpu=16,memory=60GB,local-ssd=3000 \ --resources-accelerator=type=nvidia-tesla-p100,count=4 \ --plan=12-month \ --type=general-purpose \ --reservations-from-file=one-reservation.yaml
在本示例中,假设运行此命令时,
one-reservation.yaml
是当前目录中的一个文件,其中包含以下内容,用于定义名为res-1
的附加预留。- reservation: res-1 reservation_zone: asia-east1-a vm_count: 4 machine_type: n1-standard-4 accelerator: - count: 1 type: nvidia-tesla-p100 local_ssd: - interface: scsi size: 375 - interface: scsi size: 375
此
my-commitment-with-reservations
承诺和附加的预留res-1
会导致以下已承诺和预留的资源:资源类型 承诺中的资源
(my-commitment-with-reservations
)当前附加预留中的资源
(res-1
)vCPU 和内存 16 个 vCPU 和 60 GB 16 个 vCPU 和 60 GB
(4 个预留的n1-standard-4
虚拟机)*GPU 4 个 P100 GPU 4 个 P100 GPU
(每个虚拟机 1 个 P100 GPU,适用于 4 个虚拟机)*本地 SSD 磁盘数量 3000 GB 或 8 个本地 SSD 磁盘 3000 GB 或 8 个本地 SSD 磁盘
(每个虚拟机 750 GB 或 2 个本地 SSD 磁盘,适用于 4 个虚拟机)**具体来说,附加预留示例
res-1
预留 4 个n1-standard-4
虚拟机,每个虚拟机具有 1 个 P100 GPU 和 2 个接口类型为scsi
的本地 SSD 磁盘。n1-standard-4
机器类型为每个虚拟机使用 4 个 vCPU 和 15 GB。替换附加预留示例
假设您要将附加预留
res-1
替换为新的附加预留res-2
,并将预留资源更改为以下内容:资源类型 承诺中的资源
(my-commitment-with-reservations
)当前附加预留中的资源
(res-1
)替换附加预留中的资源
(res-2
)vCPU 和内存 16 个 vCPU 和 60 GB 16 个 vCPU 和 60 GB
(4 个预留的n1-standard-4
虚拟机)*16 个 vCPU 和 60 GB
(2 个预留且共享的n1-standard-8
虚拟机)†GPU 4 个 P100 GPU 4 个 P100 GPU
(每个虚拟机 1 个 P100 GPU,适用于 4 个虚拟机)*4 个 P100 GPU
(每个虚拟机 2 个 P100 GPU,适用于 2 个虚拟机)†本地 SSD 磁盘数量 3000 GB 或 8 个本地 SSD 磁盘 3000 GB 或 8 个本地 SSD 磁盘
(每个虚拟机 750 GB 或 2 个本地 SSD 磁盘,适用于 4 个虚拟机)*3000 GB 或 8 个本地 SSD 磁盘
(每个虚拟机 1500 GB 或 4 个本地 SSD 磁盘,适用于 2 个虚拟机)**具体来说,附加预留示例
res-1
预留 4 个n1-standard-4
虚拟机,每个虚拟机具有 1 个 P100 GPU 和 2 个接口类型为scsi
的本地 SSD 磁盘。n1-standard-4
机器类型为每个虚拟机使用 4 个 vCPU 和 15 GB。†具体而言,替换附加预留定义了
res-2
,它预留 2 个n1-standard-8
虚拟机,每个虚拟机具有 1 个 P100 GPU 和 4 个接口类型为scsi
的本地 SSD 磁盘。此外,res-2
已与其他 2 个项目(project-1
和project-2
)共享,并且归当前项目my-project
所有。n1-standard-8
机器类型为每个虚拟机使用 8 个 vCPU 和 30 GB。如需将附加预留
res-1
替换为my-commitment-with-reservations
承诺的res-2
,请执行以下操作:REST
如需替换附加到承诺的预留,请使用
regionCommitments.updateReservations
方法发出POST
请求。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/COMMITMENT_ZONE/commitments/COMMITMENT_NAME/updateReservations { "reservations": [ { "name": "REPLACEMENT_RESERVATION_NAME", "specificReservation": { "count": "REPLACEMENT_RESERVATION_NUMBER_OF_VMS", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": "REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS", "acceleratorType": "REPLACEMENT_RESERVATION_ACCELERATOR_TYPE" } ], "localSsds": [ { "diskSizeGb": "375", "interface": "REPLACEMENT_RESERVATION_INTERFACE_1" }, { "diskSizeGb": "375", "interface": "REPLACEMENT_RESERVATION_INTERFACE_2" } ], "machineType": "REPLACEMENT_RESERVATION_MACHINE_TYPE" } }, "zone": "REPLACEMENT_RESERVATION_ZONE", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1": { "projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1" }, "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2": { "projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2" } } } }, { "name": "CURRENT_RESERVATION_NAME", "specificReservation": { "count": "0", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": "CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS", "acceleratorType": "CURRENT_RESERVATION_ACCELERATOR_TYPE" } ], "localSsds": [ { "diskSizeGb": "375", "interface": "CURRENT_RESERVATION_INTERFACE_1" }, { "diskSizeGb": "375", "interface": "CURRENT_RESERVATION_INTERFACE_2" } ], "machineType": "CURRENT_RESERVATION_MACHINE_TYPE" } }, "zone": "CURRENT_RESERVATION_ZONE", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1": { "projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1" }, "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2": { "projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2" } } } } ] }
将以下内容替换为承诺、当前预留和替换预留的相应属性:
承诺
当前预留
对于当前预留,以下所有属性必须与您查看预留时完全相同。忽略当前预留尚未指定的任何属性的字段。
替换预留
对于替换预留,根据需要设置以下属性。确保指定这些属性时满足所有要求。忽略您不想使用的任何其他字段。
替换附加到承诺的预留的示例
为了演示这一点,本部分显示含附加预留的承诺示例,以及如何替换附加预留示例。
含附加预留的承诺示例
例如,假设您想要通过发出以下
POST
请求,替换购买的my-commitment-with-reservations
承诺的附加预留res-1
:POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments { "name": "my-commitment-with-reservations", "plan": "TWELVE_MONTH", "reservations": [ { "name": "res-1", "specificReservation": { "count": "4", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": "1", "acceleratorType": "nvidia-tesla-p100" } ], "localSsds": [ { "diskSizeGb": "375", "interface": "scsi" }, { "diskSizeGb": "375", "interface": "scsi" } ], "machineType": "n1-standard-4" } }, "zone": "asia-east1-a" } ], "resources": [ { "amount": "16", "type": "VCPU" }, { "amount": "61440", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-p100", "amount": "4", "type": "ACCELERATOR" } { "amount": "3072000", "type": "LOCAL_SSD" } ], "type": "GENERAL_PURPOSE" }
此
my-commitment-with-reservations
承诺和附加的预留res-1
会导致以下已承诺和预留的资源:资源类型 承诺中的资源
(my-commitment-with-reservations
)当前附加预留中的资源
(res-1
)vCPU 和内存 16 个 vCPU 和 60 GB 16 个 vCPU 和 60 GB
(4 个预留的n1-standard-4
虚拟机)*GPU 4 个 P100 GPU 4 个 P100 GPU
(每个虚拟机 1 个 P100 GPU,适用于 4 个虚拟机)*本地 SSD 磁盘数量 3000 GB 或 8 个本地 SSD 磁盘 3000 GB 或 8 个本地 SSD 磁盘
(每个虚拟机 750 GB 或 2 个本地 SSD 磁盘,适用于 4 个虚拟机)**具体来说,附加预留示例
res-1
预留 4 个n1-standard-4
虚拟机,每个虚拟机具有 1 个 P100 GPU 和 2 个接口类型为scsi
的本地 SSD 磁盘。n1-standard-4
机器类型为每个虚拟机使用 4 个 vCPU 和 15 GB。替换附加预留示例
假设您要将附加预留
res-1
替换为新的附加预留res-2
,并将预留资源更改为以下内容:资源类型 承诺中的资源
(my-commitment-with-reservations
)当前附加预留中的资源
(res-1
)替换附加预留中的资源
(res-2
)vCPU 和内存 16 个 vCPU 和 60 GB 16 个 vCPU 和 60 GB
(4 个预留的n1-standard-4
虚拟机)*16 个 vCPU 和 60 GB
(2 个预留且共享的n1-standard-8
虚拟机)†GPU 4 个 P100 GPU 4 个 P100 GPU
(每个虚拟机 1 个 P100 GPU,适用于 4 个虚拟机)*4 个 P100 GPU
(每个虚拟机 2 个 P100 GPU,适用于 2 个虚拟机)†本地 SSD 磁盘数量 3000 GB 或 8 个本地 SSD 磁盘 3000 GB 或 8 个本地 SSD 磁盘
(每个虚拟机 750 GB 或 2 个本地 SSD 磁盘,适用于 4 个虚拟机)*3000 GB 或 8 个本地 SSD 磁盘
(每个虚拟机 1500 GB 或 4 个本地 SSD 磁盘,适用于 2 个虚拟机)**具体来说,附加预留示例
res-1
预留 4 个n1-standard-4
虚拟机,每个虚拟机具有 1 个 P100 GPU 和 2 个接口类型为scsi
的本地 SSD 磁盘。n1-standard-4
机器类型为每个虚拟机使用 4 个 vCPU 和 15 GB。†具体而言,替换附加预留定义了
res-2
,它预留 2 个n1-standard-8
虚拟机,每个虚拟机具有 1 个 P100 GPU 和 4 个接口类型为scsi
的本地 SSD 磁盘。此外,res-2
已与其他 2 个项目(project-1
和project-2
)共享,并且归当前项目my-project
所有。n1-standard-8
机器类型为每个虚拟机使用 8 个 vCPU 和 30 GB。如需将
my-commitment-with-reservations
承诺的附加预留res-1
替换为res-2
,请使用regionCommitments.updateReservations
方法发出以下POST
请求:POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments/my-commitment-with-reservations/updateReservations { "reservations": [ { "name": "res-2", "specificReservation": { "count": "2", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 2, "acceleratorType": "nvidia-tesla-p100" } ], "localSsds": [ { "diskSizeGb": "375", "interface": "scsi" }, { "diskSizeGb": "375", "interface": "scsi" }, { "diskSizeGb": "375", "interface": "scsi" }, { "diskSizeGb": "375", "interface": "scsi" } ], "machineType": "n1-standard-8" } }, "zone": "asia-east1-a" }, { "name": "res-1", "specificReservation": { "count": "0", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 1, "acceleratorType": "nvidia-tesla-p100" } ], "localSsds": [ { "diskSizeGb": "375", "interface": "scsi" }, { "diskSizeGb": "375", "interface": "scsi" } ], "machineType": "n1-standard-4" } }, "zone": "asia-east1-a" } ] }
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-22。
-