Combina reservas con descuentos por uso comprometido


Los descuentos por uso comprometido (CUD) ofrecen precios con grandes descuentos para sus recursos de Compute Engine a cambio de contratos de uso comprometido de 1 o 3 años (también conocidos como compromisos). Usted se compromete a una cantidad mínima de uso de recursos o una cantidad mínima de gasto y recibe a cambio CUD sobre sus costos de uso de recursos. Sin embargo, los compromisos no reservan capacidad zonal para sus recursos comprometidos. Para obtener recursos zonales a precios reducidos y también garantizar que se reserve capacidad para ellos, debe adquirir compromisos y crear reservas para esos recursos zonales.

Este documento explica cómo puede recibir CUD por sus recursos reservados y cómo adjuntar reservas a compromisos basados ​​en recursos .

Antes de comenzar

  • Revise 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 has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. 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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .

CUD para tus recursos reservados

Recibe CUD de compromisos activos por cualquier uso de recursos elegible en sus proyectos. Si también tiene reservas para mantener capacidad de recursos en ese proyecto, los CUD de compromisos activos también pueden aplicarse a esos recursos reservados. Para que cualquier recurso reservado sea elegible para recibir CUD, se aplican los siguientes requisitos:

  • No recibirá ningún otro tipo de descuento por el uso de sus recursos.
  • Sus máquinas virtuales deben consumir las reservas mientras los compromisos están activos.
  • Como mínimo, las siguientes propiedades deben coincidir entre sus compromisos activos y las reservas que consumen sus máquinas virtuales:

    • Proyecto y región donde aplican
    • Serie de familia de máquinas

Dependiendo del tipo de recurso, puedes recibir CUD para tus recursos reservados de una de las siguientes maneras:

  • vCPU y memoria : para recibir CUD para uno o ambos tipos de recursos, puede adquirir compromisos basados ​​en recursos o en gastos que incluyan los tipos de recursos necesarios. Cuando las máquinas virtuales de su proyecto consumen reservas cuyas propiedades coincidan con dichos compromisos activos, el uso de estos tipos de recursos automáticamente se vuelve elegible para los CUD aplicables.

    Solo para compromisos basados ​​en recursos, puede habilitar el uso compartido de CUD . Hacerlo le permite compartir CUD de un proyecto para cubrir el uso en otros proyectos vinculados a la cuenta de facturación en la nube de ese compromiso.

    Si reservó más recursos de los que se comprometió a comprar, entonces no recibirá CUD por esos recursos adicionales.

  • GPU y discos SSD locales : para recibir CUD para uno o ambos tipos de recursos, debe hacer lo siguiente:

    • Adquirir compromisos basados ​​en recursos que incluyan los tipos de recursos necesarios.
    • Cree reservas para todos los recursos comprometidos con propiedades que coincidan con su compromiso y adjunte esas reservas al compromiso.

    Cuando las máquinas virtuales de su proyecto consumen estas reservas adjuntas, comienza a recibir los CUD aplicables para estos tipos de recursos reservados. Si habilita el uso compartido de CUD y adjunta una reserva compartida, el uso de otros proyectos de consumidores también puede ser elegible para los CUD compartidos. Sin embargo, para que el uso de otros proyectos califique, debe limitar el uso compartido de su reserva dentro de la cuenta de facturación en la nube del compromiso.

Adjuntar reservas a los compromisos basados ​​en recursos

Puede adjuntar reservas a cualquier compromiso basado en recursos y asegurarse de que se mantenga la capacidad en zonas específicas para los recursos comprometidos que planea utilizar. Puede adjuntar varias reservas a un único compromiso; sin embargo, una reserva sólo puede vincularse a un único compromiso. Cuando compras un compromiso, puedes adjuntar reservas a ese compromiso de una de las siguientes maneras:

  • Utilizar reservas existentes cuyas propiedades coincidan con el compromiso
  • Creando nuevas reservas coincidentes mientras compras tu compromiso

Después de comprar un compromiso con reservas adjuntas, las reservas permanecen activas mientras el compromiso esté activo. Cuando tu compromiso expira, Compute Engine elimina automáticamente cualquier reserva adjunta. La eliminación de estas reservas no tiene ningún efecto en las máquinas virtuales en ejecución que consumían esas reservas. Las máquinas virtuales en ejecución continúan ejecutándose y aún se le cobrará por ellas.

Recursos comprometidos que no requieren reservas adjuntas

Las vCPU y la memoria comprometidas no requieren que adjunte reservas coincidentes a sus compromisos. Sin embargo, cuando compra un compromiso que incluye vCPU, memoria o ambos, aún puede optar por adjuntar reservas que especifiquen esos recursos. Para saber cómo comprar compromisos únicamente para vCPU, memoria o ambos, sin adjuntar reservas, consulte Compra de compromisos sin reservas adjuntas .

Recursos comprometidos que requieren reservas adjuntas

Las GPU comprometidas y los discos SSD locales ( con la excepción de los discos SSD Titanium locales para instancias C4A ) requieren que adjunte reservas coincidentes a sus compromisos. Cuando compra un compromiso que incluye GPU, discos SSD locales o ambos, también debe reservar esos recursos y adjuntar esas reservas a su compromiso. Puede hacerlo utilizando una única reserva o una combinación de reservas. Cuando adquiere un compromiso de este tipo, también puede incluir vCPU, memoria o ambas. Sin embargo, no es necesario reservar esas vCPU o memoria.

Para saber cómo comprar compromisos para GPU, consulte uno de los siguientes:

Para saber cómo comprar compromisos para discos SSD locales, consulte Compromisos de compra con reservas adjuntas en este documento.

Para ver la lista completa de series de máquinas que admiten CUD para GPU y discos SSD locales, consulte la sección Tipos de compromiso de hardware en la documentación de CUD basada en recursos.

Cantidades de recursos permitidos en reservas adjuntas

Para vCPU y memoria , puede tener reservas adjuntas que especifiquen más o menos cantidades de recursos de los que se compromete. Si te comprometes a utilizar más vCPU o memoria de la que reservas, Compute Engine reserva capacidad solo para estos recursos reservados. Sin embargo, aún puede utilizar sus recursos comprometidos adicionales dependiendo de su disponibilidad en su región. Si reserva más vCPU o memoria de la que compromete, no recibirá CUD por esos recursos adicionales que reserve.

Por ejemplo, cuando compra un compromiso de 4 vCPU y 30 GB de memoria, puede optar por realizar cualquiera de las siguientes opciones:

  • No adjunte ninguna reserva en absoluto.
  • Adjunte reservas especificando cualquier combinación de estos tipos de recursos; por ejemplo, lo siguiente:

    • 4 vCPU y 30 GB de memoria
    • 2 vCPU y 50 GB de memoria
    • 10 vCPU y 10 GB de memoria

Sin embargo, si su compromiso contiene GPU, discos SSD locales o ambos , debe reservar y adjuntar todos esos recursos. Sus reservas adjuntas deben especificar los números y tipos exactos de GPU y discos SSD locales a los que se compromete. En consecuencia, tampoco puede tener ningún número o tipo adicional de GPU o discos SSD locales en sus reservas adjuntas.

Por ejemplo, supongamos que adquiere un compromiso de 30 GB de memoria y 4 GPU NVIDIA P100. La reserva adjunta (o combinación de reservas adjuntas) puede especificar cualquier cantidad de vCPU o memoria, pero debe tener exactamente 4 GPU que sean del tipo NVIDIA P100. En este ejemplo, no puede adjuntar reservas que especifiquen cualquiera de las siguientes combinaciones de recursos:

  • 6 GPU NVIDIA P100
  • 2 GPU NVIDIA P100
  • 4 GPU NVIDIA P100 y 2 GPU NVIDIA V100
  • 4 GPU NVIDIA P100 y 4 discos SSD locales

Compromisos de compra con reservas adjuntas

Cuando compras un nuevo compromiso, puedes adjuntar reservas a tu compromiso de cualquiera de las siguientes maneras:

