Solução de problemas de consumo de reserva


Nesta página, você verá como resolver problemas com o consumo de reservas de recursos zonais do Compute Engine

Dificuldade em acompanhar o consumo de reserva

Problema: é possível consultar os detalhes de uma reserva ou monitorar o consumo de reservas para conferir quantas VMs reservadas estão sendo consumidas e monitorar alterações nesse número ao longo do tempo. Não é possível conferir diretamente quais VMs estão consumindo uma reserva.

Resolução: se for possível criar uma VM que visa uma reserva específica, a VM consumirá a reserva especificada na propriedade de afinidade (reservationAffinity) da VM. Caso contrário, a criação da VM falhará porque as propriedades não correspondem ou não há recursos reservados disponíveis.

Também é possível criar uma VM que visa uma reserva específica para testar se ela está configurada corretamente para consumir automaticamente uma reserva correspondente e, em seguida, criar a VM para consumir qualquer reserva correspondente.

Problemas de VMs que não consomem reservas

Se uma VM não conseguir consumir uma reserva, talvez seja por um ou mais dos seguintes problemas:

  • As propriedades da VM não correspondem às propriedades da reserva.
  • A afinidade de reserva da VM está incorreta.
  • A reserva já é consumida totalmente por outras VMs correspondentes.
  • A cota do recurso foi excedida

Nesta seção, você verá como identificar cada um desses problemas, como resolver cada um e como verificar o consumo de reserva.

Propriedades de VM incompatíveis

Problema: uma VM não pode consumir uma reserva com propriedades de VM diferentes.

Para identificar esse problema, selecione um dos seguintes métodos:

  • Visualize os detalhes da reserva e da VM e verifique manualmente se as propriedades da VM correspondem:

    1. Confira os detalhes da reserva que você quer que a VM consuma usando o comando gcloud compute reservations describe:

      gcloud compute reservations describe RESERVATION_NAME --zone=ZONE
      

      Substitua:

      • RESERVATION_NAME é o nome de uma reserva.
      • ZONE é a zona em que a reserva está localizada.

      Mantenha o resultado disponível.

    2. Visualize os detalhes da VM que você quer que consuma a reserva usando o comando gcloud compute instances describe.

      gcloud compute instances describe VM_NAME
      

      em que VM_NAME é o nome da VM.

      Mantenha o resultado disponível.

    3. Usando os resultados de descrição de VM e descrição de reserva, verifique se as seguintes propriedades correspondem:

      • project
        • Se a reserva for compartilhada com vários projetos (se a reserva tiver a propriedade shareType definida como SPECIFIC_PROJECTS), o projeto da VM poderá corresponder ao projeto em que a reserva está localizada ou corresponder a qualquer um dos projetos listados em shareSettings.
      • zone
      • machineType
      • guestAccelerators.acceleratorType
      • guestAccelerators.acceleratorCount
      • minCpuPlatform
        • A VM e a reserva precisam ter exatamente a mesma configuração de minCpuPlatform. Se você especificar um valor minCpuPlatform para qualquer uma delas, ambas precisarão ter o mesmo valor para a propriedade. Caso contrário, a reserva e a VM devem omitir a propriedade. Por exemplo, definir minCpuPlatform como "Intel Broadwell" ao criar uma VM não corresponderá ao valor minCpuPlatform de "Automatic" em uma reserva.
      • localSsds.interface
        • A reserva e a VM precisam ter o mesmo número de SSDs locais com uma propriedade localSsds.interface correspondente para cada SSD local.
      • resourcePolicies*

      *Apenas se uma reserva especificar uma política de posição compacta.

  • Crie uma VM que segmente uma reserva específica, o que retornará um erro se as propriedades não corresponderem. Para instruções, consulte Verificar o consumo de reserva.

Resolução: atualize as propriedades de VM incompatíveis seguindo um destes procedimentos:

Para verificar se a VM está consumindo a reserva, consulte Verificar o consumo de reserva.

Se as propriedades da VM e da reserva forem correspondentes, mas a VM não estiver consumindo a reserva, vá para a próxima seção.

As VMs não cumprem uma política de posicionamento

Problema: uma VM está tentando consumir uma reserva sem especificar a política de posicionamento compacto da reserva.

Resolução: se uma reserva de projeto único especificar uma política de posicionamento compacto, uma VM precisará especificar exatamente a mesma política de veiculação compacto para consumir a reserva. Caso contrário, a VM não poderá consumir a reserva.

Para garantir que uma VM consuma uma reserva que especifique uma política de posicionamento compacto, tente uma das seguintes opções:

As VMs especificam uma política de posicionamento compacto diferente

Problema: uma VM está tentando consumir uma reserva, mas a política de posicionamento compacto especificada na VM e na reserva não é correspondente.

