Combina reservas con descuentos por compromiso de uso


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.

    Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    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.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

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:

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 compromiso
  • REGION: la región en la que se encuentra el compromiso
  • PROJECT_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 ser 12-month o 36-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áquinas
    • compute-optimized para los recursos de tipos de máquinas C2
    • compute-optimized-c2d para los recursos de tipos de máquinas C2D
    • compute-optimized-c3 para los recursos de tipos de máquinas C3
    • compute-optimized-c3d para los recursos de tipos de máquinas C3D
    • general-purpose para los recursos de tipo de máquina N1
    • general-purpose-e2 para los recursos de tipos de máquinas E2
    • general-purpose-n2 para los recursos de tipos de máquinas N2
    • general-purpose-n2d para los recursos de máquina N2D
    • general-purpose-t2d para los recursos de tipo de máquina Tau T2D
    • graphics-optimized para los recursos de tipos de máquinas G2
    • memory-optimized para los recursos de tipos de máquinas M1 o M2
    • memory-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 o 10GB. 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 y RESERVATION_NAME_2: los nombres de las reservas existentes que deseas conectar al compromiso.

  • RESERVATION_ZONE_1 y RESERVATION_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 compromiso
  • REGION: la región en la que se encuentra el compromiso
  • PROJECT_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 ser TWELVE_MONTH o THIRTY_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 E2
    • GENERAL_PURPOSE_N2 para los recursos de tipos de máquinas N2
    • GENERAL_PURPOSE_N2D para los recursos de máquina N2D
    • COMPUTE_OPTIMIZED_C3 para los recursos de tipos de máquinas C3
    • GENERAL_PURPOSE_C3D para los recursos de tipos de máquinas C3D
    • GENERAL_PURPOSE_T2D para los recursos de tipo de máquina Tau T2D
    • GENERAL_PURPOSE para los recursos de tipo de máquina N1
    • COMPUTE_OPTIMIZED para los recursos de tipos de máquinas C2
    • COMPUTE_OPTIMIZED_C2D para los recursos de tipos de máquinas C2D
    • MEMORY_OPTIMIZED para los recursos de tipos de máquinas M1 o M2
    • MEMORY_OPTIMIZED_M3 para los compromisos de tipos de máquinas M3 con optimización de memoria
    • ACCELERATOR_OPTIMIZED para los recursos de tipos de máquinas
    • GRAPHICS_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 y res-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:

  1. En la consola de Google Cloud, ve a la página Descuentos por compromiso de uso.

    Ir a Descuentos por compromiso de uso

  2. Para adquirir un compromiso nuevo, haz clic en Adquirir un compromiso.

  3. Otorga un nombre al compromiso y elige la región en la que quieres que se aplique.

  4. 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
  5. Elige una duración del compromiso de 1 o 3 años.

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

  7. Haz clic en Agregar GPU y elige el tipo de GPU y la cantidad de GPU que deseas comprometerte a usar.

  8. Haz clic en Agregar SSD local y especifica la cantidad de discos que deseas comprometerte a usar.

  9. Para crear una reserva y conectarla al compromiso, haz clic en Agregar una reserva.

    1. En el campo Nombre, ingresa el nombre de tu reserva.
    2. Elige la región y zona en la que deseas reservar los recursos.
    3. 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.
    4. 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.
    5. En el campo Cantidad de instancias de VM, ingresa la cantidad de instancias de VM que deseas reservar.

    6. 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:
        1. 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.
        2. En los campos Serie y Tipo de máquina, elige una serie de máquinas y un tipo de máquina.
        3. Especifica una plataforma de CPU mínima o GPU (opcional):
          1. Haz clic en Plataforma de CPU y GPU para expandir la sección.
          2. Opcional: Para especificar una plataforma de CPU mínima, elige una opción en la lista Formulario de CPU.
          3. 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.
        4. Opcional: Agrega discos SSD locales:
          1. En el campo Cantidad de discos, selecciona la cantidad de discos SSD locales para cada VM.
          2. En el campo Tipo de interfaz, selecciona la interfaz para los discos SSD locales.
    7. Para terminar de especificar las propiedades de esta reserva, haz clic en Listo.

  10. Haz clic en el botón Adquirir para adquirir el compromiso.

  11. 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:

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

    2. 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 compromiso
  • REGION: la región en la que se encuentra el compromiso
  • PROJECT_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 ser 12-month o 36-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 E2
    • general-purpose-n2 para los recursos de tipos de máquinas N2
    • general-purpose-n2d para los recursos de máquina N2D
    • compute-optimized-c3 para los recursos de tipos de máquinas C3
    • general-purpose-c3d para los recursos de tipos de máquinas C3D
    • general-purpose-t2d para los recursos de tipo de máquina Tau T2D
    • general-purpose para los recursos de tipo de máquina N1
    • compute-optimized para los recursos de tipos de máquinas C2
    • compute-optimized-c2d para los recursos de tipos de máquinas C2D
    • memory-optimized para los recursos de tipos de máquinas M1 o M2
    • memory-optimized-m3 para los compromisos de tipos de máquinas M3 con optimización de memoria
    • accelerator-optimized para los recursos de tipos de máquinas
    • graphics-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 o 10240MB. 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 sea true o false. 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, especifica n2 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, usa n2-custom-4-5120.
  • 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 y 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 y nvme. Cada disco SSD local es de 375 GB. Repite el parámetro local_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 como 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 y CONSUMER_PROJECT_ID_2: son los IDs de los proyectos que pueden compartir esta reserva, por ejemplo project-1 y project-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 campo sourceInstanceTemplate.

    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 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"
      }
    ],
    "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 compromiso
  • REGION: la región en la que se encuentra el compromiso
  • PROJECT_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 ser TWELVE_MONTH o THIRTY_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áquinas
    • COMPUTE_OPTIMIZED para los recursos de tipos de máquinas C2
    • COMPUTE_OPTIMIZED_C2D para los recursos de tipos de máquinas C2D
    • COMPUTE_OPTIMIZED_C3 para los recursos de tipos de máquinas C3
    • COMPUTE_OPTIMIZED_C3D para los recursos de tipos de máquinas C3D
    • GENERAL_PURPOSE para los recursos de tipo de máquina N1
    • GENERAL_PURPOSE_E2 para los recursos de tipos de máquinas E2
    • GENERAL_PURPOSE_N2 para los recursos de tipos de máquinas N2
    • GENERAL_PURPOSE_N2D para los recursos de máquina N2D
    • GENERAL_PURPOSE_T2D para los recursos de tipo de máquina Tau T2D
    • GRAPHICS_OPTIMIZED para los recursos de tipos de máquinas G2
    • MEMORY_OPTIMIZED para los recursos de tipos de máquinas M1 o M2
    • MEMORY_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 sea true o false. 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, especifica n2 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, usa n2-custom-4-5120.
  • 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 y 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 y nvme. Cada disco SSD local es de 375 GB. Repite el parámetro localSsds 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 como SPECIFIC_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 y CONSUMER_PROJECT_ID_2: son los IDs de los proyectos que pueden compartir esta reserva, por ejemplo project-1 y project-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:

  1. Crea un archivo YAML en el directorio actual con la configuración de las siguientes reservas conectadas:

    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 y CURRENT_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 y nvme. Cada disco SSD local es de 375 GB. Repite el parámetro local_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 como projects si tu reserva conectada actual se comparte en varios proyectos de consumidor.
    • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 y CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2: son los IDs de los proyectos con los que compartes la reserva conectada actual, por ejemplo, project-1 y project-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, especifica n2 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, usa n2-custom-4-5120.
    • 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 y REPLACEMENT_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 y nvme. Cada disco SSD local es de 375 GB. Repite el parámetro local_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 como projects si deseas compartir tu reserva de reemplazo en varios proyectos de consumidor.

    • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 y REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2: son los IDs de los proyectos que pueden compartir esta reserva, por ejemplo project-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 incluyas REPLACEMENT_RESERVATION_PROJECT_ID, que ya tiene permisos para consumir esta reserva de forma predeterminada.

  2. 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 compromiso
    • YAML_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:

  1. 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
    
  2. 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 y CURRENT_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 y nvme. Cada disco SSD local es de 375 GB. Repite el parámetro localSsds 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 como projects si tu reserva conectada actual se comparte en varios proyectos de consumidor.
  • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 y CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2: son los IDs de los proyectos con los que compartes la reserva conectada actual, por ejemplo project-1 y project-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, especifica n2 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, usa n2-custom-4-5120.
  • 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 y REPLACEMENT_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 y nvme. Cada disco SSD local es de 375 GB. Repite el parámetro localSsds 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 como projects si deseas compartir tu reserva de reemplazo en varios proyectos de consumidor.

  • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 y REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2: son los IDs de los proyectos que pueden compartir esta reserva, por ejemplo project-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 incluyas PROJECT_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?