Después de comprar un compromiso, su compromiso 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 de tu compromiso y el momento de su activación, el estado de tu compromiso permanece como NOT_YET_ACTIVE (o como PENDING en la consola de Google Cloud). Después de la activación, el estado de su compromiso cambia a ACTIVE . Por ejemplo, suponga que compra su compromiso el 20 de enero a las 10:00 p. m., hora del Pacífico de EE. UU. y Canadá (UTC-8 o UTC-7). Compute Engine crea tu compromiso inmediatamente con su estado NOT_YET_ACTIVE . Sin embargo, su 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 comprar un compromiso con reservas adjuntas, revise estos requisitos y asegúrese de que su compromiso y sus reservas cumplan con los siguientes criterios:

  • Debes adquirir el compromiso y crear las reservas adjuntas en el mismo proyecto y región.
  • Debe adquirir el compromiso y crear las reservas adjuntas para recursos de la misma serie de familia de máquinas.
  • Debes desactivar la opción de autoeliminación en las reservas adjuntas.
  • Si su compromiso tiene GPU, entonces el tipo de GPU especificado en la reserva y el compromiso deben coincidir.
  • Para GPU y discos SSD locales, la cantidad de recursos reservados de cada tipo de recurso debe coincidir exactamente con la cantidad de recursos comprometidos para ese tipo de recurso. Sin embargo, este requisito no se aplica cuando compra un compromiso para discos SSD Titanium locales C4A.

    Por ejemplo, si desea comprar un compromiso para 4 GPU V100 y 2 discos SSD locales, las reservas adjuntas de su compromiso deben especificar un total de 4 GPU V100 y 2 SSD locales. La cantidad de vCPU y memoria que reserva puede ser mayor o menor de lo que se compromete. Sin embargo, si compra un compromiso para 4 vCPU C4A y 2 discos SSD Titanium locales, no tiene que adjuntar ninguna reserva al compromiso.

  • Para GPU, compre compromisos para los tipos de GPU específicos que desea utilizar. Por ejemplo, puede adquirir compromisos para NVIDIA P100 o NVIDIA V100, pero no puede utilizar un compromiso adquirido para las GPU NVIDIA P100 para cubrir las GPU NVIDIA V100.

  • Si tu reserva adjunta es una reserva compartida y deseas recibir los CUD aplicables cuando consumas esa reserva fuera del proyecto de tu compromiso, entonces debes hacer lo siguiente:

    • Comparte tus reservas solo entre proyectos que pertenecen a la misma cuenta de facturación de Cloud que el compromiso.
    • Habilite el uso compartido de CUD para esa cuenta de facturación de Cloud.

Adjuntar reservas existentes

Puede adjuntar reservas existentes mientras compra su compromiso utilizando la consola de Google Cloud, la CLI de Google Cloud o REST.

Consola

Antes de comprar un compromiso usando la consola de Google Cloud, seleccione el proyecto que desea usar para comprar el compromiso. Si el uso compartido de CUD está habilitado para una cuenta de Facturación de Cloud, puedes comprar el compromiso usando cualquier proyecto de esa cuenta de Facturación de Cloud. Después de seleccionar el proyecto, haga lo siguiente:

  1. En la consola de Google Cloud, vaya a la página de descuentos por uso confirmado .

    Ir a descuentos por uso comprometido

  2. Para comprar un compromiso, haga clic en Compromiso de compra . Se abre la página Comprar un descuento por uso comprometido y muestra la pestaña Hardware .

  3. En el campo Nombre , ingrese un nombre para su compromiso.

  4. En el campo Región , selecciona la región donde deseas comprometer los recursos de Compute Engine.

  5. En el campo Tipo de compromiso , seleccione la serie de la familia de máquinas para sus recursos comprometidos. Los siguientes tipos de compromiso brindan opciones para GPU, discos SSD locales o ambos:

    • A2 optimizado para acelerador para recursos de tipo de máquina A2
    • A3 optimizado para el acelerador para recursos de tipo de máquina A3 Edge y A3 High
    • A3 Mega optimizado para acelerador para recursos de tipo máquina A3 Mega
    • C2 optimizado para computación para recursos de tipo máquina C2
    • C2D optimizado para computación para recursos de tipo máquina C2D
    • C3 de uso general para recursos de tipo máquina C3
    • C3D de uso general para recursos de tipo máquina C3D
    • N1 de uso general para recursos de tipo máquina N1
    • N2 de uso general para recursos tipo máquina de N2
    • N2D de uso general para recursos de máquinas N2D
    • G2 con gráficos optimizados para recursos de tipo máquina G2
    • Recursos de tipo de máquina M3 para M3 con memoria optimizada
    • Z3 optimizado para almacenamiento para recursos de tipo máquina Z3

  6. Para Duración , haga lo siguiente:

    1. Para especificar el plan de su compromiso, seleccione 1 año o 3 años . Esta configuración determina la duración del plazo preestablecido de su compromiso.
    2. Opcional. Para especificar una duración de plazo personalizada para su compromiso, haga clic en el botón Ampliar fecha de finalización y luego, en el campo Fecha , especifique una fecha de finalización personalizada. Para obtener más información, consulte Ampliar la duración del plazo de los compromisos .

  7. En el campo Núcleos , ingrese la cantidad de vCPU que desea comprometer.

  8. En el campo Memoria , ingrese la cantidad, en GB, de memoria que desea asignar.

  9. Para comprometerse con las GPU, en la sección GPU , haga clic en Agregar GPU y luego haga lo siguiente:

    1. En el campo Tipo de GPU , seleccione el tipo de GPU.
    2. En el campo Número de GPU , ingrese la cantidad de GPU.
    3. Opcional: si su modelo de GPU admite estaciones de trabajo virtuales NVIDIA RTX (vWS) para cargas de trabajo de gráficos y planea ejecutar cargas de trabajo con uso intensivo de gráficos, seleccione la casilla de verificación Habilitar estación de trabajo virtual (NVIDIA GRID) .
  10. Para comprometerse con discos SSD locales, en la sección SSD locales , haga clic en Agregar SSD y luego, en el campo Número de SSD , especifique la cantidad de discos.

  11. Para adjuntar una o más reservas existentes al compromiso, en el campo Reservas , seleccione Adjuntar reservas existentes .

    La consola de Google Cloud muestra una lista de todas las reservas de su proyecto cuya región, tipo de máquina y tipo de GPU coinciden con el compromiso. Luego, haz lo siguiente:

    1. Opcional. Para ver reservas con propiedades específicas, en el menú Filtro , agregue o elimine filtros para las propiedades que desee.
    2. Selecciona todas las reservas que quieras adjuntar al compromiso.
  12. Para finalizar la compra de tu compromiso con las reservas adjuntas, haz lo siguiente:

    1. Haga clic en Comprar .
    2. En el cuadro de diálogo Comprar un descuento por uso comprometido , si está de acuerdo con los términos específicos del servicio , haga clic en Comprar nuevamente.

nube de gcloud

Para comprar un compromiso adjuntando reservas existentes, ejecuta el comando gcloud compute commitments create . En su comando, incluya la marca --existing-reservation para especificar una reserva existente que desea adjuntar a su compromiso. Incluya una nueva instancia de esta bandera para cada reserva existente que desee adjuntar. Puede adjuntar cualquier número de reservas existentes a su compromiso.

Por ejemplo, para comprar un compromiso adjuntándole dos reservas, ejecute 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 \
    --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'

Reemplace lo siguiente:

  • COMMITMENT_NAME : el nombre del compromiso.
  • REGION : la región donde se encuentra el compromiso.
  • PROJECT_ID : el ID del proyecto donde deseas adquirir el compromiso con las reservas adjuntas.
  • DURATION : la duración del plazo del compromiso, ya sea 12-month o 36-month .
  • CUSTOM_END_DATE : Opcional. Una fecha de finalización personalizada para su período, que debe tener el formato YYYY-MM-DD . Por ejemplo, para especificar una fecha de finalización personalizada del 20 de abril de 2024, formatéela como 2024-04-20 .
  • COMMITMENT_TYPE : el tipo de compromiso. Los siguientes tipos de compromiso brindan opciones para GPU, discos SSD locales o ambos:

    • accelerator-optimized para recursos de tipo máquina A2.
    • accelerator-optimized-a3 para recursos de tipo de máquina A3 Edge y A3 High
    • accelerator-optimized-a3-mega para recursos de tipo máquina A3 Mega
    • compute-optimized para recursos de tipo máquina C2.
    • compute-optimized-c2d para recursos de tipo máquina C2D
    • compute-optimized-c3 para recursos de tipo de máquina C3
    • compute-optimized-c3d para recursos de tipo máquina C3D
    • general-purpose para recursos de tipo máquina N1
    • general-purpose-n2 para recursos de tipo máquina N2
    • general-purpose-n2d para recursos de máquinas N2D
    • graphics-optimized para recursos de tipo máquina G2.
    • memory-optimized-m3 para recursos de tipo de máquina M3
    • storage-optimized-z3 para recursos de tipo de máquina Z3

  • COMMITTED_VCPUS : la cantidad de vCPU que desea en su compromiso. El número debe ser un número entero positivo.

  • COMMITTED_MEMORY : la cantidad, en MB o GB, de memoria que deseas en tu compromiso. Por ejemplo, 10240MB o 10GB . Si no especificas una unidad, Compute Engine usa GB como unidad. Puede comprar memoria en incrementos de 0,25 GB.

  • COMMITTED_LOCAL_SSD : la cantidad, en GB, de espacio SSD local que deseas en tu compromiso. Cada disco SSD local tiene 375 GB.

  • COMMITTED_ACCELERATOR_COUNT : la cantidad de GPU que deseas en tu compromiso.

  • COMMITTED_ACCELERATOR_TYPE : el tipo de GPU que deseas en tu compromiso.

  • RESERVATION_NAME_1 y RESERVATION_NAME_2 : los nombres de las reservas existentes que desea adjuntar al compromiso.

  • RESERVATION_ZONE_1 y RESERVATION_ZONE_2 : Las zonas de las reservas existentes que desea adjuntar al compromiso.

Ejemplo: comprar un compromiso adjuntando reservas existentes

Supongamos que tiene dos reservas res-01 y res-02 en las zonas us-central1-a y us-central1-b del proyecto myproject . Supongamos que estas reservas tienen una capacidad combinada para 4 GPU NVIDIA P100 y 4 discos SSD locales. Para comprar un nuevo compromiso en la región us-central1 de este proyecto para estas GPU y discos SSD locales, y usar estas reservas existentes como reservas adjuntas, ejecute el siguiente comando. Tenga en cuenta que el compromiso de ejemplo también contiene vCPU y memoria.

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
    

DESCANSAR

Para comprar un compromiso adjuntando reservas existentes, realice una solicitud POST al método regionCommitments.insert . En su solicitud, incluya el campo existingReservations para especificar una lista separada por comas de todas las reservas existentes que desea adjuntar a su compromiso. Puede adjuntar cualquier número de reservas existentes a su 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"
    }
  ],
  "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
  "existingReservations": "RESERVATION_URLs"
}

Reemplace lo siguiente:

  • COMMITMENT_NAME : el nombre del compromiso.
  • REGION : la región donde se encuentra el compromiso.
  • PROJECT_ID : el ID del proyecto donde deseas adquirir el compromiso con las reservas adjuntas.
  • DURATION : la duración del plazo del compromiso, ya sea TWELVE_MONTH o THIRTY_SIX_MONTH .
  • COMMITMENT_TYPE : el tipo de compromiso. Los siguientes tipos de compromiso brindan opciones para GPU, discos SSD locales o ambos:

    • ACCELERATOR_OPTIMIZED para recursos de tipo máquina A2
    • ACCELERATOR_OPTIMIZED_A3 para recursos de tipo de máquina A3 Edge y A3 High
    • ACCELERATOR_OPTIMIZED_A3_MEGA para recursos de tipo máquina A3 Mega
    • COMPUTE_OPTIMIZED para recursos de tipo máquina C2
    • COMPUTE_OPTIMIZED_C2D para recursos de tipo de máquina C2D
    • COMPUTE_OPTIMIZED_C3 para recursos de tipo máquina C3
    • COMPUTE_OPTIMIZED_C3D para recursos de tipo de máquina C3D
    • GENERAL_PURPOSE para recursos de tipo de máquina N1
    • GENERAL_PURPOSE_N2 para recursos de tipo de máquina N2
    • GENERAL_PURPOSE_N2D para recursos de máquina N2D
    • GRAPHICS_OPTIMIZED para recursos de tipo de máquina G2
    • MEMORY_OPTIMIZED_M3 para recursos de tipo de máquina M3
    • STORAGE_OPTIMIZED_Z3 para recursos de tipo máquina Z3

  • COMMITTED_VCPUS : la cantidad de vCPU que desea en su compromiso. El número debe ser un número entero positivo.

  • COMMITTED_MEMORY : la cantidad, en MB, de memoria que deseas en tu compromiso. Por ejemplo, 10240MB . Puede comprar memoria en incrementos de 256 MB.

  • COMMITTED_LOCAL_SSD : la cantidad, en GB, de almacenamiento SSD local que deseas en tu compromiso. Cada disco SSD local tiene una capacidad de 375 GB.

  • COMMITTED_ACCELERATOR_COUNT : la cantidad de GPU que deseas en tu compromiso.

  • COMMITTED_ACCELERATOR_TYPE : el tipo de GPU que deseas en tu compromiso.

  • CUSTOM_END_DATE : Opcional. Una fecha de finalización personalizada para su período, que debe tener el formato YYYY-MM-DD . Por ejemplo, para especificar una fecha de finalización personalizada del 20 de abril de 2024, formatéela como 2024-04-20 .

  • END_TIME : 12 a. m., hora del Pacífico de EE. UU. y Canadá (UTC-8 o UTC-7), como diferencia con la hora universal coordinada (UTC) . Especifique este valor solo si especificó una fecha de finalización personalizada para su compromiso. Especifique uno de los siguientes valores:

    • Durante el horario de verano: 07:00:00
    • En otros horarios: 08:00:00
  • RESERVATION_URLs : una lista separada por comas de las URL de las reservas existentes que desea adjuntar al compromiso. Por ejemplo, para adjuntar dos reservas, res-1 y res-2 , especifique 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: comprar un compromiso adjuntando reservas existentes

Supongamos que tiene dos reservas res-01 y res-02 en las zonas us-central1-a y us-central1-b del proyecto myproject . Supongamos que estas reservas tienen una capacidad combinada para 4 GPU NVIDIA P100 y 4 discos SSD locales. Para comprar un nuevo compromiso en la región us-central1 de este proyecto para estas GPU y discos SSD locales y utilizar estas reservas existentes como reservas adjuntas, realice la siguiente solicitud POST . Tenga en cuenta que el compromiso de ejemplo también contiene vCPU 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-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"
  ]
}

Crear nuevas reservas para adjuntar

Puede crear sus reservas adjuntas mientras compra su compromiso utilizando la consola de Google Cloud, la CLI de Google Cloud o REST.

Consola

Antes de comprar un compromiso usando la consola de Google Cloud, seleccione el proyecto que desea usar para comprar el compromiso. Si el uso compartido de CUD está habilitado para una cuenta de Facturación de Cloud, puedes comprar el compromiso usando cualquier proyecto de esa cuenta de Facturación de Cloud. Después de seleccionar el proyecto, haga lo siguiente:

  1. En la consola de Google Cloud, vaya a la página de descuentos por uso confirmado .

    Ir a descuentos por uso comprometido

  2. Para comprar un compromiso, haga clic en Compromiso de compra . Se abre la página Comprar un descuento por uso comprometido y muestra la pestaña Hardware .

  3. En el campo Nombre , ingrese un nombre para su compromiso.

  4. En el campo Región , selecciona la región donde deseas comprometer los recursos de Compute Engine.

  5. En el campo Tipo de compromiso , seleccione la serie de la familia de máquinas para sus recursos comprometidos. Los siguientes tipos de compromiso brindan opciones para GPU, discos SSD locales o ambos:

    • A2 optimizado para acelerador para recursos de tipo de máquina A2
    • A3 optimizado para el acelerador para recursos de tipo de máquina A3 Edge y A3 High
    • A3 Mega optimizado para acelerador para recursos de tipo máquina A3 Mega
    • C2 optimizado para computación para recursos de tipo máquina C2
    • C2D optimizado para computación para recursos de tipo máquina C2D
    • C3 de uso general para recursos de tipo máquina C3
    • C3D de uso general para recursos de tipo máquina C3D
    • N1 de uso general para recursos de tipo máquina N1
    • N2 de uso general para recursos tipo máquina de N2
    • N2D de uso general para recursos de máquinas N2D
    • G2 con gráficos optimizados para recursos de tipo máquina G2
    • Recursos de tipo de máquina M3 para M3 con memoria optimizada
    • Z3 optimizado para almacenamiento para recursos de tipo máquina Z3

  6. Para Duración , elija 1 año o 3 años como duración del plazo de su compromiso.

  7. En el campo Núcleos , ingrese la cantidad de vCPU que desea comprometer.

  8. En el campo Memoria , ingrese la cantidad, en GB, de memoria que desea asignar.

  9. Para comprometerse con las GPU, en la sección GPU , haga clic en Agregar GPU y luego haga lo siguiente:

    1. En el campo Tipo de GPU , seleccione el tipo de GPU.
    2. En el campo Número de GPU , ingrese la cantidad de GPU.
    3. Opcional: si su modelo de GPU admite estaciones de trabajo virtuales NVIDIA RTX (vWS) para cargas de trabajo de gráficos y planea ejecutar cargas de trabajo con uso intensivo de gráficos, seleccione la casilla de verificación Habilitar estación de trabajo virtual (NVIDIA GRID) .
  10. Para comprometerse con discos SSD locales, en la sección SSD locales , haga clic en Agregar SSD y luego, en el campo Número de SSD , especifique la cantidad de discos.

  11. Para crear una nueva reserva y adjuntarla al compromiso, en el campo Reservas , seleccione Crear reservas y luego haga lo siguiente. Repita este paso para cada nueva reserva que desee crear y adjuntar.

    1. Haz clic en Agregar una reserva . Aparece la sección Nueva reserva .
    2. En el campo Nombre , ingrese un nombre para su reserva adjunta.
    3. En el campo Región , seleccione la misma región que su compromiso.
    4. En el campo Zona , seleccione la zona donde desea reservar sus recursos.
    5. En la sección Tipo de compartir , especifique cómo desea compartir esta reserva de una de las siguientes maneras:

      • Para crear una reserva de un solo proyecto, seleccione Local .
      • Para crear una reserva compartida con varios proyectos, seleccione Compartido . Luego, para especificar los proyectos con los que compartir esta reserva, haga clic en Agregar proyectos y luego seleccione los proyectos que desee de la organización del proyecto actual.
    6. En el campo Usar con instancia de VM , seleccione cómo desea que las VM consuman su reserva de una de las siguientes maneras:

      • Para permitir que las máquinas virtuales con propiedades coincidentes consuman automáticamente esta reserva, haga clic en Usar reserva automáticamente (predeterminado).
      • Para consumir los recursos de esta reserva solo al crear máquinas virtuales con propiedades coincidentes que se dirijan específicamente a esta reserva por nombre, haga clic en Seleccionar Seleccionar reserva específica .
    7. En la sección Detalles del recurso , haga lo siguiente:

      1. En el campo Número de instancias de VM , ingrese la cantidad de instancias de VM que desea reservar.
      2. En la sección Configuración de la máquina , especifique las propiedades de sus máquinas virtuales reservadas de una de las siguientes maneras:

        1. Para especificar las propiedades de sus máquinas virtuales usando una plantilla de instancia existente, seleccione Usar plantilla de instancia .

          En el campo Plantilla de instancia , seleccione una plantilla de instancia que especifique la misma serie de familia de máquinas que su compromiso. Si selecciona una plantilla de instancia regional, la región de esa plantilla de instancia también debe coincidir con la región especificada en su compromiso.

        2. Para especificar manualmente las propiedades de sus máquinas virtuales, seleccione Seleccionar tipo de máquina y luego haga lo siguiente:

          1. Seleccione la familia de máquinas que se aplica a la serie de máquinas que especificó para el compromiso:

            • Propósito general para series de máquinas de uso general.
            • Computación optimizada para series de máquinas optimizadas para computación
            • Memoria optimizada para series de máquinas con memoria optimizada
            • GPU para series de máquinas optimizadas para aceleradores
          2. En la tabla que tiene la columna Serie , seleccione la misma serie de máquinas que especificó para el compromiso.

          3. En el campo Tipo de máquina , especifique un tipo de máquina predefinido o personalizado de una de las siguientes maneras:

            1. Para elegir un tipo de máquina predefinido, seleccione Preestablecido y luego seleccione el tipo de máquina que desee.
            2. Para elegir un tipo de máquina personalizado, seleccione Personalizado y luego especifique los núcleos y la memoria que desee.
          4. Para especificar una plataforma de CPU mínima, GPU o ambas, expanda el menú Plataforma de CPU y GPU y haga lo siguiente:

            1. Opcional: Para especificar una plataforma de CPU mínima, en la lista Plataforma de CPU , seleccione una opción.
            2. Opcional: para reservar GPU, haga clic en Agregar GPU . Luego, en los campos Tipo de GPU y Número de GPU , seleccione el tipo y la cantidad de GPU para cada VM.

          5. Para reservar discos SSD locales, haga lo siguiente:

            1. En el campo Número de discos , seleccione la cantidad de discos SSD locales que desea para cada máquina virtual.
            2. En el campo Tipo de interfaz , seleccione la interfaz para los discos SSD locales.
    8. Para terminar de especificar las propiedades para esta reserva, haga clic en Listo .

  12. Para finalizar la compra de tu compromiso con las reservas adjuntas, haz lo siguiente:

    1. Haga clic en Comprar .
    2. En el cuadro de diálogo Comprar un descuento por uso comprometido , si está de acuerdo con los términos específicos del servicio , haga clic en Comprar nuevamente.

nube de gcloud

Para crear tus reservas adjuntas mientras compras tu compromiso, ejecuta el comando gcloud compute commitments create .

Dependiendo de si desea adjuntar una única reserva o varias reservas, ejecute el comando de una de las siguientes maneras:

  • Para crear y adjuntar una única reserva a su compromiso, defina las propiedades de la reserva adjunta ejecutando el 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 \
        --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
    
  • Para crear y adjuntar varias reservas a su compromiso, defina las propiedades de la reserva usando un archivo YAML y luego especifique ese archivo YAML en el comando que usa para comprar su compromiso. Opcionalmente, también puede usar este enfoque de archivo YAML para crear y adjuntar una sola reserva a su compromiso. Para crear sus reservas adjuntas utilizando este enfoque, haga lo siguiente:

    1. Cree el archivo YAML en el directorio actual y especifique la configuración que desea para cada reserva adjunta. Por ejemplo, para especificar la configuración de una reserva compartida compartida con dos proyectos que especifica GPU, dos discos SSD locales y una plataforma mínima de CPU, incluya el siguiente texto en su 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 múltiples reservas, repita estas propiedades para cada reserva que desea crear. Puede adjuntar cualquier cantidad de reservas existentes que desee con su compromiso.

    2. Ejecute el comando gcloud compute commitments create e incluya el indicador --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
      

Reemplace lo siguiente con las propiedades correspondientes del compromiso y las reservas adjuntas:

Compromiso

  • COMMITMENT_NAME : el nombre del compromiso.
  • REGION : La región donde se encuentra el compromiso.
  • PROJECT_ID : la identificación del proyecto donde desea comprar el compromiso con las reservas adjuntas.
  • DURATION : el término duración del compromiso, ya sea 12-month o 36-month .
  • CUSTOM_END_DATE : opcional. Una fecha de finalización personalizada para su término, que debe formatearse como YYYY-MM-DD . Por ejemplo, para especificar una fecha de finalización personalizada del 20 de abril de 2024, formatearlo como 2024-04-20 .
  • COMMITMENT_TYPE : el tipo de compromiso. Los siguientes tipos de compromiso proporcionan opciones para GPU, discos SSD locales o ambos:

    • accelerator-optimized para recursos de tipo de máquina A2
    • accelerator-optimized-a3 para recursos de tipo de máquina A3 Edge y A3 High Machine
    • accelerator-optimized-a3-mega para recursos de tipo de máquina A3 Mega
    • compute-optimized para recursos de tipo de máquina C2
    • compute-optimized-c2d para recursos de tipo de máquina C2D
    • compute-optimized-c3 para recursos de tipo de máquina C3
    • compute-optimized-c3d para recursos de tipo de máquina C3D
    • general-purpose para recursos de tipo de máquina N1
    • Resumen de tipo de general-purpose-n2 para la máquina N2
    • general-purpose-n2d para recursos de máquina N2D
    • graphics-optimized para recursos de tipo de máquina G2
    • memory-optimized-m3 para recursos de tipo de máquina M3
    • storage-optimized-z3 para recursos de tipo de máquina Z3

  • COMMITTED_VCPUS : el número de VCPU que desea en su compromiso. El número debe ser un entero positivo.

  • COMMITTED_MEMORY : la cantidad, en MB o GB, de la memoria que desea en su compromiso. Por ejemplo, 10GB o 10240MB . Si no especifica una unidad, Compute Engine usa GB como unidad. Puede comprar memoria en incrementos de 0.25 GB.

  • COMMITTED_LOCAL_SSD : la cantidad, en GB, del almacenamiento de SSD local que desea en su compromiso. Cada disco SSD local es de 375 GB.

  • COMMITTED_ACCELERATOR_COUNT : el número de GPU que desea en su compromiso.

  • COMMITTED_ACCELERATOR_TYPE : el tipo de GPU que desea en su compromiso.

  • YAML_FILE : la ruta al archivo YAML que contiene la configuración de las reservas adjuntas.

Reservas adjuntas

  • RESERVATION_NAME : el nombre de la reserva adjunta.
  • RESERVATION_ZONE : la zona de la reserva adjunta.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE : especifica si la reserva adjunta es una reserva específicamente dirigida; ya sea true o false . Para obtener más información sobre reservas específicamente específicas, consulte cómo funcionan las reservas .
  • NUMBER_OF_RESERVED_VMS : el número de máquinas virtuales que desea reservar en la reserva adjunta.
  • RESERVED_MACHINE_TYPE : el tipo de máquina que desea para las máquinas virtuales en su reserva adjunta.

    • Para los tipos de máquinas predefinidas , use el formato MACHINE_FAMILY -standard- CPUS ; Por ejemplo, n2-standard-4 .
    • Para los tipos de máquinas personalizadas , use el formato MACHINE_FAMILY -custom- CPUS - MEMORY ; Por ejemplo n2-custom-4-5120 . Para obtener una lista completa de restricciones, lea las especificaciones para tipos de máquinas personalizadas.

      Reemplace lo siguiente:

      • MACHINE_FAMILY : la familia de tipos de máquinas; Por ejemplo, especifique n2 para VMS N2.
      • CPUS : el número de VCPU .
      • MEMORY : la memoria total para una VM reservada. La memoria debe ser un múltiplo de 256 MB y debe suministrarse en MB; Por ejemplo, para crear una VM N2 con 4 VCPU y 5 GB de memoria, que es 5120 MB, use n2-custom-4-5120 .
  • RESERVED_ACCELERATOR_COUNT : el número de GPU que desea agregar, por vm, en la reserva adjunta.

  • RESERVED_ACCELERATOR_TYPE : el tipo de acelerador que desea agregar en la reserva adjunta.

  • INTERFACE_1 e INTERFACE_2 : el tipo de interfaz que desea que use los discos SSD locales para cada VM reservada. Las opciones válidas son: scsi y nvme . Cada disco SSD local es de 375 GB. Repita el parámetro local_ssd para cada disco SSD local que desea agregar. Puede especificar hasta 24 discos SSD locales.

  • OWNER_PROJECT_ID : la identificación del proyecto donde desea comprar el compromiso con la reserva adjunta. Especifique este campo si desea compartir su reserva adjunta en múltiples proyectos de consumo.

  • MINIMUM_CPU_PLATFORM : la plataforma de CPU mínima que desea especificar para la reserva adjunta.

  • SHARE_SETTING : el tipo de intercambio para la reserva adjunta. Especifique este campo con el valor como projects si desea compartir su reserva adjunta en múltiples proyectos de consumo. Excluya este campo si desea crear una reserva de un solo proyecto.

  • CONSUMER_PROJECT_ID_1 y CONSUMER_PROJECT_ID_2 : los ID de proyecto de los proyectos que pueden compartir esta reserva, por ejemplo, project-1 y project-2 . Puede incluir hasta 100 proyectos de consumo. Estos proyectos deben estar en la misma organización que el Proyecto del Propietario. No incluya la ID del proyecto donde crea esta reserva, ya que ese proyecto puede consumir esta reserva de forma predeterminada. Excluya estos campos si desea crear una reserva de un solo proyecto.

El motor de cálculo crea el compromiso y las reservas adjuntas solo si hay suficientes recursos del tipo de máquina especificada en la zona de destino, y una cuota suficiente, en el momento de su solicitud. Si su compra fue exitosa, verá un mensaje de éxito similar al siguiente:

Created[https://www.googleapis.com/compute/v1/projects/your-project/regions/your-region/commitments/your-commitment-name]

Ejemplos para comprar compromisos creando nuevas reservas para adjuntar

Los siguientes escenarios y comandos de ejemplo muestran cómo puede comprar un compromiso para GPU, discos SSD locales o ambos creando nuevas reservas para adjuntar ese compromiso.

Ejemplo 1: Compre un compromiso para las GPU adjuntando una sola reserva nueva

Supongamos que desea comprar un commitment-01 en la región us-central1 Que incluye 4 GPU NVIDIA V100. Desea crear una nueva reservation-01 como la reserva adjunta para esas GPU. Supongamos que también desea especificar Compute Engine para usar esas GPU reservadas en 2 máquinas virtuales n1-standard-32 en la zona us-central1-a . Para comprar este compromiso de ejemplo con su reserva adjunta, ejecute 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: Compre un compromiso para las GPU sin comprometerse con VCPU o memoria

Para comprometerse y reservar GPU y discos SSD locales sin comprometerse con VCPU o memoria, especifique 0 como el valor para las cantidades de VCPU y memoria. Por ejemplo, suponga que desea comprar un commitment-02 para una sola GPU NVIDIA P4 en la región us-west2 . También desea crear una nueva reserva como reserva adjunta y especificar el motor de cálculo 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 adjunta, ejecute 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: Compre un compromiso para las GPU y los discos SSD locales adjuntando múltiples nuevas reservas

Supongamos que desea comprar un commitment-03 para 1 GPU NVIDIA V100 y 2 discos SSD locales en la región us-central1 . También desea crear y adjuntar dos reservas en la zona us-central1-a . En la primera reserva, res-01 , desea reservar 1 VM n1-standard-2 con 1 GPU. Desea hacer de res-01 una reserva específica, lo que significa que debe dirigirse específicamente a esa reserva por nombre para usar sus máquinas virtuales reservadas. En la segunda reserva, res-02 , desea reservar 1 n1-standard-8 VM con 2 tipos de discos SSD locales adjuntos.

Para comprar este compromiso de ejemplo con las reservas adjuntas, primero cree 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 comprar el compromiso con sus reservas adjuntas, ejecute el siguiente comando. Tenga en cuenta que el compromiso de ejemplo también contiene recursos de VCPU 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

DESCANSAR

Para crear sus reservas adjuntas mientras compra su compromiso, realice una solicitud POST a regionCommitments.insert Método Insert . En su solicitud, incluya el campo reservations para definir una lista de todas las nuevas reservas que desea crear y adjuntar. Puede adjuntar cualquier cantidad de reservas existentes que desee con su compromiso.

  • Para crear su nueva reserva especificando manualmente todas las propiedades de VM, incluya el campo instanceProperties y excluya el campo sourceInstanceTemplate .

    Por ejemplo, para especificar manualmente la configuración de una reserva compartida compartida con dos proyectos que especifica GPU, dos discos SSD locales y una plataforma mínima de CPU, realice 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"
      }
    ],
    "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"
            }
          }
        }
      }
    ]
    }
    
    
  • Para crear su nueva reserva especificando una plantilla de instancia, incluya el campo sourceInstanceTemplate y excluya el campo instanceProperties .

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "DURATION",
    "type": COMMITMENT_TYPE,
    "resources":
    [
      {
        "amount": "COMMITTED_VCPUS",
        "type": "VCPU"
      },
      {
        "amount": "COMMITTED_MEMORY",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
        "amount": "COMMITTED_ACCELERATOR_COUNT",
        "type": "ACCELERATOR"
      }
      {
        "amount": "COMMITTED_LOCAL_SSD",
        "type": "LOCAL_SSD"
      }
    ],
    "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME"
        },
        "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVED_ZONE",
        "shareSettings":
        {
          "shareType": "SPECIFIC_PROJECTS",
          "projectMap":
          {
            "CONSUMER_PROJECT_ID_1":
            {
              "projectId": "CONSUMER_PROJECT_ID_1"
            },
            "CONSUMER_PROJECT_ID_2":
            {
              "projectId": "CONSUMER_PROJECT_ID_2"
            }
          }
        }
      }
    ]
    }
    
    

Reemplace lo siguiente con las propiedades correspondientes del compromiso y las reservas adjuntas:

Compromiso

  • COMMITMENT_NAME : el nombre del compromiso.
  • REGION : La región donde se encuentra el compromiso.
  • PROJECT_ID : la identificación del proyecto donde desea comprar el compromiso con las reservas adjuntas.
  • DURATION : el término duración del compromiso, ya sea TWELVE_MONTH o THIRTY_SIX_MONTH .
  • COMMITMENT_TYPE : el tipo de compromiso. Los siguientes tipos de compromiso proporcionan opciones para GPU, discos SSD locales o ambos:

    • ACCELERATOR_OPTIMIZED para recursos de tipo de máquina A2
    • ACCELERATOR_OPTIMIZED_A3 para recursos de tipo de máquina A3 Edge y A3 High Machine
    • ACCELERATOR_OPTIMIZED_A3_MEGA para recursos de tipo de máquina A3 mega
    • COMPUTE_OPTIMIZED para recursos de tipo de máquina C2
    • COMPUTE_OPTIMIZED_C2D para recursos de tipo de máquina C2D
    • COMPUTE_OPTIMIZED_C3 para recursos de tipo de máquina C3
    • COMPUTE_OPTIMIZED_C3D para recursos de tipo de máquina C3D
    • GENERAL_PURPOSE para recursos de tipo de máquina N1
    • GENERAL_PURPOSE_N2 para recursos de tipo de máquina N2
    • GENERAL_PURPOSE_N2D para recursos de la máquina N2D
    • GRAPHICS_OPTIMIZED para recursos de tipo de máquina G2
    • MEMORY_OPTIMIZED_M3 para recursos de tipo de máquina M3
    • STORAGE_OPTIMIZED_Z3 para recursos de tipo de máquina Z3

  • COMMITTED_VCPUS : el número de VCPU que desea en su compromiso. El número debe ser un entero positivo.

  • COMMITTED_MEMORY : la cantidad, en MB, de la memoria que desea en su compromiso. Por ejemplo, 10240MB . Puede comprar memoria en incrementos de 256 MB.

  • COMMITTED_LOCAL_SSD : la cantidad, en GB, del almacenamiento de SSD local que desea en su compromiso. Cada disco SSD local es de 375 GB.

  • COMMITTED_ACCELERATOR_COUNT : el número de GPU que desea en su compromiso.

  • COMMITTED_ACCELERATOR_TYPE : el tipo de GPU que desea en su compromiso.

  • CUSTOM_END_DATE : opcional. Una fecha de finalización personalizada para su término, que debe formatearse como YYYY-MM-DD . Por ejemplo, para especificar una fecha de finalización personalizada del 20 de abril de 2024, formatearlo como 2024-04-20 .

  • END_TIME : 12 AM US y Canadian Pacific Time (UTC-8 o UTC-7), como un desplazamiento de tiempo universal coordinado (UTC) . Especifique este valor solo si especificó una fecha de finalización personalizada para su compromiso. Especifique uno de los siguientes valores:

    • Durante el horario de verano: 07:00:00
    • Durante otros tiempos: 08:00:00

Reservas adjuntas

  • RESERVATION_NAME : el nombre de la reserva adjunta.
  • RESERVATION_ZONE : la zona de la reserva adjunta.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE : especifica si la reserva adjunta es una reserva específicamente dirigida; ya sea true o false . Para obtener más información sobre reservas específicamente específicas, consulte cómo funcionan las reservas .
  • NUMBER_OF_RESERVED_VMS : el número de máquinas virtuales que desea reservar en la reserva adjunta.
  • RESERVED_MACHINE_TYPE : el tipo de máquina que desea para las máquinas virtuales en su reserva adjunta.

    • Para los tipos de máquinas predefinidas , use el formato MACHINE_FAMILY -standard- CPUS ; Por ejemplo, n2-standard-4 .
    • Para los tipos de máquinas personalizadas , use el formato MACHINE_FAMILY -custom- CPUS - MEMORY ; Por ejemplo n2-custom-4-5120 . Para obtener una lista completa de restricciones, lea las especificaciones para tipos de máquinas personalizadas.

      Reemplace lo siguiente:

      • MACHINE_FAMILY : la familia de tipos de máquinas; Por ejemplo, especifique n2 para VMS N2.
      • CPUS : el número de VCPU .
      • MEMORY : la memoria total para una VM reservada. La memoria debe ser un múltiplo de 256 MB y debe suministrarse en MB; Por ejemplo, para crear una VM N2 con 4 VCPU y 5 GB de memoria, que es 5120 MB, use n2-custom-4-5120 .
  • RESERVED_ACCELERATOR_COUNT : el número de GPU que desea agregar, por vm, en la reserva adjunta.

  • RESERVED_ACCELERATOR_TYPE : el tipo de acelerador que desea agregar en la reserva adjunta.

  • INTERFACE_1 e INTERFACE_2 : el tipo de interfaz que desea que use los discos SSD locales para cada VM reservada. Las opciones válidas son: scsi y nvme . Cada disco SSD local es de 375 GB. Repita el parámetro localSsds para cada disco SSD local que desea agregar. Puede especificar hasta 24 discos SSD locales.

  • MINIMUM_CPU_PLATFORM : la plataforma de CPU mínima que desea especificar para la reserva adjunta.

  • INSTANCE_TEMPLATE_NAME : el nombre de la plantilla de instancia que desea usar para crear su reserva adjunta.

  • SHARE_SETTING : el tipo de intercambio para la reserva adjunta. Especifique este campo con el valor como SPECIFIC_PROJECTS si desea compartir su reserva adjunta en múltiples proyectos de consumo. Excluya este campo si desea crear una reserva de un solo proyecto.

  • CONSUMER_PROJECT_ID_1 y CONSUMER_PROJECT_ID_2 : los ID de proyecto de los proyectos que pueden compartir esta reserva; Por ejemplo, project-1 y project-2 . Puede incluir hasta 100 proyectos de consumo. Estos proyectos deben estar en la misma organización que el Proyecto del Propietario. No incluya la ID del proyecto donde crea esta reserva, ya que ese proyecto puede consumir esta reserva de forma predeterminada. Excluya estos campos si desea crear una reserva de un solo proyecto.

El motor de cálculo crea el compromiso y las reservas adjuntas solo si hay suficientes recursos del tipo de máquina especificada en la zona de destino, y una cuota suficiente, en el momento de su solicitud. Si su compra fue exitosa, Compute Engine devuelve un estado 200 para su solicitud de API REST.

Ejemplos para comprar compromisos creando nuevas reservas para adjuntar

Los siguientes escenarios y comandos de ejemplo muestran cómo puede comprar un compromiso para GPU, discos SSD locales o ambos creando nuevas reservas para adjuntar ese compromiso.

Ejemplo 1: Compre un compromiso para las GPU adjuntando una sola reserva nueva

Supongamos que desea comprar un commitment-01 en la región us-central1 Que incluye 4 GPU NVIDIA V100. Desea crear una nueva reservation-01 como la reserva adjunta para esas GPU. Supongamos que también desea especificar Compute Engine para usar esas GPU reservadas en 2 n1-standard-8 VM en la zona us-central1-a . Para comprar este ejemplo de compromiso con su reserva adjunta, haga 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: Compre un compromiso para las GPU sin comprometerse con VCPU o memoria

Para comprometerse y reservar GPU y discos SSD locales sin comprometerse con VCPU o memoria, especifique 0 como el valor para las cantidades de VCPU y memoria. Por ejemplo, suponga que desea comprar un commitment-02 para una sola GPU NVIDIA P4 en la región us-west2 . También desea crear una nueva reserva como reserva adjunta y especificar el motor de cálculo para usar la GPU reservada en una VM n1-standard-2 en la zona us-west2-b . Para comprar este ejemplo de compromiso con su reserva adjunta, haga 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: Compre un compromiso para las GPU y los discos SSD locales adjuntando múltiples nuevas reservas

Supongamos que desea comprar un commitment-03 para 1 GPU NVIDIA V100 y 2 discos SSD locales en la región us-central1 . También desea crear y adjuntar dos reservas en la zona us-central1-a . En la primera reserva, res-01 , desea reservar 1 VM n1-standard-2 con 1 GPU. Desea hacer de res-01 una reserva específica, lo que significa que debe dirigirse específicamente a esa reserva por nombre para usar sus máquinas virtuales reservadas. En la segunda reserva, res-02 , desea reservar 1 n1-standard-8 VM con 2 tipos de discos SSD locales adjuntos. Para comprar este ejemplo de compromiso con las reservas adjuntas, haga la siguiente solicitud POST . Tenga en cuenta que el compromiso de ejemplo también contiene recursos de VCPU 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"
    }
  ]
}

Reemplace las reservas adjuntas a los compromisos

Reemplace la reserva adjunta existente de su compromiso con una nueva reserva si desea modificar los tipos y números de máquinas virtuales que utilizan sus recursos comprometidos.

La reserva de reemplazo siempre será una reserva recientemente creada. Para reemplazar una reserva adjunta, debe especificar las propiedades de la reserva que desea usar como reemplazo. Compute Engine luego crea automáticamente una nueva reserva con estas propiedades y la usa para reemplazar su reserva adjunta. No puede usar una reserva existente para reemplazar su reserva adjunta.

Cambios permitidos

Cuando reemplaza la reserva adjunta existente de un compromiso con una nueva reserva, puede solicitar cualquiera de los siguientes cambios:

  • Puede reservar máquinas virtuales de un tipo de máquina diferente. Sin embargo, aún debe reservar máquinas virtuales de la misma serie de máquinas para continuar recibiendo CUD para sus recursos reservados.
  • Puede cambiar la cantidad de máquinas virtuales que desea reservar.
  • Puede cambiar la cantidad de GPU y discos SSD locales que se adjunta por VM siempre que la cantidad total de GPU reservadas y discos SSD locales sigan siendo la misma.
  • Puede especificar que sus reservas reemplazadas sean un solo proyecto (también llamado local en la consola de Google Cloud) o reservas compartidas.

Requisitos

Cuando reemplace la reserva adjunta de su compromiso con una nueva, su solicitud debe cumplir con todos los siguientes requisitos:

  • Puede reemplazar solo una reserva adjunta a la vez con exactamente una nueva reserva adjunta. Para reemplazar una reserva adjunta, elimine simultáneamente una reserva adjunta existente estableciendo su conteo VM en 0 y defina una nueva reserva adjunta que desea reemplazarla.
  • La nueva reserva debe existir en el mismo proyecto que el compromiso.
  • La nueva reserva debe ubicarse en la misma zona que la reserva eliminada.
  • La cantidad y los tipos de GPU especificados en la nueva reserva deben coincidir con la reserva eliminada.
  • Los números y tipos de discos SSD locales especificados en la nueva reserva deben coincidir con la reserva eliminada.
  • Solo puede cambiar hasta 100 VM por solicitud. Para hacer un cambio que implique más de 100 VMS, divida el cambio en múltiples solicitudes más pequeñas o llegue a Google Cloud Apoyo.

Su solicitud de 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 devuelve un error de disponibilidad de recursos, que puede intentar resolver modificando o posponiendo la solicitud.Para obtener más información, consulte la documentación para la resolución de problemas de disponibilidad de recursos .

Si su solicitud de reemplazar una reserva adjunta falla, entonces la reserva adjunta y sus recursos reservados existentes no se ven afectados. Para preservar su capacidad, espere para realizar cualquier cambio correspondiente a sus máquinas virtuales hasta que su solicitud de reemplazar una reserva sea exitosa.

Pasos para reemplazar una reserva adjunta

Puede reemplazar las reservas de un compromiso utilizando la CLI o REST de Google Cloud.

nube de gcloud

Para reemplazar las reservas adjuntas a los compromisos, haga lo siguiente:

  1. Cree un archivo YAML en el directorio actual con las configuraciones de las siguientes reservas adjuntas:

    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
      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
    
    

    Reemplace lo siguiente con las propiedades correspondientes de las reservas actuales y de reemplazo:

    Reserva actual

    Para la reserva actual, todas las siguientes propiedades deben ser exactamente las mismas que cuando vio la reserva. Omita los campos para cualquier propiedad que la reserva actual no tenga.

    • CURRENT_RESERVATION_NAME : el nombre de la reserva adjunta actual.
    • CURRENT_RESERVATION_ZONE : la zona de la reserva adjunta actual.
    • CURRENT_RESERVATION_MACHINE_TYPE : el tipo de máquina de la reserva correcta adjunta.
    • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS : el número de GPU reservadas en la reserva adjunta actual.
    • CURRENT_RESERVATION_ACCELERATOR_TYPE : el tipo de acelerador reservado en la reserva adjunta actual.
    • CURRENT_RESERVATION_INTERFACE_1 y CURRENT_RESERVATION_INTERFACE_2 : el tipo de interfaz que usa el disco SSD local para cada VM reservado en la reserva adjunta actual. Las opciones válidas son: scsi y nvme . Cada disco SSD local es de 375 GB. Repita el parámetro local_ssd para todos los discos SSD locales reservados.
    • CURRENT_RESERVATION_PROJECT_ID : la ID del proyecto del proyecto actual que tiene el compromiso y la reserva adjunta. Especifique este campo si su reserva adjunta actual se comparte en múltiples proyectos de consumidores.
    • CURRENT_RESERVATION_SHARE_SETTING : el tipo de intercambio para la reserva actual. Especifique este campo con el valor como projects si su reserva adjunta actual se comparte en múltiples proyectos de consumo.
    • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 y CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2 : los ID de proyecto de los proyectos con los que comparte la reserva correcta adjunta con project-1 y project-2 .

    Reserva de reemplazo

    Para la reserva de reemplazo, establezca las siguientes propiedades según sea necesario. Asegúrese de cumplir con todos los requisitos cuando especifique estas propiedades. Omita cualquier campo adicional que no desee usar.

    • REPLACEMENT_RESERVATION_NAME : el nombre de la nueva reserva de reemplazo.
    • REPLACEMENT_RESERVATION_ZONE : la zona de la nueva reserva de reemplazo.
    • REPLACEMENT_RESERVATION_NUMBER_OF_VMS : el número de máquinas virtuales que desea reservar en la nueva reserva de reemplazo.
    • REPLACEMENT_RESERVATION_MACHINE_TYPE : el tipo de máquina que desea para las máquinas virtuales en su nueva reserva de reemplazo.

      • Para los tipos de máquinas predefinidas , use el formato MACHINE_FAMILY -standard- CPUS ; Por ejemplo, n2-standard-4 .
      • Para los tipos de máquinas personalizadas , use el formato MACHINE_FAMILY -custom- CPUS - MEMORY ; Por ejemplo n2-custom-4-5120 . Para obtener una lista completa de restricciones, lea las especificaciones para tipos de máquinas personalizadas.

      Reemplace lo siguiente:

      • MACHINE_FAMILY : la familia de tipos de máquinas; Por ejemplo, especifique n2 para VMS N2.
      • CPUS : el número de VCPU .
      • MEMORY : la memoria total para una VM reservada. La memoria debe ser un múltiplo de 256 MB y debe suministrarse en MB; Por ejemplo, para crear una VM N2 con 4 VCPU y 5 GB de memoria, que es 5120 MB, use n2-custom-4-5120 .
    • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS : el número de GPU que desea agregar, por vm, en la reserva de reemplazo.

    • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE : el tipo de acelerador que desea agregar en la reserva de reemplazo.

    • REPLACEMENT_RESERVATION_INTERFACE_1 y REPLACEMENT_RESERVATION_INTERFACE_2 : el tipo de interfaz que desea que use los discos SSD locales para cada VM reservada. Las opciones válidas son: scsi y nvme . Cada disco SSD local es de 375 GB. Repita el parámetro local_ssd para cada disco SSD local que desea agregar. Puede especificar hasta 24 discos SSD locales.

    • REPLACEMENT_RESERVATION_PROJECT_ID : la ID del proyecto del proyecto actual que tiene el compromiso y la reserva adjunta. Especifique este campo si desea compartir su reserva de reemplazo en múltiples proyectos de consumo.

    • REPLACEMENT_RESERVATION_SHARE_SETTING : el tipo de intercambio para la reserva de reemplazo. Especifique este campo con el valor como projects si desea compartir su reserva de reemplazo en múltiples proyectos de consumo.

    • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 y REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2 : los ID de proyecto de los proyectos que pueden compartir esta reserva, por ejemplo, project-1,project-2 . Puede incluir hasta 100 proyectos de consumo. Estos proyectos deben estar en la misma organización que el Proyecto del Propietario. No incluya el REPLACEMENT_RESERVATION_PROJECT_ID , que ya puede consumir esta reserva por defecto.

  2. Ejecute el comando gcloud beta compute commitments update-reservations y especifique la ruta al archivo YAML utilizando el indicador --reservations-from-file .

    gcloud beta compute commitments update-reservations COMMITMENT_NAME \
        --project= PROJECT_ID \
        --region= REGION \
        --reservations-from-file= YAML_FILE
    

    Reemplace lo siguiente:

    • COMMITMENT_NAME : el nombre del compromiso con la reserva adjunta.
    • PROJECT_ID : la ID del proyecto del compromiso con la reserva adjunta.
    • REGION : La región donde se encuentra el compromiso.
    • YAML_FILE : la ruta al archivo YAML que contiene la configuración de las reservas actuales y de reemplazo.