Resolução: se uma reserva de projeto único especificar uma política de posicionamento compacto, uma VM precisará especificar exatamente a mesma política de veiculação compacto para consumir a reserva. Caso contrário, a VM não poderá consumir a reserva.

Para resolver esse problema, tente uma das seguintes opções:

Afinidade de reserva da VM incorreta

Problema: a afinidade de reserva da VM está configurada incorretamente. A afinidade de reserva de uma VM controla as reservas que uma VM pode consumir. Para verificar a afinidade da reserva da VM, faça o seguinte:

  1. Confira os detalhes da reserva que você quer que a VM consuma com o comando gcloud compute reservations describe.

      gcloud compute reservations describe RESERVATION_NAME --zone=ZONE

    Substitua:

    • RESERVATION_NAME é o nome de uma reserva.
    • ZONE é a zona em que a reserva está localizada.

    No resultado, encontre o valor do campo specificReservationRequired, true ou false.

  2. Confira os detalhes da VM usando o comando gcloud compute instances describe.

       gcloud compute instances describe VM_NAME

    em que VM_NAME é o nome da VM.

    Na saída, encontre o campo reservationAffinity, que é semelhante a este:

    ...
       reservationAffinity:
         consumeReservationType: RESERVATION_AFFINITY
         key: compute.googleapis.com/reservation-name
         values:
         - RESERVATION_NAME
       ...

Resolução: atualize a propriedade reservationAffinity da VM para ser compatível com o campo specificReservationRequired da reserva usando uma das seguintes configurações aceitas:

  1. Se o campo specificReservationRequired da reserva for true, a propriedade reservationAffinity da VM precisará corresponder ao seguinte:

    ...
      reservationAffinity:
        consumeReservationType: SPECIFIC_RESERVATION
        key: compute.googleapis.com/reservation-name
        values:
        - RESERVATION_NAME
      ...

    em que RESERVATION_NAME é o nome da reserva.

  2. Se o campo specificReservationRequired da reserva for false, a propriedade reservationAffinity da VM precisará corresponder ao seguinte:

    ...
      reservationAffinity:
        consumeReservationType: ANY_RESERVATION
      ...

É necessário reiniciar a VM para fazer a atualização. Após a atualização, para verificar se a VM está consumindo a reserva, consulte Verificar o consumo de reserva.

Se a afinidade de reserva da VM estiver configurada corretamente, mas a VM não estiver consumindo nenhuma reserva, vá para a próxima seção.

A reserva já foi totalmente consumida

Problema: o número de VMs atualmente em uso para essa reserva corresponde ao número total de VMs reservadas.

Para identificar esse problema, visualize os detalhes da reserva e verifique se o número de VMs em uso atualmente para essa reserva é menor que o número total de VMs reservadas.

Resolução: é possível aumentar o número de VMs disponíveis para consumir na reserva seguindo um destes procedimentos:

Para verificar se a VM está consumindo a reserva, consulte Verificar o consumo de reserva.

Se a reserva não estiver totalmente consumida, mas a VM não estiver consumindo a reserva, será possível solucionar ainda mais o problema criando uma VM que segmente uma reserva específica, o que retornará um erro se o consumo falhar. Para saber mais, prossiga para a próxima seção.

Cota de recursos excedida para reservas compartilhadas

Problema: uma VM não está consumindo uma reserva compartilhada porque seu projeto não tem cota suficiente para os recursos que você está tentando consumir.

Resolução: as reservas compartilhadas têm requisitos de cota adicionais. Se você precisar aumentar a cota no projeto para consumir os recursos reservados, veja Solicitar uma cota maior na documentação de cotas do Cloud.

Contagem de VMs não restaurada após parar ou excluir uma VM

Problema: se você interromper, suspender ou excluir uma VM que está consumindo uma reserva, a operação precisará ser concluída antes que a VM não seja mais contabilizada na reserva e os recursos consumidos anteriormente estejam disponíveis novamente para consumo.

Resolução: aguarde alguns minutos para que a operação de interrupção, suspensão ou exclusão nas VMs seja concluída. Em seguida, para verificar se as VMs interrompidas, suspensas ou excluídas não contam mais na reserva, verifique o número total de VMs consumidas na reserva usando um dos seguintes métodos:

  • Recomendado: monitore a reserva e procure uma alteração nas medidas dela.

  • Visualize os detalhes da reserva e verifique se o valor do campo inUseCount diminuiu. Se o valor não diminuiu, uma ou mais VMs começaram a consumir a reserva enquanto a operação de interrupção, suspensão ou exclusão estava sendo concluída.

VMs que consomem reservas intencionalmente

Problema: quando você cria reservas consumidas automaticamente (padrão), as VMs podem consumir essas reservas intencionalmente.

Resolução: você pode ajudar a controlar quais VMs consomem reservas fazendo o seguinte: