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:
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.
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.
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
aufSPECIFIC_PROJECTS
gesetzt ist), kann das Projekt der VM entweder mit dem Projekt übereinstimmen, in dem sich die Reservierung befindet, oder mit einem der untershareSettings
aufgeführten Projekte übereinstimmen.
- Wenn die Reservierung mit mehreren Projekten geteilt wird (wenn für die Reservierung das Attribut
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 einenminCpuPlatform
-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 VMminCpuPlatform
auf"Intel Broadwell"
festlegen, entspricht der WertminCpuPlatform
in einer Reservierung nicht dem Wert"Automatic"
.
- Ihre VM und die Reservierung müssen genau die gleiche
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.
- Die Reservierung und die VM müssen die gleiche Anzahl lokaler SSDs mit einem übereinstimmenden
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:
- Aktualisieren Sie die VM so, dass sie den Attributen der Reservierung entspricht.
- Löschen Sie die Reservierung und erstellen Sie eine neue Reservierung, die den Attributen der VM entspricht.
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:
Wenn Sie eine Reservierung für ein einzelnes Projekt durch direkte Angabe von Attributen erstellt haben, wenden Sie die Richtlinie für kompakte Platzierung beim Erstellen von VMs an.
Wenn Sie durch Angabe einer Instanzvorlage eine Reservierung für ein einzelnes Projekt erstellt haben, wählen Sie eine der folgenden Methoden aus:
Empfohlen: Verwenden Sie die Instanzvorlage zur Reservierung zum Erstellen von VMs. Diese Aktion wendet automatisch dieselbe Richtlinie für kompakte Platzierung, die in der Reservierung angegeben ist, auf jede neu erstellte VM an.
Wenden Sie die Richtlinie für kompakte Platzierung beim Erstellen von VMs an. Bei dieser Methode müssen Sie manuell dafür sorgen, dass die Richtlinie für kompakte Platzierung und alle anderen VM-Attribute Ihrer VMs und Reservierungen genau übereinstimmen. Nicht übereinstimmende Attribute verhindern die Nutzung.
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:
Wenn Sie eine Reservierung für ein einzelnes Projekt durch direkte Angabe von Attributen erstellt haben, wenden Sie die Richtlinie für kompakte Platzierung der Reservierung beim Erstellen neuer VMs an.
Wenn Sie durch Angeben einer Instanzvorlage eine Reservierung für ein einzelnes Projekt erstellt haben, verwenden Sie dieselbe Vorlage zum Erstellen von VMs. Diese Aktion wendet automatisch dieselbe Richtlinie für kompakte Platzierungen an, die in der Reservierung für jede neu erstellte VM festgelegt wird.
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:
-
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
, entwedertrue
oderfalse
. -
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:
-
Wenn das Feld
specificReservationRequired
der Reservierungtrue
lautet, muss dasreservationAffinity
-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.
-
Wenn das Feld
specificReservationRequired
der Reservierungfalse
lautet, muss dasreservationAffinity
-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:
- Erhöhen Sie die Anzahl der VMs in der Reservierung, indem Sie die Größe der Reservierung anpassen.
- Erstellen Sie eine neue Reservierung mit denselben Attributen, wenn die Reservierung bereits die maximale Anzahl an VMs reserviert.
- Reduzieren Sie die Anzahl der anderen VMs, die die Reservierung nutzen. Weitere Informationen finden Sie unter VMs, die unbeabsichtigt Reservierungen nutzen.
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:
- Verwenden Sie bei Bedarf VMs, die keine Reservierungen nutzen können.
- Verwenden Sie Reservierungen, die nur dann genutzt werden, wenn sie explizit ausgewählt werden, anstatt automatisch genutzte Reservierungen.
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.