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.

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:

Cota de recursos excedida

Problema: uma reserva compartilhada não é usada porque uma cota foi excedida para um recurso específico.

As reservas compartilhadas têm um requisito adicional em relação à cota. O projeto do proprietário precisa ter cota suficiente para o dobro dos recursos reservados para os projetos do consumidor para usar os recursos reservados.

Resolução:solicite uma cota extra para o recurso a ser usado.