Combinar reservas com descontos por compromisso de uso

Os descontos por compromisso de uso (CUDs) oferecem preços com grandes descontos para seus recursos do Compute Engine em troca de contratos de uso contínuo de um ou três anos, também conhecidos como compromissos. Você se compromete com uma quantidade mínima de uso de recursos ou de gastos e, em troca, recebe CUDs sobre os custos de uso de recursos. No entanto, os compromissos não reservam capacidade zonal para os recursos comprometidos. Para conseguir recursos zonais a preços com desconto e também garantir que a capacidade seja reservada para eles, você precisa adquirir compromissos e criar reservas para esses recursos zonais.

Neste documento, explicamos como receber CUDs para seus recursos reservados e como anexar reservas a compromissos baseados em recursos.

Antes de começar

  • Analise os conceitos básicos de reservas com os requisitos e as restrições. Para mais informações, consulte Sobre as reservas.
  • Configure a autenticação, caso ainda não tenha feito isso. Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console Google Cloud para acessar serviços Google Cloud e APIs, não é necessário configurar a autenticação.

    gcloud

    1. Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  • Defina uma região e uma zona padrão.
  • REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a CLI do Google Cloud.

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

CUDs para seus recursos reservados

Você recebe CUDs de compromissos ativos para qualquer uso de recursos qualificado nos seus projetos. Se você também tiver alguma reserva para manter a capacidade para recursos nesse projeto, os CUDs de compromissos ativos também poderão ser aplicados a esses recursos reservados. Para que qualquer recurso reservado se qualifique para receber CUDs, os seguintes requisitos se aplicam:

  • Você não está recebendo nenhuma outra forma de desconto pelo uso dos recursos.
  • As VMs precisam estar consumindo as reservas enquanto os compromissos estão ativos.
  • No mínimo, as propriedades a seguir precisam corresponder entre seus compromissos ativos e as reservas que as VMs consomem:

    • Projeto e região em que se aplicam
    • Série da família de máquinas

Dependendo do tipo de recurso, é possível receber CUDs para seus recursos reservados de uma das seguintes maneiras:

  • vCPUs e memória: para receber CUDs para um ou ambos os tipos de recurso, é possível adquirir compromissos com base em recursos ou em gastos que incluam os tipos de recursos necessários. Quando as VMs no projeto consomem qualquer reserva que corresponda a essas propriedades de compromisso ativo, o Compute Engine aplica automaticamente os descontos ao uso qualificado.

    Somente para compromissos baseados em recursos, é possível ativar o compartilhamento de CUDs. Assim, é possível compartilhar CUDs de um projeto para cobrir o uso em outros projetos vinculados à conta do Cloud Billing desse compromisso.

    Se você reservou mais recursos do que se comprometeu a comprar, não vai receber CUDs para esses recursos extras.

  • GPUs e discos SSD locais: para receber CUDs para um ou ambos esses tipos de recursos, faça o seguinte:

    • Adquira compromissos baseados em recursos que incluem os tipos de recursos necessários.
    • Crie reservas para todos os recursos confirmados com propriedades que correspondam ao seu compromisso e anexe essas reservas ao compromisso.

    Quando as VMs no projeto consomem essas reservas anexadas, você começa a receber os CUDs aplicáveis a esses tipos de recursos reservados. Se você ativar o compartilhamento CUD e anexar uma reserva compartilhada, o uso de outros projetos de consumidor também poderá se qualificar para os CUDs baseados em recursos compartilhados. No entanto, para que o uso de outros projetos se qualifique, você precisa limitar o compartilhamento da reserva à conta do Cloud Billing do compromisso. Se projetos fora da conta do Cloud Billing consumirem essa reserva compartilhada, o uso não vai se qualificar para os CUDs compartilhados dessa conta e poderá ser cobrado com taxas sob demanda.

Anexar reservas a compromissos baseados em recursos

É possível anexar reservas a qualquer compromisso baseado em recursos e garantir que a capacidade seja mantida em zonas específicas para os recursos comprometidos que você planeja usar. É possível anexar várias reservas a um único compromisso. No entanto, uma reserva só pode ser anexada a um único compromisso. Quando você compra um compromisso, é possível anexar reservas a ele de uma das seguintes maneiras:

  • Usar reservas atuais que correspondem às propriedades do compromisso
  • Criar novas reservas correspondentes ao comprar seu compromisso

Tipos de recursos que não exigem reservas anexadas

Para vCPUs, memória e discos SSD de titânio locais para uso com algumas séries de máquinas, não é necessário anexar reservas correspondentes aos seus compromissos. Especificamente para discos locais de titânio, não é necessário ter reservas anexadas ao comprar tipos de compromissos aplicáveis às seguintes séries de máquinas:

  • H4D com otimização para computação
  • C4 de uso geral
  • C4A de uso geral
  • C4D de uso geral
  • Otimização para armazenamento Z3

Se você quiser comprar um compromisso que inclua esses tipos de recursos, faça isso sem anexar reservas para eles. Se você quiser anexar reservas para qualquer uma dessas vCPUs, memória ou discos SSD de titânio locais, poderá fazer isso.

As reservas anexadas para esses recursos não precisam corresponder aos tipos e números de recursos especificados pelo compromisso. Especificamente, o seguinte acontece quando você especifica mais ou menos recursos do que seu compromisso:

  • Quando o compromisso especifica mais desses tipos de recursos do que as reservas anexadas, o Compute Engine reserva capacidade apenas para os recursos especificados pelo compromisso. No entanto, ainda é possível usar o restante dos recursos confirmados dependendo da disponibilidade deles na sua região.
  • Quando a reserva especifica mais desses recursos do que o compromisso, você ainda recebe CUDs apenas pelo uso de recursos qualificados. Quando o compartilhamento de CUDs está ativado, os compromissos baseados em recursos na sua conta do Cloud Billing são agrupados e aplicados a qualquer uso qualificado. Se as reservas anexadas especificarem mais recursos do que os compromissos podem cobrir, o uso adicional poderá ser cobrado com taxas sob demanda.

Por exemplo, quando você compra um compromisso para 4 vCPUs e 30 GB de memória, pode optar por realizar uma das seguintes ações:

  • Não anexar reservas.
  • Anexe reservas especificando qualquer combinação desses tipos de recursos. Por exemplo, o seguinte:

    • 4 vCPUs e 30 GB de memória
    • 2 vCPUs e 50 GB de memória
    • 10 vCPUs e 10 GB de memória

No entanto, se o compromisso especificar outros tipos de recursos que exigem reservas anexadas, você ainda precisará anexar reservas para esses recursos.

Para saber como comprar compromissos para recursos que não exigem reservas, consulte Comprar compromissos baseados em recursos sem reservas anexadas.

Tipos de recursos que exigem reservas anexadas

Para todas as GPUs e a maioria dos discos SSD locais, também é necessário reservar esses recursos e anexar as reservas aos seus compromissos. Sem reservas anexadas para esses recursos, a compra do compromisso falha. Alguns discos SSD Titanium locais para uso com uma seleção de séries de máquinas são isentos dessa vinculação obrigatória de reserva.

Quando você compra um compromisso que inclui GPUs, os discos SSD locais aplicáveis ou ambos, também é necessário reservar esses recursos e anexar as reservas ao compromisso. Para isso, use uma única reserva ou uma combinação de várias reservas.

Ao comprar um compromisso para esses recursos que precisam de reservas anexadas, você também pode incluir recursos que não precisam de reservas anexadas no mesmo compromisso. Nesses cenários, é possível fazer qualquer uma das seguintes ações:

  • Reserve os recursos opcionais em números que correspondam ao compromisso.
  • Reservar os recursos opcionais em números diferentes em comparação com o compromisso.
  • Não reservar os recursos opcionais.

Para saber como comprar compromissos para GPUs ou discos SSD locais, consulte o seguinte:

Quando o compromisso especifica tipos de recursos que exigem uma reserva anexada, as reservas anexadas precisam especificar os números e tipos exatos desses recursos. Consequentemente, também não é possível ter qualquer número ou tipo adicional desses recursos nas reservas anexadas.

Por exemplo, suponha que você compre um compromisso para 30 GB de memória e quatro GPUs NVIDIA P100. A reserva anexada (ou combinação de reservas anexadas) pode especificar qualquer quantidade de vCPUs ou memória, mas precisa ter exatamente quatro GPUs do tipo NVIDIA P100. Neste exemplo, não é possível anexar reservas especificando qualquer uma das combinações de recursos a seguir:

  • 6 NVIDIA P100 GPUs
  • 2 NVIDIA P100 GPUs
  • 4 GPUs NVIDIA P100 e 2 GPUs NVIDIA V100
  • 4 GPUs NVIDIA P100 e 4 discos SSD locais

Para conferir a lista completa de séries de máquinas compatíveis com CUDs para GPUs e discos SSD locais, consulte a seção Tipos de compromisso de hardware na documentação de CUDs baseados em recursos.

Comportamento da reserva após a compra do compromisso

Depois de comprar um compromisso com reservas anexadas, o comportamento da reserva depende de o compromisso especificar tipos de recursos que exigem reservas anexadas:

  • Compromissos que exigem reservas anexadas: se o compromisso especificar algum desses tipos de recursos, não será possível fazer o seguinte:
    • Exclua, redimensione ou modifique as reservas anexadas durante o ciclo de vida do compromisso. No entanto, é possível substituir as reservas anexadas atuais por novas.
    • Ative a configuração de exclusão automática nas reservas anexadas. Quando os compromissos que especificam esses tipos de recursos expiram, todas as reservas anexadas são excluídas automaticamente.
  • Compromissos em que as reservas são opcionais: se o compromisso for para tipos de recursos em que as reservas são opcionais, você poderá excluir as reservas, mudar o número de VMs reservadas ou modificar propriedades como exclusão automática a qualquer momento. Quando esses compromissos expiram, as reservas anexadas continuam existindo, a menos que você as configure para serem excluídas automaticamente. A exclusão dessas reservas não afeta as VMs em execução que consumiram a capacidade reservada. As VMs em execução continuam sendo executadas e você recebe cobertura de CUD até que o compromisso expire.