Ejemplo para reemplazar una reserva adjunta a un compromiso

Para demostrar esto, esta sección muestra un compromiso de ejemplo con una reserva adjunta y cómo reemplazar el ejemplo de reserva adjunta .

Ejemplo de compromiso con una reserva adjunta

Por ejemplo, supongamos que desea actualizar las reservas adjuntas para el compromiso my-commitment-with-reservations , que se compró utilizando el siguiente comando:

  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

Para este ejemplo, suponga que cuando se ejecutó este comando, one-reservation.yaml era un archivo en el directorio actual con los siguientes contenidos, que definen una reserva adjunta 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 my-commitment-with-reservations y la reserva de reserva adjunta res-1 dio como resultado los siguientes recursos comprometidos y reservados:

Tipo de recurso Recursos en compromiso
( my-commitment-with-reservations )
Recursos en la reserva adjunta actual
( res-1 )
VCPU y memoria 16 VCPU y 60 GB 16 VCPU y 60 GB
(4 VMS reservados n1-standard-4 VMS) *
GPU 4 GPU de P100 4 GPU de P100
(1 P100 GPU por VM, para 4 VM) *
Discos SSD locales 3000 GB o 8 discos SSD locales 3000 GB o 8 discos SSD locales
(750 GB o 2 discos SSD locales por VM, para 4 VM) *

* Específicamente, el ejemplo de reserva adjunta, res-1 , reserva 4 n1-standard-4 VMS, cada una con 1 GPU P100 y 2 discos SSD locales del tipo de interfaz scsi . El tipo de máquina n1-standard-4 usa 4 VCPU y 15 GB para cada VM.

Reemplace el ejemplo de reserva adjunta

Supongamos que desea reemplazar la reserva de reserva adjunta res-1 para el nuevo con una nueva reserva adjunta res-2 y cambiar los recursos reservados a lo siguiente:

Tipo de recurso Recursos en compromiso
( my-commitment-with-reservations )
Recursos en la reserva adjunta actual
( res-1 )
Recursos en la reserva de reemplazo adjunto
( res-2 )
VCPU y memoria 16 VCPU y 60 GB 16 VCPU y 60 GB
(4 VMS reservados n1-standard-4 VMS) *
16 VCPU y 60 GB
(2 n1-standard-8 VMS reservados y compartidos)
GPU 4 GPU de P100 4 GPU de P100
(1 P100 GPU por VM, para 4 VM) *
4 GPU de P100
(2 GPU P100 por VM, para 2 VM)
Discos SSD locales 3000 GB o 8 discos SSD locales 3000 GB o 8 discos SSD locales
(750 GB o 2 discos SSD locales por VM, para 4 VM) *
3000 GB o 8 discos SSD locales
(1500 GB o 4 discos SSD locales por VM, para 2 VM) *

* Específicamente, el ejemplo de reserva adjunta, res-1 , reserva 4 n1-standard-4 VMS, cada una con 1 GPU P100 y 2 discos SSD locales del tipo de interfaz scsi . El tipo de máquina n1-standard-4 usa 4 VCPU y 15 GB para cada VM.

Específicamente, la reserva adjunta de reemplazo define res-2 , que reserva 2 n1-standard-8 VMS N1, cada una con 1 GPU P100 y 4 discos SSD locales del tipo de interfaz scsi . Además, res-2 se comparte con otros 2 proyectos, project-1 y project-2 y propiedad del proyecto actual, my-project . El tipo de máquina n1-standard-8 usa 8 VCPU y 30 GB para cada VM.

Para reemplazar la reserva adjunta res-1 con res-2 para el my-commitment-with-reservations , haga lo siguiente:

  1. Cree un archivo llamado two-reservations.yaml en el directorio actual que el archivo contiene 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
    
  2. Ejecute el siguiente comando:

    gcloud beta compute commitments update-reservations my-commitment-with-reservations \
        --region=asia-east1 \
        --reservations-from-file=two-reservations.yaml
    

DESCANSAR

Para reemplazar las reservas que se adjuntan a los compromisos, haga una solicitud POST utilizando 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"
          }
         }
      }
    }
  ]
}

Reemplace lo siguiente con las propiedades correspondientes del compromiso, la reserva actual y la reserva de reemplazo:

Compromiso

  • COMMITMENT_NAME : el nombre del compromiso con la reserva adjunta.
  • PROJECT_ID : la ID del proyecto del compromiso con la reserva adjunta. Esta es también la ID del proyecto para las reservas actuales y adjuntas.
  • COMMITMENT_ZONE : la zona del compromiso con la reserva adjunta.

Reserva actual

Para la reserva actual, todas las siguientes propiedades deben ser exactamente las mismas que cuando vio la reserva. Omita los campos para cualquier propiedad que la reserva actual no especifique.

  • CURRENT_RESERVATION_NAME : el nombre de la reserva adjunta actual.
  • CURRENT_RESERVATION_ZONE : la zona de la reserva adjunta actual.
  • CURRENT_RESERVATION_MACHINE_TYPE : el tipo de máquina de la reserva correcta adjunta.
  • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS : el número de GPU reservadas en la reserva adjunta actual.
  • CURRENT_RESERVATION_ACCELERATOR_TYPE : el tipo de acelerador reservado en la reserva adjunta actual.
  • CURRENT_RESERVATION_INTERFACE_1 y CURRENT_RESERVATION_INTERFACE_2 : el tipo de interfaz que los discos SSD locales para cada VM reservado usan en la reserva adjunta actual. Las opciones válidas son: scsi y nvme . Cada disco SSD local es de 375 GB. Repita el parámetro localSsds para todos los discos SSD locales reservados.
  • CURRENT_RESERVATION_SHARE_SETTING : el tipo de intercambio para la reserva actual. Especifique este parámetro con el valor como projects si su reserva adjunta actual se comparte en múltiples proyectos de consumo.
  • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 y CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2 : los ID de proyecto de los proyectos con los que comparte la reserva correcta adjunta con project-1 y project-2 .

Reserva de reemplazo

Para la reserva de reemplazo, establezca las siguientes propiedades según sea necesario. Asegúrese de cumplir con todos los requisitos cuando especifique estas propiedades. Omita cualquier campo adicional que no desee usar.

  • REPLACEMENT_RESERVATION_NAME : el nombre de la nueva reserva de reemplazo.
  • REPLACEMENT_RESERVATION_ZONE : la zona de la nueva reserva de reemplazo.
  • REPLACEMENT_RESERVATION_NUMBER_OF_VMS : el número de máquinas virtuales que desea reservar en la nueva reserva de reemplazo.
  • REPLACEMENT_RESERVATION_MACHINE_TYPE : el tipo de máquina que desea para las máquinas virtuales en su nueva reserva de reemplazo.

    • Para los tipos de máquinas predefinidas , use el formato MACHINE_FAMILY -standard- CPUS ; Por ejemplo, n2-standard-4 .
    • Para los tipos de máquinas personalizadas , use el formato MACHINE_FAMILY -custom- CPUS - MEMORY ; Por ejemplo n2-custom-4-5120 . For a full list of restrictions, read the specifications for custom machine types.

    Reemplace lo siguiente:

    • MACHINE_FAMILY : the family of machine types; for example, specify n2 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, use n2-custom-4-5120 .
  • 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 and REPLACEMENT_RESERVATION_INTERFACE_2 : the type of interface you want the Local SSD disks for each reserved VM to use. Valid options are: scsi and nvme . Each Local SSD disk is 375 GB. Repeat the localSsds 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 as projects if you want to share your replacement reservation across multiple consumer projects.

  • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 and REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2 : the project IDs of the projects that can share this reservation, for example project-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 the PROJECT_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:

Tipo de recurso 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) *
GPU 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:

Tipo de recurso 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)
GPU 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"
      }
    ]
  }

¿Qué sigue?