Fehlerbehebung bei der Nutzung von Reservierungen


Auf dieser Seite wird beschrieben, wie Sie Probleme bei der Nutzung von Reservierungen von zonalen Compute Engine-Ressourcen beheben.

Schwierige Erfassung der Nutzung von Reservierungen

Problem: Sie können zwar die Details einer Reservierung aufrufen oder den Verbrauch von Reservierungen überwachen, um zu sehen, wie viele ihrer reservierten VMs genutzt werden, und um Änderungen dieses Werts im Laufe der Zeit zu beobachten. Sie können aber nicht direkt sehen, welche VMs eine Reservierung nutzen.

Lösung: Wenn Sie eine VM erfolgreich erstellen können, die auf eine bestimmte Reservierung abzielt, nutzt die VM die im Affinitätsattribut angegebene Reservierung (reservationAffinity) der VM. Andernfalls schlägt das Erstellen der VM fehl, da die Attribute nicht übereinstimmen oder es keine verfügbaren reservierten Ressourcen gibt.

Sie können auch eine VM erstellen, die auf eine bestimmte Reservierung abzielt, um zu testen, ob sie richtig konfiguriert ist, um automatisch eine übereinstimmende Reservierung zu nutzen. Und dann erstellen Sie die VM, die jede übereinstimmende Reservierung nutzen soll.

Probleme für VMs, die keine Reservierungen nutzen

Wenn eine VM eine Reservierung nicht nutzen kann, kann dies an einem oder mehreren der folgenden Probleme liegen:

  • Die Attribute der VM stimmen nicht mit den Attributen der Reservierung überein.
  • Die Reservierungsaffinität der VM ist falsch.
  • Die Reservierung wird bereits von anderen übereinstimmenden VMs vollständig genutzt.
  • Das Kontingent für die Ressource wurde überschritten

In diesem Abschnitt wird beschrieben, wie Sie jedes dieser Probleme identifizieren, die einzelnen Probleme beheben und die Reservierungsnutzung prüfen.

Nicht übereinstimmende VM-Attribute

Problem: Eine VM kann keine Reservierung mit unterschiedlichen VM-Attributen nutzen.

Wählen Sie eine der folgenden Methoden, um dieses Problem zu identifizieren:

  • Rufen Sie die Details der Reservierung und der VM auf und prüfen Sie manuell, ob ihre VM-Attribute übereinstimmen:

    1. Mit dem Befehl gcloud compute reservations describe können Sie die Details der Reservierung aufrufen, die die VM nutzen soll:

      gcloud compute reservations describe RESERVATION_NAME --zone=ZONE
      

      Dabei gilt:

      • RESERVATION_NAME ist der Name einer Reservierung.
      • ZONE ist die Zone, in der sich die Reservierung befindet.

      Halten Sie diese Ausgabe verfügbar.

    2. Rufen Sie die Details der VM auf, die den Befehl gcloud compute instances describe der Reservierung nutzen soll.

      gcloud compute instances describe VM_NAME
      

      Dabei ist VM_NAME der Name der VM.

      Halten Sie diese Ausgabe verfügbar.

    3. Prüfen Sie anhand der Ausgaben der VM-Beschreibung und der Reservierungsbeschreibung, ob die folgenden Attribute übereinstimmen:

      • project
        • Wenn die Reservierung mit mehreren Projekten geteilt wird (wenn für die Reservierung das Attribut shareType auf SPECIFIC_PROJECTS gesetzt ist), kann das Projekt der VM entweder mit dem Projekt übereinstimmen, in dem sich die Reservierung befindet, oder mit einem der unter shareSettings aufgeführten Projekte übereinstimmen.
      • zone
      • machineType
      • guestAccelerators.acceleratorType
      • guestAccelerators.acceleratorCount
      • minCpuPlatform
        • Ihre VM und die Reservierung müssen genau die gleiche minCpuPlatform-Konfiguration haben. Wenn Sie für einen der beiden Werte einen minCpuPlatform-Wert angeben, müssen beide den gleichen Wert für dieses Attribut haben. Andernfalls sollten sowohl die Reservierung als auch die VM das Attribut weglassen. Wenn Sie beispielsweise beim Erstellen einer VM minCpuPlatform auf "Intel Broadwell" festlegen, entspricht der Wert minCpuPlatform in einer Reservierung nicht dem Wert "Automatic".
      • localSsds.interface
        • Die Reservierung und die VM müssen die gleiche Anzahl lokaler SSDs mit einem übereinstimmenden localSsds.interface-Attribut für jede lokale SSD haben.
      • resourcePolicies*

      *Nur, wenn eine Reservierung eine Richtlinie für kompakte Platzierung angibt.

  • Erstellen Sie eine VM, die auf eine bestimmte Reservierung abzielt. Diese gibt einen Fehler zurück, wenn die Attribute nicht übereinstimmen. Eine Anleitung finden Sie unter Nutzung von Reservierungen prüfen.

Lösung: Aktualisieren Sie alle nicht übereinstimmenden VM-Attribute mit einer der folgenden Methoden:

Informationen zum Prüfen, ob die VM die Reservierung nutzt, finden Sie unter Nutzung von Reservierungen prüfen.

Wenn die Attribute der VM und der Reservierung übereinstimmen, aber die VM die Reservierung nicht verwendet, fahren Sie mit dem nächsten Abschnitt fort.

VMs verpassen eine Platzierungsrichtlinie

Problem: Eine VM versucht, eine Reservierung zu nutzen, ohne die Richtlinie für kompakte Platzierung der Reservierung anzugeben.

Lösung: Wenn eine Reservierung für ein einzelnes Projekt eine Richtlinie für kompakte Platzierung angibt, muss eine VM genau dieselbe Richtlinie für kompakte Platzierung angeben, um die Reservierung zu nutzen. Andernfalls kann die VM die Reservierung nicht nutzen.

Damit eine VM eine Reservierung nutzt, die eine Richtlinie für kompakte Platzierung angibt, führen Sie einen der folgenden Schritte aus:

VMs geben eine andere Richtlinie für kompakte Platzierung an

Problem: Eine VM versucht, eine Reservierung zu nutzen, aber die in der VM angegebene und die in der Reservierung angegebene Richtlinie für kompakte Platzierung stimmt nicht überein.

Lösung: Wenn eine Reservierung für ein einzelnes Projekt eine Richtlinie für kompakte Platzierung angibt, muss eine VM genau dieselbe Richtlinie für kompakte Platzierung angeben, um die Reservierung zu nutzen. Andernfalls kann die VM die Reservierung nicht nutzen.

Führen Sie einen der folgenden Schritte aus, um dieses Problem zu beheben:

Die Reservierungsaffinität der VM ist falsch

Problem: Die Reservierungsaffinität der VM ist falsch konfiguriert. Die Reservierungsaffinität einer VM steuert die Reservierungen, die eine VM nutzen kann. So prüfen Sie die Reservierungsaffinität Ihrer VM:

  1. Rufen Sie die Details der Reservierung auf, die die VM mit dem Befehl gcloud compute reservations describe nutzen soll.

      gcloud compute reservations describe RESERVATION_NAME --zone=ZONE

    Dabei gilt:

    • RESERVATION_NAME ist der Name einer Reservierung.
    • ZONE ist die Zone, in der sich die Reservierung befindet.

    Suchen Sie in der Ausgabe den Wert des Felds specificReservationRequired, entweder true oder false.

  2. Mit dem Befehl gcloud compute instances describe können Sie die Details der VM aufrufen.

       gcloud compute instances describe VM_NAME

    Dabei ist VM_NAME der Name der VM.

    Suchen Sie in der Ausgabe das Feld reservationAffinity, das in etwa so aussieht:

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