Para mais informações sobre o que pode ou não ser alterado nas reservas anexadas, consulte a seção Alterações permitidas deste documento.

Comprar compromissos baseados em recursos com reservas anexadas

Quando você compra um novo compromisso, é possível anexar reservas a ele de uma das seguintes maneiras:

Depois de adquirir um compromisso, ele ficará ativo no dia seguinte à 0h dos EUA e do Horário do Pacífico canadense (UTC-8 ou UTC-7 durante o horário de verão). O Compute Engine mantém uma garantia no seu projeto para cada região do projeto em que você adquire um compromisso. Quando você adquire um novo compromisso para qualquer região do projeto, o Compute Engine associa a garantia dessa região ao compromisso recém-criado.

Entre o momento da compra do compromisso e o momento de ativação, o status dele permanece como NOT_YET_ACTIVE (ou como PENDING no console doGoogle Cloud ). Após a ativação, o status do compromisso mudará para ACTIVE. Por exemplo, suponha que você compre o compromisso em 20 de janeiro de 2024 às 22h nos EUA e no horário do Pacífico canadense (UTC-8 ou UTC-7). O Compute Engine cria seu compromisso imediatamente com o status dele como NOT_YET_ACTIVE. Seu compromisso passa a ser ACTIVE em 21 de janeiro de 2024, à 0h dos EUA e do Horário do Pacífico canadense (UTC-8 ou UTC-7).

Requisitos

Antes de adquirir um compromisso com reservas anexadas, revise estes requisitos e verifique se o compromisso e as reservas atendem aos seguintes critérios:

  • É necessário adquirir o compromisso e criar as reservas anexadas no mesmo projeto e região.
  • É necessário adquirir o compromisso e criar as reservas anexadas para recursos da mesma série de família de máquinas.
  • Se o compromisso especificar tipos de recursos que exigem reservas anexadas, desative a opção de exclusão automática nas reservas anexadas. Saiba mais sobre os tipos de recursos que exigem reservas anexadas.
  • Se o compromisso tiver GPUs, o tipo de GPU na reserva e o compromisso precisarão ser correspondentes.
  • Para GPUs e a maioria dos discos SSD locais, o número de recursos reservados de cada tipo de recurso precisa corresponder exatamente ao número de recursos comprometidos desse tipo de recurso. No entanto, esse requisito não se aplica se você especificar discos SSD Titanium locais no seu compromisso para uso com tipos de máquinas C4, C4A, C4D, H4D ou Z3.

    Por exemplo, se você quiser adquirir um compromisso para quatro GPUs V100 e dois discos SSD locais, as reservas anexadas ao compromisso precisarão ter um total de quatro GPUs V100 e dois SSDs locais. A quantidade de vCPU e memória que você reserva pode ser maior ou menor do que a que você se compromete. No entanto, se você especificar 4 vCPUs C4A e 2 discos SSD Titanium locais no compromisso, não será necessário anexar nenhuma reserva a ele.

  • Para GPUs, adquira compromissos para os tipos específicos de GPU que você pretende usar. Por exemplo, é possível comprar compromissos para NVIDIA P100s ou NVIDIA V100s, mas não é possível usar um compromisso que tenha sido comprado para GPUs NVIDIA P100 para abranger GPUs NVIDIA V100.

  • Se a reserva anexada for uma reserva compartilhada e você quiser receber os CUDs aplicáveis quando consumir essa reserva fora do projeto do compromisso, faça o seguinte:

    • Compartilhe suas reservas apenas entre projetos que pertençam à mesma conta do Cloud Billing que o compromisso.
    • Ative o compartilhamento de CUD para essa conta do Cloud Billing.

Anexar reservas já criadas

É possível anexar reservas atuais ao adquirir o compromisso usando o console Google Cloud , a Google Cloud CLI ou REST.

Console

Antes de adquirir um compromisso usando o console Google Cloud , selecione o projeto que você quer usar para adquirir o compromisso. Se o compartilhamento de CUDs estiver ativado para uma conta do Cloud Billing, será possível adquirir o compromisso usando qualquer projeto dessa conta. Depois de selecionar o projeto, faça o seguinte:

  1. No console do Google Cloud , acesse a página Descontos por uso contínuo. Acesse "Descontos por uso contínuo"

  2. Clique em Comprar compromisso. A página Comprar um compromisso é exibida.

  3. No campo Nome, insira um nome para o compromisso.

  4. No campo Região, selecione a região em que você quer comprar o compromisso.

  5. No campo Tipo de compromisso, selecione a série da família de máquinas para o compromisso. Os seguintes tipos de compromisso oferecem opções para GPUs, discos SSD locais ou ambos:

    • Para tipos de máquina A2, selecione A2 com otimização do acelerador.
    • Para os tipos de máquina A3 Edge e A3 High, selecione A3 com otimização para aceleradores.
    • Para tipos de máquinas A3 Mega, selecione A3 Mega com otimização para aceleradores.
    • Para tipos de máquina G2, selecione G2 com otimização gráfica
    • Para tipos de máquina G4, selecione G4 com otimização para gráficos
    • Para tipos de máquina C2, selecione C2 com otimização para computação.
    • Para tipos de máquina C2D, selecione C2D com otimização para computação.
    • Para tipos de máquina C3, selecione Uso geral C3
    • Para tipos de máquina C3D, selecione C3D de uso geral
    • Para tipos de máquina C4, selecione Uso geral C4
    • Para tipos de máquina C4A, selecione Uso geral C4A
    • Para tipos de máquina C4D, selecione Uso geral C4D
    • Para tipos de máquina N1, selecione Uso geral N1.
    • Para tipos de máquina N2, selecione Uso geral N2.
    • Para tipos de máquina N2D, selecione Uso geral N2D.
    • Para tipos de máquina M1, selecione M1/M2 com otimização de memória.
    • Para tipos de máquina M3, selecione M3 com otimização de memória
    • Para tipos de máquina Z3, selecione Z3 com otimização para armazenamento

  6. Para anexar uma ou mais reservas atuais ao compromisso, faça o seguinte:

    1. Marque a caixa de seleção Anexar uma reserva nova ou já criada.

    2. Clique em Anexar uma reserva. O painel Anexar reservas existentes aparece e mostra as reservas do seu projeto. Essa lista é filtrada para corresponder à região e ao tipo de compromisso especificados.

    3. No painel Anexar reservas atuais, marque a caixa de seleção de cada reserva que você quer anexar.

    4. Revise o resumo de recursos das reservas selecionadas e clique em Anexar.

    Depois de anexar as reservas, o Compute Engine preenche automaticamente os campos na seção Detalhes do compromisso para corresponder aos números e tipos de recursos das reservas anexadas. Se você inseriu manualmente valores para recursos na seção Detalhes do compromisso antes de anexar reservas, eles serão substituídos pelos valores das reservas.

  7. Na seção Detalhes do compromisso, faça o seguinte:

    1. No campo Cores, verifique o valor preenchido automaticamente. Se quiser, especifique um número diferente de vCPUs.

    2. No campo Memória, verifique a quantidade pré-preenchida de memória em GB. Se quiser, especifique um valor diferente. É possível especificar memória apenas em incrementos de 0,25 GB. Para especificar um valor de memória personalizado para seu compromisso, use a CLI gcloud ou REST.

    3. Expanda a seção GPUs e SSDs locais e verifique se os tipos e números correspondem entre o compromisso e as reservas anexadas, da seguinte forma:

      1. No campo Tipo de GPU, verifique o tipo de GPU pré-preenchido.

      2. No campo Número de GPUs, verifique o número pré-preenchido de GPUs.

      3. No campo SSDs locais, verifique o número de discos preenchido automaticamente.

      Se você especificar manualmente valores diferentes das reservas anexadas para qualquer um desses campos, a compra do compromisso não será concluída. Para todas as GPUs e a maioria dos discos SSD locais, os números e tipos totais precisam corresponder entre o compromisso e as reservas anexadas.

  8. Na seção Prazo, faça o seguinte:

    1. Para especificar o plano do compromisso, selecione 1 ano ou 3 anos. O plano determina a taxa de CUD e a duração predefinida do prazo do seu compromisso.

    2. Revise o campo Data de início, que mostra a data e a hora em que seu compromisso será ativado. Esse campo é definido automaticamente como 0h do horário do Pacífico (EUA e Canadá) no dia seguinte à data atual.

    3. Opcional. Para estender o período do compromisso além da duração predefinida definida pelo plano, no campo Data de término, especifique uma data de término personalizada. Para mais informações, consulte Estender prazos de compromisso.

    4. Opcional. Se você quiser que seu compromisso seja renovado automaticamente ao final do período, marque a caixa de seleção Renovar automaticamente.

  9. No painel Resumo, revise os detalhes do compromisso e as possíveis limitações de cota.

  10. Para concluir a compra do compromisso, faça o seguinte:

    1. Role até a parte de baixo da página.

    2. Leia a seção Divulgações, que contém informações sobre taxas, qualificação para descontos e termos e condições.

    3. Para confirmar sua aceitação do preço de permanência e dos termos específicos do serviço, marque a caixa de seleção.

    4. Clique em Comprar.

gcloud

Para adquirir um compromisso anexando reservas atuais, execute o comando gcloud compute commitments create. No seu comando, inclua a sinalização --existing-reservation para especificar uma reserva atual que você queira anexar ao compromisso. Inclua uma nova instância dessa sinalização para cada reserva atual que você queira anexar. É possível anexar qualquer número de reservas atuais ao compromisso.

Por exemplo, para adquirir um compromisso anexando duas reservas a ele, execute o seguinte 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=PLAN \
    --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'

Substitua:

  • COMMITMENT_NAME: o nome do compromisso.
  • REGION: a região em que a chave está localizada.
  • PROJECT_ID: o ID do projeto em que você quer comprar o compromisso com as reservas anexadas.
  • PLAN: o plano de compromisso, que determina sua taxa de CUD e a duração predefinida do período. Especifique 12-month ou 36-month.
  • CUSTOM_END_DATE: opcional. Uma data de término personalizada para seu período, que precisa ser formatada como YYYY-MM-DD. Por exemplo, para especificar uma data de término personalizada de 20 de abril de 2024, formate como 2024-04-20.
  • COMMITMENT_TYPE: o tipo de compromisso. Os tipos de compromisso a seguir oferecem opções para GPUs, discos SSD locais ou ambos:

    • Para tipos de máquina A2, use accelerator-optimized
    • Para tipos de máquina A3 Edge e A3 High, use accelerator-optimized-a3
    • Para tipos de máquina A3 Mega, use accelerator-optimized-a3-mega
    • Para tipos de máquina G2, use graphics-optimized
    • Para tipos de máquinas G4, use graphics-optimized-g4
    • Para tipos de máquinas C2, use compute-optimized
    • Para tipos de máquina C2D, use compute-optimized-c2d
    • Para tipos de máquina C3, use compute-optimized-c3
    • Para tipos de máquina C3D, use compute-optimized-c3d
    • Para tipos de máquinas N1, use general-purpose
    • Para tipos de máquina C4, use general-purpose-c4
    • Para tipos de máquina C4A, use general-purpose-c4a
    • Para tipos de máquina C4D, use general-purpose-c4d
    • Para tipos de máquinas N2, use general-purpose-n2
    • Para tipos de máquinas N2D, use general-purpose-n2d
    • Para tipos de máquina M1, use memory-optimized
    • Para tipos de máquina M3, use memory-optimized-m3
    • Para tipos de máquina Z3, use storage-optimized-z3

  • COMMITTED_VCPUS: o número de vCPUs que você quer no compromisso. O número deve ser um número inteiro positivo.

  • COMMITTED_MEMORY: a quantidade, em MB ou GB, de memória que você quer no seu compromisso. Por exemplo, 10240MB ou 10GB. Na CLI gcloud, é possível especificar a memória em MB ou GB. Se você não especificar uma unidade, o Compute Engine usará GB como a unidade padrão. No entanto, quando você usa REST, o Compute Engine usa MB como a unidade padrão.

  • COMMITTED_LOCAL_SSD: a quantidade, em GB, de espaço SSD local que você quer no seu compromisso.

  • COMMITTED_ACCELERATOR_COUNT: o número de GPUs que você quer no compromisso.

  • COMMITTED_ACCELERATOR_TYPE: o tipo de GPU que você quer no compromisso.

  • RESERVATION_NAME_1 e RESERVATION_NAME_2: os nomes das reservas atuais que você quer anexar ao compromisso.

  • RESERVATION_ZONE_1 e RESERVATION_ZONE_2: as zonas das reservas atuais que você quer anexar ao compromisso.

Exemplo: comprar um compromisso anexando reservas atuais

Suponha que você tenha duas reservas res-01 e res-02 nas zonas us-central1-a e us-central1-b do projeto myproject. Suponha que essas reservas tenham uma capacidade combinada para quatro GPUs NVIDIA P100 e quatro discos SSD locais. Para adquirir um novo compromisso na região us-central1 deste projeto para essas GPUs e discos SSD locais e usar essas reservas atuais como reservas anexadas, execute o comando a seguir. O compromisso especifica 96 vCPUs, 624 GB de memória, 4 GPUs NVIDIA P100 e 1.500 GB de armazenamento SSD local (equivalente a 4 discos SSD locais). O valor de armazenamento do SSD local precisa ser especificado em GB (por exemplo, 375GB). Para a CLI gcloud, é possível especificar a memória em MB ou GB. Se você não especificar uma unidade, o Compute Engine usará GB como a unidade padrão. No entanto, quando você usa REST, o Compute Engine usa MB como a unidade padrão.

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624GB,local-ssd=1500 \
    --resources-accelerator=type=nvidia-tesla-p100,count=4 \
    --plan 12-month \
    --existing-reservation=name=res-01,zone=us-central1-a \
    --existing-reservation=name=res-02,zone=us-central1-b
    

REST

Para adquirir um compromisso anexando reservas atuais, faça uma solicitação POST ao método regionCommitments.insert. Na solicitação, inclua o campo existingReservations para especificar uma lista separada por vírgulas de todas as reservas atuais que você quer anexar ao compromisso. É possível anexar qualquer número de reservas existentes ao seu compromisso.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments

{
  "name": "COMMITMENT_NAME",
  "plan": "PLAN",
  "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"
}

Substitua:

  • COMMITMENT_NAME: o nome do compromisso.
  • REGION: a região em que a chave está localizada.
  • PROJECT_ID: o ID do projeto em que você quer comprar o compromisso com as reservas anexadas.
  • PLAN: o plano de compromisso, que determina sua taxa de CUD e a duração predefinida do período. Especifique TWELVE_MONTH ou THIRTY_SIX_MONTH.
  • COMMITMENT_TYPE: o tipo de compromisso. Os tipos de compromisso a seguir oferecem opções para GPUs, discos SSD locais ou ambos:

    • Para tipos de máquina A2, use ACCELERATOR_OPTIMIZED
    • Para tipos de máquina A3 Edge e A3 High, use ACCELERATOR_OPTIMIZED_A3
    • Para tipos de máquina A3 Mega, use ACCELERATOR_OPTIMIZED_A3_MEGA
    • Para tipos de máquina G2, use GRAPHICS_OPTIMIZED
    • Para tipos de máquinas G4, use GRAPHICS_OPTIMIZED_G4
    • Para tipos de máquinas C2, use COMPUTE_OPTIMIZED
    • Para tipos de máquina C2D, use COMPUTE_OPTIMIZED_C2D
    • Para tipos de máquina C3, use COMPUTE_OPTIMIZED_C3
    • Para tipos de máquina C3D, use COMPUTE_OPTIMIZED_C3D
    • Para tipos de máquinas N1, use GENERAL_PURPOSE
    • Para tipos de máquina C4, use GENERAL_PURPOSE_C4
    • Para tipos de máquina C4A, use GENERAL_PURPOSE_C4A
    • Para tipos de máquina C4D, use GENERAL_PURPOSE_C4D
    • Para tipos de máquinas N2, use GENERAL_PURPOSE_N2
    • Para tipos de máquinas N2D, use GENERAL_PURPOSE_N2D
    • Para tipos de máquina M1, use MEMORY_OPTIMIZED
    • Para tipos de máquina M3, use MEMORY_OPTIMIZED_M3
    • Para tipos de máquina Z3, use STORAGE_OPTIMIZED_Z3

  • COMMITTED_VCPUS: o número de vCPUs que você quer no compromisso. O número deve ser um número inteiro positivo.

  • COMMITTED_MEMORY: a quantidade de memória que você quer no compromisso. Para REST, o Compute Engine usa MB como a unidade padrão. No entanto, quando você usa a CLI gcloud, o Compute Engine usa GB como unidade padrão.

  • COMMITTED_LOCAL_SSD: a quantidade, em GB, de armazenamento SSD local que você quer no seu compromisso.

  • COMMITTED_ACCELERATOR_COUNT: o número de GPUs que você quer no compromisso.

  • COMMITTED_ACCELERATOR_TYPE: o tipo de GPU que você quer no compromisso.

  • CUSTOM_END_DATE: opcional. Uma data de término personalizada para seu prazo, que precisa ser formatada como YYYY-MM-DD. Por exemplo, para especificar uma data de término personalizada de 20 de abril de 2024, formate-a como 2024-04-20.

  • END_TIME: 0h no horário do Pacífico dos EUA e do Canadá (UTC-8 ou UTC-7), como um ajuste do Tempo Universal Coordenado (UTC). Especifique esse valor apenas se você tiver especificado uma data de término personalizada para sua permanência. Especifique um dos seguintes valores:

    • Durante o horário de verão: 07:00:00
    • Em outros horários: 08:00:00
  • RESERVATION_URLs: uma lista separada por vírgulas de URLs das reservas atuais que você quer anexar ao compromisso. Por exemplo, para anexar duas reservas, res-1 e res-2, especifique o seguinte:

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

Exemplo: comprar um compromisso anexando reservas atuais

Suponha que você tenha duas reservas res-01 e res-02 nas zonas us-central1-a e us-central1-b do projeto myproject. Suponha que essas reservas tenham uma capacidade combinada para quatro GPUs NVIDIA P100 e quatro discos SSD locais. Para adquirir um novo compromisso na região us-central1 deste projeto para essas GPUs e discos SSD locais e usar essas reservas atuais como reservas anexadas, faça a seguinte solicitação POST. O compromisso especifica 96 vCPUs, 624 GB de memória, 4 GPUs NVIDIA P100 e 1.500 GB de armazenamento SSD local. O valor de armazenamento do SSD local precisa ser especificado em GB. Para memória, especifique o valor em MB. No entanto, quando você usa a CLI gcloud, o Compute Engine usa GB como a unidade padrão para memória.

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": "1500",
      "type": "LOCAL_SSD"
    }
  ],
  "existingReservations":
  [
    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/res-01",
    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-b/reservations/res-02"
  ]
}

Criar novas reservas para anexar

É possível criar suas reservas anexadas ao comprar seu compromisso usando o console do Google Cloud , a Google Cloud CLI ou o REST.

Console

