Résoudre les problèmes de consommation de réservations


Cette page explique comment résoudre les problèmes liés à la consommation de réservations de ressources zonales Compute Engine.

Difficultés à suivre la consommation des réservations

Problème : Bien que vous puissiez afficher les détails d'une réservation ou surveiller la consommation des réservations pour afficher le nombre de VM réservées utilisées et surveiller les modifications apportées à ce nombre au fil du temps, vous ne pouvez pas afficher directement les VM qui consomment une réservation.

Résolution : Si vous pouvez créer une VM qui cible une réservation spécifique, la VM utilise la réservation spécifiée dans la propriété d'affinité (reservationAffinity) de la VM. Sinon, la création de la VM échoue, car les propriétés ne correspondent pas ou aucune ressource réservée n'est disponible.

Vous pouvez également créer une VM qui cible une réservation spécifique afin de vérifier qu'elle est correctement configurée pour consommer automatiquement une réservation correspondante, puis créer la VM pour consommer toute réservation correspondante.

Problèmes pour les VM qui ne consomment pas de réservations

Si une VM ne peut pas consommer de réservation, cela peut être dû à un ou plusieurs des problèmes suivants :

  • Les propriétés de la VM ne correspondent pas aux propriétés de la réservation.
  • L'affinité de réservation de la VM est incorrecte.
  • La réservation est déjà entièrement utilisée par d'autres VM correspondantes.
  • Le quota de la ressource est dépassé

Cette section explique comment identifier chacun de ces problèmes, comment les résoudre et comment vérifier la consommation des réservations.

Propriétés de VM non concordantes

Problème : une VM ne peut pas consommer une réservation avec différentes propriétés de VM.

Pour identifier ce problème, sélectionnez l'une des méthodes suivantes :

  • Affichez les détails de la réservation et de la VM, puis vérifiez manuellement que leurs propriétés de VM correspondent :

    1. Affichez les détails de la réservation que vous souhaitez que la VM utilise à l'aide de la commande gcloud compute reservations describe :

      gcloud compute reservations describe RESERVATION_NAME --zone=ZONE
      

      Remplacez les éléments suivants :

      • RESERVATION_NAME est le nom d'une réservation.
      • ZONE est la zone où se trouve la réservation.

      Conservez ce résultat.

    2. Affichez les détails de la VM qui doit utiliser la commande gcloud compute instances describe de la réservation.

      gcloud compute instances describe VM_NAME
      

      VM_NAME est le nom de la VM.

      Conservez ce résultat.

    3. À l'aide des résultats de description de VM et de description de réservation, vérifiez que les propriétés suivantes correspondent :

      • project
        • Si la réservation est partagée avec plusieurs projets (si la propriété shareType est définie sur SPECIFIC_PROJECTS), le projet de la VM peut correspondre au projet où se trouve la réservation ou à l'un des projets répertoriés dans shareSettings.
      • zone
      • machineType
      • guestAccelerators.acceleratorType
      • guestAccelerators.acceleratorCount
      • minCpuPlatform
        • Votre VM et votre réservation doivent avoir exactement la même configuration minCpuPlatform. Si vous spécifiez la valeur minCpuPlatform pour l'une d'entre elles, elles doivent toutes deux avoir la même valeur pour cette propriété. Sinon, la réservation et la VM doivent omettre la propriété. Par exemple, la définition de minCpuPlatform sur "Intel Broadwell" lors de la création d'une VM ne correspond pas à la valeur minCpuPlatform de "Automatic" dans une réservation.
      • localSsds.interface
        • La réservation et la VM doivent avoir le même nombre de disques SSD locaux, avec une propriété localSsds.interface correspondante pour chaque disque SSD local.
      • resourcePolicies*

      * Uniquement si une réservation spécifie une stratégie d'emplacement compact.

  • Créez une VM qui cible une réservation spécifique, qui renvoie une erreur si les propriétés ne correspondent pas. Pour obtenir des instructions, consultez la section Vérifier la consommation des réservations.

Résolution : Mettez à jour les propriétés de VM non concordantes en effectuant l'une des opérations suivantes :

Pour vérifier si la VM consomme désormais la réservation, consultez la section Vérifier la consommation de la réservation.

Si les propriétés de la VM et de la réservation correspondent, mais que la VM ne consomme pas la réservation, passez à la section suivante.

Les VM ne respectent pas une stratégie d'emplacement

Problème: une VM tente de consommer une réservation sans spécifier la stratégie d'emplacement compact de la réservation.

Solution: Si une réservation à projet unique spécifie une stratégie d'emplacement compact, une VM doit spécifier exactement la même stratégie d'emplacement compact pour consommer la réservation. Sinon, la VM ne peut pas consommer la réservation.

Pour vous assurer qu'une VM consomme une réservation qui spécifie une stratégie d'emplacement compact, essayez l'une des solutions suivantes:

Les VM spécifient une stratégie d'emplacement compact différente

Problème Une VM tente de consommer une réservation, mais la stratégie d'emplacement compact spécifiée dans la VM et dans la réservation ne sont pas identiques.

Solution: Si une réservation à projet unique spécifie une stratégie d'emplacement compact, une VM doit spécifier exactement la même stratégie d'emplacement compact pour consommer la réservation. Sinon, la VM ne peut pas consommer la réservation.

Pour résoudre ce problème, essayez l'une des solutions suivantes :

L'affinité de réservation de la VM est incorrecte

Problème : l'affinité de réservation de la VM est mal configurée. L'affinité de réservation d'une VM contrôle les réservations que cette VM peut consommer. Pour vérifier l'affinité de réservation de votre VM, procédez comme suit :

  1. Affichez les détails de la réservation que vous souhaitez que la VM utilise à l'aide de la commande gcloud compute reservations describe.

      gcloud compute reservations describe RESERVATION_NAME --zone=ZONE

    Remplacez les éléments suivants :

    • RESERVATION_NAME est le nom d'une réservation.
    • ZONE est la zone où se trouve la réservation.

    Dans le résultat, recherchez la valeur du champ specificReservationRequired, true ou false.

  2. Affichez les détails de la VM à l'aide de la commande gcloud compute instances describe.

       gcloud compute instances describe VM_NAME

    VM_NAME est le nom de la VM.

    Dans le résultat, recherchez le champ reservationAffinity, qui ressemble à ceci :

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

Solution : mettez à jour la propriété reservationAffinity de la VM afin qu'elle soit compatible avec le champ specificReservationRequired de la réservation en utilisant l'une des configurations acceptées suivantes :

  1. Si le champ specificReservationRequired de la réservation est true, la propriété reservationAffinity de la VM doit correspondre aux éléments suivants :

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

    RESERVATION_NAME est le nom de la réservation.

  2. Si le champ specificReservationRequired de la réservation est false, la propriété reservationAffinity de la VM doit correspondre aux éléments suivants :

    ...
      reservationAffinity:
        consumeReservationType: ANY_RESERVATION
      ...

Vous devez redémarrer la VM pour effectuer la mise à jour. Après la mise à jour, pour vérifier si la VM consomme la réservation, consultez la section Vérifier la consommation de la réservation.

Si l'affinité de réservation de la VM est correctement configurée, mais que la VM ne consomme aucune réservation, passez à la section suivante.

La réservation est déjà entièrement utilisée

Problème : le nombre de VM actuellement utilisées pour cette réservation correspond au nombre total de VM réservées pour la réservation.

Pour identifier ce problème, affichez les détails de la réservation et vérifiez que le nombre de VM actuellement utilisées pour cette réservation est inférieur au nombre total de VM réservées pour la réservation.

Résolution : Vous pouvez augmenter le nombre de VM disponibles à consommer pour la réservation en effectuant l'une des opérations suivantes :

Pour vérifier si la VM consomme désormais la réservation, consultez la section Vérifier la consommation de la réservation.

Si la réservation n'est pas entièrement consommée, mais que la VM ne consomme pas la réservation, vous pouvez étudier le problème en créant une VM qui cible une réservation spécifique, qui renvoie une erreur si la consommation échoue. Pour en savoir plus, passez à la section suivante.

Le nombre de VM n'est pas restauré après l'arrêt ou la suppression d'une VM

Problème : Si vous arrêtez, suspendez ou supprimez une VM qui consomme une réservation, l'opération doit se terminer avant que la VM ne soit plus comptabilisée dans la réservation et que les ressources précédemment consommées soient à nouveau disponibles pour la consommation.

Résolution : Attendez quelques minutes que l'opération d'arrêt, de suspension ou de suppression des VM se termine. Ensuite, pour vérifier que les VM arrêtées, suspendues ou supprimées ne sont plus comptabilisées dans la réservation, vérifiez le nombre total de VM consommées dans la réservation en utilisant l'une des méthodes suivantes :

  • Recommandé : Surveillez la réservation et recherchez une modification dans les mesures de la réservation.

  • Affichez les détails de la réservation et vérifiez si la valeur du champ inUseCount a diminué. Si sa valeur n'a pas diminué, une ou plusieurs VM ont commencé à consommer la réservation pendant la durée de l'opération d'arrêt, de suspension ou de suppression.

VM qui consomment involontairement des réservations

Problème : Lorsque vous créez des réservations utilisées automatiquement (par défaut), les VM peuvent consommer involontairement ces réservations.

Résolution : Vous pouvez aider à contrôler quelles VM consomment des réservations en procédant comme suit :

Quota de ressources dépassé

Problème: une réservation partagée n'est pas utilisée, car un quota a été dépassé pour une ressource particulière.

Les réservations partagées présentent une exigence supplémentaire en ce qui concerne les quotas. Le projet propriétaire doit disposer d'un quota suffisant pour deux fois les ressources réservées aux projets clients afin d'utiliser les ressources réservées.

Solution: Demandez un quota supplémentaire pour la ressource à utiliser.