Lösung: Aktualisieren Sie das Attribut reservationAffinity der VM, damit es mit dem Feld specificReservationRequired der Reservierung kompatibel ist. Verwenden Sie dazu eine der folgenden akzeptierten Konfigurationen:

  1. Wenn das Feld specificReservationRequired der Reservierung true lautet, muss das reservationAffinity-Attribut der VM so übereinstimmen:

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

    RESERVATION_NAME ist dabei der Name der Reservierung.

  2. Wenn das Feld specificReservationRequired der Reservierung false lautet, muss das reservationAffinity-Attribut der VM so übereinstimmen:

    ...
      reservationAffinity:
        consumeReservationType: ANY_RESERVATION
      ...

Sie müssen die VM neu starten, um das Update durchzuführen. Wie Sie nach dem Update prüfen, ob die VM die Reservierung nutzt, erfahren Sie unter Nutzung von Reservierungen prüfen.

Wenn die Reservierungsaffinität der VM korrekt konfiguriert ist, aber die VM keine Reservierungen nutzt, fahren Sie mit dem nächsten Abschnitt fort.

Reservierung ist bereits vollständig genutzt

Problem: Die Anzahl der derzeit für diese Reservierung verwendeten VMs entspricht der Gesamtzahl der reservierten VMs der Reservierung.

Rufen Sie die Details der Reservierung auf und prüfen Sie, ob die Anzahl der VMs, die für diese Reservierung verwendet werden, unter der Gesamtzahl der reservierten VMs liegt.

Lösung: Sie können die Anzahl der für die Reservierung verfügbaren VMs erhöhen. Führen Sie dazu einen der folgenden Schritte aus:

Informationen zum Prüfen, ob die VM die Reservierung nutzt, finden Sie unter Nutzung von Reservierungen prüfen.

Wenn die Reservierung nicht vollständig genutzt wird, aber die VM die Reservierung nicht nutzt, können Sie das Problem weiter beheben. Erstellen Sie dazu eine VM, die auf eine bestimmte Reservierung abzielt, und einen Fehler zurückgibt, wenn die Nutzung fehlschlägt. Weitere Informationen erhalten Sie im nächsten Abschnitt.

Die Anzahl der VMs wird nach dem Beenden oder Löschen einer VM nicht wiederhergestellt

Problem: Wenn Sie eine VM beenden, anhalten oder löschen, die eine Reservierung nutzt, muss der Vorgang abgeschlossen sein, bevor die VM nicht mehr auf die Reservierung angerechnet und die zuvor genutzte stehen Ressourcen wieder zur Verfügung.

Lösung: Warten Sie einige Minuten, bis der Vorgang zum Anhalten, Anhalten oder Löschen auf den VMs abgeschlossen ist. Um dann zu bestätigen, dass die angehaltenen, gesperrten oder gelöschten VMs nicht mehr auf die Reservierung angerechnet werden, prüfen Sie die Gesamtzahl der genutzten VMs in der Reservierung mit einer der folgenden Methoden:

  • Empfohlen: Beobachten Sie die Reservierung und achten Sie auf Änderungen der Messungen der Reservierung.

  • Rufen Sie die Details der Reservierung auf und prüfen Sie, ob der Wert des Felds inUseCount gesunken ist. Wenn der Wert nicht abnimmt, haben eine oder mehrere VMs begonnen, die Reservierung zu nutzen, während der Vorgang zum Anhalten, Sperren oder Löschen abgeschlossen wurde.

VMs, die unbeabsichtigt Reservierungen nutzen

Problem: Wenn Sie Reservierungen erstellen, die automatisch genutzt werden (Standardeinstellung), nutzen VMs möglicherweise diese Reservierungen unbeabsichtigt.

Lösung: Sie steuern, welche VMs Reservierungen genutzt werden:

Ressourcenkontingent überschritten

Problem: Eine freigegebene Reservierung wird nicht verwendet, da für eine bestimmte Ressource ein Kontingent überschritten wurde.

Für freigegebene Reservierungen gelten zusätzliche Anforderungen für das Kontingent. Das Inhaberprojekt muss ein ausreichendes Kontingent für doppelte Ressourcen haben, die für Nutzerprojekte reserviert sind, um die reservierten Ressourcen zu verwenden.

Lösung: Fordern Sie zusätzliches Kontingent für die zu verwendende Ressource an.