Antes de adquirir um compromisso usando o console Google Cloud , selecione o projeto que você quer usar para adquirir o compromisso. Se o compartilhamento de CUDs estiver ativado para uma conta do Cloud Billing, será possível adquirir o compromisso usando qualquer projeto dessa conta. Depois de selecionar o projeto, faça o seguinte:

  1. No console do Google Cloud , acesse a página Descontos por uso contínuo. Acesse "Descontos por uso contínuo"

  2. Clique em Comprar compromisso. A página Comprar um compromisso é exibida.

  3. No campo Nome, insira um nome para o compromisso.

  4. No campo Região, selecione a região em que você quer comprar o compromisso.

  5. No campo Tipo de compromisso, selecione a série da família de máquinas para o compromisso. Os seguintes tipos de compromisso oferecem opções para GPUs, discos SSD locais ou ambos:

    • Para tipos de máquina A2, selecione A2 com otimização do acelerador.
    • Para os tipos de máquina A3 Edge e A3 High, selecione A3 com otimização para aceleradores.
    • Para tipos de máquinas A3 Mega, selecione A3 Mega com otimização para aceleradores.
    • Para tipos de máquina G2, selecione G2 com otimização gráfica
    • Para tipos de máquina G4, selecione G4 com otimização para gráficos
    • Para tipos de máquina C2, selecione C2 com otimização para computação.
    • Para tipos de máquina C2D, selecione C2D com otimização para computação.
    • Para tipos de máquina C3, selecione Uso geral C3
    • Para tipos de máquina C3D, selecione C3D de uso geral
    • Para tipos de máquina C4, selecione Uso geral C4
    • Para tipos de máquina C4A, selecione Uso geral C4A
    • Para tipos de máquina C4D, selecione Uso geral C4D
    • Para tipos de máquina N1, selecione Uso geral N1.
    • Para tipos de máquina N2, selecione Uso geral N2.
    • Para tipos de máquina N2D, selecione Uso geral N2D.
    • Para tipos de máquina M1, selecione M1/M2 com otimização de memória.
    • Para tipos de máquina M3, selecione M3 com otimização de memória
    • Para tipos de máquina Z3, selecione Z3 com otimização para armazenamento

  6. Para criar uma reserva e anexá-la ao compromisso, faça o seguinte:

    1. Marque a caixa de seleção Anexar uma reserva nova ou já criada.

    2. Clique em Criar nova reserva. O painel Criar uma nova reserva aparece.

    3. No campo Nome, insira um nome para a reserva.

    4. Opcional: no campo Descrição, insira uma descrição.

    5. No campo Zona, selecione a zona em que você quer que os recursos reservados estejam disponíveis.

    6. Na seção Tipo de compartilhamento, especifique como você quer compartilhar essa reserva:

      • Para criar uma reserva de projeto único, selecione Local.
      • Para criar uma reserva compartilhada com vários projetos, selecione Compartilhada. Em seguida, clique em Adicionar projetos e selecione os projetos desejados.
    7. Na seção Serviços do Google Cloud, especifique se quer compartilhar essa reserva com outros serviços, como o Google Kubernetes Engine ou a Vertex AI.

    8. Na seção Usar com instância de VM, selecione como você quer que as VMs consumam a reserva:

      • Para permitir que VMs com propriedades correspondentes consumam automaticamente a reserva, selecione Usar reserva automaticamente.
      • Para consumir os recursos desta reserva apenas quando ela for direcionada especificamente por nome, selecione Selecionar reserva específica.
    9. Na seção Detalhes do recurso, faça o seguinte:

      1. No campo Número de instâncias de VM, insira o número de VMs.

      2. Na seção Configuração da máquina, especifique as propriedades selecionando Tipo de máquina. Selecione um tipo de máquina na lista ou Personalizado para especificar o número de Núcleos e a quantidade de Memória.

      3. Opcional: se você quiser reservar GPUs, clique em Adicionar GPU e especifique o Tipo de GPU e o Número de GPUs para cada VM.

      4. Opcional: se você quiser reservar discos SSD locais, especifique o Número de discos e o Tipo de interface.

      5. Opcional: se você quiser especificar uma política de posição em grupo, selecione ou crie uma política na lista Política de posição em grupo.

    10. Para concluir a especificação das propriedades desta reserva, clique em Criar e anexar.

    11. Opcional: se quiser criar e anexar mais reservas, clique em Criar nova reserva outra vez e repita as etapas.

    Depois de anexar as reservas, o Compute Engine preenche automaticamente os campos na seção Detalhes do compromisso para corresponder aos números e tipos de recursos das reservas anexadas. Se você inseriu manualmente valores para recursos na seção Detalhes do compromisso antes de anexar reservas, eles serão substituídos pelos valores das reservas.

  7. Na seção Detalhes do compromisso, faça o seguinte:

    1. No campo Cores, verifique o valor preenchido automaticamente. Se quiser, especifique um número diferente de vCPUs.

    2. No campo Memória, verifique a quantidade pré-preenchida de memória em GB. Se quiser, especifique um valor diferente. É possível especificar memória apenas em incrementos de 0,25 GB. Para especificar um valor de memória personalizado para seu compromisso, use a CLI gcloud ou REST.

    3. Expanda a seção GPUs e SSDs locais e verifique se os tipos e números correspondem entre o compromisso e as reservas anexadas, da seguinte forma:

      1. No campo Tipo de GPU, verifique o tipo de GPU pré-preenchido.

      2. No campo Número de GPUs, verifique o número pré-preenchido de GPUs.

      3. No campo SSDs locais, verifique o número de discos preenchido automaticamente.

      Se você especificar manualmente valores diferentes das reservas anexadas para qualquer um desses campos, a compra do compromisso não será concluída. Para todas as GPUs e a maioria dos discos SSD locais, os números e tipos totais precisam corresponder entre o compromisso e as reservas anexadas.

  8. Na seção Prazo, faça o seguinte:

    1. Para especificar o plano do compromisso, selecione 1 ano ou 3 anos. O plano determina a taxa de CUD e a duração predefinida do prazo do seu compromisso.

    2. Revise o campo Data de início, que mostra a data e a hora em que seu compromisso será ativado. Esse campo é definido automaticamente como 0h do horário do Pacífico (EUA e Canadá) no dia seguinte à data atual.

    3. Opcional. Para estender o período do compromisso além da duração predefinida definida pelo plano, no campo Data de término, especifique uma data de término personalizada. Para mais informações, consulte Estender prazos de compromisso.

    4. Opcional. Se você quiser que seu compromisso seja renovado automaticamente ao final do período, marque a caixa de seleção Renovar automaticamente.

  9. No painel Resumo, revise os detalhes do compromisso e as possíveis limitações de cota.

  10. Para concluir a compra do compromisso, faça o seguinte:

    1. Role até a parte de baixo da página.

    2. Leia a seção Divulgações, que contém informações sobre taxas, qualificação para descontos e termos e condições.

    3. Para confirmar sua aceitação do preço de permanência e dos termos específicos do serviço, marque a caixa de seleção.

    4. Clique em Comprar.

gcloud

Para criar suas reservas anexadas ao comprar seu compromisso, execute o comando gcloud compute commitments create.

Se você quer anexar uma única reserva ou várias, execute o comando de uma das seguintes maneiras:

  • Para criar e anexar uma única reserva ao seu compromisso, defina as propriedades da reserva anexada executando o seguinte comando:

    gcloud compute commitments create COMMITMENT_NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --plan PLAN \
        --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 criar e anexar várias reservas ao compromisso, defina as propriedades da reserva usando um arquivo YAML e especifique esse arquivo YAML no comando usado para adquirir seu compromisso. Outra opção é usar essa abordagem de arquivo YAML para criar e anexar uma única reserva ao compromisso. Para criar suas reservas anexadas usando essa abordagem, faça o seguinte:

    1. Crie o arquivo YAML no diretório atual e especifique a configuração para cada reserva anexada. Por exemplo, para especificar a configuração de uma reserva compartilhada compartilhada com dois projetos que especificam GPUs, dois discos SSD locais e uma plataforma mínima de CPU, inclua o texto a seguir no arquivo 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 a configuração de várias reservas, repita essas propriedades para cada uma delas. É possível anexar ao compromisso quantas reservas você quiser.

    2. Use o comando gcloud compute commitments create e inclua a sinalização --reservation-from-file:

      gcloud compute commitments create COMMITMENT_NAME \
          --region REGION \
          --project PROJECT_ID \
          --plan PLAN \
          --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
      

Substitua o seguinte pelas propriedades correspondentes do compromisso e das reservas anexadas:

Compromisso

  • COMMITMENT_NAME: o nome do compromisso.
  • REGION: a região em que a chave está localizada.
  • PROJECT_ID: o ID do projeto em que você quer comprar o compromisso com as reservas anexadas.
  • PLAN: o plano de compromisso, que determina sua taxa de CUD e a duração predefinida do período. Especifique 12-month ou 36-month.
  • CUSTOM_END_DATE: opcional. Uma data de término personalizada para seu período, que precisa ser formatada como YYYY-MM-DD. Por exemplo, para especificar uma data de término personalizada de 20 de abril de 2024, formate como 2024-04-20.
  • COMMITMENT_TYPE: o tipo de compromisso. Os tipos de compromisso a seguir oferecem opções para GPUs, discos SSD locais ou ambos:

    • Para tipos de máquina A2, use accelerator-optimized
    • Para tipos de máquina A3 Edge e A3 High, use accelerator-optimized-a3
    • Para tipos de máquina A3 Mega, use accelerator-optimized-a3-mega
    • Para tipos de máquina G2, use graphics-optimized
    • Para tipos de máquinas G4, use graphics-optimized-g4
    • Para tipos de máquinas C2, use compute-optimized
    • Para tipos de máquina C2D, use compute-optimized-c2d
    • Para tipos de máquina C3, use compute-optimized-c3
    • Para tipos de máquina C3D, use compute-optimized-c3d
    • Para tipos de máquinas N1, use general-purpose
    • Para tipos de máquina C4, use general-purpose-c4
    • Para tipos de máquina C4A, use general-purpose-c4a
    • Para tipos de máquina C4D, use general-purpose-c4d
    • Para tipos de máquinas N2, use general-purpose-n2
    • Para tipos de máquinas N2D, use general-purpose-n2d
    • Para tipos de máquina M1, use memory-optimized
    • Para tipos de máquina M3, use memory-optimized-m3
    • Para tipos de máquina Z3, use storage-optimized-z3

  • COMMITTED_VCPUS: o número de vCPUs que você quer no compromisso. O número deve ser um número inteiro positivo.

  • COMMITTED_MEMORY: a quantidade, em MB ou GB, de memória que você quer no seu compromisso. Por exemplo, 10GB ou 10240MB. Na CLI gcloud, é possível especificar a memória em MB ou GB. Se você não especificar uma unidade, o Compute Engine usará GB como padrão. No entanto, quando você usa REST, o Compute Engine usa MB como a unidade padrão.

  • COMMITTED_LOCAL_SSD: a quantidade de armazenamento SSD local, que precisa ser especificada em GB. Por exemplo, 375GB.

  • COMMITTED_ACCELERATOR_COUNT: o número de GPUs que você quer no compromisso.

  • COMMITTED_ACCELERATOR_TYPE: o tipo de GPU que você quer no compromisso.

  • YAML_FILE: o caminho para o arquivo YAML que contém a configuração das reservas anexadas.

Reservas anexadas

  • RESERVATION_NAME: o nome da reserva anexada.
  • RESERVATION_ZONE: a zona da reserva anexada.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE: especifica se a reserva anexada é uma reserva especificamente segmentada (true ou false). Para mais informações sobre reservas segmentadas especificamente, consulte Como funcionam as reservas.
  • NUMBER_OF_RESERVED_VMS: o número de VMs que você quer reservar na reserva anexada.
  • RESERVED_MACHINE_TYPE: o tipo de máquina que você quer para as VMs na reserva anexada.

    • Para tipos de máquina predefinidos, use o formato MACHINE_FAMILY-standard-CPUS. Por exemplo, n2-standard-4.
    • Para tipos de máquina personalizados, use o formato MACHINE_FAMILY-custom-CPUS-MEMORY. Por exemplo, n2-custom-4-5120. Para ver uma lista completa de restrições, leia as especificações dos tipos de máquina personalizados.

      Substitua:

      • MACHINE_FAMILY: a família dos tipos de máquina. Por exemplo, especifique n2 para VMs N2.
      • CPUS: o número de vCPUs.
      • MEMORY: a memória total para uma VM reservada. A memória precisa ser um múltiplo de 256 MB e ser fornecida em MB. Por exemplo, para criar uma VM N2 com 4 vCPUs e 5 GB de memória, que é 5.120 MB, use n2-custom-4-5120.
  • RESERVED_ACCELERATOR_COUNT: o número de GPUs que você quer adicionar, por VM, na reserva anexada.

  • RESERVED_ACCELERATOR_TYPE: o tipo de acelerador que você quer adicionar à reserva anexada.

  • INTERFACE_1 e INTERFACE_2: o tipo de interface que você quer que os discos SSD locais de cada VM reservada usem. As opções válidas são: scsi e nvme. Repita o parâmetro local_ssd para cada disco SSD local que você quer adicionar. É possível especificar até 24 discos SSD locais.

  • OWNER_PROJECT_ID: o ID do projeto em que você quer adquirir o compromisso com a reserva anexada. Especifique esse campo se quiser compartilhar sua reserva de substituição em vários projetos de consumidor.

  • MINIMUM_CPU_PLATFORM: a plataforma de CPU mínima que você quer especificar para a reserva anexada.

  • SHARE_SETTING: o tipo de compartilhamento da reserva atual. Especifique esse campo com o valor como projects se você quiser compartilhar sua reserva de substituição em vários projetos de consumidores. Exclua esse campo se quiser criar uma reserva de projeto único.

  • CONSUMER_PROJECT_ID_1 e CONSUMER_PROJECT_ID_2: os IDs dos projetos que podem compartilhar essa reserva. Por exemplo project-1 e project-2. É possível incluir até 100 projetos pessoais. Esses projetos precisam estar na mesma organização do projeto de proprietário. Não inclua o ID do projeto em que você cria essa reserva, já que esse projeto tem permissão para consumir essa reserva por padrão. Exclua esses campos se quiser criar uma reserva de projeto único.

O Compute Engine criará o compromisso com as reservas anexadas criadas somente se houver recursos suficientes do tipo de máquina especificado na zona de destino e cota suficiente no momento da solicitação. Se a compra foi bem-sucedida, você verá uma mensagem semelhante a esta:

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

Exemplos

Os cenários e comandos de exemplo a seguir mostram como comprar um compromisso para GPUs, discos SSD locais ou ambos criando novas reservas para anexar a esse compromisso.

Exemplo 1: comprar um compromisso para GPUs anexando uma única reserva nova

Suponha que você queira comprar um compromisso de um ano para recursos de uso geral (ou de GPU) na região us-central1 com 96 vCPUs, 624 GB de memória e 4 GPUs NVIDIA V100. Você quer criar uma reserva reservation-01 na zona us-central1-a que reserve duas VMs n1-standard-32 (cada uma com 32 vCPUs, 120 GB de memória e duas GPUs NVIDIA V100) para consumir esses recursos comprometidos. Para comprar este exemplo de compromisso com a reserva anexada, execute o seguinte comando: Na CLI gcloud, é possível especificar a memória em MB ou GB. Se você não especificar uma unidade, o Compute Engine usará GB como a unidade padrão. No entanto, quando você usa REST, o Compute Engine usa MB como a unidade padrão.

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

Exemplo 2: comprar um compromisso para GPUs sem especificar vCPUs ou memória

Para se comprometer e reservar GPUs e discos SSD locais sem se comprometer com vCPUs ou memória, especifique 0 como o valor para as quantidades de vCPUs e memória. Por exemplo, suponha que você queira comprar um compromisso de um ano para recursos de GPU na região us-west2 com 0 vCPUs, 0 GB de memória e uma GPU NVIDIA P4. Você também quer criar uma reserva reservation-01 na zona us-west2-b que reserve uma VM n1-standard-2 (com 2 vCPUs, 7, 5 GB de memória e uma GPU NVIDIA P4) para anexar ao compromisso. Para comprar este exemplo de compromisso com a reserva anexada, execute o comando a seguir. Na CLI gcloud, é possível especificar a memória em MB ou GB. Se você não especificar uma unidade, o Compute Engine usará GB como a unidade padrão. No entanto, quando você usa REST, o Compute Engine usa MB como a unidade padrão.

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

Exemplo 3: adquirir um compromisso para GPUs e discos SSD locais anexando várias novas reservas

Suponha que você queira comprar um compromisso de um ano para recursos de uso geral (ou recursos de GPU e SSD local) na região us-central1. Você quer o compromisso para 96 vCPUs, 624 GB de memória, uma GPU NVIDIA V100 e 750 GB de armazenamento SSD local (equivalente a dois discos SSD locais). Você também quer criar e anexar duas reservas na zona us-central1-a. Na primeira reserva, res-01, você quer reservar uma VM n1-standard-2 (com 2 vCPUs, 7, 5 GB de memória e uma GPU NVIDIA V100). Essa é uma reserva visada. Na segunda reserva, res-02, você quer reservar uma VM n1-standard-8 (com 8 vCPUs e 30 GB de memória) e anexar dois discos SSD locais (uma interface SCSI e uma interface NVMe).

Para comprar este exemplo de compromisso com as reservas anexadas, primeiro crie o arquivo YAML com as propriedades de ambas as reservas da seguinte maneira:

- 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

Depois de criar o arquivo YAML, para concluir a compra do compromisso com as reservas anexadas, execute o comando a seguir. O valor do armazenamento do SSD local precisa ser especificado em GB (por exemplo, 375GB). Para a CLI gcloud, é possível especificar a memória em MB ou GB. Se você não especificar uma unidade, o Compute Engine usará GB como a unidade padrão. No entanto, ao usar REST, o Compute Engine usa MB como a unidade padrão para memória.

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 criar as reservas anexadas ao comprar seu compromisso, faça uma solicitação POST ao método regionCommitments.insert. Na solicitação, inclua o campo reservations para definir uma lista de todas as novas reservas que você quer criar e anexar. É possível anexar quantas reservas você quiser ao compromisso.

  • Para criar sua nova reserva especificando manualmente todas as propriedades da VM, inclua o campo instanceProperties e exclua o campo sourceInstanceTemplate.

    Por exemplo, para especificar manualmente a configuração de uma reserva compartilhada com dois projetos que especificam GPUs, dois discos SSD locais e uma plataforma mínima de CPU, faça a seguinte solicitação:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "PLAN",
    "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 criar a nova reserva especificando um modelo de instância, inclua o campo sourceInstanceTemplate e exclua o campo instanceProperties.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "PLAN",
    "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"
            }
          }
        }
      }
    ]
    }
    
    

Substitua o seguinte pelas propriedades correspondentes do compromisso e das reservas anexadas:

Compromisso

  • COMMITMENT_NAME: o nome do compromisso.
  • REGION: a região em que a chave está localizada.
  • PROJECT_ID: o ID do projeto em que você quer comprar o compromisso com as reservas anexadas.
  • PLAN: o plano de compromisso, que determina sua taxa de CUD e a duração predefinida do período. Especifique TWELVE_MONTH ou THIRTY_SIX_MONTH.
  • COMMITMENT_TYPE: o tipo de compromisso. Os tipos de compromisso a seguir oferecem opções para GPUs, discos SSD locais ou ambos:

    • Para tipos de máquina A2, use ACCELERATOR_OPTIMIZED
    • Para tipos de máquina A3 Edge e A3 High, use ACCELERATOR_OPTIMIZED_A3
    • Para tipos de máquina A3 Mega, use ACCELERATOR_OPTIMIZED_A3_MEGA
    • Para tipos de máquina G2, use GRAPHICS_OPTIMIZED
    • Para tipos de máquinas G4, use GRAPHICS_OPTIMIZED_G4
    • Para tipos de máquinas C2, use COMPUTE_OPTIMIZED
    • Para tipos de máquina C2D, use COMPUTE_OPTIMIZED_C2D
    • Para tipos de máquina C3, use COMPUTE_OPTIMIZED_C3
    • Para tipos de máquina C3D, use COMPUTE_OPTIMIZED_C3D
    • Para tipos de máquinas N1, use GENERAL_PURPOSE
    • Para tipos de máquina C4, use GENERAL_PURPOSE_C4
    • Para tipos de máquina C4A, use GENERAL_PURPOSE_C4A
    • Para tipos de máquina C4D, use GENERAL_PURPOSE_C4D
    • Para tipos de máquinas N2, use GENERAL_PURPOSE_N2
    • Para tipos de máquinas N2D, use GENERAL_PURPOSE_N2D
    • Para tipos de máquina M1, use MEMORY_OPTIMIZED
    • Para tipos de máquina M3, use MEMORY_OPTIMIZED_M3
    • Para tipos de máquina Z3, use STORAGE_OPTIMIZED_Z3

  • COMMITTED_VCPUS: o número de vCPUs que você quer no compromisso. O número deve ser um número inteiro positivo.

  • COMMITTED_MEMORY: a quantidade de memória que você quer no compromisso. Para REST, o Compute Engine usa MB como a unidade padrão. No entanto, quando você usa a CLI gcloud, o Compute Engine usa GB como unidade padrão.

  • COMMITTED_LOCAL_SSD: a quantidade, em GB, de armazenamento SSD local que você quer no seu compromisso.

  • COMMITTED_ACCELERATOR_COUNT: o número de GPUs que você quer no compromisso.

  • COMMITTED_ACCELERATOR_TYPE: o tipo de GPU que você quer no compromisso.

  • CUSTOM_END_DATE: opcional. Uma data de término personalizada para seu período, que precisa ser formatada como YYYY-MM-DD. Por exemplo, para especificar uma data de término personalizada de 20 de abril de 2024, formate como 2024-04-20.

  • END_TIME: 0h no horário do Pacífico dos EUA e do Canadá (UTC-8 ou UTC-7), como um ajuste do Tempo Universal Coordenado (UTC). Especifique esse valor apenas se você tiver especificado uma data de término personalizada para sua permanência. Especifique um dos seguintes valores:

    • Durante o horário de verão: 07:00:00
    • Em outros horários: 08:00:00

Reservas anexadas

  • RESERVATION_NAME: o nome da reserva anexada.
  • RESERVATION_ZONE: a zona da reserva anexada.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE: especifica se a reserva anexada é uma reserva especificamente segmentada (true ou false). Para mais informações sobre reservas segmentadas especificamente, consulte Como funcionam as reservas.
  • NUMBER_OF_RESERVED_VMS: o número de VMs que você quer reservar na reserva anexada.
  • RESERVED_MACHINE_TYPE: o tipo de máquina que você quer para as VMs na reserva anexada.

    • Para tipos de máquina predefinidos, use o formato MACHINE_FAMILY-standard-CPUS. Por exemplo, n2-standard-4.
    • Para tipos de máquina personalizados, use o formato MACHINE_FAMILY-custom-CPUS-MEMORY. Por exemplo, n2-custom-4-5120. Para ver uma lista completa de restrições, leia as especificações dos tipos de máquina personalizados.

      Substitua:

      • MACHINE_FAMILY: a família dos tipos de máquina. Por exemplo, especifique n2 para VMs N2.
      • CPUS: o número de vCPUs.
      • MEMORY: a memória total para uma VM reservada. A memória precisa ser um múltiplo de 256 MB e ser fornecida em MB. Por exemplo, para criar uma VM N2 com 4 vCPUs e 5 GB de memória, que é 5.120 MB, use n2-custom-4-5120.
  • RESERVED_ACCELERATOR_COUNT: o número de GPUs que você quer adicionar, por VM, na reserva anexada.

  • RESERVED_ACCELERATOR_TYPE: o tipo de acelerador que você quer adicionar à reserva anexada.

  • INTERFACE_1 e INTERFACE_2: o tipo de interface que você quer que os discos SSD locais de cada VM reservada usem. As opções válidas são: scsi e nvme. Repita o parâmetro localSsds para cada disco SSD local que você quer adicionar. É possível especificar até 24 discos SSD locais.

  • MINIMUM_CPU_PLATFORM: a plataforma de CPU mínima que você quer especificar para a reserva anexada.

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância que você quer usar para criar a reserva anexada.

  • SHARE_SETTING: o tipo de compartilhamento da reserva atual. Especifique esse campo com o valor como SPECIFIC_PROJECTS se você quiser compartilhar sua reserva de substituição em vários projetos de consumidores. Exclua este campo se quiser criar uma reserva de projeto único.

  • CONSUMER_PROJECT_ID_1 e CONSUMER_PROJECT_ID_2: os IDs dos projetos que podem compartilhar essa reserva. Por exemplo project-1 e project-2. É possível incluir até 100 projetos pessoais. Esses projetos precisam estar na mesma organização do projeto de proprietário. Não inclua o ID do projeto em que você cria essa reserva, já que esse projeto tem permissão para consumir essa reserva por padrão. Exclua esses campos se quiser criar uma reserva de projeto único.

O Compute Engine criará o compromisso com as reservas anexadas criadas somente se houver recursos suficientes do tipo de máquina especificado na zona de destino e cota suficiente no momento da solicitação. Se a compra foi bem-sucedida, o Computee Engine retornará um status 200 para a solicitação da API REST.

Exemplos

Os cenários e comandos de exemplo a seguir mostram como comprar um compromisso para GPUs, discos SSD locais ou ambos criando novas reservas para anexar a esse compromisso.

Exemplo 1: comprar um compromisso para GPUs anexando uma única reserva nova

Suponha que você queira comprar um compromisso de um ano para recursos de uso geral na região us-central1 que inclua 96 vCPUs, 624 GB de memória (equivalente a 638.976 MB) e quatro GPUs NVIDIA V100. Você quer criar uma reserva reservation-01 na zona us-central1-a que reserve duas VMs n1-standard-8 (cada VM com oito vCPUs, 30 GB de memória e duas GPUs NVIDIA V100) para anexar a esse compromisso. Para comprar este exemplo de compromisso com a reserva anexada, faça a seguinte solicitação POST: Para REST, é necessário especificar a memória em MB. No entanto, quando você usa a CLI gcloud, o Compute Engine usa GB como unidade padrão.

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"
    }
  ]
}

Exemplo 2: comprar um compromisso para GPUs sem especificar vCPUs ou memória

Para se comprometer e reservar GPUs e discos SSD locais sem se comprometer com vCPUs ou memória, especifique 0 como o valor para as quantidades de vCPUs e memória. Por exemplo, suponha que você queira comprar um compromisso de um ano apenas para recursos de GPU na região us-west2, com 0 vCPUs, 0 MB de memória e 4 GPUs NVIDIA P4. Você também quer criar uma nova reserva reservation-01 na zona us-west2-b que reserve uma VM n1-standard-2 (com duas vCPUs, 7, 5 GB de memória e quatro GPUs NVIDIA P4) para anexar ao compromisso. Para comprar este exemplo de compromisso com a reserva anexada, faça a seguinte solicitação POST. Para REST, especifique a memória em MB. No entanto, quando você usa a CLI gcloud, o Compute Engine usa GB como unidade padrão.

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"
    }
  ]
}

Exemplo 3: adquirir um compromisso para GPUs e discos SSD locais anexando várias novas reservas

Suponha que você queira comprar um compromisso de um ano para recursos de uso geral na região us-central1, com 96 vCPUs, 624 GB de memória (equivalente a 638.976 MB), uma GPU NVIDIA V100 e 750 GB de armazenamento SSD local. Você também quer criar e anexar duas reservas na zona us-central1-a. Na primeira reserva, res-01, você quer reservar 1 VM n1-standard-2 (com 2 vCPUs, 7, 5 GB de memória e 1 GPU NVIDIA V100). Essa é uma reserva visada. Na segunda reserva, res-02, você quer reservar uma VM n1-standard-8 (com 8 vCPUs e 30 GB de memória) e anexar dois discos SSD locais (uma interface SCSI e uma interface NVMe). Para comprar este exemplo de compromisso com as reservas anexadas, faça a seguinte solicitação POST. O valor de armazenamento do SSD local precisa ser especificado em GB. Para a memória, especifique o valor em MB. No entanto, quando você usa a CLI gcloud, o Compute Engine usa GB como a unidade padrão para memória.

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": "750",
      "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"
    }
  ]
}

Substituir reservas anexadas a compromissos

Para compromissos que exigem reservas anexadas, não é possível excluir, redimensionar ou modificar diretamente as reservas anexadas. No entanto, é possível modificar os tipos de máquinas e o número de VMs especificados na reserva anexada. Para fazer essas modificações, substitua a reserva anexada atual do compromisso por uma nova.

Para compromissos em que as reservas anexadas são opcionais, é possível excluir ou redimensionar as reservas anexadas diretamente. Para mais informações sobre as diferenças de comportamento, consulte Comportamento da reserva após a compra do compromisso.

A reserva de substituição será sempre uma reserva recém-criada. Para substituir uma reserva anexada, especifique as propriedades da reserva que você quer usar como substituição. Em seguida, o Compute Engine cria automaticamente uma nova reserva com essas propriedades e a usa para substituir a reserva anexada. Não é possível usar uma reserva atual para substituir a reserva anexada.

Alterações permitidas

Quando você substitui uma reserva anexada existente de um compromisso por uma nova, solicite qualquer uma das alterações a seguir:

  • É possível reservar VMs de um tipo de máquina diferente. No entanto, ainda é necessário reservar VMs da mesma série de máquinas para continuar recebendo CUDs com relação aos recursos reservados.
  • É possível alterar o número de VMs que você quer reservar.
  • É possível alterar a quantidade de GPUs e discos SSD locais anexados por VM, desde que a quantidade total de GPUs reservadas e discos SSD locais permaneça a mesma.
  • É possível especificar suas reservas substituídas como de projeto único (também chamadas de local no console Google Cloud ) ou compartilhadas.

Requisitos

Quando você substitui a reserva anexada ao compromisso por uma nova, sua solicitação precisa atender a todos os requisitos a seguir:

  • Só é possível substituir uma reserva anexada por vez por apenas uma nova. Para substituir uma reserva anexada, remova simultaneamente uma reserva anexada atual definindo a contagem de VMs como 0 e defina uma nova reserva anexada que você quer substituí-la.
  • A nova reserva precisa estar no mesmo projeto que o compromisso.
  • A nova reserva precisa estar na mesma zona que a reserva removida.
  • A quantidade e os tipos de GPUs na nova reserva precisam corresponder à reserva removida.
  • Os números e tipos de discos SSD locais especificados na nova reserva precisam corresponder à reserva removida.
  • É possível alterar até 100 VMs por solicitação. Para fazer uma mudança que envolva mais de 100 VMs, divida-a em várias solicitações menores ou entre em contato com o Google Cloud suporte.

Sua solicitação para substituir uma reserva também depende da disponibilidade de capacidade nesse momento. Se a capacidade para uma solicitação não estiver disponível, ela falhará e retornará um erro de disponibilidade de recurso, que você pode tentar resolver modificando ou adiando a solicitação. Para mais informações, consulte a documentação para resolver problemas de disponibilidade de recursos.

Se a solicitação para substituir uma reserva anexada falhar, essa reserva e os recursos reservados atuais não serão afetados. Para preservar sua capacidade, aguarde até que a solicitação de substituição de uma reserva seja bem-sucedida para fazer alterações nas VMs.

Etapas para substituir uma reserva anexada

É possível substituir as reservas de um compromisso usando a CLI do Google Cloud ou a REST.

gcloud

Para substituir reservas anexadas a compromissos, faça o seguinte:

  1. Crie um arquivo YAML no diretório atual com as configurações das seguintes reservas anexadas:

    O conteúdo do arquivo YAML é semelhante ao seguinte:

    - 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
    
    

    Substitua o seguinte pelas propriedades correspondentes das reservas atuais e de substituição:

    Reserva atual

    Para a reserva atual, todas as propriedades a seguir precisam ser exatamente as mesmas de quando você visualizou a reserva. Omita os campos de qualquer propriedade que ainda não tenha a reserva atual.

    • CURRENT_RESERVATION_NAME: o nome da reserva anexada atual.
    • CURRENT_RESERVATION_ZONE: a zona da reserva anexada atual.
    • CURRENT_RESERVATION_MACHINE_TYPE: o tipo de máquina da reserva anexada atual.
    • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS: o número de GPUs reservadas na reserva anexada atual.
    • CURRENT_RESERVATION_ACCELERATOR_TYPE: o tipo de acelerador reservado na reserva anexada atual.
    • CURRENT_RESERVATION_INTERFACE_1 e CURRENT_RESERVATION_INTERFACE_2: o tipo de interface que os SSDs locais de cada VM reservada usam na reserva anexada atual. As opções válidas são: scsi e nvme. Cada SSD local tem 375 GB. Repita o parâmetro local_ssd para todos os discos SSD locais reservados.
    • CURRENT_RESERVATION_PROJECT_ID: o ID do projeto atual que tem o compromisso e a reserva anexada. Especifique este campo se a reserva anexada atual for compartilhada entre vários projetos de consumidor.
    • CURRENT_RESERVATION_SHARE_SETTING: o tipo de compartilhamento da reserva atual. Especifique esse campo com o valor projects se a reserva anexada atual for compartilhada entre vários projetos de consumidor.
    • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 e CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2: os IDs dos projetos com os quais você compartilha a reserva anexada atual. Por exemplo, project-1 e project-2.

    Reserva de substituição

    Para a reserva de substituição, defina as propriedades a seguir conforme necessário. Verifique se você atende a todos os requisitos ao especificar essas propriedades. Omita todos os campos extras que você não queira usar.

    • REPLACEMENT_RESERVATION_NAME: o nome da nova reserva de substituição.
    • REPLACEMENT_RESERVATION_ZONE: a zona da nova reserva de substituição.
    • REPLACEMENT_RESERVATION_NUMBER_OF_VMS: o número de VMs que você quer reservar na nova reserva de substituição.
    • REPLACEMENT_RESERVATION_MACHINE_TYPE: o tipo de máquina que você quer para as VMs na nova reserva de substituição.

      • Para tipos de máquina predefinidos, use o formato MACHINE_FAMILY-standard-CPUS. Por exemplo, n2-standard-4.
      • Para tipos de máquina personalizados, use o formato MACHINE_FAMILY-custom-CPUS-MEMORY. Por exemplo, n2-custom-4-5120. Para ver uma lista completa de restrições, leia as especificações dos tipos de máquina personalizados.

      Substitua:

      • MACHINE_FAMILY: a família dos tipos de máquina. Por exemplo, especifique n2 para VMs N2.
      • CPUS: o número de vCPUs.
      • MEMORY: a memória total para uma VM reservada. A memória precisa ser um múltiplo de 256 MB e ser fornecida em MB. Por exemplo, para criar uma VM N2 com 4 vCPUs e 5 GB de memória, que é 5.120 MB, use n2-custom-4-5120.
    • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS: o número de GPUs que você quer adicionar, por instância de VM, na reserva de substituição.

    • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE: o tipo de acelerador que você quer adicionar à reserva de substituição;

    • REPLACEMENT_RESERVATION_INTERFACE_1 e REPLACEMENT_RESERVATION_INTERFACE_2: o tipo de interface que você quer que os discos SSD locais de cada VM reservada usem. As opções válidas são: scsi e nvme. Cada SSD local tem 375 GB. Repita o parâmetro local_ssd para cada disco SSD local que você quer adicionar. É possível especificar até 24 discos SSD locais.

    • REPLACEMENT_RESERVATION_PROJECT_ID: o ID do projeto atual que tem o compromisso e a reserva anexada. Especifique esse campo se quiser compartilhar sua reserva de substituição em vários projetos de consumidor.

    • REPLACEMENT_RESERVATION_SHARE_SETTING: o tipo de compartilhamento da reserva de substituição. Especifique esse campo com o valor como projects se você quiser compartilhar sua reserva de substituição em vários projetos de consumidores.

    • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 e REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2: os IDs dos projetos que podem compartilhar essa reserva. Por exemplo project-1,project-2 de dois minutos. É possível incluir até 100 projetos pessoais. Esses projetos precisam estar na mesma organização do projeto de proprietário. Não inclua o REPLACEMENT_RESERVATION_PROJECT_ID, que já tem permissão para consumir essa reserva por padrão.

  2. Execute o comando gcloud beta compute commitments update-reservations e especifique o caminho para o arquivo YAML usando a sinalização --reservations-from-file.

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

    Substitua:

    • COMMITMENT_NAME: o nome do compromisso com a reserva anexada.
    • PROJECT_ID: o ID do projeto do compromisso com a reserva anexada.
    • REGION: a região em que a chave está localizada.
    • YAML_FILE: o caminho para o arquivo YAML que contém a configuração das reservas atuais e de substituição.

Exemplo de substituição de uma reserva anexada a um compromisso

Para demonstrar isso, esta seção mostra um exemplo de compromisso com uma reserva anexada e como substituir a reserva anexada de exemplo.

Exemplo de compromisso com uma reserva anexada

Por exemplo, suponha que você queira atualizar as reservas anexadas para o compromisso my-commitment-with-reservations, que foram compradas usando o seguinte 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

Neste exemplo, suponha que, quando este comando foi executado, one-reservation.yaml era um arquivo no diretório atual com o conteúdo a seguir, que define uma reserva anexada chamada 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 compromisso my-commitment-with-reservations e a reserva anexada res-1 resultaram nos seguintes recursos reservados e comprometidos:

Tipo de recurso Recursos comprometidos
(my-commitment-with-reservations)
Recursos na reserva anexada atualmente
(res-1)
vCPUs e memória 16 vCPUs e 60 GB 16 vCPUs e 60 GB
(4 VMs n1-standard-4 reservadas)*
GPUs 4 GPUs P100 4 GPUs P100
(1 GPU P100 por VM, para 4 VMs)*
Discos SSD locais 3.000 GB ou 8 discos SSD locais 3.000 GB ou 8 discos SSD locais
(750 GB ou 2 discos SSD locais por VM, para 4 VMs)*

* Especificamente, o exemplo de reserva anexada, res-1, reserva 4 n1-standard-4 VMs, cada uma com uma GPU P100 e dois SSDs locais de scsi tipo de interface. O tipo de máquina n1-standard-4 usa 4 vCPUs e 15 GB para cada VM.

Substitua o exemplo de reserva anexada

Suponha que você queira substituir a reserva anexada res-1 por uma nova reserva anexada res-2 e alterar os recursos reservados para o seguinte:

Tipo de recurso Recursos comprometidos
(my-commitment-with-reservations)
Recursos na reserva anexada atualmente
(res-1)
Recursos na reserva anexada de substituição
(res-2)
vCPUs e memória 16 vCPUs e 60 GB 16 vCPUs e 60 GB
(4 VMs n1-standard-4 reservadas)*
16 vCPUs e 60 GB
(2 VMs reservadas e compartilhadas n1-standard-8)
GPUs 4 GPUs P100 4 GPUs P100
(1 GPU P100 por VM, para 4 VMs)*
4 GPUs P100
(2 GPUs P100 por VM, para 2 VMs)
Discos SSD locais 3.000 GB ou 8 discos SSD locais 3.000 GB ou 8 discos SSD locais
(750 GB ou 2 discos SSD locais por VM, para 4 VMs)*
3.000 GB ou 8 discos SSD locais
(1.500 GB ou 4 discos SSD locais por VM, para 2 VMs)*

* Especificamente, o exemplo de reserva anexada, res-1, reserva 4 n1-standard-4 VMs, cada uma com uma GPU P100 e dois SSDs locais de scsi tipo de interface. O tipo de máquina n1-standard-4 usa 4 vCPUs e 15 GB para cada VM.

Especificamente, a reserva anexada de substituição define res-2, que reserva 2 VMs n1-standard-8, cada uma com uma GPU P100 e quatro SSDs locais de scsi tipo de interface. Além disso, res-2 é compartilhado com dois outros projetos, project-1 e project-2, e pertence ao projeto atual, my-project. O tipo de máquina n1-standard-8 usa 8 vCPUs e 30 GB para cada VM.

Para substituir a reserva anexada res-1 por res-2 para o compromisso my-commitment-with-reservations, faça o seguinte:

  1. Crie um arquivo chamado two-reservations.yaml no diretório atual em que ele contém o seguinte conteúdo:

    - 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. Execute este comando:

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

REST

Para substituir reservas anexadas a compromissos, faça uma solicitação POST usando o 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"
          }
         }
      }
    }
  ]
}

Substitua o seguinte pelas propriedades correspondentes do compromisso, da reserva atual e da reserva de substituição:

Compromisso

  • COMMITMENT_NAME: o nome do compromisso com a reserva anexada.
  • PROJECT_ID: o ID do projeto do compromisso com a reserva anexada. Este também é o ID do projeto das reservas atuais e anexadas.
  • COMMITMENT_ZONE: a zona do compromisso com a reserva anexada.

Reserva atual

Para a reserva atual, todas as propriedades a seguir precisam ser exatamente as mesmas de quando você visualizou a reserva. Omita os campos de qualquer propriedade que ainda não tenha a reserva atual.

  • CURRENT_RESERVATION_NAME: o nome da reserva anexada atual.
  • CURRENT_RESERVATION_ZONE: a zona da reserva anexada atual.
  • CURRENT_RESERVATION_MACHINE_TYPE: o tipo de máquina da reserva anexada atual.
  • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS: o número de GPUs reservadas na reserva anexada atual.
  • CURRENT_RESERVATION_ACCELERATOR_TYPE: o tipo de acelerador reservado na reserva anexada atual.
  • CURRENT_RESERVATION_INTERFACE_1 e CURRENT_RESERVATION_INTERFACE_2: o tipo de interface que os SSDs locais de cada VM reservada usam na reserva anexada atual. As opções válidas são: scsi e nvme. Cada SSD local tem 375 GB. Repita o parâmetro localSsds para todos os discos SSD locais reservados.
  • CURRENT_RESERVATION_SHARE_SETTING: o tipo de compartilhamento da reserva atual. Especifique esse parâmetro com o valor projects se a reserva anexada atual for compartilhada entre vários projetos de consumidor.
  • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 e CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2: os IDs dos projetos com os quais você compartilha a reserva anexada atual. Por exemplo, project-1 e project-2.

Reserva de substituição

Para a reserva de substituição, defina as propriedades a seguir conforme necessário. Verifique se você atende a todos os requisitos ao especificar essas propriedades. Omita todos os campos extras que você não queira usar.

  • REPLACEMENT_RESERVATION_NAME: o nome da nova reserva de substituição.
  • REPLACEMENT_RESERVATION_ZONE: a zona da nova reserva de substituição.
  • REPLACEMENT_RESERVATION_NUMBER_OF_VMS: o número de VMs que você quer reservar na nova reserva de substituição.
  • REPLACEMENT_RESERVATION_MACHINE_TYPE: o tipo de máquina que você quer para as VMs na nova reserva de substituição.

    • Para tipos de máquina predefinidos, use o formato MACHINE_FAMILY-standard-CPUS. Por exemplo, n2-standard-4.
    • Para tipos de máquina personalizados, use o formato MACHINE_FAMILY-custom-CPUS-MEMORY. Por exemplo, n2-custom-4-5120. Para ver uma lista completa de restrições, leia as especificações dos tipos de máquina personalizados.

    Substitua:

    • MACHINE_FAMILY: a família dos tipos de máquina. Por exemplo, especifique n2 para VMs N2.
    • CPUS: o número de vCPUs.
    • MEMORY: a memória total para uma instância reservada. A memória precisa ser um múltiplo de 256 MB e ser fornecida em MB. Por exemplo, para criar uma VM N2 com 4 vCPUs e 5 GB de memória, que é 5.120 MB, use n2-custom-4-5120.
  • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS: o número de GPUs que você quer adicionar, por instância de VM, na reserva de substituição.

  • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE: o tipo de acelerador que você quer adicionar à reserva de substituição.

  • REPLACEMENT_RESERVATION_INTERFACE_1 e REPLACEMENT_RESERVATION_INTERFACE_2: o tipo de interface que você quer que os discos SSD locais de cada VM reservada usem. As opções válidas são: scsi e nvme. Cada SSD local tem 375 GB. Repita o parâmetro localSsds para cada disco SSD local que você quer adicionar. É possível especificar até 24 discos SSD locais.

  • REPLACEMENT_RESERVATION_SHARE_SETTING: o tipo de compartilhamento da reserva de substituição. Especifique esse parâmetro com o valor como projects se você quiser compartilhar sua reserva de substituição em vários projetos de consumidores.

  • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 e REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2: os IDs dos projetos que podem compartilhar essa reserva. Por exemplo project-1,project-2 de dois minutos. É possível incluir até 100 projetos pessoais. Esses projetos precisam estar na mesma organização do projeto de proprietário. Não inclua o PROJECT_ID, que já tem permissão para consumir essa reserva por padrão.

Exemplo de substituição de uma reserva anexada a um compromisso

Para demonstrar isso, esta seção mostra um exemplo de compromisso com uma reserva anexada e como substituir a reserva anexada de exemplo.

Exemplo de compromisso com uma reserva anexada

Por exemplo, suponha que você queira substituir a reserva anexada res-1 pelo compromisso my-commitment-with-reservations, que foi comprada fazendo a seguinte solicitação 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 compromisso my-commitment-with-reservations e a reserva anexada res-1 resultaram nos seguintes recursos reservados e comprometidos:

Tipo de recurso Recursos comprometidos
(my-commitment-with-reservations)
Recursos na reserva anexada atualmente
(res-1)
vCPUs e memória 16 vCPUs e 60 GB 16 vCPUs e 60 GB
(4 VMs n1-standard-4 reservadas)*
GPUs 4 GPUs P100 4 GPUs P100
(1 GPU P100 por VM, para 4 VMs)*
Discos SSD locais 3.000 GB ou 8 discos SSD locais 3.000 GB ou 8 discos SSD locais
(750 GB ou 2 discos SSD locais por VM, para 4 VMs)*

* Especificamente, o exemplo de reserva anexada, res-1, reserva 4 n1-standard-4 VMs, cada uma com uma GPU P100 e dois SSDs locais de scsi tipo de interface. O tipo de máquina n1-standard-4 usa 4 vCPUs e 15 GB para cada VM.

Substitua o exemplo de reserva anexada

Suponha que você queira substituir a reserva anexada res-1 por uma nova reserva anexada res-2 e alterar os recursos reservados para o seguinte:

Tipo de recurso Recursos comprometidos
(my-commitment-with-reservations)
Recursos na reserva anexada atualmente
(res-1)
Recursos na reserva anexada de substituição
(res-2)
vCPUs e memória 16 vCPUs e 60 GB 16 vCPUs e 60 GB
(4 VMs n1-standard-4 reservadas)*
16 vCPUs e 60 GB
(2 VMs reservadas e compartilhadas n1-standard-8)
GPUs 4 GPUs P100 4 GPUs P100
(1 GPU P100 por VM, para 4 VMs)*
4 GPUs P100
(2 GPUs P100 por VM, para 2 VMs)
Discos SSD locais 3.000 GB ou 8 discos SSD locais 3.000 GB ou 8 discos SSD locais
(750 GB ou 2 discos SSD locais por VM, para 4 VMs)*
3.000 GB ou 8 discos SSD locais
(1.500 GB ou 4 discos SSD locais por VM, para 2 VMs)*

* Especificamente, o exemplo de reserva anexada, res-1, reserva 4 n1-standard-4 VMs, cada uma com uma GPU P100 e dois SSDs locais de scsi tipo de interface. O tipo de máquina n1-standard-4 usa 4 vCPUs e 15 GB para cada VM.

Especificamente, a reserva anexada de substituição define res-2, que reserva 2 VMs n1-standard-8, cada uma com uma GPU P100 e quatro SSDs locais de scsi tipo de interface. Além disso, res-2 é compartilhado com dois outros projetos, project-1 e project-2, e pertence ao projeto atual, my-project. O tipo de máquina n1-standard-8 usa 8 vCPUs e 30 GB para cada VM.

Para substituir a reserva anexada res-1 por res-2 para o compromisso my-commitment-with-reservations, faça a seguinte solicitação POST usando regionCommitments.updateReservations método:

  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"
      }
    ]
  }

A seguir