Committed use discounts (CUDs) provide deeply discounted prices for your Compute Engine resources in exchange for 1-year or 3-year committed-use contracts (also known as commitments). You commit to a minimum amount of resource usage or a minimum amount of spend and receive CUDs on your resource usage costs in return. However, commitments don't reserve zonal capacity for your committed resources. To get zonal resources at discounted prices and also ensure that capacity is reserved for them, you must both purchase commitments and create reservations for those zonal resources.
This document explains how you can receive CUDs for your reserved resources and how to attach reservations to resource-based commitments.
Before you begin
- Review the basics of reservations along with their requirements and restrictions. For more information, see Reservations of Compute Engine zonal resources.
-
If you haven't already, then set up authentication.
Authentication is
the process by which your identity is verified for access to Google Cloud services and APIs.
To run code or samples from a local development environment, you can authenticate to
Compute Engine by selecting one of the following options:
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.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
-
CUDs for your reserved resources
You receive CUDs from active commitments for any eligible resource usage in your projects. If you also have any reservations to hold capacity for resources in that project, CUDs from active commitments can also apply to those reserved resources. For any reserved resources to become eligible to receive CUDs, the following requirements apply:
- You aren't receiving any other form of discount for your resource usage.
- Your VMs must be consuming the reservations while the commitments are active.
At a minimum, the following properties must match between your active commitments and the reservations that your VMs consume:
- Project and region where they apply
- Machine family series
Depending on the resource type, you can receive CUDs for your reserved resources in one of the following ways:
vCPUs and memory: To receive CUDs for either or both of these resource types, you can purchase resource-based or spend-based commitments that include the required resource types. When VMs in your project consume any reservations whose properties match such active commitments, you automatically receive the applicable CUDs for these types of reserved resources. If you reserved more resources than you committed to, then you don't receive CUDs for those additional resources.
GPUs and Local SSD disks: To receive CUDs for either or both of these resource types, you must do the following:
- Purchase resource-based commitments that include the required resource types.
- Create reservations for all the committed resources with properties that match your commitment, and attach those reservations to the commitment.
When VMs in your project consume these attached reservations, you start to receive the applicable CUDs for these types of reserved resources.
Attach reservations to resource-based commitments
You can attach reservations to any resource-based commitment and ensure that capacity is held in specific zones for the committed resources that you plan to use. You can attach multiple reservations to a single commitment; however, a reservation can only be attached to a single commitment. When you purchase a commitment, you can attach reservations to that commitment in one of the following ways:
- Using existing reservations whose properties match with the commitment
- Creating new matching reservations while purchasing your commitment
After you purchase a commitment with attached reservations, the reservations remain active as long as the commitment is active. When your commitment expires, Compute Engine automatically deletes any attached reservations. Deleting these reservations has no effect on any running VMs that were consuming those reservations. The running VMs continue to run and you are still charged for those VMs.
Committed resources that don't require attached reservations
Committed vCPUs and memory don't require you to attach matching reservations to your commitments. Nevertheless, when you purchase a commitment that includes vCPUs, memory, or both, you can still choose to attach reservations that specify those resources. To learn how to purchase commitments solely for vCPUs, memory, or both, without attaching reservations, see Purchasing commitments without attached reservations.
Committed resources that require attached reservations
Committed GPUs and Local SSD disks require you to attach matching reservations to your commitments. When you purchase a commitment that includes any GPUs, Local SSD disks, or both, you must also reserve those resources and attach those reservations to your commitment. You can do this using a single reservation or a combination of reservations. When you purchase such a commitment, you can also include vCPUs, memory, or both. However, you don't need to reserve those vCPUs or memory. To learn how to purchase commitments that include either or both GPUs and Local SSD disks, see Purchase commitments with attached reservations in this document.
To view the complete list of machine series that support CUDs for GPUs and Local SSD disks, see the Hardware commitment types section in the resource-based CUDs documentation.
Quantities of resources allowed in attached reservations
For vCPUs and memory, you can have attached reservations specifying more or less amounts of resources than you are committing to. If you commit to more vCPUs or memory than you reserve, then Compute Engine reserves capacity only for these reserved resources. However, you can still use your additional committed resources depending on their availability in your region. If you reserve more vCPUs or memory than you commit to, then you don't receive CUDs for those additional resources that you reserve.
For example, when you purchase a commitment for 4 vCPUs and 30 GB memory, you can choose to do either of the following:
- Not attach any reservations at all.
Attach reservations specifying any combination of these resources types; for example, the following:
- 4 vCPUs and 30 GB memory
- 2 vCPUs and 50 GB memory
- 10 vCPUs and 10 GB memory
However, if your commitment contains any GPUs, Local SSD disks, or both, you must reserve and attach all those resources. Your attached reservations must specify the exact numbers and types of the GPUs and Local SSD disks that you are committing to. Consequently, you also cannot have any additional number or types of GPUs or Local SSD disks in your attached reservations. For example, suppose you purchase a commitment for 30 GB memory and 4 NVIDIA P100 GPUs. The attached reservation (or combination of attached reservations) can specify any amount of vCPUs or memory, but it must have exactly 4 GPUs that are of NVIDIA P100 type. In this example, you can't attach reservations specifying any of the following combination of resources:
- 6 NVIDIA P100 GPUs
- 2 NVIDIA P100 GPUs
- 4 NVIDIA P100 GPUs and 2 NVIDIA V100 GPUs
- 4 NVIDIA P100 GPUs and 4 Local SSD disks
Purchase commitments with attached reservations
When you purchase a new commitment, you can attach reservations to your commitment in either of the following ways:
- Using existing reservations whose properties match with the commitment
- Creating new matching reservations while purchasing of your commitment
After you purchase a commitment, your commitment becomes active on the
following day at 12 AM US and Canadian Pacific Time (UTC-8, or UTC-7 during
daylight saving time).
Between the time of your commitment purchase and its activation time, the
status of your commitment remains as NOT_YET_ACTIVE
(or as PENDING
on the
Google Cloud console). After activation, the status of your commitment changes to
ACTIVE
.
For example, suppose you purchase your commitment on January 20th at 10:00 PM
US and Canadian Pacific Time (UTC-8 or UTC-7). Compute Engine creates your
commitment immediately with its status as NOT_YET_ACTIVE
. However, your
commitment becomes ACTIVE
only on January 21st at 12:00 AM US
and Canadian Pacific Time (UTC-8 or UTC-7).
Requirements
Before you purchase a commitment with attached reservations, review these requirements and make sure that your commitment and reservations meet the following criteria:
- You must purchase the commitment and create the attached reservations in the same project and region.
- You must purchase the commitment and create the attached reservations for resources from the same machine family series.
- You must disable the auto-delete option on the attached reservations.
- If your commitment has GPUs, then the GPU type specified in the reservation and the commitment must match.
- For GPUs and Local SSD disks, the number of reserved resources of each resource type must exactly match with the number of committed resources for that resource type. For example, if you want to purchase a commitment for 4 V100 GPUs, then your commitment's attached reservations must specify a total of 4 V100 GPUs. However, the amount of vCPU and memory that you reserve can be more or less than what you commit to.
- For GPUs, purchase commitments for the specific GPU types that you intend to use. For example, you can purchase commitments for either NVIDIA P100s or NVIDIA V100s, but you cannot use a commitment that was purchased for NVIDIA P100 GPUs to cover NVIDIA V100 GPUs.
If your attached reservation is a shared reservation and you want to receive the applicable CUDs when you consume that reservation outside your commitment's project, then you must do both the following:
- Share your reservations only between projects that belong to the same Cloud Billing account as the commitment.
- Enable CUD sharing for that Cloud Billing account.
Attach existing reservations
You can attach existing reservations while purchasing your commitment by using the Google Cloud console, the Google Cloud CLI, or REST.
Console
Before you purchase a commitment using the Google Cloud console, select the project that you want to use to purchase the commitment. If CUD sharing is enabled for a Cloud Billing account, you can purchase the commitment using any project from that Cloud Billing account. After you select the project, do the following:
In the Google Cloud console, go to the Committed use discounts page.
To purchase a commitment, click
Purchase commitment. The Purchase a committed use discount page opens and displays the Hardware tab.In the Name field, enter a name for your commitment.
In the Region field, select the region where you want to commit to Compute Engine resources.
In the Commitment type field, select the machine family series for your committed resources. The following commitment types provide options for GPUs, Local SSD disks, or both:
- Accelerator-optimized A2 for A2 machine type resources
- Accelerator-optimized A3 for A3 Edge and High machine type resources
- Accelerator-optimized A3 Mega for A3 Mega machine type resources
- Compute-optimized C2 for C2 machine type resources
- Compute-optimized C2D for C2D machine type resources
- General-Purpose C3 for C3 machine type resources
- General-Purpose C3D for C3D machine type resources
- General-Purpose N1 for N1 machine type resources
- General-Purpose N2 for N2 machine type resources
- General-Purpose N2D for N2D machine resources
- Graphics-optimized G2 for G2 machine type resources
- Memory-optimized M3 forM3 machine type resources
- Storage-optimized Z3 for Z3 machine type resources
For Duration, do the following:
- To specify your commitment's plan, select either 1 year or 3 years. This setting determines the preset term length of your commitment.
Optional. To specify a custom term length for your commitment, click the Extend end date toggle and then, in the Date field, specify a custom end date. For more information, see Extend the term length of commitments.
In the Cores field, enter the number of vCPUs that you want to commit to.
In the Memory field, enter the amount, in GB, of memory that you want to commit to.
To commit to GPUs, in the GPUs section, click
Add GPU and then do the following:- In the GPU type field, select the type of GPU.
- In the Number of GPUs field, enter the number of GPUs.
- Optional: If your GPU model supports NVIDIA RTX Virtual Workstations (vWS) for graphics workloads, and you plan to run graphics-intensive workloads, select the Enable Virtual Workstation (NVIDIA GRID) checkbox.
To commit to Local SSD disks, in the Local SSDs section, click
Add SSD and then, in the Number of SSDs field, specify the number of disks.To attach one or more existing reservations to the commitment, in the Reservations field, select Attach existing reservations.
The Google Cloud console displays a list of all the reservations in your project whose region, machine type, and GPU type match with the commitment. Then, do the following:
- Optional. To view reservations with specific properties, in the Filter menu, add or remove filters for the properties that you want.
- Select all the reservations that you want to attach to the commitment.
To finish purchasing your commitment with the attached reservations, do the following:
- Click Purchase.
- In the Purchase a committed use discount dialog, if you agree with the service specific terms, click Purchase again.
gcloud
To purchase a commitment by attaching existing reservations, run the
gcloud compute commitments create
command.
In your command, include the --existing-reservation
flag to specify an
existing reservation that you want to attach to your commitment. Include a
new instance of this flag for every existing reservation that you want to
attach. You can attach any number of existing reservations to your
commitment.
For example, to purchase a commitment by attaching two reservations to it, run the following command:
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'
Replace the following:
COMMITMENT_NAME
: the name of the commitment.REGION
: the region where the commitment is located.PROJECT_ID
: the ID of the project where you want to purchase the commitment with the attached reservations.DURATION
: the term duration of the commitment, either12-month
or36-month
.CUSTOM_END_DATE
: Optional. A custom end date for your term, which must be formatted asYYYY-MM-DD
. For example, to specify a custom end date of April 20, 2024, format it as2024-04-20
.COMMITMENT_TYPE
: the commitment type. The following commitment types provide options for GPUs, Local SSD disks, or both:accelerator-optimized
for A2 machine type resourcesaccelerator-optimized-a3
for A3 Edge and High machine type resourcesaccelerator-optimized-a3-mega
for A3 Mega machine type resourcescompute-optimized
for C2 machine type resourcescompute-optimized-c2d
for C2D machine type resourcescompute-optimized-c3
for C3 machine type resourcescompute-optimized-c3d
for C3D machine type resourcesgeneral-purpose
for N1 machine type resourcesgeneral-purpose-n2
for N2 machine type resourcesgeneral-purpose-n2d
for N2D machine resourcesgraphics-optimized
for G2 machine type resourcesmemory-optimized-m3
for M3 machine type resourcesstorage-optimized-z3
for Z3 machine type resources
COMMITTED_VCPUS
: the number of vCPUs that you want in your commitment. The number must be a positive integer.COMMITTED_MEMORY
: the amount, in MB or GB, of memory that you want in your commitment. For example,10240MB
or10GB
. If you don't specify a unit, Compute Engine uses GB as the unit. You can purchase memory in increments of 0.25 GB.COMMITTED_LOCAL_SSD
: the amount, in GB, of Local SSD space that you want in your commitment. Each Local SSD disk is 375 GB.COMMITTED_ACCELERATOR_COUNT
: the number of GPUs that you want in your commitment.COMMITTED_ACCELERATOR_TYPE
: the GPU type that you want in your commitment.RESERVATION_NAME_1
andRESERVATION_NAME_2
: The names of the existing reservations that you want to attach to the commitment.RESERVATION_ZONE_1
andRESERVATION_ZONE_2
: The zones of the existing reservations that you want to attach to the commitment.
Example: Purchase a commitment by attaching existing reservations
Suppose you have two reservations res-01
and res-02
in the
us-central1-a
and us-central1-b
zones of the project myproject
.
Suppose that these reservations hold a combined capacity for 4 NVIDIA P100
GPUs and 4 Local SSD disks. To purchase a new commitment in the
us-central1
region of this project for these GPUs and Local SSD disks,
and use these existing reservations as attached reservations, run the
following command. Note that the example commitment also contains vCPUs and
memory.
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
To purchase a commitment by attaching existing reservations, make a POST
request to the regionCommitments.insert
method.
In your request, include the existingReservations
field to specify a
comma-separated list of all the existing reservations that you want to
attach to your commitment. You can attach any number of existing
reservations to your commitment.
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" }
Replace the following:
COMMITMENT_NAME
: the name of the commitment.REGION
: the region where the commitment is located.PROJECT_ID
: the ID of the project where you want to purchase the commitment with the attached reservations.DURATION
: the term duration of the commitment, eitherTWELVE_MONTH
orTHIRTY_SIX_MONTH
.COMMITMENT_TYPE
: the commitment type. The following commitment types provide options for GPUs, Local SSD disks, or both:ACCELERATOR_OPTIMIZED
for A2 machine type resourcesACCELERATOR_OPTIMIZED_A3
for A3 Edge and High machine type resourcesACCELERATOR_OPTIMIZED_A3_MEGA
for A3 Mega machine type resourcesCOMPUTE_OPTIMIZED
for C2 machine type resourcesCOMPUTE_OPTIMIZED_C2D
for C2D machine type resourcesCOMPUTE_OPTIMIZED_C3
for C3 machine type resourcesCOMPUTE_OPTIMIZED_C3D
for C3D machine type resourcesGENERAL_PURPOSE
for N1 machine type resourcesGENERAL_PURPOSE_N2
for N2 machine type resourcesGENERAL_PURPOSE_N2D
for N2D machine resourcesGRAPHICS_OPTIMIZED
for G2 machine type resourcesMEMORY_OPTIMIZED_M3
for M3 machine type resourcesSTORAGE_OPTIMIZED_Z3
for Z3 machine type resources
COMMITTED_VCPUS
: the number of vCPUs that you want in your commitment. The number must be a positive integer.COMMITTED_MEMORY
: the amount, in MB, of memory that you want in your commitment. For example,10240MB
. You can purchase memory in increments of 256 MB.COMMITTED_LOCAL_SSD
: the amount, in GB, of Local SSD storage that you want in your commitment. Each Local SSD disks is 375 GB.COMMITTED_ACCELERATOR_COUNT
: the number of GPUs that you want in your commitment.COMMITTED_ACCELERATOR_TYPE
: the GPU type that you want in your commitment.CUSTOM_END_DATE
: Optional. A custom end date for your term, which must be formatted asYYYY-MM-DD
. For example, to specify a custom end date of April 20, 2024, format it as2024-04-20
.END_TIME
: 12 AM US and Canadian Pacific Time (UTC-8 or UTC-7), as an offset of Coordinated Universal Time (UTC). Specify this value only if you specified a custom end date for your commitment. Specify one of the following values:- During daylight saving time:
07:00:00
- During other times:
08:00:00
- During daylight saving time:
RESERVATION_URLs
: a comma-separated list of URLs of the existing reservations that you want to attach to the commitment. For example, to attach two reservations,res-1
andres-2
, specify the following:"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"
Example: Purchase a commitment by attaching existing reservations
Suppose you have two reservations res-01
and res-02
in the
us-central1-a
and us-central1-b
zones of the project myproject
.
Suppose that these reservations hold a combined capacity for 4 NVIDIA P100
GPUs and 4 Local SSD disks. To purchase a new commitment in the
us-central1
region of this project for these GPUs and Local SSD disks and
to use these existing reservations as attached reservations,
make the following POST
request. Note that the example commitment also
contains vCPUs and memory.
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" ] }
Create new reservations to attach
You can create your attached reservations while purchasing your commitment by using the Google Cloud console, the Google Cloud CLI, or REST.
Console
Before you purchase a commitment using the Google Cloud console, select the project that you want to use to purchase the commitment. If CUD sharing is enabled for a Cloud Billing account, you can purchase the commitment using any project from that Cloud Billing account. After you select the project, do the following:
In the Google Cloud console, go to the Committed use discounts page.
To purchase a commitment, click
Purchase commitment. The Purchase a committed use discount page opens and displays the Hardware tab.In the Name field, enter a name for your commitment.
In the Region field, select the region where you want to commit to Compute Engine resources.
In the Commitment type field, select the machine family series for your committed resources. The following commitment types provide options for GPUs, Local SSD disks, or both:
- Accelerator-optimized A2 for A2 machine type resources
- Accelerator-optimized A3 for A3 Edge and High machine type resources
- Accelerator-optimized A3 Mega for A3 Mega machine type resources
- Compute-optimized C2 for C2 machine type resources
- Compute-optimized C2D for C2D machine type resources
- General-Purpose C3 for C3 machine type resources
- General-Purpose C3D for C3D machine type resources
- General-Purpose N1 for N1 machine type resources
- General-Purpose N2 for N2 machine type resources
- General-Purpose N2D for N2D machine resources
- Graphics-optimized G2 for G2 machine type resources
- Memory-optimized M3 forM3 machine type resources
- Storage-optimized Z3 for Z3 machine type resources
For Duration, choose either 1 year or 3 years as your commitment's term duration.
In the Cores field, enter the number of vCPUs that you want to commit to.
In the Memory field, enter the amount, in GB, of memory that you want to commit to.
To commit to GPUs, in the GPUs section, click
Add GPU and then do the following:- In the GPU type field, select the type of GPU.
- In the Number of GPUs field, enter the number of GPUs.
- Optional: If your GPU model supports NVIDIA RTX Virtual Workstations (vWS) for graphics workloads, and you plan to run graphics-intensive workloads, select the Enable Virtual Workstation (NVIDIA GRID) checkbox.
To commit to Local SSD disks, in the Local SSDs section, click
Add SSD and then, in the Number of SSDs field, specify the number of disks.To create a new reservation and attach it to the commitment, in the Reservations field, select Create reservations and then do the following. Repeat this step for every new reservation that you want to create and attach.
- Click Add a reservation. The New reservation section appears.
- In the Name field, enter a name for your attached reservation.
- In the Region field, select the same region as your commitment.
- In the Zone field, select the zone where you want to reserve your resources.
In the Share type section, specify how you want to share this reservation in one of the following ways:
- To create a single-project reservation, select Local.
- To create a reservation that is shared with multiple projects, select Shared. Then, to specify the projects to share the this reservation with, click Add projects, and then select the projects that you want from the current project's organization.
In the Use with VM instance field, select how you want VMs to consume your reservation in one of the following ways:
- To allow VMs with matching properties to automatically consume this reservation, click Use reservation automatically (default).
- To consume this reservation's resources only when creating VMs with matching properties that specifically target this reservation by name, click select Select specific reservation.
In the Resource details section, do the following:
- In the Number of VM instances field, enter the number of VM instances that you want to reserve.
In the Machine configuration section, specify the properties of your reserved VMs in one of the following ways:
To specify your the properties of your VMs using an existing instance template, select Use instance template.
In the Instance template field, select an instance template that specifies the same machine family series as your commitment. If you select a regional instance template, the region of that instance template must also match with the region specified in your commitment.
To manually specify the properties of your VMs, select Select machine type and then do the following:
Select the machine family that applies to the machine series that you specified for the commitment:
- General purpose for general-purpose machine series
- Compute optimized for compute-optimized machine series
- Memory optimized for memory-optimized machine series
- GPUs for accelerator-optimized machine series
In the table that has Series column, select the same machine series that you specified for the commitment.
In the Machine type field, specify a predefined or custom machine type in one of the following ways:
- To choose a predefined machine type, select Preset and then select the machine type that you want.
- To choose a custom machine type, select Custom and then specify Cores and Memory that you want.
To specify a minimum CPU platform, GPUs, or both, expand the
CPU Platform and GPU menu and do the following:- Optional: To specify a minimum CPU platform, in the CPU Plaform list, select an option.
Optional: To reserve GPUs, click
Add GPU. Then, in the GPU type and Number of GPUs fields, select the type and number of GPUs for each VM.
To reserve local SSD disks, do the following:
- In the Number of disks field, select the number of local SSD disks that you want for each VM.
- In the Interface type field, select the interface for the local SSD disks.
To finish specifying the properties for this reservation, click Done.
To finish purchasing your commitment with the attached reservations, do the following:
- Click Purchase.
- In the Purchase a committed use discount dialog, if you agree with the service specific terms, click Purchase again.
gcloud
To create your attached reservations while purchasing your commitment, run
the gcloud compute commitments create
command.
Depending on whether you want to attach a single reservation or multiple reservations, run the command in one of the following ways:
To create and attach a single reservation to your commitment, define the properties of the attached reservation by running the following command:
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
To create and attach multiple reservations to your commitment, define the reservation's properties using a YAML file and then specify that YAML file in the command that you use to purchase your commitment. Optionally, you can also use this YAML file approach to create and attach a single reservation to your commitment. To create your attached reservations using this approach, do the following:
Create the YAML file in the current directory and specify the configuration that you want for each attached reservation. For example, to specify the configuration of a shared reservation shared with two projects that specifies GPUs, two Local SSD disks, and a minimum CPU platform, include the following text in your YAML file:
- 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
To specify the configuration for multiple reservations, repeat these properties for each reservation that you want to create. You can attach any number of existing reservations that you want to your commitment.
Run the
gcloud compute commitments create
command and include the--reservation-from-file
flag.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
Replace the following with the corresponding properties of the commitment and the attached reservations:
Commitment
COMMITMENT_NAME
: the name of the commitment.REGION
: the region where the commitment is located.PROJECT_ID
: the ID of the project where you want to purchase the commitment with the attached reservations.DURATION
: the term duration of the commitment, either12-month
or36-month
.CUSTOM_END_DATE
: Optional. A custom end date for your term, which must be formatted asYYYY-MM-DD
. For example, to specify a custom end date of April 20, 2024, format it as2024-04-20
.COMMITMENT_TYPE
: the commitment type. The following commitment types provide options for GPUs, Local SSD disks, or both:accelerator-optimized
for A2 machine type resourcesaccelerator-optimized-a3
for A3 Edge and High machine type resourcesaccelerator-optimized-a3-mega
for A3 Mega machine type resourcescompute-optimized
for C2 machine type resourcescompute-optimized-c2d
for C2D machine type resourcescompute-optimized-c3
for C3 machine type resourcescompute-optimized-c3d
for C3D machine type resourcesgeneral-purpose
for N1 machine type resourcesgeneral-purpose-n2
for N2 machine type resourcesgeneral-purpose-n2d
for N2D machine resourcesgraphics-optimized
for G2 machine type resourcesmemory-optimized-m3
for M3 machine type resourcesstorage-optimized-z3
for Z3 machine type resources
COMMITTED_VCPUS
: the number of vCPUs that you want in your commitment. The number must be a positive integer.COMMITTED_MEMORY
: the amount, in MB or GB, of memory that you want in your commitment. For example,10GB
or10240MB
. If you don't specify a unit, Compute Engine uses GB as the unit. You can purchase memory in increments of 0.25 GB.COMMITTED_LOCAL_SSD
: the amount, in GB, of Local SSD storage that you want in your commitment. Each Local SSD disk is 375 GB.COMMITTED_ACCELERATOR_COUNT
: the number of GPUs that you want in your commitment.COMMITTED_ACCELERATOR_TYPE
: the GPU type that you want in your commitment.YAML_FILE
: The path to the YAML file that contains the configuration of the attached reservations.
Attached reservations
RESERVATION_NAME
: the name of the attached reservation.RESERVATION_ZONE
: the zone of the attached reservation.REQUIRE_SPECIFIC_RESERVATION_VALUE
: specifies if the attached reservation is a specifically targeted reservation; eithertrue
orfalse
. For more information about specifically targeted reservations, see How reservations work.NUMBER_OF_RESERVED_VMS
: the number of VMs that you want to reserve in the attached reservation.RESERVED_MACHINE_TYPE
: the machine type that you want for the VMs in your attached reservation.- For predefined machine types, use the format
MACHINE_FAMILY-standard-CPUS
; for example,n2-standard-4
. For custom machine types, use the format
MACHINE_FAMILY-custom-CPUS-MEMORY
; for examplen2-custom-4-5120
. For a full list of restrictions, read the specifications for custom machine types.Replace the following:
MACHINE_FAMILY
: the family of machine types; for example, specifyn2
for N2 VMs.CPUS
: the number of vCPUs.MEMORY
: the total memory for a reserved VM. Memory must be a multiple of 256 MB and must be supplied in MB; for example, to create an N2 VM with 4 vCPUs and 5 GB of memory, which is 5120 MB, usen2-custom-4-5120
.
- For predefined machine types, use the format
RESERVED_ACCELERATOR_COUNT
: the number of GPUs you want to add, per VM, in the attached reservation.RESERVED_ACCELERATOR_TYPE
: the type of accelerator you want to add in the attached reservation.INTERFACE_1
andINTERFACE_2
: the type of interface you want the Local SSD disks for each reserved VM to use. Valid options are:scsi
andnvme
. Each Local SSD disk is 375 GB. Repeat thelocal_ssd
parameter for each Local SSD disk that you want to add. You can specify up to 24 Local SSD disks.OWNER_PROJECT_ID
: the ID of the project where you want to purchase the commitment with the attached reservation. Specify this field if you want to share your attached reservation across multiple consumer projects.MINIMUM_CPU_PLATFORM
: the minimum CPU platform that you want to specify for the attached reservation.SHARE_SETTING
: the type of sharing for the attached reservation. Specify this field with the value asprojects
if you want to share your attached reservation across multiple consumer projects. Exclude this field if you want create a single-project reservation.CONSUMER_PROJECT_ID_1
andCONSUMER_PROJECT_ID_2
: the project IDs of the projects that can share this reservation, for exampleproject-1
andproject-2
. You can include up to 100 consumer projects. These projects must be in the same organization as the owner project. Don't include the ID of the project where you create this reservation, as that project is allowed to consume this reservation by default. Exclude these fields if you want to create a single-project reservation.
Compute Engine creates the commitment and the attached reservations only if there are enough resources of the specified machine type in the target zone, and sufficient quota, at the time of your request. If your purchase was successful, you see a success message similar to the following:
Created[https://www.googleapis.com/compute/v1/projects/your-project/regions/your-region/commitments/your-commitment-name]
Examples for purchasing commitments by creating new reservations to attach
The following example scenarios and commands show how you can purchase a commitment for GPUs, Local SSD disks, or both by creating new reservations to attach to that commitment.
Example 1: Purchase a commitment for GPUs by attaching a single new reservation
Suppose you want to purchase a commitment commitment-01
in the
us-central1
region that includes 4 NVIDIA V100 GPUs. You want to create a
new reservation reservation-01
as the attached reservation for
those GPUs. Suppose you also want to specify Compute Engine to use
those reserved GPUs across 2 n1-standard-32
VMs in the us-central1-a
zone. To purchase this example commitment with its attached reservation, run
the following command:
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
Example 2: Purchase a commitment for GPUs without committing to vCPUs or memory
To commit to and reserve GPUs and Local SSD disks without committing to
vCPUs or memory, specify 0
as the value for vCPU and memory quantities.
For example, suppose you want to purchase a commitment commitment-02
for a
single NVIDIA P4 GPU in the us-west2
region. You also want to create a new
reservation as the attached reservation and specify
Compute Engine to use the reserved GPU on an n1-standard-2
VM in the
us-west2-b
zone. To purchase this example commitment with its attached
reservation, run the following command:
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
Example 3: Purchase a commitment for GPUs and Local SSD disks by attaching multiple new reservations
Suppose you want to purchase a commitment commitment-03
for 1
NVIDIA V100 GPU and 2 Local SSD disks in the us-central1
region. You also
want to create and attach two reservations in the
us-central1-a
zone. In the first reservation, res-01
, you want to
reserve 1 n1-standard-2
VM with 1 GPU. You want to make res-01
a
targeted reservation, which means that you must specifically target that
reservation by name to use its reserved VMs. In the second reservation,
res-02
, you want to reserve 1 n1-standard-8
VM with 2 types of
attached Local SSD disks.
To purchase this example commitment with the attached reservations, first create the YAML file with the properties of both reservations.
- 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
After you create the YAML file, to finish purchasing the commitment with its attached reservations, run the following command. Note that the example commitment also contains vCPU and memory resources.
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
To create your attached reservations while purchasing your commitment,
make a POST
request to the
regionCommitments.insert
method.
In your request, include the reservations
field to define a list of all
the new reservations that you want to create and attach. You can attach any
number of existing reservations that you want to your commitment.
To create your new reservation by manually specifying all the VM properties, include the
instanceProperties
field and exclude thesourceInstanceTemplate
field.For example, to manually specify the configuration of a shared reservation shared with two projects that specifies GPUs, two Local SSD disks, and a minimum CPU platform, make the following request:
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" } } } } ] }
To create your new reservation by specifying an instance template, include the
sourceInstanceTemplate
field and exclude theinstanceProperties
field.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" } } } } ] }
Replace the following with the corresponding properties of the commitment and the attached reservations:
Commitment
COMMITMENT_NAME
: the name of the commitment.REGION
: the region where the commitment is located.PROJECT_ID
: the ID of the project where you want to purchase the commitment with the attached reservations.DURATION
: the term duration of the commitment, eitherTWELVE_MONTH
orTHIRTY_SIX_MONTH
.COMMITMENT_TYPE
: the commitment type. The following commitment types provide options for GPUs, Local SSD disks, or both:ACCELERATOR_OPTIMIZED
for A2 machine type resourcesACCELERATOR_OPTIMIZED_A3
for A3 Edge and High machine type resourcesACCELERATOR_OPTIMIZED_A3_MEGA
for A3 Mega machine type resourcesCOMPUTE_OPTIMIZED
for C2 machine type resourcesCOMPUTE_OPTIMIZED_C2D
for C2D machine type resourcesCOMPUTE_OPTIMIZED_C3
for C3 machine type resourcesCOMPUTE_OPTIMIZED_C3D
for C3D machine type resourcesGENERAL_PURPOSE
for N1 machine type resourcesGENERAL_PURPOSE_N2
for N2 machine type resourcesGENERAL_PURPOSE_N2D
for N2D machine resourcesGRAPHICS_OPTIMIZED
for G2 machine type resourcesMEMORY_OPTIMIZED_M3
for M3 machine type resourcesSTORAGE_OPTIMIZED_Z3
for Z3 machine type resources
COMMITTED_VCPUS
: the number of vCPUs that you want in your commitment. The number must be a positive integer.COMMITTED_MEMORY
: the amount, in MB, of memory that you want in your commitment. For example,10240MB
. You can purchase memory in increments of 256 MB.COMMITTED_LOCAL_SSD
: the amount, in GB, of Local SSD storage that you want in your commitment. Each Local SSD disk is 375 GB.COMMITTED_ACCELERATOR_COUNT
: the number of GPUs that you want in your commitment.COMMITTED_ACCELERATOR_TYPE
: the GPU type that you want in your commitment.CUSTOM_END_DATE
: Optional. A custom end date for your term, which must be formatted asYYYY-MM-DD
. For example, to specify a custom end date of April 20, 2024, format it as2024-04-20
.END_TIME
: 12 AM US and Canadian Pacific Time (UTC-8 or UTC-7), as an offset of Coordinated Universal Time (UTC). Specify this value only if you specified a custom end date for your commitment. Specify one of the following values:- During daylight saving time:
07:00:00
- During other times:
08:00:00
- During daylight saving time:
Attached reservations
RESERVATION_NAME
: the name of the attached reservation.RESERVATION_ZONE
: the zone of the attached reservation.REQUIRE_SPECIFIC_RESERVATION_VALUE
: specifies if the attached reservation is a specifically targeted reservation; eithertrue
orfalse
. For more information about specifically targeted reservations, see How reservations work.NUMBER_OF_RESERVED_VMS
: the number of VMs that you want to reserve in the attached reservation.RESERVED_MACHINE_TYPE
: the machine type that you want for the VMs in your attached reservation.- For predefined machine types, use the format
MACHINE_FAMILY-standard-CPUS
; for example,n2-standard-4
. For custom machine types, use the format
MACHINE_FAMILY-custom-CPUS-MEMORY
; for examplen2-custom-4-5120
. For a full list of restrictions, read the specifications for custom machine types.Replace the following:
MACHINE_FAMILY
: the family of machine types; for example, specifyn2
for N2 VMs.CPUS
: the number of vCPUs.MEMORY
: the total memory for a reserved VM. Memory must be a multiple of 256 MB and must be supplied in MB; for example, to create an N2 VM with 4 vCPUs and 5 GB of memory, which is 5120 MB, usen2-custom-4-5120
.
- For predefined machine types, use the format
RESERVED_ACCELERATOR_COUNT
: the number of GPUs you want to add, per VM, in the attached reservation.RESERVED_ACCELERATOR_TYPE
: the type of accelerator you want to add in the attached reservation.INTERFACE_1
andINTERFACE_2
: the type of interface you want the Local SSD disks for each reserved VM to use. Valid options are:scsi
andnvme
. Each Local SSD disk is 375 GB. Repeat thelocalSsds
parameter for each Local SSD disk that you want to add. You can specify up to 24 Local SSD disks.MINIMUM_CPU_PLATFORM
: the minimum CPU platform that you want to specify for the attached reservation.INSTANCE_TEMPLATE_NAME
: the name of the instance template that you want to use to create your attached reservation.SHARE_SETTING
: the type of sharing for the attached reservation. Specify this field with the value asSPECIFIC_PROJECTS
if you want to share your attached reservation across multiple consumer projects. Exclude this field if you want create a single-project reservation.CONSUMER_PROJECT_ID_1
andCONSUMER_PROJECT_ID_2
: the project IDs of the projects that can share this reservation; for example,project-1
andproject-2
. You can include up to 100 consumer projects. These projects must be in the same organization as the owner project. Don't include the ID of the project where you create this reservation, as that project is allowed to consume this reservation by default. Exclude these fields if you want to create a single-project reservation.
Compute Engine creates the commitment and the attached reservations only
if there are enough resources of the specified machine type in the target
zone, and sufficient quota, at the time of your request. If your purchase
was successful, Compute Engine returns a 200
status for your
REST API request.
Examples for purchasing commitments by creating new reservations to attach
The following example scenarios and commands show how you can purchase a commitment for GPUs, Local SSD disks, or both by creating new reservations to attach to that commitment.
Example 1: Purchase a commitment for GPUs by attaching a single new reservation
Suppose you want to purchase a commitment commitment-01
in the
us-central1
region that includes 4 NVIDIA V100 GPUs. You want to
create a new reservation reservation-01
as the attached
reservation for those GPUs. Suppose you also want to specify
Compute Engine to use those reserved GPUs across 2 n1-standard-8
VMs in the us-central1-a
zone. To purchase this example commitment
with its attached reservation, make the following POST
request:
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" } ] }
Example 2: Purchase a commitment for GPUs without committing to vCPUs or memory
To commit to and reserve GPUs and Local SSD disks without committing to
vCPUs or memory, specify 0
as the value for vCPU and memory quantities.
For example, suppose you want to purchase a commitment commitment-02
for
a single NVIDIA P4 GPU in the us-west2
region. You also want to create
a new reservation as the attached reservation and specify
Compute Engine to use the reserved GPU on an n1-standard-2
VM in
the us-west2-b
zone. To purchase this example commitment with its attached
reservation, make the following POST
request:
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" } ] }
Example 3: Purchase a commitment for GPUs and Local SSD disks by attaching multiple new reservations
Suppose you want to purchase a commitment commitment-03
for 1
NVIDIA V100 GPU and 2 Local SSD disks in the us-central1
region. You also
want to create and attach two reservations in the
us-central1-a
zone. In the first reservation, res-01
, you want to
reserve 1 n1-standard-2
VM with 1 GPU. You want to make res-01
a
targeted reservation, which means that you must specifically target that
reservation by name to use its reserved VMs. In the second reservation,
res-02
, you want to reserve 1 n1-standard-8
VM with 2 types of
attached Local SSD disks. To purchase this example commitment with the
attached reservations, make the following POST
request. Note that the
example commitment also contains vCPU and memory resources.
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" } ] }
Replace reservations that are attached to commitments
Replace your commitment's existing attached reservation with a new reservation if you want to modify the types and numbers of VMs that use your committed resources.
The replacement reservation will always be a newly created reservation. To replace an attached reservation, you must specify the properties of the reservation that you want use as a replacement. Compute Engine then automatically creates a new reservation with these properties and uses it to replace your attached reservation. You can't use an existing reservation to replace your attached reservation.
Allowed changes
When you replace a commitment's existing attached reservation with a new reservation, you can request any of the following changes:
- You can reserve VMs from a different machine type. However, you must still reserve VMs from the same machine series in order to continue receiving CUDs for your reserved resources.
- You can change the number of VMs that you want to reserve.
- You can change the quantity of GPUs and Local SSD disks that is attached per VM as long as the total quantity of reserved GPUs and Local SSD disks remain the same.
You can specify your replaced reservations to be either Local or shared reservations.
Requirements
When you replace your commitment's attached reservation with a new one, your request must meet all of the following requirements:
- You can replace only one attached reservation at a time with exactly one new attached reservation. To replace an attached reservation, simultaneously remove an existing attached reservation by setting its VM count to 0 and define a new attached reservation that you want to replace it.
- The new reservation must exist in the same project as the commitment.
- The new reservation must be located in the same zone as the removed reservation.
- The amount and types of GPUs specified in the new reservation must match the removed reservation.
- The numbers and types of Local SSD disks specified in the new reservation must match the removed reservation.
- You can only change up to 100 VMs per request. To make a change that involves more than 100 VMs, divide the change into multiple smaller requests or reach out to Google Cloud Support.
Your request to replace a reservation also depends on the capacity availability at that time. If the capacity for a request is unavailable, the request fails and returns a resource availability error, which you can try to resolve by modifying or postponing the request. For more information, see the documentation for troubleshooting resource availability.
If your request to replace an attached reservation fails, then the attached reservation and your existing reserved resources remain unaffected. To preserve your capacity, wait to make any corresponding changes to your VMs until after your request to replace a reservation is successful.
Steps to replace an attached reservation
You can replace a commitment's reservations using the Google Cloud CLI or REST.
gcloud
To replace reservations that are attached to commitments, do the following:
Create a YAML file in the current directory with the configurations of the following attached reservations:
The current reservation that you want to replace.
To retrieve the details of this reservation, see View details of a reservation.
The new replacement reservation.
The contents of the YAML file are similar to the following:
- 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
Replace the following with the corresponding properties of the current and replacement reservations:
Current reservation
For the current reservation, all of the following properties must be exactly the same as when you viewed the reservation. Omit the fields for any properties that the current reservation does not already have.
CURRENT_RESERVATION_NAME
: the name of the current attached reservation.CURRENT_RESERVATION_ZONE
: the zone of the current attached reservation.CURRENT_RESERVATION_MACHINE_TYPE
: the machine type of the current attached reservation.CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS
: the number of GPUs reserved in the current attached reservation.CURRENT_RESERVATION_ACCELERATOR_TYPE
: the type of accelerator reserved in the current attached reservation.CURRENT_RESERVATION_INTERFACE_1
andCURRENT_RESERVATION_INTERFACE_2
: the type of interface that the Local SSD disk for each reserved VM use in the current attached reservation. Valid options are:scsi
andnvme
. Each Local SSD disk is 375 GB. Repeat thelocal_ssd
parameter for all the reserved Local SSD disks.CURRENT_RESERVATION_PROJECT_ID
: the project ID of the current project that has the commitment and the attached reservation. Specify this field if your current attached reservation is shared across multiple consumer projects.CURRENT_RESERVATION_SHARE_SETTING
: The type of sharing for the current reservation. Specify this field with the value asprojects
if your current attached reservation is shared across multiple consumer projects.CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1
andCURRENT_RESERVATION_CONSUMER_PROJECT_ID_2
: the project IDs of the projects that you share the current attached reservation with, for exampleproject-1
andproject-2
.
Replacement reservation
For the replacement reservation, set the following properties as required. Ensure that you meet all the requirements when you specify these properties. Omit any additional fields that you don't want to use.
REPLACEMENT_RESERVATION_NAME
: the name of the new replacement reservation.REPLACEMENT_RESERVATION_ZONE
: the zone of the new replacement reservation.REPLACEMENT_RESERVATION_NUMBER_OF_VMS
: the number of VMs that you want to reserve in the new replacement reservation.REPLACEMENT_RESERVATION_MACHINE_TYPE
: the machine type that you want for the VMs in your new replacement reservation.- For predefined machine types, use the format
MACHINE_FAMILY-standard-CPUS
; for example,n2-standard-4
. - For custom machine types, use the format
MACHINE_FAMILY-custom-CPUS-MEMORY
; for examplen2-custom-4-5120
. For a full list of restrictions, read the specifications for custom machine types.
Replace the following:
MACHINE_FAMILY
: the family of machine types; for example, specifyn2
for N2 VMs.CPUS
: the number of vCPUs.MEMORY
: the total memory for a reserved VM. Memory must be a multiple of 256 MB and must be supplied in MB; for example, to create an N2 VM with 4 vCPUs and 5 GB of memory, which is 5120 MB, usen2-custom-4-5120
.
- For predefined machine types, use the format
REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS
: the number of GPUs you want to add, per VM, in the replacement reservation.REPLACEMENT_RESERVATION_ACCELERATOR_TYPE
: the type of accelerator you want to add in the replacement reservation.REPLACEMENT_RESERVATION_INTERFACE_1
andREPLACEMENT_RESERVATION_INTERFACE_2
: the type of interface you want the Local SSD disks for each reserved VM to use. Valid options are:scsi
andnvme
. Each Local SSD disk is 375 GB. Repeat thelocal_ssd
parameter for each Local SSD disk that you want to add. You can specify up to 24 Local SSD disks.REPLACEMENT_RESERVATION_PROJECT_ID
: the project ID of the current project that has the commitment and the attached reservation. Specify this field if you want to share your replacement reservation across multiple consumer projects.REPLACEMENT_RESERVATION_SHARE_SETTING
: the type of sharing for the replacement reservation. Specify this field with the value asprojects
if you want to share your replacement reservation across multiple consumer projects.REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1
andREPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2
: the project IDs of the projects that can share this reservation, for exampleproject-1,project-2
. You can include up to 100 consumer projects. These projects must be in the same organization as the owner project. Don't include theREPLACEMENT_RESERVATION_PROJECT_ID
, which is already allowed to consume this reservation by default.
Run the
gcloud beta compute commitments update-reservations
command and specify the path to the YAML file using the--reservations-from-file
flag.gcloud beta compute commitments update-reservations COMMITMENT_NAME \ --project= PROJECT_ID \ --region= REGION \ --reservations-from-file= YAML_FILE
Replace the following:
COMMITMENT_NAME
: the name of the commitment with the attached reservation.PROJECT_ID
: the project ID of the commitment with the attached reservation.REGION
: The region where the commitment is located.YAML_FILE
: The path to the YAML file that contains the configuration of the current and replacement reservations.
Example for replacing a reservation that is attached to a commitment
To demonstrate this, this section shows an example commitment with an attached reservation and how to replace the example attached reservation.
Example commitment with an attached reservation
For example, suppose that you want to update the attached reservations
for the my-commitment-with-reservations
commitment,
that was purchased using the following command:
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
For this example, suppose that when this command was run,
one-reservation.yaml
was a file in the current directory with the
following contents, that define an attached reservation named 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
This my-commitment-with-reservations
commitment and the attached
reservation res-1
resulted in the following committed and reserved
resources:
Resource type | Resources in commitment ( my-commitment-with-reservations ) |
Resources in current attached reservation ( res-1 ) |
---|---|---|
vCPUs and memory | 16 vCPUs and 60 GB | 16 vCPUs and 60 GB (4 reserved n1-standard-4 VMs)* |
GPUs | 4 P100 GPUs | 4 P100 GPUs
(1 P100 GPU per VM, for 4 VMs)* |
Local SSD disks | 3000 GB or 8 Local SSD disks | 3000 GB or 8 Local SSD disks
(750 GB or 2 Local SSD disks per VM, for 4 VMs)* |
*Specifically, the example
attached reservation, res-1
, reserves 4 n1-standard-4
VMs, each with 1 P100 GPU and 2 Local SSD disks of scsi
interface type. The n1-standard-4
machine type
uses 4 vCPUs and 15 GB for each VM.
Replace the example attached reservation
Suppose you want to replace the attached reservation res-1
for the
with a new attached reservation res-2
and change the reserved resources
to the following:
Resource type | Resources in commitment ( my-commitment-with-reservations ) |
Resources in current attached reservation ( res-1 ) |
Resources in replacement attached reservation ( res-2 ) |
---|---|---|---|
vCPUs and memory | 16 vCPUs and 60 GB | 16 vCPUs and 60 GB (4 reserved n1-standard-4 VMs)* |
16 vCPUs and 60 GB (2 reserved and shared n1-standard-8 VMs)† |
GPUs | 4 P100 GPUs | 4 P100 GPUs (1 P100 GPU per VM, for 4 VMs)* |
4 P100 GPUs (2 P100 GPUs per VM, for 2 VMs)† |
Local SSD disks | 3000 GB or 8 Local SSD disks | 3000 GB or 8 Local SSD disks
(750 GB or 2 Local SSD disks per VM, for 4 VMs)* |
3000 GB or 8 Local SSD disks
(1500 GB or 4 Local SSD disks per VM, for 2 VMs)* |
*Specifically, the example
attached reservation, res-1
, reserves 4 n1-standard-4
VMs, each with 1 P100 GPU and 2 Local SSD disks of scsi
interface type. The n1-standard-4
machine type
uses 4 vCPUs and 15 GB for each VM.
†Specifically, the replacement
attached reservation defines res-2
, which reserves 2
n1-standard-8
VMs, each with 1 P100 GPU and 4 Local SSD disks
of scsi
interface type. Additionally, res-2
is
shared with 2 other projects, project-1
and
project-2
and owned by the current project,
my-project
. The n1-standard-8
machine
type uses 8 vCPUs and 30 GB for each VM.
To replace the attached reservation res-1
with res-2
for the my-commitment-with-reservations
commitment, do the following:
Create a file named
two-reservations.yaml
in the current directory that file contains the following contents:- 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
Run the following command:
gcloud beta compute commitments update-reservations my-commitment-with-reservations \ --region=asia-east1 \ --reservations-from-file=two-reservations.yaml
REST
To replace reservations that are attached to commitments, make a POST
request using the regionCommitments.updateReservations
method.
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"
}
}
}
}
]
}
Replace the following with the corresponding properties of the commitment, the current reservation, and the replacement reservation:
Commitment
COMMITMENT_NAME
: the name of the commitment with the attached reservation.PROJECT_ID
: the project ID of the commitment with the attached reservation. This is also the project ID for the current and attached reservations.COMMITMENT_ZONE
: the zone of the commitment with the attached reservation.
Current reservation
For the current reservation, all of the following properties must be exactly the same as when you viewed the reservation. Omit the fields for any properties that the current reservation does not already specify.
CURRENT_RESERVATION_NAME
: the name of the current attached reservation.CURRENT_RESERVATION_ZONE
: the zone of the current attached reservation.CURRENT_RESERVATION_MACHINE_TYPE
: the machine type of the current attached reservation.CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS
: the number of GPUs reserved in the current attached reservation.CURRENT_RESERVATION_ACCELERATOR_TYPE
: the type of accelerator reserved in the current attached reservation.CURRENT_RESERVATION_INTERFACE_1
andCURRENT_RESERVATION_INTERFACE_2
: the type of interface that the Local SSD disks for each reserved VM use in the current attached reservation. Valid options are:scsi
andnvme
. Each Local SSD disk is 375 GB. Repeat thelocalSsds
parameter for all the reserved Local SSD disks.CURRENT_RESERVATION_SHARE_SETTING
: The type of sharing for the current reservation. Specify this parameter with the value asprojects
if your current attached reservation is shared across multiple consumer projects.CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1
andCURRENT_RESERVATION_CONSUMER_PROJECT_ID_2
: the project IDs of the projects that you share the current attached reservation with, for exampleproject-1
andproject-2
.
Replacement reservation
For the replacement reservation, set the following properties as required. Ensure that you meet all the requirements when you specify these properties. Omit any additional fields that you don't want to use.
REPLACEMENT_RESERVATION_NAME
: the name of the new replacement reservation.REPLACEMENT_RESERVATION_ZONE
: the zone of the new replacement reservation.REPLACEMENT_RESERVATION_NUMBER_OF_VMS
: the number of VMs that you want to reserve in the new replacement reservation.REPLACEMENT_RESERVATION_MACHINE_TYPE
: the machine type that you want for the VMs in your new replacement reservation.- For predefined machine types, use the format
MACHINE_FAMILY-standard-CPUS
; for example,n2-standard-4
. - For custom machine types, use the format
MACHINE_FAMILY-custom-CPUS-MEMORY
; for examplen2-custom-4-5120
. For a full list of restrictions, read the specifications for custom machine types.
Replace the following:
MACHINE_FAMILY
: the family of machine types; for example, specifyn2
for N2 VMs.CPUS
: the number of vCPUs.MEMORY
: the total memory for a reserved VM. Memory must be a multiple of 256 MB and must be supplied in MB; for example, to create an N2 VM with 4 vCPUs and 5 GB of memory, which is 5120 MB, usen2-custom-4-5120
.
- For predefined machine types, use the format
REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS
: the number of GPUs you want to add, per VM, in the replacement reservation.REPLACEMENT_RESERVATION_ACCELERATOR_TYPE
: the type of accelerator you want to add in the replacement reservation.REPLACEMENT_RESERVATION_INTERFACE_1
andREPLACEMENT_RESERVATION_INTERFACE_2
: the type of interface you want the Local SSD disks for each reserved VM to use. Valid options are:scsi
andnvme
. Each Local SSD disk is 375 GB. Repeat thelocalSsds
parameter for each Local SSD disks that you want to add. You can specify up to 24 Local SSD disks.REPLACEMENT_RESERVATION_SHARE_SETTING
: The type of sharing for the replacement reservation. Specify this parameter with the value asprojects
if you want to share your replacement reservation across multiple consumer projects.REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1
andREPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2
: the project IDs of the projects that can share this reservation, for exampleproject-1,project-2
. You can include up to 100 consumer projects. These projects must be in the same organization as the owner project. Don't include thePROJECT_ID
, which is already allowed to consume this reservation by default.
Example for replacing a reservation that is attached to a commitment
To demonstrate this, this section shows an example commitment with an attached reservation and how to replace the example attached reservation.
Example commitment with an attached reservation
For example, suppose that you want to replace the attached reservation
res-1
for the my-commitment-with-reservations
commitment, that was
purchased by making the following POST
request:
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"
}
This my-commitment-with-reservations
commitment and the attached
reservation res-1
resulted in the following committed and reserved
resources:
Resource type | Resources in commitment ( my-commitment-with-reservations ) |
Resources in current attached reservation ( res-1 ) |
---|---|---|
vCPUs and memory | 16 vCPUs and 60 GB | 16 vCPUs and 60 GB (4 reserved n1-standard-4 VMs)* |
GPUs | 4 P100 GPUs | 4 P100 GPUs
(1 P100 GPU per VM, for 4 VMs)* |
Local SSD disks | 3000 GB or 8 Local SSD disks | 3000 GB or 8 Local SSD disks
(750 GB or 2 Local SSD disks per VM, for 4 VMs)* |
*Specifically, the example
attached reservation, res-1
, reserves 4 n1-standard-4
VMs, each with 1 P100 GPU and 2 Local SSD disks of scsi
interface
type. The n1-standard-4
machine type
uses 4 vCPUs and 15 GB for each VM.
Replace the example attached reservation
Suppose you want to replace the attached reservation res-1
for the
with a new attached reservation res-2
and change the reserved resources
to the following:
Resource type | Resources in commitment ( my-commitment-with-reservations ) |
Resources in current attached reservation ( res-1 ) |
Resources in replacement attached reservation ( res-2 ) |
---|---|---|---|
vCPUs and memory | 16 vCPUs and 60 GB | 16 vCPUs and 60 GB (4 reserved n1-standard-4 VMs)* |
16 vCPUs and 60 GB (2 reserved and shared n1-standard-8 VMs)† |
GPUs | 4 P100 GPUs | 4 P100 GPUs (1 P100 GPU per VM, for 4 VMs)* |
4 P100 GPUs (2 P100 GPUs per VM, for 2 VMs)† |
Local SSD disks | 3000 GB or 8 Local SSD disks | 3000 GB or 8 Local SSD disks
(750 GB or 2 Local SSD disks per VM, for 4 VMs)* |
3000 GB or 8 Local SSD disks
(1500 GB or 4 Local SSD disks per VM, for 2 VMs)* |
*Specifically, the example
attached reservation, res-1
, reserves 4 n1-standard-4
VMs, each with 1 P100 GPU and 2 Local SSD disks of scsi
interface type. The n1-standard-4
machine type
uses 4 vCPUs and 15 GB for each VM.
†Specifically, the replacement
attached reservation defines res-2
, which reserves 2
n1-standard-8
VMs, each with 1 P100 GPU and 4 Local SSD disks
of scsi
interface type. Additionally, res-2
is
shared with 2 other projects, project-1
and
project-2
and owned by the current project,
my-project
. The n1-standard-8
machine type uses
8 vCPUs and 30 GB for each VM.
To replace the attached reservation res-1
with res-2
for the my-commitment-with-reservations
commitment, make the following
POST
request by using the regionCommitments.updateReservations
method:
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"
}
]
}
What's next
- Learn more about resource-based CUDs.
- Learn how to consume reservations.
- Learn how to modify reservations.
- Learn how to delete reservations.