Erstellen Sie Reservierungen für VM-Instanzen in einer bestimmten Zone mithilfe benutzerdefinierter oder vordefinierter Maschinentypen mit oder ohne zusätzlichen GPUs oder lokalen SSDs. Dadurch sorgen Sie dafür, dass Ressourcen für Ihre Workloads verfügbar sind, wenn Sie sie benötigen. Wenn Sie eine Reservierung erstellen, sind die reservierten Ressourcen ab dem Zeitpunkt der Erstellung für Sie kostenpflichtig, sie stehen aber Ihrem Projekt anschließend für unbegrenzte Zeit zur Verfügung, bis die Reservierung gelöscht wird.
Verwenden Sie Reservierungen, um sicherzustellen, dass Ihr Projekt über Ressourcen für eine künftige steigende Nachfrage, einschließlich geplanter oder ungeplanter Spitzen, verfügt – für die Migration zahlreicher VMs, für die Sicherung und Notfallwiederherstellung oder für geplantes Wachstum und Zwischenspeicher.
Löschen Sie die Reservierung, wenn Sie diese nicht mehr benötigen, um weitere Gebühren zu vermeiden. Da Reservierungen wie normale VMs Ressourcen verbrauchen, wird jede Reservierung auf der Grundlage bestehender On-Demand-Preise berechnet, die Rabatte für kontinuierliche Nutzung umfassen. Dabei können auch Rabatte für zugesicherte Nutzung geltend gemacht werden.
Vorbereitung
- Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten:
- Installieren Sie das gcloud-Befehlszeilentool oder aktualisieren Sie es auf die neueste Version.
- Legen Sie eine Standardregion und -zone fest.
- Wenn Sie die API-Beispiele in dieser Anleitung verwenden möchten, richten Sie den API-Zugang ein.
Vorteile
Reservierungen bieten folgende Vorteile:
- Maschinen sind immer verfügbar, auch wenn Sie sie nicht sofort verwenden.
Keine Zeitbeschränkungen. Sie können jederzeit eine Reservierung erstellen und sie auch jederzeit wieder löschen, um weitere Zahlungen zu vermeiden.
Rabatte. Da Reservierungen auf die gleiche Weise und zum gleichen Preis abgerechnet werden wie die Ressourcen, die reserviert werden, gelten für reservierte Ressourcen Rabatte für zugesicherte und kontinuierliche Nutzung.
Limits und Einschränkungen
Reservierungen unterliegen folgenden Limits und Einschränkungen:
- Reservierungen gelten nur für die VM-Nutzung von Compute Engine, Dataproc und Google Kubernetes Engine.
- Reservierungen gelten nicht für die folgenden Ressourcen:
- Maschinentypen
f1-micro
,g1-small
,e2-micro
,e2-small
,e2-medium
- VMs auf Abruf
- Knoten für einzelne Mandanten
- Andere Dienste, die nicht oben aufgeführt sind, z. B. Cloud SQL und Dataflow
- Maschinentypen
- Sie können pro Reservierung bis zu 1.000 VM-Instanzen reservieren.
- Sie müssen für die Ressourcen, die Sie reservieren möchten, in Ihrem Projekt ein ausreichendes Kontingent haben. Wenn die Reservierung erfolgreich ist, wird das Kontingent für diese Ressource entsprechend in Rechnung gestellt.
- Ressourcen werden zugewiesen, wenn die Reservierung erstellt wird. Wenn zum Zeitpunkt der Anfrage nicht genügend Ressourcen in der Zone vorhanden sind, scheitert die Reservierung mit einem Fehler wegen unzureichender Kapazität.
- In Kombination mit einem Rabatt für zugesicherte Nutzung:
- Für Preise mit Rabatten für zugesicherte Nutzung für GPUs und lokale SSDs muss beim Kauf der Zusicherung eine Reservierung erstellt werden.
- Wenn die Reservierung mit einer Nutzungszusicherung verbunden ist, kann die Reservierung nicht gelöscht werden.
- Sie können für K80-GPUs nur eine Zusicherung für ein Jahr kaufen.
- Reservierungen, die nicht mit einem Rabatt für zugesicherte Nutzung verbunden sind, können für einen beliebigen Zeitraum gesperrt werden. Es gilt jedoch wie bei regulären Instanzen eine Mindestgebühr von einer Minute.
Funktionsweise von Reservierungen
Erstellen Sie Reservierungen, um die benötigten VM-Instanzen zu reservieren. Nachdem Sie eine Reservierung erstellt haben, stellt die Reservierung sicher, dass diese Ressourcen immer für Sie verfügbar sind. Während der Erstellung können Sie auswählen, wie eine Reservierung verwendet werden soll. Sie können beispielsweise festlegen, dass eine Reservierung automatisch auf neue oder vorhandene Instanzen angewendet wird, die den Attributen der Reservierung entsprechen (Standardverhalten), oder festlegen, dass nur eine bestimmte VM-Instanz eine Reservierung nutzen kann.
Auf jeden Fall kann eine VM-Instanz eine Reservierung nur verwenden, wenn ihre Attribute genau mit den Attributen der Reservierung übereinstimmen. Damit eine Instanz eine Reservierung nutzen kann, muss die Instanz den folgenden Attributen der Reservierung entsprechen:
- Zone
- Maschinentyp (Kerne und Arbeitsspeicher)
- Mindest-CPU-Plattform
- GPU-Typ
- GPU-Anzahl
- Schnittstelle der lokalen SSD
- Größe der lokalen SSD
Wenn eine VM-Instanz mit den Attributen einer Reservierung übereinstimmt, wird die Reservierung, sofern nicht anders angegeben, standardmäßig für alle bestehenden und neuen VM-Instanzen automatisch genutzt. Wenn Sie beispielsweise standardmäßig eine Reservierung für 10 custom-8-10240
-Instanzen erstellen und bereits 5 übereinstimmende custom-8-10240
-Instanzen haben, nutzen diese 5 Instanzen 5 Reservierungen. Wenn Sie weitere 3 übereinstimmende Instanzen erstellen, werden weitere 3 Reservierungen verbraucht.
Sie können dieses Standardverhalten überschreiben, wenn Sie beim Erstellen von Reservierungen und Instanzen bestimmte Optionen angeben.
- Wenn Sie eine Reservierung erstellen möchten, die nicht automatisch verwendet werden soll, verwenden Sie die Option
specificReservationRequired
. Diese Reservierungen können nur verwendet werden, wenn Sie die Reservierung beim Erstellen einer Instanz ausdrücklich angeben. - Wenn eine Instanz eine Reservierung nutzen soll, verwenden Sie beim Erstellen der Instanz oder in der Instanzvorlage die Option
reservationAffinity
. Sie können festlegen, dass eine Instanz eine übereinstimmende Reservierung wahlweise automatisch nutzt oder nicht nutzt oder dass sie nur eine bestimmte Reservierung nutzt.
Wenn Sie eine Instanz beenden, anhalten oder löschen, die eine Reservierung verwendet, gilt die Reservierung für diese Instanz nicht mehr und die reservierten Ressourcen sind wieder verfügbar.
Wenn Sie eine Reservierung löschen, aber nicht die Instanzen, die die reservierten Ressourcen verwenden, bleiben die Instanzen bestehen und Sie bezahlen wie gewohnt.
Reservierung erstellen
Erstellen Sie eine Reservierung für VM-Instanzen mit der Console, dem gcloud
-Befehlszeilentool oder der API. Standardmäßig nutzen alle VM-Instanzen, deren Attribute mit denen einer Reservierung übereinstimmen, automatisch diese Reservierung. Verwenden Sie zum Erstellen einer Reservierung, die nicht automatisch genutzt werden soll, die Option specificReservationRequired
.
Sie müssen zum Reservieren von Ressourcen keine Nutzungszusicherung erstellen. Wenn Sie jedoch für GPUs oder lokale SSDs einen Rabatt für zugesicherte Nutzung wünschen, müssen Sie beim Kauf der Nutzungszusicherung eine Reservierung erstellen, die diese Ressourcen beinhaltet. Weitere Informationen finden Sie unter Reservierungen mit Rabatten für zugesicherte Nutzung kombinieren.
Console
Öffnen Sie in der Google Cloud Console die Seite Rabatte für zugesicherte Nutzung.
Klicken Sie auf Reservierung erstellen, um eine eigenständige Reservierung zu erstellen, für die keine übergeordnete Nutzungszusicherung besteht.
Benennen Sie die Reservierung.
Wenn Sie die Ressourcen dieser Reservierung nur verwenden möchten, wenn Sie übereinstimmende Instanzen erstellen, die namentlich auf diese Reservierung abzielen, wählen Sie unter Mit VM-Instanz verwenden die Option Spezifische Reservierung auswählen aus.
Wählen Sie die Region und die Zone aus, in der Sie Ressourcen reservieren möchten.
Geben Sie die Anzahl von VM-Instanzen an, die Sie reservieren möchten.
Geben Sie die Ressourcen an, die Sie für jede Instanz reservieren möchten:
- Wenn Sie eine Instanzvorlage haben, klicken Sie auf Instanzvorlage verwenden und wählen Sie in der Liste eine Instanzvorlage aus.
- Klicken Sie andernfalls auf Maschinentyp angeben.
- Wählen Sie für vordefinierte Maschinentypen aus der Liste die erforderliche Option aus.
- Klicken Sie für benutzerdefinierte Maschinentypen, einschließlich der Mindest-CPU-Plattform, oder zum Hinzufügen von GPUs auf Anpassen und treffen Sie die gewünschte Auswahl.
- Geben Sie im Feld Lokale SSD optional die Anzahl der lokalen SSD-Laufwerke ein, die Sie jeder Instanz hinzufügen möchten, und legen Sie den zu verwendenden Schnittstellentyp fest.
Klicken Sie auf Erstellen, um die Reservierung zu erstellen.
gcloud
Verwenden Sie den Befehl gcloud compute reservations create
, um eine neue Reservierung zu erstellen.
gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --min-cpu-platform MINIMUM_CPU_PLATFORM \ --vm-count=NUMBER_OF_VMS \ --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE \ --local-ssd=size=SIZE_IN_GB,interface=INTERFACE \ --require-specific-reservation \ --zone=ZONE
Ersetzen Sie Folgendes:
RESERVATION_NAME
: der Name der Reservierung, die erstellt werden soll.MACHINE_TYPE
: der Maschinentyp. Beispiel:n1-standard-2
Verwenden Sie für benutzerdefinierte Maschinentypen das Formatcustom-CPUS-MEMORY
und ersetzen Sie Folgendes:CPUS
: die Anzahl der vCPUs.MEMORY
: der gesamte Arbeitsspeicher für diese Instanz. Der Arbeitsspeicher muss ein Vielfaches von 256 MB sein und in MB angegeben werden. 5 GB Arbeitsspeicher sind beispielsweise 5.120 MB:custom-4-5120
. Eine vollständige Liste mit Einschränkungen finden Sie in den Spezifikationen für benutzerdefinierte Maschinentypen.
MINIMUM_CPU_PLATFORM
: die minimale CPU, die für die jeweilige Instanz verwendet werden soll.NUMBER_OF_VMS
: die Anzahl der VM-Instanzen, die reserviert werden sollen.NUMBER_OF_ACCELERATORS
: die Anzahl der GPUs, die pro Instanz hinzugefügt werden sollen.ACCELERATOR_TYPE
: der Beschleunigertyp.SIZE_IN_GB
: die Speichermenge der lokalen SSD in GB, die mit der betreffenden Instanz verbunden werden soll. Die Menge muss ein Vielfaches von 375 sein.INTERFACE
: der Schnittstellentyp, den die lokale SSD für die betreffende Instanz verwenden soll. Gültige Optionen sindscsi
undnvme
.ZONE
: die Zone, in der Ressourcen reserviert werden sollen.
Fügen Sie optional das Flag --require-specific-reservation
hinzu. Damit können Sie angeben, dass nur VM-Instanzen, die ausdrücklich diese Reservierung auswählen, diese verwenden können.
Weitere Informationen zu den Konfigurationsoptionen für die Nutzung reservierter Ressourcen finden Sie unter Funktionsweise von Reservierungen.
Zur Erstellung einer Reservierung in us-central1-a
, die nur verwendet werden kann, wenn speziell diese Reservierung ausgewählt wird, verwenden Sie beispielsweise einen ähnlichen Befehl wie den folgenden. In diesem Beispiel werden 10 benutzerdefinierte Maschinen mit je 8 Intel-Haswell-vCPUs (oder aktueller), 10 GB Arbeitsspeicher, 2 V100-GPUs und 375 GB lokalem SSD-Speicher reserviert:
gcloud compute reservations create my-reservation \ --machine-type=custom-8-10240 \ --min-cpu-platform "Intel Haswell" \ --vm-count=10 \ --accelerator=count=2,type=nvidia-tesla-v100 \ --local-ssd=size=375,interface=scsi \ --require-specific-reservation \ --zone us-central1-c
Eine Liste aller verfügbaren Flags finden Sie in der Referenz zu gcloud compute reservations create
.
API
Erstellen Sie mit der API eine POST
-Anfrage an die Methode reservations.insert
. Geben Sie im Anfragetext die folgenden Parameter an:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name":"RESERVATION_NAME", "specificReservation":{ "count":"NUMBER_OF_VMS", "instanceProperties":{ "machineType":"MACHINE_TYPE", "minCpuPlatform": "MINIMUM_CPU_PLATFORM", "guestAccelerators":[ { "acceleratorCount":"NUMBER_OF_ACCELERATORS", "acceleratorType":"ACCELERATOR_TYPE" } ], "localSsds":[ { "diskSizeGb":"SIZE_IN_GB", "interface":"INTERFACE" } ] } } }
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID für die Anfrage.ZONE
: die Zone, in der Ressourcen reserviert werden sollen.RESERVATION_NAME
: der Name der Reservierung, die erstellt werden soll.NUMBER_OF_VMS
: die Anzahl der VM-Instanzen, die reserviert werden sollen.MACHINE_TYPE
: ein vordefinierter oder benutzerdefinierter Maschinentyp. Beispiel:n1-standard-2
Verwenden Sie für benutzerdefinierte Maschinentypen das Formatcustom-CPUS-MEMORY
und ersetzen Sie Folgendes:CPUS
: die Anzahl der vCPUs.MEMORY
: der gesamte Arbeitsspeicher für diese Instanz. Der Arbeitsspeicher muss ein Vielfaches von 256 MB sein und in MB angegeben werden. 5 GB Arbeitsspeicher sind beispielsweise 5.120 MB:custom-4-5120
. Eine vollständige Liste mit Einschränkungen finden Sie in den Spezifikationen für benutzerdefinierte Maschinentypen.
MINIMUM_CPU_PLATFORM
: die minimale CPU, die für die jeweilige Instanz verwendet werden soll.NUMBER_OF_ACCELERATORS
: die Anzahl der GPUs, die pro Instanz hinzugefügt werden sollen.ACCELERATOR_TYPE
: der Beschleunigertyp.SIZE_IN_GB
: die Speichermenge der lokalen SSD in GB, die mit der betreffenden Instanz verbunden werden soll. Die Menge muss ein Vielfaches von 375 sein.INTERFACE
: der Schnittstellentyp, den die lokale SSD für die betreffende Instanz verwenden soll. Gültige Optionen sindscsi
undnvme
.
Fügen Sie optional das boolesche Feld specificReservationRequired
hinzu. Damit können Sie angeben, dass nur VM-Instanzen, die ausdrücklich namentlich diese Reservierung auswählen, diese verwenden können. Weitere Informationen zu den Konfigurationsoptionen für die Nutzung von Instanzen für Ihre Reservierungen finden Sie unter Funktionsweise von Reservierungen.
Zur Erstellung einer Reservierung in us-central1-a
, die nur verwendet werden kann, wenn speziell diese Reservierung ausgewählt wird, verwenden Sie beispielsweise einen ähnlichen Befehl wie den folgenden. In diesem Beispiel werden 10 benutzerdefinierte Maschinen mit je 8 Intel-Haswell-vCPUs (oder aktuellere), 10 GB Arbeitsspeicher, 2 V100-GPUs und 375 GB lokaler SSD reserviert:
POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations { "name": "reservation-1", "specificReservation": { "count": "10", "instanceProperties": { "machineType": "custom-8-10240", "minCpuPlatform": "Intel Haswell", "guestAccelerators": [ { "acceleratorCount": 2, "acceleratorType": "nvidia-tesla-v100" } ], "localSsds": [ { "diskSizeGb": "375", "interface": "SCSI" } ] } }, "specificReservationRequired": true }
Reservierte Instanzen nutzen
Legen Sie beim Erstellen einer Instanz mithilfe des Reservierungsaffinitäts-Flags der Instanz fest, ob die Instanz eine verfügbare übereinstimmende Reservierung (Standard), eine bestimmte Reservierung oder gar keine Reservierung verwendet. Damit eine Instanz eine bestimmte Reservierung nutzt, muss diese Reservierung mit dem entsprechenden Flag erstellt werden, das angibt, dass eine bestimmte Reservierung erforderlich ist.
Zum Verarbeiten der Reservierung müssen die von Ihnen erstellten Instanzen mit den Instanzattributen der Reservierung übereinstimmen. Siehe Funktionsweise von Reservierungen.
Instanzen einer übereinstimmenden Reservierung nutzen
In diesem Modell gelten vorhandene und neue Instanzen automatisch für die Reservierung, wenn die Attribute dieser Instanz mit den Attributen der reservierten Instanz übereinstimmen. Dieses Modell ist nützlich, wenn Sie viele VMs erstellen und löschen sowie die Reservierungen nach Möglichkeit verwenden möchten.
Schließen Sie beim Erstellen Ihrer Reservierungen das Flag --require-specific-reservation
aus, damit übereinstimmende Instanzen diese Reservierungen automatisch nutzen können.
Console
Erstellen Sie eine offene Reservierung.
Öffnen Sie in der Cloud Console die Seite Rabatte für zugesicherte Nutzung.
Klicken Sie auf Reservierung erstellen, um eine eigenständige Reservierung zu erstellen, für die keine übergeordnete Nutzungszusicherung besteht.
Benennen Sie Ihre Reservierung. Beispiel:
reservation-01
.Wählen Sie unter Mit VM-Instanz verwenden die Option Reservierung automatisch verwenden aus, damit alle übereinstimmenden Instanzen diese Reservierung automatisch verwenden können.
Wählen Sie die Region und die Zone aus, in der Sie Ressourcen reservieren möchten.
Geben Sie die Anzahl der VM-Instanzen an, die Sie reservieren möchten.
Geben Sie die Ressourcen an, die die einzelnen Instanzen haben sollen:
- Anzahl der vCPUs
- Mindest-CPU-Plattform
- Arbeitsspeichermenge
- GPUs
- Lokale SSD (falls erforderlich)
Klicken Sie auf Erstellen, um die Reservierung zu erstellen.
Erstellen Sie eine VM-Instanz, die auf eine beliebige offene Reservierung abzielt und deren Attribute mit den Instanzattributen von
reservation-01
übereinstimmen, einschließlich jener für Zone, Maschinentyp (vCPU-Anzahl, Arbeitsspeichermenge), Mindest-CPU-Plattform, GPU-Anzahl und -Art sowie Schnittstelle und Größe der lokalen SSD.Gehen Sie in der Cloud Console zur Seite VM-Instanzen.
Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.
Klicken Sie auf Instanz erstellen.
Geben Sie unter Name einen Namen für Ihre Instanz an.
Geben Sie einen Maschinentyp an, der mit den Attributen von
reservation-01
übereinstimmt. Wenn Sie in der Reservierung beispielsweise eine Mindest-CPU-Plattform oder GPUs angegeben haben, müssen Sie die Instanz an die Reservierung anpassen, um die Reservierung nutzen zu können.Wenn die Reservierung lokale SSDs enthält, klicken Sie unter Laufwerke auf Neues Laufwerk hinzufügen, um lokale SSDs hinzuzufügen, die der Schnittstelle und der Speichergröße der lokalen SSD für die Reservierung entsprechen.
Wählen Sie unter Verwaltung für Reservierungen die Option Erstellte Reservierung automatisch verwenden aus.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie eine offene Reservierung mit dem Namen
reservation-01
.gcloud compute reservations create reservation-01 \ --machine-type=n2-standard-32 \ --min-cpu-platform "Intel Cascade Lake" \ --vm-count=2 \ --zone=us-central1-a
Erstellen Sie eine VM-Instanz, die auf eine beliebige offene Reservierung abzielt und deren Attribute mit den Instanzattributen von
reservation-01
übereinstimmen, einschließlich jener für Zone, Maschinentyp (vCPU-Anzahl, Arbeitsspeichermenge), Mindest-CPU-Plattform, GPU-Anzahl und -Art sowie Schnittstelle und Größe der lokalen SSD.gcloud compute instances create instance-1 \ --machine-type=n2-standard-32 \ --min-cpu-platform "Intel Cascade Lake" \ --zone=us-central1-a \ --reservation-affinity=any
API
Erstellen Sie eine offene Reservierung mit dem Namen
reservation-01
.POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations { "name":"reservation-01", "specificReservation":{ "count":"2", "instanceProperties":{ "machineType":"n2-standard-32", "minCpuPlatform": "Intel Cascade Lake", } }, "specificReservationRequired": false }
Erstellen Sie eine VM-Instanz, die auf eine beliebige offene Reservierung abzielt und deren Attribute mit den Instanzattributen von
reservation-01
übereinstimmen, einschließlich jener für Zone, Maschinentyp (vCPU-Anzahl, Arbeitsspeichermenge), Mindest-CPU-Plattform, GPU-Anzahl und -Art sowie Schnittstelle und Größe der lokalen SSD.POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances { "name": "instance-1", "machineType": "zones/us-central1-a/machineTypes/n2-standard-32", "minCpuPlatform": "Intel Cascade Lake", "reservationAffinity": { "consumeReservationType": "ANY_RESERVATION" }, ... }
Instanzen einer bestimmten Reservierung nutzen
In diesem Modell nutzen nur neue Instanzen, die namentlich auf eine bestimmte Reservierung abzielen, diese Reservierung. Dieses Modell ist beispielsweise nützlich, wenn Sie bestimmte Kapazitäten für besondere Ereignisse bereithalten möchten.
Geben Sie beim Erstellen der Reservierung an, dass die Reservierung nicht automatisch verwendet werden soll. Erstellen Sie dann VMs, die ausdrücklich auf diese Reservierung abzielen und dieselben Attribute haben.
Wenn Sie zum Erstellen von VMs in einer regional verwalteten Instanzgruppe Instanzvorlagen verwenden, erstellen Sie in allen zutreffenden Zonen identische Reservierungen mit demselben Namen. Wählen Sie die Reservierungen dann in der Instanzvorlage der Gruppe namentlich aus.
Erstellen Sie beispielsweise eine spezifische Reservierung mit dem Namen reservation-02
und erstellen Sie dann eine übereinstimmende Instanz, die auf diese Reservierung abzielt und mit den Instanzattributen der Reservierung übereinstimmt.
Console
Erstellen Sie eine Reservierung mit Ressourcen, die nur von Instanzen verwendet werden können, die ausdrücklich namentlich auf diese Reservierung abzielen.
Öffnen Sie in der Cloud Console die Seite Rabatte für zugesicherte Nutzung.
Klicken Sie auf Reservierung erstellen, um eine eigenständige Reservierung zu erstellen, für die keine übergeordnete Nutzungszusicherung besteht.
Benennen Sie Ihre Reservierung. Beispiel:
reservation-02
.Wählen Sie unter Mit VM-Instanz verwenden die Option Spezifische Reservierung auswählen aus, damit diese Reservierung nur von übereinstimmenden Instanzen verwendet werden kann, die namentlich auf sie abzielen.
Wählen Sie die Region und die Zone aus, in der Sie Ressourcen reservieren möchten.
Geben Sie die Anzahl der VM-Instanzen an, die Sie reservieren möchten.
Geben Sie die Ressourcen an, die die einzelnen Instanzen haben sollen:
- Anzahl der vCPUs
- Mindest-CPU-Plattform
- Arbeitsspeichermenge
- GPUs
- Lokale SSD
Klicken Sie auf Erstellen.
Erstellen Sie eine VM-Instanz, die namentlich auf die jeweilige Reservierung abzielt.
Stellen Sie sicher, dass die Instanzattribute mit den Instanzattributen der jeweiligen Reservierung übereinstimmen, einschließlich Zone, Maschinentyp (vCPU-Anzahl und Arbeitsspeicher), Mindest-CPU-Plattform, GPU-Anzahl und -Art sowie Schnittstelle und Größe der lokalen SSD.
Gehen Sie in der Cloud Console zur Seite VM-Instanzen.
Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.
Klicken Sie auf die Schaltfläche Instanz erstellen.
Geben Sie unter Name einen Namen für Ihre Instanz an.
Geben Sie einen Maschinentyp an, der mit den Attributen von
reservation-01
übereinstimmt. Wenn Sie in der Reservierung beispielsweise eine Mindest-CPU-Plattform angegeben haben, müssen Sie die Instanz an die Reservierung anpassen, um die Reservierung nutzen zu können.Wenn die Reservierung lokale SSDs enthält, klicken Sie unter Laufwerke auf Neues Laufwerk hinzufügen, um lokale SSDs hinzuzufügen, die der lokalen SSD-Schnittstelle und -Anzahl der Reservierung entsprechen.
Wählen Sie unter Verwaltung für Reservierungen eine verfügbare Reservierung mit übereinstimmenden Attributen aus, z. B.
reservation-02
.Klicken Sie auf Erstellen, um die Instanz anzulegen.
gcloud
Erstellen Sie mit dem Flag
--require-specific-reservation
eine Reservierung mit dem Namenreservation-02
. Diese reservierten Ressourcen können nur von Instanzen verwendet werden, die ausdrücklich namentlich auf diese Reservierung abzielen.gcloud compute reservations create reservation-02 \ --machine-type=n2-standard-32 \ --min-cpu-platform "Intel Cascade Lake" \ --vm-count=10 \ --zone=us-central1-a \ --require-specific-reservation
Erstellen Sie mit den Flags
--reservation-affinity
und--reservation
eine VM-Instanz, die namentlich aufreservation-02
abzielt.Achten Sie darauf, dass die Instanzattribute mit den Instanzattributen der Reservierung übereinstimmen, einschließlich Zone, Maschinentyp (vCPU-Anzahl und Speichermenge), Mindest-CPU-Plattform, GPU-Anzahl und -Art sowie Schnittstelle und Größe der lokalen SSD.
gcloud compute instances create instance-2 \ --machine-type=n2-standard-32 \ --min-cpu-platform "Intel Cascade Lake" \ --zone=us-central1-a \ --reservation-affinity=specific \ --reservation=reservation-02
API
Erstellen Sie mit dem auf
true
festgelegten FeldspecificReservationRequired
eine Reservierung mit dem Namenreservation-02
.POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations { "name":"reservation-02", "specificReservation":{ "count":"10", "instanceProperties":{ "machineType":"n2-standard-32", "minCpuPlatform": "Intel Cascade Lake", } }, "specificReservationRequired": true }
Erstellen Sie mit Feld
reservationAffinity
eine VM-Instanz, die namentlich aufreservation-02
abzielt.Achten Sie darauf, dass die Instanzattribute mit den Instanzattributen der Reservierung übereinstimmen, einschließlich Zone, Maschinentyp (vCPU-Anzahl und Speichermenge), Mindest-CPU-Plattform, GPU-Anzahl und -Art sowie Schnittstelle und Größe der lokalen SSD.
POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances { "name": "instance-2", "machineType": "zones/us-central1-a/machineTypes/n2-standard-32", "minCpuPlatform": "Intel Cascade Lake", "reservationAffinity": { "consumeReservationType": "SPECIFIC_RESERVATION", "key": "compute.googleapis.com/reservation-name", "values": ["reservation-02" ] }, ... }
Instanzen ohne Nutzung von Reservierungen erstellen
Wenn Sie explizit vermeiden möchten, dass Ressourcen einer Reservierung genutzt werden, setzen Sie beim Erstellen der VM das Reservierungsaffinitäts-Flag auf "none". Sie können auch implizit vermeiden, dass Ihre Reservierungen verwendet werden, indem Sie eine Instanz erstellen, die nicht mit den Instanzattributen Ihrer Reservierungen übereinstimmt.
Console
Erstellen Sie eine Instanz, die explizit keine Reservierung nutzt.
Gehen Sie in der Cloud Console zur Seite VM-Instanzen.
Klicken Sie auf Instanz erstellen.
Erstellen Sie wie gewohnt eine Instanz.
Wählen Sie unter Verwaltung für Reservierungen die Option Nicht verwenden aus, um sicherzustellen, dass die Instanz keine vorhandenen Reservierungen nutzt.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie eine Instanz, die explizit keine Reservierung nutzt.
gcloud compute instances create instance-3 --reservation-affinity=none
Oder erstellen Sie eine Instanz, die nicht mit den Instanzattributen Ihrer Reservierungen übereinstimmt. Informationen zum Überprüfen Ihrer Reservierungsattribute finden Sie unter Reservierungen auflisten und beschreiben.
API
Erstellen Sie eine Instanz, die explizit keine Reservierung nutzt.
POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances { "machineType": "zones/us-central1-a/machineTypes/n2-standard-16", "name": "instance-3", "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
Oder erstellen Sie eine Instanz, die nicht mit den Instanzattributen Ihrer Reservierungen übereinstimmt. Informationen zum Überprüfen Ihrer Reservierungsattribute finden Sie unter Reservierungen auflisten und beschreiben.
Nutzung von Reservierungen sicherstellen
Wenn Sie Ihre reservierten Ressourcen nicht nutzen können, sehen Sie sich die Reservierungsattribute und die Attribute der Instanz an. Um zu testen, ob die Attribute der Instanz mit den Attributen der Reservierung übereinstimmen, erstellen Sie eine bestimmte Reservierung und erstellen Sie dann eine Instanz, die auf diese Reservierung abzielt.
Reservierungsattribute überprüfen
Die Instanzattribute der Reservierung müssen mit den Attributen im Befehl zur Instanzerstellung übereinstimmen. So nehmen Sie eine Bestätigung vor:
Überprüfen Sie die Attribute der Reservierung speziell auf Folgendes:
zone
specificReservationRequired
- Wenn der Wert auf
true
gesetzt ist, muss der Befehl zur Instanzerstellung auf diese Reservierung namentlich abzielen.
- Wenn der Wert auf
machineType
guestAccelerators.acceleratorType
guestAccelerators.acceleratorCount
minCpuPlatform
- Wenn Sie eine VM-Instanz mit einer
minCpuPlatform
haben und eine Reservierung erstellen möchten, die diese Instanz verwendet, erstellen Sie die Reservierung mit übereinstimmenden Attributen, einschließlich einer passendenminCpuPlatform
. - Wenn Sie eine Reservierung mit einer
minCpuPlatform
haben und eine Instanz erstellen möchten, die diese Reservierung verwendet, erstellen Sie die Instanz mit übereinstimmenden Attributen, einschließlich einer passendenminCpuPlatform
.
- Wenn Sie eine VM-Instanz mit einer
localSsds.diskSizeGb
localSsds.interface
Erstellen Sie eine Instanz, die diesen Attributen entspricht.
Beschreiben Sie die Instanz, um zu prüfen, ob ihre Attribute mit denen der Reservierung übereinstimmen. Verwenden Sie beispielsweise den Befehl
instances describe
desgcloud
-Tools.Beschreiben Sie Ihre Reservierung, um zu überprüfen, ob
inUseCount
erhöht wurde.- Wenn sich
inUseCount
nicht geändert hat, stimmen die Attribute nicht überein. - Wenn
inUseCount
erhöht wurde, wird Ihre Reservierung verwendet.
- Wenn sich
Auf eine bestimmte Reservierung abzielen
Wenn Sie versuchen, eine Instanz zu erstellen, die auf eine bestimmte Reservierung abzielt, kann die Instanz nur erstellt werden, wenn sie mit den Attributen der Reservierung übereinstimmt. Verwenden Sie diese Methode, um zu überprüfen, ob Sie über die richtigen Instanzattribute verfügen.
- Erstellen Sie eine Reservierung mit der Option
specificReservationRequired
. - Erstellen Sie eine Instanz, die explizit mit den Instanzattributen der Reservierung übereinstimmt und über das Reservierungsaffinitätsattribut namentlich auf die Reservierung abzielt.
- Wenn die Instanzattribute nicht übereinstimmen, wird ein Fehler angezeigt.
- Wenn die Instanzattribute übereinstimmen, wird Ihre Reservierung verwendet.
Reservierungen auflisten und beschreiben
Mit der Console, dem gcloud
-Tool oder der API können Sie Details zu Ihrer Reservierung auflisten und anzeigen lassen.
Console
Öffnen Sie in der Cloud Console die Seite Rabatte für zugesicherte Nutzung.
Klicken Sie auf Reservierungen.
Die Liste der Reservierungen enthält Details zu jeder Reservierung. In der Spalte Verwendete Maschinen (gesamt) können Sie die Auslastung jeder Reservierung ermitteln.
gcloud
Listen Sie Ihre Reservierungen mit dem Befehl gcloud compute reservations list
auf:
gcloud compute reservations list [--filter="zone:('ZONE')"]
NAME IN_USE_COUNT COUNT ZONE
reservation-04 25 50 us-central1-a
reservation-05 0 100 us-central1-b
Beschreiben Sie Ihre Reservierungen mit dem Befehl gcloud compute reservations describe
:
gcloud compute reservations describe RESERVATION_NAME --zone=ZONE
kind: compute#reservation
name: reservation-05
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-east1-d/reservations/reservation-05
specificReservation:
count: '50'
inUseCount: '25'
instanceProperties:
guestAccelerators:
- acceleratorCount: 1
acceleratorType: nvidia-tesla-k80
localSsds:
- diskSizeGb: '375'
interface: SCSI
machineType: n1-standard-2
minCpuPlatform: Any CPU Platform
specificReservationRequired: false
status: READY
zone: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-east1-d
Sie können die Werte count
und inUseCount
verwenden, um die Nutzung der einzelnen Reservierungen zu bestimmen. In diesem Beispiel sind 50 Instanzen reserviert, von denen derzeit 25 verwendet werden.
Um eine Instanz zu erstellen, die diese Reservierung verwendet, denken Sie daran, die Instanzattribute der Reservierung abzugleichen. Beispiel:
gcloud compute instances create my-instance \ --accelerator=type=nvidia-tesla-k80,count=1 \ --maintenance-policy terminate \ --local-ssd=interface=SCSI \ --machine-type n1-standard-2 \ --zone us-east1-d
API
Geben Sie in der API Ihre Reservierungen an, indem Sie eine GET
-Anfrage an die Methode reservations.list
stellen.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations
Beschreiben Sie eine Reservierung, indem Sie die Methode reservations.get
aufrufen.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME
{
"id": "2533514314332214789",
"creationTimestamp": "2019-09-27T08:21:14.707-07:00",
"selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-d/reservations/reservation-05",
"zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-d",
"name": "reservation-05",
"specificReservationRequired": false,
"status": "READY",
"kind": "compute#reservation",
"specificReservation": {
"instanceProperties": {
"machineType": "n1-standard-2",
"guestAccelerators": [
{
"acceleratorType": "nvidia-tesla-k80",
"acceleratorCount": 1
}
],
"minCpuPlatform": "Any CPU Platform",
"localSsds": [
{
"diskSizeGb": "375",
"interface": "SCSI"
}
]
},
"count": "50",
"inUseCount": "25"
}
}
Sie können die Werte count
und inUseCount
verwenden, um die Nutzung der einzelnen Reservierungen zu bestimmen. In diesem Beispiel sind 50 Instanzen reserviert, von denen derzeit 25 verwendet werden.
Reservierungen ändern
Sie können die Größe einer Reservierung ändern oder sie löschen, wenn sie mit keiner Zusicherung verbunden ist.
Größe einer Reservierung ändern
Sie können die Größe der VMs in einer Reservierung, die nicht an eine Zusicherung gebunden sind, mithilfe desgcloud
-Tools oder der API anpassen.
gcloud
Ändern Sie die Größe Ihrer Reservierung mit dem Befehl gcloud compute reservations update
. Beispiel:
Erstellen Sie eine Reservierung für zwei VM-Instanzen:
gcloud compute reservations create reservation-01 \ --machine-type=n2-standard-32 \ --zone=us-central1-a \ --vm-count=2
Ändern Sie die Größe der Reservierung von zwei in zehn VM-Instanzen:
gcloud compute reservations update reservation-01 \ --zone=us-central1-a \ --vm-count=10
API
Erstellen Sie mit der API eine POST
-Anfrage an die Methode reservations.resize
und schließen Sie den neuen specificSkuCount
in den Anfragetext ein.
Der folgende Anfragetext aktualisiert die VM-Anzahl der Reservierung auf 10
:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/resize
{"specificSkuCount": "10"}
Die Aktualisierungsanfrage ist erfolgreich, wenn zum Zeitpunkt der Anfrage genügend Ressourcen in der Zielzone und ausreichend Kontingent in der Zielregion vorhanden sind.
Reservierung löschen
Sie können Reservierungen, die nicht an eine Nutzungszusicherung gebunden sind, über das gcloud
-Befehlszeilentool oder die API löschen.
Console
Öffnen Sie in der Cloud Console die Seite Rabatte für zugesicherte Nutzung.
Klicken Sie auf Reservierungen, um eine Liste Ihrer Reservierungen anzusehen.
Klicken Sie das Kästchen neben jeder Reservierung an, die Sie löschen möchten.
Klicken Sie auf Reservierung löschen.
gcloud
Sie können Reservierungen mithilfe des Befehls delete
freigeben:
gcloud compute reservations delete RESERVATION_NAME --zone ZONE
API
Erstellen Sie mit der API eine DELETE
-Anfrage an die Methode reservation.delete
.
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME
Sobald der Löschbefehl erfolgreich ausgeführt wurde, wird Ihnen die Reservierung nicht mehr in Rechnung gestellt und die Ressourcen sind nicht mehr für Sie reserviert. Das Löschen einer Reservierung hat keine Auswirkung auf laufende Instanzen, die mit dieser Reservierung verbunden sind. Für diese Instanzen werden Ihnen weiterhin Gebühren berechnet.
Reservierungen mit Rabatten für zugesicherte Nutzung kombinieren
Ein Rabatt für zugesicherte Nutzung ist eine Rabattvereinbarung über ein oder drei Jahre, wobei jedoch keine Kapazität in einer bestimmten Zone reserviert wird. Eine Reservierung stellt sicher, dass die Kapazitäten in einer bestimmten Zone vorhanden sind, selbst wenn die reservierten VMs nicht ausgeführt werden. Wird eine Reservierung mit einer Zusicherung kombiniert, erhalten Sie ermäßigte reservierte Ressourcen.
Standardmäßig werden beim Erstellen einer Reservierung alle anwendbaren Rabatte für zugesicherte Nutzung für Kerne und Arbeitsspeicher automatisch auf Ihre VM-Instanzen angewendet. Sie müssen jedoch beim Kauf der Zusicherung eine Reservierung für diese Ressourcen erstellen, um den Rabatt für zugesicherte Nutzung für GPUs und lokale SSDs zu erhalten.
Sobald Sie eine Nutzungszusicherung erworben haben, können Sie sie nicht mehr widerrufen. Weitere Informationen finden Sie unter Rabatte für zugesicherte Nutzung.
Zusicherung für GPUs oder lokale SSDs kaufen
So erwerben Sie eine Nutzungszusicherung für GPUs oder lokale SSDs:
- Sie müssen eine allgemeine N1-Zusicherung erwerben. GPUs werden nur mit N1-Maschinentypen unterstützt (mit Ausnahme der A100-GPUs).
- Sie müssen beim Kauf Ihrer Zusicherung gleichzeitig eine Reservierung erstellen, die entweder GPUs oder lokale SSDs enthält.
- Sie brauchen sich nicht auf vCPUs oder Arbeitsspeicher festzulegen.
Sie müssen Nutzungszusicherungen für bestimmte GPU-Typen kaufen. Sie können beispielsweise GPUs vom Typ NVIDIA P100 oder NVIDIA V100 kaufen. Sie können jedoch keine Zusicherungen für GPUs vom Typ NVIDIA P100 erwerben und dann auf andere GPU-Typen anwenden.
Die Anzahl der GPUs und lokalen SSDs, die Sie reservieren, muss der Menge entsprechen, deren Nutzung Sie zusichern. Wenn Sie beispielsweise vier V100-GPUs reservieren möchten, müssen Sie auch für vier V100-GPUs die Nutzung zusichern. Die Anzahl der vCPUs und die Menge an Arbeitsspeicher können jedoch unter der von Ihnen zugesicherten Nutzung liegen.
Wenn Sie nur die Nutzung von GPUs oder lokalen SSDs zusichern möchten, können Sie für die Zusicherung für vCPU und Arbeitsspeicher 0 angeben. Die Reservierung, die Sie der Zusicherung beifügen, muss jedoch dieselben GPUs und lokalen SSDs wie die Zusicherung sowie die zu reservierenden Maschinentypen, einschließlich der vCPUs und des Arbeitsspeichers, enthalten.
Sie können eine Zusicherung mit einer angehängten Reservierung über die Cloud Console, das gcloud
-Tool oder die API erwerben.
Console
Öffnen Sie in der Google Cloud Console die Seite Rabatte für zugesicherte Nutzung.
Klicken Sie auf Zusicherung kaufen, um eine neue Zusicherung zu kaufen.
Geben Sie der Zusicherung einen Namen und wählen Sie die Region aus, auf die sie angewendet werden soll.
Wählen Sie unter Art der Vereinbarung die Option Allgemein aus.
Wählen Sie als Dauer der Zusicherung 1 oder 3 Jahre aus.
Geben Sie die Anzahl der Kerne und den Umfang an Arbeitsspeicher ein, die Sie erwerben möchten. Wenn Sie nur die Nutzung von GPUs oder lokalen SSDs zusichern möchten, nicht aber die von vCPUs und Arbeitsspeicher, geben Sie für die zugesicherte Menge von vCPUs und Arbeitsspeicher 0 an.
Klicken Sie auf GPUs hinzufügen und wählen Sie den GPU-Typ und die Anzahl der GPUs aus, deren Nutzung Sie zusichern möchten.
Klicken Sie auf Lokale SSD hinzufügen und geben Sie die Anzahl der Laufwerke ein, deren Nutzung Sie zusichern möchten.
Klicken Sie auf Neue Reservierung hinzufügen, um eine oder mehrere Reservierungen für Instanzen zu erstellen, die die GPUs und die lokalen SSDs nutzen.
- Benennen Sie die Reservierung.
- Führen Sie unter Mit VM-Instanz verwenden Folgendes aus:
- Wenn Sie die Ressourcen der Reservierung nur zum Erstellen übereinstimmender Instanzen verwenden möchten, die ausdrücklich namentlich auf diese Reservierung abzielen, wählen Sie Spezifische Reservierung auswählen aus.
- Wenn übereinstimmende Instanzen diese Reservierung automatisch verwenden sollen, wählen Sie Reservierung automatisch verwenden aus.
- Wählen Sie die Zone aus, in der Sie Ressourcen reservieren möchten.
- Geben Sie die Anzahl von VM-Instanzen an, die Sie reservieren möchten.
- Geben Sie die Ressourcen an, die Sie für jede Instanz reservieren möchten:
- Wenn Sie eine Instanzvorlage haben, klicken Sie auf Instanzvorlage verwenden und wählen Sie in der Liste eine Instanzvorlage aus.
- Klicken Sie andernfalls auf Maschinentyp angeben.
- Klicken Sie auf Anpassen, um mit dem Schieberegler die Kerne und den Arbeitsspeicher für Ihren Maschinentyp auszuwählen.
- Geben Sie die CPU-Plattform an.
- Geben Sie die Anzahl der GPUs und den GPU-Typ ein, um GPUs hinzuzufügen.
- Geben Sie optional die Anzahl für Lokale SSDs ein, die Sie den einzelnen Instanzen hinzufügen möchten, und legen Sie den zu verwendenden Schnittstellentyp fest.
- Klicken Sie auf Fertig, um die Reservierung zu erstellen.
Klicken Sie auf die Schaltfläche Kaufen, um die Zusicherung zu kaufen.
Lesen Sie die Kaufbedingungen und klicken Sie auf Kaufen, wenn Sie den Kauf der Zusicherung abschließen möchten.
gcloud
Verwenden Sie den Befehl gcloud compute commmitments create
, um eine Zusicherung zu kaufen, und Flags, um eine Reservierung hinzuzufügen.
Zum Beispiel umfasst die folgende Zusicherung 4 GPUs und eine neue Reservierung für diese 4 GPUs zur Verwendung auf 2 n1-standard-32
-Instanzen in us-central1-a
.
gcloud compute commitments create commitment-01 \ --region=us-central1 \ --resources=vcpu=96,memory=624GB \ --resources-accelerator=type=nvidia-tesla-v100,count=4 \ --plan 12-month \ --reservation=reservation-01 \ --reservation-zone=us-central1-a \ --machine-type=n1-standard-16 \ --accelerator=type=nvidia-tesla-v100,count=2 \ --vm-count=2
Wenn Sie die Nutzung von GPUs oder lokalen SSDs zusichern möchten, nicht aber die von vCPUs und Arbeitsspeicher, geben Sie für die zugesicherte Menge von vCPUs und Arbeitsspeicher 0 an.
gcloud compute commitments create commitment-01 \ --region=us-west2 \ --resources=vcpu=0,memory=0 \ --resources-accelerator=type=nvidia-tesla-p4,count=1 \ --plan 12-month \ --reservation=reservation-01 \ --reservation-zone=us-west2-b \ --machine-type=n1-standard-2 \ --accelerator=type=nvidia-tesla-p4,count=1 \ --vm-count=1
Wenn Sie beim Erwerb einer Zusicherung mehrere Reservierungen erstellen möchten, verwenden Sie eine YAML-Datei, in der die Reservierungsattribute enthalten sind. Beispiel:
gcloud compute commitments create commitment-01 \ --region=us-central1 \ --resources=vcpu=96,memory=624,local-ssd=750 \ --resources-accelerator=type=nvidia-tesla-v100,count=1 \ --plan 12-month \ --reservations-from-file=YAML_FILE
Die folgende YAML-Datei enthält beispielsweise 2 Reservierungen. Die erste Reservierung res-01
enthält 1 n1-standard-2
-Instanz mit 1 GPU. Dies ist eine ausgewählte Reservierung. Das bedeutet, dass Sie diese Reservierung zur Verwendung ihrer reservierten Instanzen ausdrücklich namentlich auswählen müssen. Die zweite Reservierung res-02
enthält 1 VM-Instanz n1-standard-2
mit 2 Arten von angehängten lokalen SSDs.
‐ reservation: res-01 reservation_zone: us-central1-a require_specific_reservation: true vm_count: 1 machine_type: n1-standard-2 accelerator: ‐ count: 1 type: nvidia-tesla-v100 ‐ reservation: res-02 reservation_zone: us-central1-a vm_count: 1 machine_type: n1-standard-2 local_ssd: ‐ interface: scsi size: 375 ‐ interface: nvme size: 375
API
Zum Definieren der Reservierungsattribute können Sie die Methode regionCommitments.insert
verwenden und das Feld reservations
einfügen. Die folgende Zusicherung umfasst zum Beispiel 4 GPUs und eine Reservierung für die 4 GPUs zur Verwendung auf 2 Instanzen in us-central1-a
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments { "name": "commitment-01", "plan": "TWELVE_MONTH", "resources": [ { "amount": "96", "type": "VCPU" }, { "amount": "638976", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-v100", "amount": "4", "type": "ACCELERATOR" } ], "reservations": [ { "name": "reservation-01", "specificReservation": { "count": "2", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 2, "acceleratorType": "nvidia-tesla-v100" } ], "machineType": "n1-standard-8" } }, "specificReservationRequired": false, "zone": "us-central1-a" } ] }
Wenn Sie nur die Nutzung von GPUs oder lokalen SSDs zusichern möchten, nicht aber die von vCPUs und Arbeitsspeicher, geben Sie für die zugesicherte Menge von vCPUs und Arbeitsspeicher 0 an. Beispiel:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments { "name": "commitment-01", "plan": "TWELVE_MONTH", "resources": [ { "amount": "0", "type": "VCPU" }, { "amount": "0", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-v100", "amount": "4", "type": "ACCELERATOR" } ], "reservations": [ { "name": "reservation-01", "specificReservation": { "count": "2", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 2, "acceleratorType": "nvidia-tesla-v100" } ], "machineType": "n1-standard-8" } }, "specificReservationRequired": false, "zone": "us-central1-a" } ] }
Die Zusicherung wird nur dann erfolgreich erstellt, wenn zum Zeitpunkt der Anfrage in der ausgewählten Zone genügend Ressourcen und ein ausreichendes Kontingent vorhanden sind.
Wenn Sie eine Zusicherung mit einer verbundenen Reservierung erstellen, können Sie die Reservierung während der Dauer der Zusicherung nicht löschen. Wenn Ihre Zusicherung abgelaufen ist, löscht Compute Engine automatisch alle verbundenen Reservierungen.
Wie Sie GPUs oder lokale SSDs zwischen Reservierungen mit Nutzungszusicherung übertragen, erfahren Sie unter Reservierungen ändern, die mit Zusicherungen verbunden sind.
Reservierungen ändern, die mit Zusicherungen verbunden sind
Wenn eine Zusicherung eine oder mehrere Reservierungen für GPUs oder lokale SSDs enthält, können Sie das Tool gcloud
oder die API verwenden, um GPUs oder lokale SSDs über diese Reservierungen zu übertragen. Beispielsweise können Sie GPUs von einer Reservierung in eine zweite, neue Reservierung verschieben.
Beschränkungen:
- Sie können Ressourcen nur zwischen zwei Reservierungen verschieben, wobei eine die Ausgangsreservierung und die andere die Zielreservierung ist. Die Ausgangsreservierung muss bereits vorhanden sein. Die Zielreservierung kann eine bestehende oder eine neue Reservierung sein.
- Die Ausgangs- und Zielreservierung müssen sich in derselben Zone befinden.
- Sie können die Ressourcenattribute von bestehenden Reservierungen nicht ändern. Sie können nur bestehende Ressourcen von einer Reservierung auf eine andere übertragen.
- Die Gesamtanzahl der GPUs und lokalen SSDs muss konstant bleiben.
- Sie können nur 100 VMs pro Anfrage ändern. Wenn Sie weitere VMs aktualisieren möchten, rufen Sie die API mehrmals auf oder wenden Sie sich an den Google Cloud-Support.
Sie können weder vCPUs noch Arbeitsspeicher übertragen noch andere Attribute von angehängten Reservierungen ändern.
gcloud
Führen Sie den Befehl gcloud beta compute commitments update-reservations
aus.
Erstellen Sie eine Zusicherung mit einer Reservierung:
res-1
hat 4n1-standard-2
-Instanzen mit jeweils 1 P100-GPU (4 vCPUs und 4 P100-GPUs). Die insgesamt reservierten Ressourcen umfassen 4 P100-GPUs.
gcloud beta compute commitments create my-commitment-with-reservations \ --region=asia-east1 \ --resources=vcpu=10,memory=32GB \ --resources-accelerator=type=nvidia-tesla-p100,count=4 \ --plan 12-month \ --reservations-from-file=one-reservation.yaml
Die Datei one-reservation.yaml
enthält Folgendes:
- reservation: res-1
reservation_zone: asia-east1-a
require_specific_reservation: true
vm_count: 4
machine_type: n1-standard-2
accelerator:
- count: 1
type: nvidia-tesla-p100
Aktualisieren Sie die Zusicherung, um einige Ressourcen von res-1
auf eine neue, zweite Reservierung res-2
zu übertragen. Gehen Sie in diesem Beispiel so vor:
- Ändern Sie die Reservierung
res-1
so, dass sie 2n1-standard-2
-Instanzen mit jeweils 2 P100-GPUs (2 vCPUs und 2 P100-GPUs) hat. - Fügen Sie die Reservierung
res-2
für 2n1-standard-2
-Instanzen mit jeweils 1 P100-GPU (4 vCPUs und 2 P100-GPUs) hinzu.
Die Gesamtanzahl der reservierten GPUs innerhalb der Zusicherung bleibt konstant bei 4.
gcloud compute beta commitments update-reservations my-commitment-with-reservations \ --region=us-central1 \ --reservations-from-file=two-reservations.yaml
Die Datei two-reservations.yaml
enthält Folgendes:
- reservation: res-1
reservation_zone: asia-east1-a
require_specific_reservation: true
vm_count: 2
machine_type: n1-standard-2
accelerator:
- count: 1
type: nvidia-tesla-p100
- reservation: res-2
reservation_zone: asia-east1-a
require_specific_reservation: true
vm_count: 2
machine_type: n1-standard-2
accelerator:
- count: 1
type: nvidia-tesla-p100
API
Verwenden Sie die Methode regionCommitments.updateReservations
.
Erstellen Sie beispielsweise eine Nutzungszusicherung mit der folgenden Reservierung:
res-1
hat 4n1-standard-2
-Instanzen mit jeweils 1nvidia-tesla-p100
-GPU (4 vCPUs und 4 P100-GPUs).
In diesem Beispiel beinhalten die insgesamt reservierten Ressourcen 4 P100-GPUs.
POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments/my-commitment-with-reservation/updateReservations { "name": "my-commitment-with-reservation", "plan": "TWELVE_MONTH", "reservations": [ { "name": "res-1", "specificReservation": { "count": "4", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 1, "acceleratorType": "nvidia-tesla-p100" } ], "machineType": "n1-standard-2" } }, "specificReservationRequired": true, "zone": "asia-east1-a" } ], "resources": [ { "amount": "10", "type": "VCPU" }, { "amount": "32768", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-p100", "amount": "4", "type": "ACCELERATOR" } ] }
Aktualisieren Sie die Zusicherung, um einige Ressourcen von res-1
auf eine neue, zweite Reservierung res-2
zu übertragen. Gehen Sie in diesem Beispiel so vor:
- Ändern Sie die Reservierung
res-1
so, dass sie 2n1-standard-2
-Instanzen mit jeweils 2 P100-GPUs (2 vCPUs und 2 P100-GPUs) hat. - Fügen Sie die Reservierung
res-2
für 2n1-standard-2
-Instanzen mit jeweils 1 P100-GPU (4 vCPUs und 2 P100-GPUs) hinzu.
Die Gesamtanzahl der reservierten GPUs innerhalb der Zusicherung bleibt konstant bei 4.
POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments/my-commitment-with-reservation/updateReservations { "reservations": [ { "name": "res-1", "specificReservation": { "count": "2", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 1, "acceleratorType": "nvidia-tesla-p100" } ], "machineType": "n1-standard-2" } }, "specificReservationRequired": true, "zone": "asia-east1-a" }, { "name": "res-2", "specificReservation": { "count": "2", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 1, "acceleratorType": "nvidia-tesla-p100" } ], "machineType": "n1-standard-2" } }, "specificReservationRequired": true, "zone": "asia-east1-a" } ] }
Nutzungsberichte zu Reservierungen ansehen
Exportieren Sie detaillierte Berichte zur Nutzung von Compute Engine mit dem Exportfeature in einen Cloud Storage-Bucket. Weitere Informationen finden Sie unter Nutzungsberichte ansehen.
Der Nutzungsbericht enthält folgende Angaben:
- Genutzte reservierte Ressourcen. Diese Einträge werden als normale Ressourcen in Bezug auf vCPUs, Arbeitsspeicher, GPUs und lokale SSDs angezeigt.
- Ungenutzte reservierte Ressourcen. Diese Einträge haben normale SKU-Namen und Reservierungsressourcen-URIs.
- Die Gesamtzahl der reservierten Ressourcen. Diese Einträge haben Reservierungs-SKU-Namen und Reservierungsressourcen-URIs. Mit diesen Einträgen sind keine Kosten verbunden. Berechnen Sie anhand dieser Einträge, wie viel von Ihren Reservierungen Sie nutzen.
Messung | MeasurementId -Format
|
Resource URI -Format
|
---|---|---|
Genutzte reservierte Ressourcen | com.google.cloud/services/compute-engine/SKU_NAME
|
https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/RESOURCE_TYPE/RESOURCE_NAME .
Beispiel: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/my-instance
|
Ungenutzte reservierte Ressourcen | com.google.cloud/services/compute-engine/SKU_NAME
|
https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME .
Beispiel: https://compute.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-a/reservations/my-reservation
|
Reservierte Ressourcen insgesamt | com.google.cloud/services/compute-engine/ReservationSKU_NAME
|
https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME .
Beispiel: https://compute.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-a/reservations/my-reservation
|
Das folgende Snippet aus einem Nutzungsbericht für eine Reservierung namens my-reservation
enthält z. B. folgende Informationen:
- Zeile 1 gibt den reservierten RAM an, der aktuell genutzt wird. Die
ResourceId
der Zeile zeigt, dass dieser RAM von einer Instanz namensmy-instance
genutzt wird. - Zeile 2 gibt reservierten RAM an, der nicht genutzt wird. Die
ResourceId
der Zeile gibt an, dass der reservierte RAM vonmy-reservation
genutzt wird. Er wird noch nicht von einer Instanz verwendet. - Zeile 3 gibt den gesamten reservierten RAM an.
Report Date,MeasurementId,Quantity,Unit,Resource URI,ResourceId,Location 2019-06-06,com.google.cloud/services/compute-engine/VmimageN2StandardRam,166970074857472,byte-seconds,https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/instances/my-instance,1775485842510981624,us-central2-a 2019-06-06,com.google.cloud/services/compute-engine/VmimageN2StandardRam,166970074857472,byte-seconds,https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/reservations/my-reservation,7.58809E+17,us-central2-a 2019-06-06,com.google.cloud/services/compute-engine/ReservationN2StandardRam,333940149714944,byte-seconds,https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/reservations/my-reservation,7.58809E+17,us-central2-a ...
Reservierungsabrechnung
Reservierungen werden zum selben Preis wie die mit ihnen reservierten Ressourcen abgerechnet. Rabatte für kontinuierliche Nutzung, Rabatte für zugesicherte Nutzung und benutzerdefinierte Preise gelten wie für normale VMs.
Siehe hierzu das folgende Beispiel:
- Sie haben eine Zusicherung für 3 vCPUs in
us-central1
. - Sie betreiben 5 vCPUs in
us-central1-a
. - Sie haben eine Reservierung für 10 vCPUs in
us-central1-a
.
Die Abrechnung erfolgt so:
Abgedeckt durch | Anzahl der vCPUs |
---|---|
Preis mit Rabatt für zugesicherte Nutzung | 3 |
On-Demand-Preis (2 vCPUs verwendeter Reservierungen + 5 vCPUs nicht verwendeter Reservierungen) | 7 |