Los descuentos por compromiso de uso (CUDs) proporcionan precios con grandes descuentos para los recursos de Compute Engine a cambio de contratos de compromiso de uso de 1 o 3 años (también conocidos como compromisos). Te comprometes a usar una cantidad mínima de recursos o a realizar una cantidad mínima de gastos y recibes CUDs en los costos de uso de los recursos a cambio. Sin embargo, los compromisos no reservan capacidad zonal para tus recursos confirmados. Para obtener recursos zonales a precios con descuento y asegurarte de que la capacidad esté reservada para ellos, debes comprar compromisos y crear reservas para esos recursos zonales.
En este documento, se explica cómo puedes recibir CUDs para tus recursos reservados y cómo conectar reservas a los compromisos basados en recursos.
Antes de comenzar
- Revisa los conceptos básicos de las reservas junto con sus requisitos y restricciones. Para obtener más información, consulta Reservas de recursos zonales de Compute Engine.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.
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
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
-
CUDs para tus recursos reservados
Recibes CUDs de compromisos activos para cualquier uso de recursos apto en tus proyectos. Si también tienes alguna reserva para conservar la capacidad de los recursos de ese proyecto, los CUDs de los compromisos activos también se pueden aplicar a esos recursos reservados. Para que cualquier recurso reservado sea apto para recibir CUDs, se aplican los siguientes requisitos:
- No recibirás ninguna otra forma de descuento por el uso de tus recursos.
- Tus VMs deben consumir las reservas mientras los compromisos están activos.
Como mínimo, las siguientes propiedades deben coincidir entre tus compromisos activos y las reservas que consumen las VMs:
- Proyecto y región donde se aplican
- Serie de familias de máquinas
Según el tipo de recurso, puedes recibir CUDs para tus recursos reservados de una de las siguientes maneras:
CPUs virtuales y memoria: Para recibir CUDs para uno o ambos de estos tipos de recursos, puedes comprar compromisos basados en recursos o en gastos que incluyan los tipos de recursos requeridos. Cuando las VMs de tu proyecto consumen cualquier reserva cuyas propiedades coincidan con esos compromisos activos, recibirás de forma automática los CUDs aplicables para estos tipos de recursos reservados. Si reservaste más recursos de los que te comprometiste, no recibirás CUDs para esos recursos adicionales.
GPUs y discos SSD locales: para recibir CUDs de uno o ambos de estos tipos de recursos, debes hacer lo siguiente:
- Compra compromisos basados en recursos que incluyan los tipos de recursos requeridos.
- Crea reservas para todos los recursos confirmados con propiedades que coincidan con el compromiso y adjunta esas reservas al compromiso.
Cuando las VMs de tu proyecto consumen estas reservas conectadas, comienzas a recibir los CUDs aplicables para estos tipos de recursos reservados.
Adjunta reservas a los compromisos basados en recursos
Puedes adjuntar reservas a cualquier compromiso basado en recursos y asegurarte de que la capacidad se mantenga en zonas específicas para los recursos comprometidos que planeas usar. Puedes conectar varias reservas a un solo compromiso. Sin embargo, una reserva solo se puede conectar a un compromiso. Cuando adquieres un compromiso, puedes adjuntar reservas a ese compromiso de una de las siguientes maneras:
- Usa reservas existentes cuyas propiedades coinciden con el compromiso
- Crea reservas coincidentes nuevas durante la compra del compromiso
Después de adquirir un compromiso con reservas conectadas, las reservas permanecen activas mientras el compromiso esté activo. Cuando vence el compromiso, Compute Engine borra cualquier reserva adjunta automáticamente. Borrar estas reservas no tiene efecto en ninguna VM en ejecución que consuma esas reservas. Las VMs en ejecución se seguirán ejecutando y se te cobrará por ellas.
Recursos comprometidos que no requieren reservas conectadas
Las CPUs virtuales y la memoria comprometidas no requieren que adjuntes reservas coincidentes a tus compromisos. Sin embargo, cuando compras un compromiso que incluye CPUs virtuales, memoria o ambas, aún puedes optar por conectar reservas que especifiquen esos recursos. Si deseas obtener información sobre cómo adquirir compromisos solo para CPUs virtuales, memoria o ambos, sin adjuntar reservas, consulta Adquiere compromisos sin reservas conectadas.
Recursos comprometidos que requieren reservas conectadas
Las GPUs con compromisos y los discos SSD locales requieren que adjuntes las reservas coincidentes a tus compromisos. Cuando adquieres un compromiso que incluye GPU, discos SSD locales o ambos, también debes reservar esos recursos y adjuntarlas a tu compromiso. Puedes hacerlo mediante una sola reserva o una combinación de reservas. Cuando adquieres un compromiso, también puedes incluir CPUs virtuales, memoria o ambos. Sin embargo, no es necesario reservar esas CPUs virtuales o memoria. Para obtener información sobre cómo adquirir compromisos que incluyan una o ambas GPUs y discos SSD locales, consulta Adquiere compromisos con reservas conectadas en este documento.
Para ver la lista completa de series de máquinas que admiten CUDs para GPU y discos SSD locales, consulta la sección Tipos de compromisos en la documentación de CUDs basados en recursos.
Cantidades de recursos permitidos en las reservas conectadas
Para las CPUs virtuales y la memoria, puedes tener reservas adjuntas que especifiquen más o menos cantidades de recursos de los que te comprometes a usar. Si te comprometes a usar más CPUs virtuales o memoria de las que reservas, Compute Engine reserva solo capacidad para estos recursos reservados. Sin embargo, aún puedes usar los recursos confirmados adicionales según su disponibilidad en la región. Si reservas más CPUs virtuales o memoria de las que te comprometes a usar, no recibirás CUDs para esos recursos adicionales que reservas.
Por ejemplo, cuando compras un compromiso de 4 CPUs virtuales y 30 GB de memoria, puedes elegir realizar una de las siguientes acciones:
- No adjuntar ninguna reserva.
Adjunta reservas que especifiquen cualquier combinación de estos tipos de recursos. Por ejemplo:
- 4 CPUs virtuales y 30 GB de memoria
- 2 CPUs virtuales y 50 GB de memoria
- 10 CPUs virtuales y 10 GB de memoria
Sin embargo, si el compromiso contiene GPUs, discos SSD locales o ambos, debes reservar y conectar todos esos recursos. Las reservas adjuntas deben especificar la cantidad y los tipos exactos de GPU y discos SSD locales a los que te comprometes. En consecuencia, tampoco puedes tener ninguna cantidad o tipos adicionales de GPUs o discos SSD locales en tus reservas conectadas. Por ejemplo, supongamos que adquieres un compromiso de 30 GB de memoria y 4 GPUs NVIDIA P100. La reserva conectada (o la combinación de reservas conectadas) puede especificar cualquier cantidad de CPUs virtuales o memoria, pero debe tener exactamente 4 GPUs que sean del tipo NVIDIA P100. En este ejemplo, no puedes adjuntar reservas que especifiquen cualquiera de las siguientes combinaciones de recursos:
- 6 GPUs NVIDIA P100
- 2 GPUs NVIDIA P100
- 4 GPUs NVIDIA P100 y 2 GPUs NVIDIA V100
- 4 GPUs NVIDIA P100 y 4 discos SSD locales
Compra compromisos con reservas conectadas
Cuando compras un compromiso nuevo, puedes adjuntar reservas a tu compromiso de cualquiera de las siguientes maneras:
- Usa reservas existentes cuyas propiedades coinciden con el compromiso
- Crea nuevas reservas coincidentes durante la compra del compromiso
Después de adquirir un compromiso, este se activa al día siguiente a las 12 a.m. hora del Pacífico de EE.UU. y Canadá (UTC-8, o UTC-7 durante el horario de verano).
Entre el momento de la compra del compromiso y el momento en que se activa, el estado del compromiso permanece como NOT_YET_ACTIVE
(o como PENDING
en la consola de Google Cloud). Después de la activación, el estado del compromiso cambia a ACTIVE
.
Por ejemplo, supongamos que compras tu compromiso el 20 de enero a las 10:00 p.m. según la hora del Pacífico de EE.UU. y Canadá (UTC-8 o UTC-7). Compute Engine crea el compromiso de inmediato con su estado como NOT_YET_ACTIVE
. Sin embargo, tu compromiso se vuelve ACTIVE
solo el 21 de enero a las 12:00 a.m. hora del Pacífico de EE.UU. y Canadá (UTC-8 o UTC-7).
Requisitos
Antes de adquirir un compromiso con reservas conectadas, revisa estos requisitos y asegúrate de que tu compromiso y las reservas cumplan con los siguientes criterios:
- Debes adquirir el compromiso y crear las reservas conectadas en el mismo proyecto y región.
- Debes adquirir el compromiso y crear las reservas conectadas para los recursos de la misma serie de familias de máquinas.
- Debes inhabilitar la opción de eliminación automática en las reservas conectadas.
- Si tu compromiso tiene GPUs, el tipo de GPU espedificado en la reserva y el compromiso deben coincidir.
- Para las GPUs y los discos SSD locales, la cantidad de recursos reservados de cada tipo de recurso debe coincidir de forma exacta con la cantidad de recursos confirmados en ese tipo de recurso. Por ejemplo, si deseas adquirir un compromiso para 4 GPU V100, las reservas conectadas de tu compromiso deben especificar un total de 4 GPUs V100. Sin embargo, la cantidad de CPU virtual y memoria que reservas puede ser más o menos igual a la cantidad que te comprometes a usar.
- En el caso de las GPU, debes adquirir compromisos para los tipos específicos de GPU que planeas usar. Por ejemplo, puedes adquirir compromisos de NVIDIA P100s o NVIDIA V100s, pero no puedes usar un compromiso que compraste para las GPUs de NVIDIA P100 para cubrir las de NVIDIA V100.
Si tu reserva conectada es una reserva compartida y deseas recibir los CUDs aplicables cuando consumes esa reserva fuera del proyecto de tu compromiso, debes hacer lo siguiente:
- Comparte tus reservas solo entre proyectos que pertenezcan a la misma cuenta de Facturación de Cloud que el compromiso.
- Habilita el uso compartido de CUD para esa cuenta de Facturación de Cloud.
Adjunta reservas existentes
Para adquirir un compromiso, adjunta las reservas existentes a ese compromiso mediante Google Cloud CLI o REST.
gcloud
Para adquirir un compromiso mediante la conexión de reservas existentes, ejecuta el comando gcloud compute commitments create
.
En tu comando, incluye la marca --existing-reservation
para especificar una reserva existente que deseas conectar al compromiso. Incluye una instancia nueva de esta marca para cada reserva existente que desees conectar. Puedes adjuntar cualquier cantidad de reservas existentes a tu compromiso.
Por ejemplo, para adquirir un compromiso mediante la conexión de dos reservas, ejecuta el siguiente comando:
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 \ --existing-reservation=name='RESERVATION_NAME_1',zone='RESERVATION_ZONE_1' \ --existing-reservation=name='RESERVATION_NAME_2',zone='RESERVATION_ZONE_2'
Reemplaza lo siguiente:
COMMITMENT_NAME
: el nombre del compromisoREGION
: la región en la que se encuentra el compromisoPROJECT_ID
: el ID del proyecto en el que deseas adquirir el compromiso con las reservas conectadas.DURATION
: la duración del plazo del compromiso, que puede ser12-month
o36-month
.COMMITMENT_TYPE
: el tipo de compromiso. Los siguientes tipos de compromiso proporcionan opciones para GPUs, discos SSD locales o ambos:accelerator-optimized
para los recursos de tipos de máquinascompute-optimized
para los recursos de tipos de máquinas C2compute-optimized-c2d
para los recursos de tipos de máquinas C2Dcompute-optimized-c3
para los recursos de tipos de máquinas C3compute-optimized-c3d
para los recursos de tipos de máquinas C3Dgeneral-purpose
para los recursos de tipo de máquina N1general-purpose-e2
para los recursos de tipos de máquinas E2general-purpose-n2
para los recursos de tipos de máquinas N2general-purpose-n2d
para los recursos de máquina N2Dgeneral-purpose-t2d
para los recursos de tipo de máquina Tau T2Dgraphics-optimized
para los recursos de tipos de máquinas G2memory-optimized
para los recursos de tipos de máquinas M1 o M2memory-optimized-m3
para los compromisos de tipos de máquinas M3 con optimización de memoria
COMMITTED_VCPUS
: es la cantidad de CPUs virtuales que deseas en el compromiso. Debe ser un número entero positivo.COMMITTED_MEMORY
es la cantidad de memoria, en MB o GB, que deseas en el compromiso. Por ejemplo,10240MB
o10GB
. Si no especificas una unidad, Compute Engine usa GB como unidad. Puedes comprar memoria en incrementos de 0.25 GB.COMMITTED_LOCAL_SSD
: la cantidad de espacio SSD local, expresada en GB, que deseas incluir en el compromiso. Cada disco SSD local es de 375 GB.COMMITTED_ACCELERATOR_COUNT
: es la cantidad de GPUs que deseas en tu compromiso.COMMITTED_ACCELERATOR_TYPE
: el tipo de GPU que deseas en tu compromiso.RESERVATION_NAME_1
yRESERVATION_NAME_2
: los nombres de las reservas existentes que deseas conectar al compromiso.RESERVATION_ZONE_1
yRESERVATION_ZONE_2
: las zonas de las reservas existentes que deseas conectar al compromiso.
Ejemplo: Compra un compromiso mediante la conexión de reservas existentes
Supongamos que tienes dos reservas res-01
y res-02
en las zonas us-central1-a
y us-central1-b
del proyecto myproject
.
Supongamos que estas reservas contienen una capacidad combinada para 4 GPUs NVIDIA P100 y 4 discos SSD locales. Si deseas adquirir un compromiso nuevo en la región us-central1
de este proyecto para estas GPUs y discos SSD locales, y usar estas reservas existentes como reservas conectadas, ejecuta el siguiente comando. Ten en cuenta que el compromiso de ejemplo también contiene CPUs virtuales y memoria.
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 \ --existing-reservation=name=res-01,zone=us-central1-a \ --existing-reservation=name=res-02,zone=us-central1-b
REST
Para adquirir un compromiso mediante la conexión de las reservas existentes, realiza una solicitud POST
al método regionCommitments.insert
.
En tu solicitud, incluye el campo existingReservations
para especificar una lista separada por comas de todas las reservas existentes que deseas conectar al compromiso. Puedes adjuntar cualquier cantidad de reservas existentes a tu compromiso.
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" } ], "existingReservations": "RESERVATION_URLs" }
Reemplaza lo siguiente:
COMMITMENT_NAME
: el nombre del compromisoREGION
: la región en la que se encuentra el compromisoPROJECT_ID
: el ID del proyecto en el que deseas adquirir el compromiso con las reservas conectadas.DURATION
: La duración del plazo del compromiso, que puede serTWELVE_MONTH
oTHIRTY_SIX_MONTH
.COMMITMENT_TYPE
: el tipo de compromiso. Los siguientes tipos de compromiso proporcionan opciones para GPUs, discos SSD locales o ambos:GENERAL_PURPOSE_E2
para los recursos de tipos de máquinas E2GENERAL_PURPOSE_N2
para los recursos de tipos de máquinas N2GENERAL_PURPOSE_N2D
para los recursos de máquina N2DCOMPUTE_OPTIMIZED_C3
para los recursos de tipos de máquinas C3GENERAL_PURPOSE_C3D
para los recursos de tipos de máquinas C3DGENERAL_PURPOSE_T2D
para los recursos de tipo de máquina Tau T2DGENERAL_PURPOSE
para los recursos de tipo de máquina N1COMPUTE_OPTIMIZED
para los recursos de tipos de máquinas C2COMPUTE_OPTIMIZED_C2D
para los recursos de tipos de máquinas C2DMEMORY_OPTIMIZED
para los recursos de tipos de máquinas M1 o M2MEMORY_OPTIMIZED_M3
para los compromisos de tipos de máquinas M3 con optimización de memoriaACCELERATOR_OPTIMIZED
para los recursos de tipos de máquinasGRAPHICS_OPTIMIZED
para los recursos de tipos de máquinas G2
COMMITTED_VCPUS
: es la cantidad de CPUs virtuales que deseas en el compromiso. Debe ser un número entero positivo.COMMITTED_MEMORY
: la cantidad de memoria, en MB, que deseas en el compromiso. Por ejemplo,10240MB
Puedes comprar memoria en incrementos de 256 MB.COMMITTED_LOCAL_SSD
: La cantidad de almacenamiento SSD local, en GB, que deseas en tu compromiso. Cada SSD local es de 375 GB.COMMITTED_ACCELERATOR_COUNT
: es la cantidad de GPUs que deseas en tu compromiso.COMMITTED_ACCELERATOR_TYPE
: el tipo de GPU que deseas en tu compromiso.RESERVATION_URLs
: una lista separada por comas de las URLs de las reservas existentes que deseas adjuntar al compromiso. Por ejemplo, para adjuntar dos reservas,res-1
yres-2
, especifica lo siguiente:"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"
Ejemplo: Compra un compromiso mediante la conexión de reservas existentes
Supongamos que tienes dos reservas res-01
y res-02
en las zonas us-central1-a
y us-central1-b
del proyecto myproject
.
Supongamos que estas reservas contienen una capacidad combinada para 4 GPUs NVIDIA P100 y 4 discos SSD locales. Si quieres adquirir un compromiso nuevo en la región us-central1
de este proyecto para estas GPUs y discos SSD locales y usar estas reservas existentes como reservas conectadas, realiza la siguiente solicitud POST
. Ten en cuenta que el compromiso de ejemplo también contiene CPUs virtuales y memoria.
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" }, { "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" ] }
Crea reservas nuevas para adjuntar
Puedes crear las reservas conectadas mientras compras el compromiso a través de la consola de Google Cloud, Google Cloud CLI o REST.
Console
Antes de adquirir un compromiso con la consola de Google Cloud, elige el proyecto que deseas usar para adquirirlo. Si el uso compartido de descuentos está habilitado para una cuenta de Facturación de Cloud, puedes adquirir el compromiso con cualquier proyecto de esa cuenta de Facturación de Cloud. Después de seleccionar el proyecto, haz lo siguiente:
En la consola de Google Cloud, ve a la página Descuentos por compromiso de uso.
Para adquirir un compromiso nuevo, haz clic en Adquirir un compromiso.
Otorga un nombre al compromiso y elige la región en la que quieres que se aplique.
Elige el Tipo de compromiso. Los siguientes tipos de compromiso proporcionan opciones para GPUs, discos SSD locales o ambos:
- C3 de uso general para los recursos de tipo de máquina C3
- C3D de uso general para los recursos de tipo de máquina C3D
- N2 de uso general para los recursos de tipo de máquina N2
- N2D de uso general para los recursos de tipo de máquina N2D
- N1 de uso general para los recursos de tipo de máquina N1
- H3 optimizada para procesamiento para los recursos de tipo de máquina H3
- C2 optimizada para procesamiento para los recursos de tipo de máquina C2
- C2D optimizado para procesamiento para los recursos de tipo de máquina C2D
- M1/M2 con optimización de memoria para los recursos de tipo de máquina M1 y M2
- M3 con optimización de memoria para los recursos de tipo de máquina M3
- A3 optimizada para aceleradores para recursos de tipos de máquinas A3
- A2 optimizada para aceleradores para recursos de tipos de máquinas A2
- G2 con optimización para gráficos para los recursos de tipo de máquina G2
Elige una duración del compromiso de 1 o 3 años.
Ingresa la cantidad de núcleos y memoria que deseas adquirir. Si solo deseas comprometerte a usar y reservar discos SSD locales o GPUs, sin comprometerte a usar CPUs virtuales ni memoria, especifica 0 en la cantidad de compromisos de CPUs virtuales y memoria.
Haz clic en Agregar GPU y elige el tipo de GPU y la cantidad de GPU que deseas comprometerte a usar.
Haz clic en Agregar SSD local y especifica la cantidad de discos que deseas comprometerte a usar.
Para crear una reserva y conectarla al compromiso, haz clic en Agregar una reserva.
- En el campo Nombre, ingresa el nombre de tu reserva.
- Elige la región y zona en la que deseas reservar los recursos.
- Elige tu Tipo de recurso compartido preferido:
- para crear una reserva para un solo proyecto, elige Local.
- Para crear una reserva compartida entre varios proyectos, elige Compartido. Para compartir esta reserva con otros proyectos, haz clic en Agregar proyectos y elige los proyectos que deseas de la organización del proyecto actual.
En el campo Usar con instancia de VM, elige una de las siguientes opciones:
- Para usar los recursos de esta reserva solo cuando creas VM coincidentes que se dirigen de forma específica a esta reserva por nombre, elige Elegir reserva específica.
- Para permitir que las instancias de VM coincidentes usen de forma automática esta reserva, elige Usar reserva de forma automática.
En el campo Cantidad de instancias de VM, ingresa la cantidad de instancias de VM que deseas reservar.
Especifica los recursos que deseas reservar para cada instancia de VM:
- Si deseas reservar VM que coincidan con una plantilla de instancias existente, elige Usar plantilla de instancias y elige una plantilla de instancias de la lista.
- De lo contrario, elige Especificar tipo de máquina y especifica lo siguiente:
- En el campo Familia de máquinas, elige la familia de máquinas: Uso general, Optimizado para procesamiento, Con optimización de memoria o GPUs.
- En los campos Serie y Tipo de máquina, elige una serie de máquinas y un tipo de máquina.
- Especifica una plataforma de CPU mínima o GPU (opcional):
- Haz clic en Plataforma de CPU y GPU para expandir la sección.
- Opcional: Para especificar una plataforma de CPU mínima, elige una opción en la lista Formulario de CPU.
- Opcional: Para agregar GPU, haz clic en Agregar GPU. Luego, en los campos Tipo de GPU y Cantidad de GPU, elige el tipo y la cantidad de GPU para cada VM.
- Opcional: Agrega discos SSD locales:
- En el campo Cantidad de discos, selecciona la cantidad de discos SSD locales para cada VM.
- En el campo Tipo de interfaz, selecciona la interfaz para los discos SSD locales.
Para terminar de especificar las propiedades de esta reserva, haz clic en Listo.
Haz clic en el botón Adquirir para adquirir el compromiso.
Lee las condiciones de compra y haz clic en Adquirir cuando estés listo para adquirir el compromiso.
gcloud
Para crear las reservas conectadas durante la compra del compromiso, ejecuta el comando gcloud compute commitments create
.
Según si deseas conectar una sola reserva o varias, ejecuta el comando de una de las siguientes maneras:
Para crear y adjuntar una sola reserva al compromiso, define las propiedades de la reserva conectada mediante la ejecución del siguiente comando:
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 \ --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
Para crear y adjuntar varias reservas al compromiso, define las propiedades de la reserva mediante un archivo YAML y, luego, especifica ese archivo YAML en el comando que usas para adquirir el compromiso. De manera opcional, también puedes usar este enfoque de archivo YAML para crear y adjuntar una sola reserva a tu compromiso. Para crear tus reservas conectadas con este enfoque, haz lo siguiente:
Crea el archivo YAML en el directorio actual y especifica la configuración que deseas para cada reserva conectada. Por ejemplo, para especificar la configuración de una reserva compartida con dos proyectos que especifican GPU, dos discos SSD locales y una plataforma de CPU mínima, incluye el siguiente texto en tu archivo 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
Para especificar la configuración de varias reservas, repite estas propiedades para cada reserva que desees crear. Puedes adjuntar cualquier cantidad de reservas existentes que desees a tu compromiso.
Ejecuta el comando
gcloud compute commitments create
y, además, incluye la marca--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
Reemplaza lo siguiente por las propiedades correspondientes del compromiso y las reservas conectadas:
Período
COMMITMENT_NAME
: el nombre del compromisoREGION
: la región en la que se encuentra el compromisoPROJECT_ID
: el ID del proyecto en el que deseas adquirir el compromiso con las reservas conectadas.DURATION
: La duración del plazo del compromiso, que puede ser12-month
o36-month
.COMMITMENT_TYPE
: el tipo de compromiso. Los siguientes tipos de compromiso proporcionan opciones para GPUs, discos SSD locales o ambos:general-purpose-e2
para los recursos de tipos de máquinas E2general-purpose-n2
para los recursos de tipos de máquinas N2general-purpose-n2d
para los recursos de máquina N2Dcompute-optimized-c3
para los recursos de tipos de máquinas C3general-purpose-c3d
para los recursos de tipos de máquinas C3Dgeneral-purpose-t2d
para los recursos de tipo de máquina Tau T2Dgeneral-purpose
para los recursos de tipo de máquina N1compute-optimized
para los recursos de tipos de máquinas C2compute-optimized-c2d
para los recursos de tipos de máquinas C2Dmemory-optimized
para los recursos de tipos de máquinas M1 o M2memory-optimized-m3
para los compromisos de tipos de máquinas M3 con optimización de memoriaaccelerator-optimized
para los recursos de tipos de máquinasgraphics-optimized
para los recursos de tipos de máquinas G2
COMMITTED_VCPUS
: es la cantidad de CPUs virtuales que deseas en el compromiso. Debe ser un número entero positivo.COMMITTED_MEMORY
es la cantidad de memoria, en MB o GB, que deseas en el compromiso. Por ejemplo,10GB
o10240MB
. Si no especificas una unidad, Compute Engine usa GB como unidad. Puedes comprar memoria en incrementos de 0.25 GB.COMMITTED_LOCAL_SSD
: La cantidad de almacenamiento SSD local, en GB, que deseas en tu compromiso. Cada disco SSD local es de 375 GB.COMMITTED_ACCELERATOR_COUNT
: es la cantidad de GPUs que deseas en tu compromiso.COMMITTED_ACCELERATOR_TYPE
: el tipo de GPU que deseas en tu compromiso.YAML_FILE
: es la ruta al archivo YAML que contiene la configuración de las reservas conectadas.
Reservas adjuntas
RESERVATION_NAME
: el nombre de la reserva conectada.RESERVATION_ZONE
: la zona de la reserva conectada.REQUIRE_SPECIFIC_RESERVATION_VALUE
: especifica si la reserva conectada es una reserva dirigida de forma específica, ya seatrue
ofalse
. Para obtener más información sobre las reservas orientadas específicamente, consulta Cómo funcionan las reservas.NUMBER_OF_RESERVED_VMS
: el número de VMs que deseas reservar en la reserva conectada.RESERVED_MACHINE_TYPE
: el tipo de máquina que deseas para las VMs en tu reserva conectada.- Para los tipos de máquinas predefinidos, usa el formato
MACHINE_FAMILY-standard-CPUS
; por ejemplo,n2-standard-4
. Para los tipos de máquinas personalizados, usa el formato
MACHINE_FAMILY-custom-CPUS-MEMORY
; por ejemplo,n2-custom-4-5120
. Si deseas obtener una lista completa de las restricciones, consulta las especificaciones para los tipos personalizados de máquinas.Reemplaza lo siguiente:
MACHINE_FAMILY
: la familia de tipos de máquinas; por ejemplo, especifican2
para las VMs N2.CPUS
: Es la cantidad de CPU virtuales.MEMORY
: la memoria total para una VM reservada. La memoria debe ser un múltiplo de 256 MB y debe proporcionarse en MB; por ejemplo, para crear una VM N2 con 4 CPUs virtuales y 5 GB de memoria, que son 5,120 MB, usan2-custom-4-5120
.
- Para los tipos de máquinas predefinidos, usa el formato
RESERVED_ACCELERATOR_COUNT
: el número de GPUs que deseas agregar, por VM, en la reserva conectada.RESERVED_ACCELERATOR_TYPE
: el tipo de acelerador que deseas agregar en la reserva de reemplazo.INTERFACE_1
yINTERFACE_2
: son el tipo de interfaz que deseas que usen los discos SSD locales para cada VM reservada. Las opciones válidas son:scsi
ynvme
. Cada disco SSD local es de 375 GB. Repite el parámetrolocal_ssd
para cada disco SSD local que desees agregar. Puedes especificar hasta 24 discos SSD locales.OWNER_PROJECT_ID
: el ID del proyecto en el que deseas adquirir el compromiso con la reserva conectada. Especifica este campo si deseas compartir tu reserva conectada en varios proyectos de consumidor.MINIMUM_CPU_PLATFORM
: la plataforma de CPU mínima que deseas especificar para la reserva conectada.SHARE_SETTING
: es el tipo de uso compartido de la reserva conectada. Especifica este campo con el valor comoprojects
si deseas compartir tu reserva conectada en varios proyectos de consumidor. Excluye este campo si deseas crear una reserva de un solo proyecto.CONSUMER_PROJECT_ID_1
yCONSUMER_PROJECT_ID_2
: son los IDs de los proyectos que pueden compartir esta reserva, por ejemploproject-1
yproject-2
. Puedes incluir hasta 100 proyectos de consumidor. Estos proyectos deben estar en la misma organización que el proyecto de propietario. No incluyas el ID del proyecto en el que creas esta reserva, ya que ese proyecto tiene permitido consumirla de forma predeterminada. Excluye estos campos si deseas crear una reserva de un solo proyecto.
Compute Engine crea el compromiso con las reservas conectadas solo si hay suficientes recursos del tipo de máquina especificado en la zona de destino y una cuota suficiente en el momento en que se realiza tu solicitud. Si la compra se realizó correctamente, verás un mensaje similar al siguiente:
Created[https://www.googleapis.com/compute/v1/projects/your-project/regions/your-region/commitments/your-commitment-name]
Ejemplos de compra de compromisos mediante la creación de reservas nuevas para adjuntar
En los siguientes comandos y situaciones de ejemplo, se muestra cómo puedes adquirir un compromiso para GPU, discos SSD locales o ambos mediante la creación de reservas nuevas para adjuntar a ese compromiso.
Ejemplo 1: Adquiere un compromiso para GPUs mediante la vinculación de una sola reserva nueva
Supongamos que deseas comprar un compromiso de commitment-01
en la región us-central1
que incluye 4 GPUs NVIDIA V100. Deseas crear una reserva nueva reservation-01
como la reserva conectada para esas GPUs. Supongamos que también deseas especificar Compute Engine para usar esas GPUs reservadas en 2 VMs n1-standard-32
en la zona us-central1-a
. Para comprar este compromiso de ejemplo con su reserva conectada, ejecuta el siguiente comando:
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
Ejemplo 2: Compra un compromiso para GPU sin comprometerte a usar CPUs virtuales o memoria
Para comprometerte a usar y reservar GPUs y discos SSD locales sin comprometerte a usar CPUs virtuales ni memoria, especifica 0
como el valor de la cantidad de CPUs virtuales y memoria.
Por ejemplo, supongamos que deseas adquirir un compromiso commitment-02
para una sola GPU NVIDIA P4 en la región us-west2
. También deseas crear una reserva nueva como la reserva conectada y especificar Compute Engine para usar la GPU reservada en una VM n1-standard-2
en la zona us-west2-b
. Para comprar este compromiso de ejemplo con su reserva conectada, ejecuta el siguiente comando:
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
Ejemplo 3: Compra un compromiso para GPUs y discos SSD locales mediante la conexión de varias reservas nuevas
Supongamos que deseas adquirir un compromiso commitment-03
para 1 GPU NVIDIA V100 y 2 discos SSD locales en la región us-central1
. También deseas crear y adjuntar dos reservas en la zona us-central1-a
. En la primera reserva, res-01
, deseas reservar 1 VM n1-standard-2
con 1 GPU. Deseas hacer que res-01
sea una reserva orientada, lo que significa que debes dirigirte a esa reserva de forma específica por nombre para usar sus VMs reservadas. En la segunda reserva, res-02
, deseas reservar 1 VM n1-standard-8
con 2 tipos de discos SSD locales conectados.
Para comprar este compromiso de ejemplo con las reservas conectadas, primero crea el archivo YAML con las propiedades de ambas reservas.
- 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
Después de crear el archivo YAML, para terminar de adquirir el compromiso con sus reservas conectadas, ejecuta el siguiente comando. Ten en cuenta que el compromiso de ejemplo también contiene recursos de CPU virtual y memoria.
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
Para crear las reservas conectadas durante la compra del compromiso, realiza una solicitud POST
al método regionCommitments.insert
.
En tu solicitud, incluye el campo reservations
para definir una lista de todas las reservas nuevas que deseas crear y adjuntar. Puedes adjuntar cualquier cantidad de reservas existentes que desees a tu compromiso.
Para crear tu reserva nueva mediante la especificación manual de todas las propiedades de la VM, incluye el campo
instanceProperties
y excluye el camposourceInstanceTemplate
.Por ejemplo, para especificar de forma manual la configuración de una reserva compartida con dos proyectos que especifican GPU, dos discos SSD locales y una plataforma de CPU mínima, realiza la siguiente solicitud:
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" } ], "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" } } } } ] }
Para crear tu reserva nueva mediante la especificación de una plantilla de instancias, incluye el campo
sourceInstanceTemplate
y excluye el campoinstanceProperties
.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" } ], "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" } } } } ] }
Reemplaza lo siguiente por las propiedades correspondientes del compromiso y las reservas conectadas:
Período
COMMITMENT_NAME
: el nombre del compromisoREGION
: la región en la que se encuentra el compromisoPROJECT_ID
: el ID del proyecto en el que deseas adquirir el compromiso con las reservas conectadas.DURATION
: la duración del plazo del compromiso, que puede serTWELVE_MONTH
oTHIRTY_SIX_MONTH
.COMMITMENT_TYPE
: el tipo de compromiso. Los siguientes tipos de compromiso proporcionan opciones para GPUs, discos SSD locales o ambos:ACCELERATOR_OPTIMIZED
para los recursos de tipos de máquinasCOMPUTE_OPTIMIZED
para los recursos de tipos de máquinas C2COMPUTE_OPTIMIZED_C2D
para los recursos de tipos de máquinas C2DCOMPUTE_OPTIMIZED_C3
para los recursos de tipos de máquinas C3COMPUTE_OPTIMIZED_C3D
para los recursos de tipos de máquinas C3DGENERAL_PURPOSE
para los recursos de tipo de máquina N1GENERAL_PURPOSE_E2
para los recursos de tipos de máquinas E2GENERAL_PURPOSE_N2
para los recursos de tipos de máquinas N2GENERAL_PURPOSE_N2D
para los recursos de máquina N2DGENERAL_PURPOSE_T2D
para los recursos de tipo de máquina Tau T2DGRAPHICS_OPTIMIZED
para los recursos de tipos de máquinas G2MEMORY_OPTIMIZED
para los recursos de tipos de máquinas M1 o M2MEMORY_OPTIMIZED_M3
para los compromisos de tipos de máquinas M3 con optimización de memoria
COMMITTED_VCPUS
: es la cantidad de CPUs virtuales que deseas en el compromiso. Debe ser un número entero positivo.COMMITTED_MEMORY
: la cantidad de memoria, en MB, que deseas en el compromiso. Por ejemplo,10240MB
Puedes comprar memoria en incrementos de 256 MB.COMMITTED_LOCAL_SSD
: La cantidad de almacenamiento SSD local, en GB, que deseas en tu compromiso. Cada disco SSD local es de 375 GB.COMMITTED_ACCELERATOR_COUNT
: es la cantidad de GPUs que deseas en tu compromiso.COMMITTED_ACCELERATOR_TYPE
: el tipo de GPU que deseas en tu compromiso.
Reservas adjuntas
RESERVATION_NAME
: el nombre de la reserva conectada.RESERVATION_ZONE
: la zona de la reserva conectada.REQUIRE_SPECIFIC_RESERVATION_VALUE
: especifica si la reserva conectada es una reserva dirigida de forma específica, ya seatrue
ofalse
. Para obtener más información sobre las reservas orientadas específicamente, consulta Cómo funcionan las reservas.NUMBER_OF_RESERVED_VMS
: el número de VMs que deseas reservar en la reserva conectada.RESERVED_MACHINE_TYPE
: el tipo de máquina que deseas para las VMs en tu reserva conectada.- Para los tipos de máquinas predefinidos, usa el formato
MACHINE_FAMILY-standard-CPUS
; por ejemplo,n2-standard-4
. Para los tipos de máquinas personalizados, usa el formato
MACHINE_FAMILY-custom-CPUS-MEMORY
; por ejemplo,n2-custom-4-5120
. Si deseas obtener una lista completa de las restricciones, consulta las especificaciones para los tipos personalizados de máquinas.Reemplaza lo siguiente:
MACHINE_FAMILY
: la familia de tipos de máquinas; por ejemplo, especifican2
para las VMs N2.CPUS
: Es la cantidad de CPU virtuales.MEMORY
: la memoria total para una VM reservada. La memoria debe ser un múltiplo de 256 MB y debe proporcionarse en MB; por ejemplo, para crear una VM N2 con 4 CPUs virtuales y 5 GB de memoria, que son 5,120 MB, usan2-custom-4-5120
.
- Para los tipos de máquinas predefinidos, usa el formato
RESERVED_ACCELERATOR_COUNT
: el número de GPUs que deseas agregar, por VM, en la reserva conectada.RESERVED_ACCELERATOR_TYPE
: el tipo de acelerador que deseas agregar en la reserva de reemplazo.INTERFACE_1
yINTERFACE_2
: son el tipo de interfaz que deseas que usen los discos SSD locales para cada VM reservada. Las opciones válidas son:scsi
ynvme
. Cada disco SSD local es de 375 GB. Repite el parámetrolocalSsds
para cada disco SSD local que desees agregar. Puedes especificar hasta 24 discos SSD locales.MINIMUM_CPU_PLATFORM
: la plataforma de CPU mínima que deseas especificar para la reserva conectada.INSTANCE_TEMPLATE_NAME
: es el nombre de la plantilla de instancias que deseas usar para crear la reserva adjunta.SHARE_SETTING
: es el tipo de uso compartido de la reserva conectada. Especifica este campo con el valor comoSPECIFIC_PROJECTS
si deseas compartir tu reserva conectada en varios proyectos de consumidor. Excluye este campo si deseas crear una reserva de un solo proyecto.CONSUMER_PROJECT_ID_1
yCONSUMER_PROJECT_ID_2
: son los IDs de los proyectos que pueden compartir esta reserva, por ejemploproject-1
yproject-2
. Puedes incluir hasta 100 proyectos de consumidor. Estos proyectos deben estar en la misma organización que el proyecto de propietario. No incluyas el ID del proyecto en el que creas esta reserva, ya que ese proyecto tiene permitido consumirla de forma predeterminada. Excluye estos campos si deseas crear una reserva de un solo proyecto.
Compute Engine crea el compromiso con las reservas conectadas solo si hay suficientes recursos del tipo de máquina especificado en la zona de destino y una cuota suficiente en el momento en que se realiza tu solicitud. Si tu compra se realizó correctamente, Compute Engine muestra un estado 200
para la solicitud a la API de REST.
Ejemplos de compra de compromisos mediante la creación de reservas nuevas para adjuntar
En los siguientes comandos y situaciones de ejemplo, se muestra cómo puedes adquirir un compromiso para GPU, discos SSD locales o ambos mediante la creación de reservas nuevas para adjuntar a ese compromiso.
Ejemplo 1: Adquiere un compromiso para GPUs mediante la vinculación de una sola reserva nueva
Supongamos que deseas comprar un compromiso de commitment-01
en la región us-central1
que incluye 4 GPUs NVIDIA V100. Deseas crear una reserva nueva reservation-01
como la reserva conectada para esas GPUs. Supongamos que también quieres especificar Compute Engine para usar esas GPUs reservadas en 2 VMs n1-standard-8
en la zona us-central1-a
. Para comprar este compromiso de ejemplo con su reserva conectada, realiza la siguiente solicitud 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" } ] }
Ejemplo 2: Compra un compromiso para GPU sin comprometerte a usar CPUs virtuales o memoria
Para comprometerte a usar y reservar GPUs y discos SSD locales sin comprometerte a usar CPUs virtuales ni memoria, especifica 0
como el valor de la cantidad de CPUs virtuales y memoria.
Por ejemplo, supongamos que deseas adquirir un compromiso commitment-02
para una sola GPU NVIDIA P4 en la región us-west2
. También quieres crear una reserva nueva como la reserva conectada y especificar Compute Engine para usar la GPU reservada en una VM n1-standard-2
en la zona us-west2-b
. Para adquirir este compromiso de ejemplo con su reserva conectada, realiza la siguiente solicitud 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" } ] }
Ejemplo 3: Compra un compromiso para GPUs y discos SSD locales mediante la conexión de varias reservas nuevas
Supongamos que deseas adquirir un compromiso commitment-03
para 1 GPU NVIDIA V100 y 2 discos SSD locales en la región us-central1
. También deseas crear y adjuntar dos reservas en la zona us-central1-a
. En la primera reserva, res-01
, deseas reservar 1 VM n1-standard-2
con 1 GPU. Deseas hacer que res-01
sea una reserva orientada, lo que significa que debes dirigirte a esa reserva de forma específica por nombre para usar sus VMs reservadas. En la segunda reserva, res-02
, deseas reservar 1 VM n1-standard-8
con 2 tipos de discos SSD locales conectados. Para adquirir este compromiso de ejemplo con las reservas conectadas, realiza la siguiente solicitud POST
. Ten en cuenta que el compromiso de ejemplo también contiene recursos de CPU virtual y memoria.
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" } ] }
Reemplaza las reservas conectadas a los compromisos
Reemplaza las reservas adjuntas existentes de tu compromiso por nuevas si deseas modificar los tipos y la cantidad de VMs que usan tus recursos comprometidos.
Cambios permitidos
Cuando reemplazas la reserva conectada existente de un compromiso por una reserva nueva, puedes solicitar cualquiera de los siguientes cambios:
- Puedes reservar las VMs desde un tipo de máquina diferente. Sin embargo, aún debes reservar VMs de la misma familia de máquinas para seguir recibiendo CUDs para tus recursos reservados.
- Puedes cambiar la cantidad de VMs que deseas reservar.
- Puedes cambiar la cantidad de GPU y discos SSD locales conectados a cada VM, siempre que la cantidad total de GPU reservadas y discos SSD locales siga siendo iguales.
Puedes especificar que tus reservas reemplazadas sean reservas locales o compartidas.
Requisitos
Cuando reemplazas la reserva conectada de tu compromiso por una nueva, tu solicitud debe cumplir con los siguientes requisitos:
- Solo puedes reemplazar una reserva conectada a la vez por una nueva. Para reemplazar una reserva conectada, quita una reserva conectada existente de forma simultánea mediante la configuración de su recuento de VM en 0 y define una reserva conectada nueva que desees reemplazar.
- La reserva nueva debe estar en el mismo proyecto que el compromiso.
- La reserva nueva debe estar en la misma zona que la reserva que se quitó.
- La cantidad y los tipos de GPUs especificados en la reserva nueva deben coincidir con la reserva que se quitó.
- La cantidad y los tipos de discos SSD locales especificados en la reserva nueva deben coincidir con la reserva que se quitó.
- Solo puedes cambiar hasta 100 VMs por solicitud. Para realizar un cambio que incluya más de 100 VMs, divide el cambio en varias solicitudes más pequeñas o comunícate con la asistencia de Google Cloud.
Tu solicitud para reemplazar una reserva también depende de la disponibilidad de capacidad en ese momento. Si la capacidad de una solicitud no está disponible, la solicitud falla y muestra un error de disponibilidad de recursos; puedes intentar resolverlo mediante la modificación o aplazamiento de la solicitud. Si deseas obtener más información, consulta la documentación para solucionar problemas de disponibilidad de recursos.
Si tu solicitud para reemplazar una reserva conectada falla, la reserva conectada y los recursos reservados existentes no se verán afectados. Para conservar tu capacidad, espera a que se realicen los cambios correspondientes en tus VMs hasta que tu solicitud de reemplazar una reserva se realice de forma correcta.
Pasos para reemplazar una reserva conectada
Puedes reemplazar las reservas de un compromiso mediante Google Cloud CLI o REST.
gcloud
Para reemplazar las reservas conectadas a los compromisos, haz lo siguiente:
Crea un archivo YAML en el directorio actual con la configuración de las siguientes reservas conectadas:
La reserva actual que deseas reemplazar.
Para recuperar los detalles de esta reserva, consulta Visualiza detalles de una reserva.
La nueva reserva de reemplazo.
El contenido del archivo YAML es similar al siguiente:
- 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 localssd: - 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 localssd: - 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
Reemplaza lo siguiente por las propiedades correspondientes de las reservas actuales y de reemplazo:
Reserva actual
Para la reserva actual, todas las propiedades siguientes deben ser exactamente iguales a las que viste cuando viste la reserva. Omite los campos para cualquier propiedad que la reserva actual aún no tenga.
CURRENT_RESERVATION_NAME
: es el nombre de la reserva conectada actual.CURRENT_RESERVATION_ZONE
: es la zona de la reserva conectada actual.CURRENT_RESERVATION_MACHINE_TYPE
: es el tipo de máquina de la reserva conectada actual.CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS
: es la cantidad de GPU reservadas en la reserva conectada actual.CURRENT_RESERVATION_ACCELERATOR_TYPE
: es el tipo de acelerador reservado en la reserva conectada actual.CURRENT_RESERVATION_INTERFACE_1
yCURRENT_RESERVATION_INTERFACE_2
: el tipo de interfaz que usan los discos SSD locales para cada VM reservada en la reserva conectada actual. Las opciones válidas son:scsi
ynvme
. Cada disco SSD local es de 375 GB. Repite el parámetrolocal_ssd
para todos los discos SSD locales reservados.CURRENT_RESERVATION_PROJECT_ID
: es el ID del proyecto actual que tiene el compromiso y la reserva conectada. Especifica este campo si tu reserva actual conectada se comparte entre varios proyectos de consumidores.CURRENT_RESERVATION_SHARE_SETTING
: es el tipo de uso compartido de la reserva actual. Especifica este campo con el valor comoprojects
si tu reserva conectada actual se comparte en varios proyectos de consumidor.CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1
yCURRENT_RESERVATION_CONSUMER_PROJECT_ID_2
: son los IDs de los proyectos con los que compartes la reserva conectada actual, por ejemplo,project-1
yproject-2
.
Reserva de reemplazo
Para la reserva de reemplazo, configura las siguientes propiedades según sea necesario. Asegúrate de cumplir con todos los requisitos cuando especifiques estas propiedades. Omite cualquier campo adicional que no quieras usar.
REPLACEMENT_RESERVATION_NAME
: es el nombre de la reserva de reemplazo nueva.REPLACEMENT_RESERVATION_ZONE
: es la zona de la reserva de reemplazo nueva.REPLACEMENT_RESERVATION_NUMBER_OF_VMS
: es la cantidad de VMs que deseas reservar en la reserva de reemplazo nueva.REPLACEMENT_RESERVATION_MACHINE_TYPE
: es el tipo de máquina que deseas para las VMs en tu nueva reserva de reemplazo.- Para los tipos de máquinas predefinidos, usa el formato
MACHINE_FAMILY-standard-CPUS
; por ejemplo,n2-standard-4
. - Para los tipos de máquinas personalizados, usa el formato
MACHINE_FAMILY-custom-CPUS-MEMORY
; por ejemplo,n2-custom-4-5120
. Si deseas obtener una lista completa de las restricciones, consulta las especificaciones para los tipos personalizados de máquinas.
Reemplaza lo siguiente:
MACHINE_FAMILY
: la familia de tipos de máquinas; por ejemplo, especifican2
para las VMs N2.CPUS
: Es la cantidad de CPU virtuales.MEMORY
: la memoria total para una VM reservada. La memoria debe ser un múltiplo de 256 MB y debe proporcionarse en MB; por ejemplo, para crear una VM N2 con 4 CPUs virtuales y 5 GB de memoria, que son 5,120 MB, usan2-custom-4-5120
.
- Para los tipos de máquinas predefinidos, usa el formato
REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS
: es la cantidad de GPU que deseas agregar, por VM, en la reserva de reemplazo.REPLACEMENT_RESERVATION_ACCELERATOR_TYPE
: es el tipo de acelerador que deseas agregar en la reserva de reemplazo.REPLACEMENT_RESERVATION_INTERFACE_1
yREPLACEMENT_RESERVATION_INTERFACE_2
: son el tipo de interfaz que deseas que usen los discos SSD locales para cada VM reservada. Las opciones válidas son:scsi
ynvme
. Cada disco SSD local es de 375 GB. Repite el parámetrolocal_ssd
para cada disco SSD local que desees agregar. Puedes especificar hasta 24 discos SSD locales.REPLACEMENT_RESERVATION_PROJECT_ID
: es el ID del proyecto actual que tiene el compromiso y la reserva conectada. Especifica este campo si deseas compartir tu reserva de reemplazo en varios proyectos de consumidor.REPLACEMENT_RESERVATION_SHARE_SETTING
: es el tipo de uso compartido de la reserva de reemplazo. Especifica este campo con el valor comoprojects
si deseas compartir tu reserva de reemplazo en varios proyectos de consumidor.REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1
yREPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2
: son los IDs de los proyectos que pueden compartir esta reserva, por ejemploproject-1,project-2
. Puedes incluir hasta 100 proyectos de consumidor. Estos proyectos deben estar en la misma organización que el proyecto de propietario. No incluyasREPLACEMENT_RESERVATION_PROJECT_ID
, que ya tiene permisos para consumir esta reserva de forma predeterminada.
Ejecuta el comando
gcloud beta compute commitments update-reservations
y especifica la ruta al archivo YAML con la marca--reservations-from-file
.gcloud beta compute commitments update-reservations COMMITMENT_NAME \ --project= PROJECT_ID \ --region= REGION \ --reservations-from-file= YAML_FILE
Reemplaza lo siguiente:
COMMITMENT_NAME
: es el nombre del compromiso con la reserva conectada.PROJECT_ID
: es el ID del proyecto del compromiso con la reserva conectada.REGION
: a región en la que se encuentra el compromisoYAML_FILE
: es la ruta al archivo YAML que contiene la configuración de las reservas actuales y de reemplazo.
Ejemplo de reemplazo de una reserva que se conecta a un compromiso
Para demostrar esto, en esta sección se muestra un compromiso de ejemplo con una reserva conectada y cómo reemplazar la reserva conectada de ejemplo.
Ejemplo de compromiso con una reserva conectada
Por ejemplo, supongamos que deseas actualizar las reservas conectadas
para el compromiso my-commitment-with-reservations
,
que se compraron mediante el siguiente comando:
gcloud beta compute commitments create my-commitment-with-reservations \
--region=asia-east1 \
--resources=vcpu=16,memory=60GB,local-ssd=3000GB \
--resources-accelerator=type=nvidia-tesla-p100,count=4 \
--plan=12-month \
--type=general-purpose \
--reservations-from-file=one-reservation.yaml
Para este ejemplo, supongamos que, cuando se ejecutó este comando,
one-reservation.yaml
era un archivo en el directorio actual con el
siguiente contenido, que define una reserva conectada llamada 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
Este compromiso my-commitment-with-reservations
y la reserva conectada
res-1
generaron los siguientes recursos confirmados y
reservados:
Tipo de recurso | Recursos en el compromiso ( my-commitment-with-reservations ) |
Recursos en la reserva conectada actual ( res-1 ) |
---|---|---|
CPU virtuales y memoria | 16 CPUs virtuales y 60 GB | 16 CPUs virtuales y 60 GB (4 VMs n1-standard-4 reservadas)* |
GPU | 4 GPU P100 | 4 GPU P100
(1 GPU P100 por VM para 4 VMs)* |
Discos SSD locales | 3000 GB u 8 discos SSD locales | 3000 GB u 8 discos SSD locales (750 GB o 2 discos SSD locales por VM, para 4 VMs)* |
* Específicamente, la reserva conectada de ejemplo, res-1
, reserva 4 VMs n1-standard-4
cada una con 1 GPU P100 y 2 discos SSD locales de tipo de interfaz scsi
. El
tipo de máquina n1-standard-4
usa 4 CPUs virtuales y 15 GB para cada VM.
Reemplaza la reserva conectada de ejemplo
Supongamos que deseas reemplazar la reserva conectada res-1
por una reserva conectada nueva res-2
y cambiar los recursos reservados
por lo siguiente:
Tipo de recurso | Recursos en el compromiso ( my-commitment-with-reservations ) |
Recursos en la reserva conectada actual ( res-1 ) |
Recursos en la reserva de reemplazo conectada ( res-2 ) |
---|---|---|---|
CPU virtuales y memoria | 16 CPUs virtuales y 60 GB | 16 CPUs virtuales y 60 GB (4 VMs n1-standard-4 reservadas)* |
16 CPUs virtuales y 60 GB (2 VMs n1-standard-8 reservadas y compartidas)† |
GPU | 4 GPU P100 | 4 GPU P100 (1 GPU P100 por VM para 4 VMs)* |
4 GPU P100 (2 GPU P100 por VM para 2 VMs)† |
Discos SSD locales | 3000 GB u 8 discos SSD locales | 3000 GB u 8 discos SSD locales (750 GB o 2 discos SSD locales por VM, para 4 VMs)* |
3000 GB u 8 discos SSD locales (1500 GB o 4 discos SSD locales por VM, para 2 VMs)* |
* Específicamente, la reserva conectada de ejemplo, res-1
, reserva 4 VMs n1-standard-4
cada una con 1 GPU P100 y 2 discos SSD locales de tipo de interfaz scsi
. El
tipo de máquina n1-standard-4
usa 4 CPUs virtuales y 15 GB para cada VM.
†Específicamente, la reserva conectada de reemplazo define res-2
, que reserva 2 VMs n1-standard-8
, cada una con 1 GPU P100 y 4 discos SSD locales de tipo de interfaz scsi
. Además, res-2
se
comparte con 2 proyectos más, project-1
y
project-2
, y pertenece al proyecto actual,
my-project
. El tipo de máquina n1-standard-8
usa 8 CPUs virtuales y 30 GB para cada VM.
A fin de reemplazar la reserva conectada res-1
por res-2
para el compromiso my-commitment-with-reservations
, haz lo siguiente:
Crea un archivo llamado
two-reservations.yaml
en el directorio actual que tenga el siguiente contenido:- 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
Ejecuta el siguiente comando:
gcloud beta compute commitments update-reservations my-commitment-with-reservations \ --region=asia-east1-a \ --reservations-from-file=two-reservations.yaml
REST
Para reemplazar las reservas que se adjuntan a los compromisos, realiza una solicitud POST
con el método regionCommitments.updateReservations
.
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"
}
}
}
}
]
}
Reemplaza lo siguiente por las propiedades correspondientes del compromiso, la reserva actual y la reserva de reemplazo:
Compromiso
COMMITMENT_NAME
: es el nombre del compromiso con la reserva conectada.PROJECT_ID
: es el ID del proyecto del compromiso con la reserva conectada. Este también es el ID del proyecto para las reservas actuales y adjuntas.COMMITMENT_ZONE
: es la zona del compromiso con la reserva conectada.
Reserva actual
Para la reserva actual, todas las propiedades siguientes deben ser exactamente iguales a las que viste cuando viste la reserva. Omite los campos para cualquier propiedad que la reserva actual aún no especifique.
CURRENT_RESERVATION_NAME
: es el nombre de la reserva conectada actual.CURRENT_RESERVATION_ZONE
: es la zona de la reserva conectada actual.CURRENT_RESERVATION_MACHINE_TYPE
: es el tipo de máquina de la reserva conectada actual.CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS
: es la cantidad de GPU reservadas en la reserva conectada actual.CURRENT_RESERVATION_ACCELERATOR_TYPE
: es el tipo de acelerador reservado en la reserva conectada actual.CURRENT_RESERVATION_INTERFACE_1
yCURRENT_RESERVATION_INTERFACE_2
: el tipo de interfaz que usan los discos SSD locales para cada VM reservada en la reserva conectada actual. Las opciones válidas son:scsi
ynvme
. Cada disco SSD local es de 375 GB. Repite el parámetrolocalSsds
para todos los discos SSD locales reservados.CURRENT_RESERVATION_SHARE_SETTING
: es el tipo de uso compartido de la reserva actual. Especifica este parámetro con el valor comoprojects
si tu reserva conectada actual se comparte en varios proyectos de consumidor.CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1
yCURRENT_RESERVATION_CONSUMER_PROJECT_ID_2
: son los IDs de los proyectos con los que compartes la reserva conectada actual, por ejemploproject-1
yproject-2
.
Reserva de reemplazo
Para la reserva de reemplazo, configura las siguientes propiedades según sea necesario. Asegúrate de cumplir con todos los requisitos cuando especifiques estas propiedades. Omite cualquier campo adicional que no quieras usar.
REPLACEMENT_RESERVATION_NAME
: es el nombre de la reserva de reemplazo nueva.REPLACEMENT_RESERVATION_ZONE
: es la zona de la reserva de reemplazo nueva.REPLACEMENT_RESERVATION_NUMBER_OF_VMS
: es la cantidad de VMs que deseas reservar en la reserva de reemplazo nueva.REPLACEMENT_RESERVATION_MACHINE_TYPE
: es el tipo de máquina que deseas para las VMs en tu nueva reserva de reemplazo.- Para los tipos de máquinas predefinidos, usa el formato
MACHINE_FAMILY-standard-CPUS
; por ejemplo,n2-standard-4
. - Para los tipos de máquinas personalizados, usa el formato
MACHINE_FAMILY-custom-CPUS-MEMORY
; por ejemplo,n2-custom-4-5120
. Si deseas obtener una lista completa de las restricciones, consulta las especificaciones para los tipos personalizados de máquinas.
Reemplaza lo siguiente:
MACHINE_FAMILY
: es la familia de tipos de máquinas; por ejemplo, especifican2
para las VM N2.CPUS
: Es la cantidad de CPU virtuales.MEMORY
: la memoria total para una VM reservada. La memoria debe ser un múltiplo de 256 MB y debe proporcionarse en MB; por ejemplo, para crear una VM N2 con 4 CPUs virtuales y 5 GB de memoria, que son 5,120 MB, usan2-custom-4-5120
.
- Para los tipos de máquinas predefinidos, usa el formato
REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS
: es la cantidad de GPU que deseas agregar, por VM, en la reserva de reemplazo.REPLACEMENT_RESERVATION_ACCELERATOR_TYPE
: es el tipo de acelerador que deseas agregar en la reserva de reemplazo.REPLACEMENT_RESERVATION_INTERFACE_1
yREPLACEMENT_RESERVATION_INTERFACE_2
: son el tipo de interfaz que deseas que usen los discos SSD locales para cada VM reservada. Las opciones válidas son:scsi
ynvme
. Cada disco SSD local es de 375 GB. Repite el parámetrolocalSsds
para cada disco SSD local que desees agregar. Puedes especificar hasta 24 discos SSD locales.REPLACEMENT_RESERVATION_SHARE_SETTING
: es el tipo de uso compartido de la reserva de reemplazo. Especifica este parámetro con el valor comoprojects
si deseas compartir tu reserva de reemplazo en varios proyectos de consumidor.REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1
yREPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2
: son los IDs de los proyectos que pueden compartir esta reserva, por ejemploproject-1,project-2
. Puedes incluir hasta 100 proyectos de consumidor. Estos proyectos deben estar en la misma organización que el proyecto de propietario. No incluyasPROJECT_ID
, que ya tiene permisos para consumir esta reserva de forma predeterminada.
Ejemplo de reemplazo de una reserva que se conecta a un compromiso
Para demostrar esto, en esta sección se muestra un compromiso de ejemplo con una reserva conectada y cómo reemplazar la reserva conectada de ejemplo.
Ejemplo de compromiso con una reserva conectada
Por ejemplo, supongamos que deseas reemplazar la reserva conectada
res-1
para el compromiso my-commitment-with-reservations
y que se compró
mediante la siguiente solicitud POST
:
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"
}
Este compromiso my-commitment-with-reservations
y la reserva conectada
res-1
generaron los siguientes recursos confirmados y
reservados:
Tipo de recurso | Recursos en el compromiso ( my-commitment-with-reservations ) |
Recursos en la reserva conectada actual ( res-1 ) |
---|---|---|
CPU virtuales y memoria | 16 CPUs virtuales y 60 GB | 16 CPUs virtuales y 60 GB (4 VMs n1-standard-4 reservadas)* |
GPU | 4 GPU P100 | 4 GPU P100
(1 GPU P100 por VM para 4 VMs)* |
Discos SSD locales | 3000 GB u 8 discos SSD locales | 3000 GB u 8 discos SSD locales (750 GB o 2 discos SSD locales por VM, para 4 VMs)* |
* Específicamente, la reserva conectada de ejemplo, res-1
, reserva 4 VMs n1-standard-4
cada una con 1 GPU P100 y 2 discos SSD locales de tipo de interfaz scsi
. El
tipo de máquina n1-standard-4
usa 4 CPUs virtuales y 15 GB para cada VM.
Reemplaza la reserva conectada de ejemplo
Supongamos que deseas reemplazar la reserva conectada res-1
por una reserva conectada nueva res-2
y cambiar los recursos reservados
por lo siguiente:
Tipo de recurso | Recursos en el compromiso ( my-commitment-with-reservations ) |
Recursos en la reserva conectada actual ( res-1 ) |
Recursos en la reserva de reemplazo conectada ( res-2 ) |
---|---|---|---|
CPU virtuales y memoria | 16 CPUs virtuales y 60 GB | 16 CPUs virtuales y 60 GB (4 VMs n1-standard-4 reservadas)* |
16 CPUs virtuales y 60 GB (2 VMs n1-standard-8 reservadas y compartidas)† |
GPU | 4 GPU P100 | 4 GPU P100 (1 GPU P100 por VM para 4 VMs)* |
4 GPU P100 (2 GPU P100 por VM para 2 VMs)† |
Discos SSD locales | 3000 GB u 8 discos SSD locales | 3000 GB u 8 discos SSD locales (750 GB o 2 discos SSD locales por VM, para 4 VMs)* |
3000 GB u 8 discos SSD locales (1500 GB o 4 discos SSD locales por VM, para 2 VMs)* |
* Específicamente, la reserva conectada de ejemplo, res-1
, reserva 4 VMs n1-standard-4
cada una con 1 GPU P100 y 2 discos SSD locales de tipo de interfaz scsi
. El
tipo de máquina n1-standard-4
usa 4 CPUs virtuales y 15 GB para cada VM.
†Específicamente, la reserva conectada de reemplazo define res-2
, que reserva 2 VMs n1-standard-8
, cada una con 1 GPU P100 y 4 discos SSD locales de tipo de interfaz scsi
. Además, res-2
se
comparte con 2 proyectos más, project-1
y
project-2
, y pertenece al proyecto actual,
my-project
. El tipo de máquina n1-standard-8
usa
8 CPUs virtuales y 30 GB para cada VM.
Para reemplazar la reserva conectada res-1
por res-2
para el compromiso my-commitment-with-reservations
, realiza la siguiente
solicitud POST
mediante el método
regionCommitments.updateReservations
:
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"
}
]
}
¿Qué sigue?
- Obtén más información sobre los CUDs basados en recursos.
- Obtén información sobre cómo consumir reservas.
- Obtén información sobre cómo modificar reservas.
- Obtén más información sobre cómo borrar reservas.