Zonale Compute Engine-Ressourcen reservieren

Erstellen Sie Reservierungen für VM-Instanzen in einer bestimmten Zone mithilfe benutzerdefinierter oder vordefinierter Maschinentypen mit oder ohne zusätzliche GPUs oder lokale SSDs, um sicherzustellen, dass Ressourcen für Ihre Arbeitslasten verfügbar sind, wenn Sie sie benötigen. Wenn Sie eine Reservierung erstellen, beginnen Sie sofort für die reservierten Ressourcen zu bezahlen. Diese stehen Ihrem Projekt 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 die künftige steigende Nachfrage verfügt, einschließlich geplanter oder ungeplanter Spitzen, 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

Vorteile

Reservierungen bieten folgende Vorteile:

  • Sie können Maschinen reservieren, sodass sie immer verfügbar sind, auch wenn Sie sie nicht sofort verwenden.
  • Sie können jederzeit eine Reservierung erstellen und sie auch jederzeit wieder löschen, um weitere Zahlungen zu vermeiden.

  • Reservierungen werden auf die gleiche Weise und zum gleichen Preis abgerechnet wie die Ressourcen, die reserviert werden. Aus diesem Grund 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, Cloud Dataproc und Google Kubernetes Engine.
  • Reservierungen gelten nicht für f1-micro- oder g1-small-Maschinentypen, VMs auf Abruf, Knoten für einzelne Mandanten oder andere Dienste, die nicht oben angeführt sind, wie Cloud SQL und Dataflow.
  • Sie können bis zu 1.000 VM-Instanzen pro Reservierung reservieren.
  • Sie müssen für die Ressourcen, die Sie reservieren möchten, über ein ausreichendes Kontingent in Ihrem Projekt verfügen. Wenn die Reservierung erfolgreich ist, wird das Kontingent für diese Ressource entsprechend berechnet.
  • 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 Nutzungszusicherung 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 Nutzungszusicherung 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. Wenn Reservierungen einmal erstellt worden sind, stellen sie 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
  • vCPU
  • Mindest-CPU-Plattform
  • Arbeitsspeicher
  • gpu
  • Lokale 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.

  • Verwenden Sie zur Erstellung einer Reservierung, die nicht automatisch genutzt werden soll, die Option specificReservationRequired. Diese Reservierungen können jetzt nur verwendet werden, wenn Sie die Reservierung bei der Erstellung 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 oder löschen, die eine Reservierung verwendet, gilt für diese Instanz die Reservierung nicht mehr und die reservierten Ressourcen sind wieder verfügbar.

Wenn Sie eine Reservierung löschen, aber die Instanzen nicht löschen, 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 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

  1. Öffnen Sie in der GCP Console die Seite Rabatte für zugesicherte Nutzung.

    Weiter zur Seite "Rabatte für zugesicherte Nutzung"

  2. Klicken Sie auf Reservierung erstellen, um eine eigenständige Reservierung zu erstellen, für die keine übergeordnete Nutzungszusicherung besteht.

  3. Benennen Sie die Reservierung.

  4. 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.

  5. Wählen Sie die Region und die Zone aus, in der Sie Ressourcen reservieren möchten.

  6. Geben Sie die Anzahl der VM-Instanzen an, die Sie reservieren möchten.

  7. 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.
      1. Wählen Sie für vordefinierte Maschinentypen im Drop-down-Menü die erforderliche Option aus.
      2. 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.
      3. 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.
  8. Klicken Sie auf Erstellen, um die Reservierung zu erstellen.

gcloud

Verwenden Sie zum Erstellen einer neuen Reservierung den Befehl gcloud compute reservations create:

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]

Wobei:

  • [RESERVATION_NAME] der Name der zu erstellenden Reservierung ist.
  • [MACHINE_TYPE] der Maschinentyp ist. Beispiel: n1-standard-1. Verwenden Sie für benutzerdefinierte Maschinentypen das Format custom-[CPUS]-[MEMORY], wobei:
    • [CPUS] die Anzahl der vCPUs ist.
    • [MEMORY] der gesamte Arbeitsspeicher für diese Instanz ist. 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 für jede Instanz zu verwendende Mindest-CPU ist.
  • [NUMBER_OF_VMS] die Anzahl der zu reservierenden VM-Instanzen ist.
  • [NUMBER_OF_ACCELERATORS] die Anzahl der GPUs ist, die pro Instanz hinzugefügt werden sollen.
  • [ACCELERATOR_TYPE] der Beschleunigertyp ist.
  • [SIZE_IN_GB] die Menge in GB der lokalen SSD ist, die mit jeder Instanz verbunden werden soll. Die Menge muss ein Vielfaches von 375 sein.
  • [INTERFACE] der Schnittstellentyp ist, den die lokale SSD verwenden soll. Gültige Optionen sind: scsi und nvme für jede Instanz.
  • [ZONE] die Zone ist, 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 dem folgenden ähnlichen Befehl. 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.

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 in der API eine POST-Anfrage an die Methode reservations.insert. Geben Sie im Anfragetext die folgenden Parameter an:

POST https://www.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]"
        }
      ]
    }
  }
}

Wobei:

  • [PROJECT_ID] die Projekt-ID für die Anfrage ist.
  • [ZONE] die Zone ist, in der Ressourcen reserviert werden sollen.
  • [RESERVATION_NAME] der Name der Reservierung ist, die Sie erstellen.
  • [NUMBER_OF_VMS] die Anzahl der zu reservierenden VM-Instanzen ist.
  • [MACHINE_TYPE] ein vordefinierter oder benutzerdefinierter Maschinentyp ist. Beispiel: n1-standard-1. Verwenden Sie für benutzerdefinierte Maschinentypen das Format custom-[CPUS]-[MEMORY], wobei:
    • [CPUS] die Anzahl der vCPUs ist.
    • [MEMORY] der gesamte Arbeitsspeicher für diese Instanz ist. 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 Mindest-CPU für jede Instanz ist.
  • [NUMBER_OF_ACCELERATORS] die Anzahl der GPUs ist, die pro Instanz hinzugefügt werden sollen.
  • [ACCELERATOR_TYPE] der Beschleunigertyp ist.
  • [SIZE_IN_GB] die Menge in GB der lokalen SSD ist, die mit jeder Instanz verbunden werden soll. Die Menge muss ein Vielfaches von 375 sein.
  • [INTERFACE] der Schnittstellentyp ist, den die lokale SSD verwenden soll. Gültige Optionen sind: scsi und nvme.

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 Reservierung von Ressourcen in us-central1-a, die nur verwendet werden können, wenn speziell diese Reservierung ausgewählt wird, verwenden Sie beispielsweise eine der folgenden ähnliche Anfrage. 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://www.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

Beim Erstellen einer Instanz wählen Sie mithilfe des Reservierungsaffinitäts-Flags der Instanz aus, ob die Instanz eine verfügbare übereinstimmende Reservierung verwendet (standardmäßig), eine bestimmte Reservierung verwendet oder gar keine Reservierung verwendet. Damit eine Instanz eine bestimmte Reservierung nutzt, muss diese Reservierung mit dem entsprechenden Flag bestimmte Reservierung erforderlich erstellt werden. Weitere Informationen finden Sie unter Funktionsweise von Reservierungen.

Instanzen einer übereinstimmenden Reservierung nutzen

In diesem Modell gelten vorhandene und neu erstellte 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 Reservierung automatisch nutzen können.

Console

  1. Erstellen Sie eine offene Reservierung.

    1. Öffnen Sie in der GCP Console die Seite Rabatte für zugesicherte Nutzung.

      Weiter zur Seite "Rabatte für zugesicherte Nutzung"

    2. Klicken Sie auf Reservierung erstellen, um eine eigenständige Reservierung zu erstellen, für die keine übergeordnete Nutzungszusicherung besteht.

    3. Benennen Sie die Reservierung, z. B. reservation-01.

    4. Wählen Sie unter Mit VM-Instanz verwenden die Option Reservierung automatisch verwenden aus, damit alle übereinstimmenden Instanzen diese Reservierung automatisch verwenden können.

    5. Wählen Sie die Region und die Zone aus, in der Sie Ressourcen reservieren möchten.

    6. Geben Sie die Anzahl der VM-Instanzen an, die Sie reservieren möchten.

    7. Geben Sie die gewünschten Ressourcen zu jeder Instanz an: Anzahl der vCPUs, Mindest-CPU-Plattform, Größe des Arbeitsspeichers, GPUs und lokale SSD.

    8. Klicken Sie auf Erstellen, um die Reservierung zu erstellen.

  2. Erstellen Sie eine VM-Instanz, die auf eine beliebige offene Reservierung abzielt und dieselben Instanzattribute wie die Reservierung hat.

    1. Rufen Sie die Seite "VM-Instanzen" auf.

      Zur Seite "VM-Instanzen"

    2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.
    3. Klicken Sie auf die Schaltfläche Instanz erstellen.
    4. Geben Sie unter Name einen Namen für Ihre Instanz an.
    5. 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.
    6. Wenn die Reservierung lokale SSDs enthält, klicken Sie unter Laufwerke auf Neues Laufwerk hinzufügen, um lokale SSDs hinzufügen, die der Reservierung entsprechen.
    7. Wählen Sie unter Verwaltung für Reservierungen die Option Erstellte Reservierung automatisch verwenden aus.
    8. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie eine offene Reservierung mit der Bezeichnung reservation-01.

    gcloud compute reservations create reservation-01 \
        --machine-type=n1-standard-32 \
        --min-cpu-platform "Intel Skylake" \
        --vm-count=2 \
        --zone=us-central1-a
    
  2. 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, vCPU, Mindest-CPU-Plattform, Arbeitsspeicher, GPUs und lokale SSD.

    gcloud compute instances create instance-1 \
        --machine-type=n1-standard-32 \
        --min-cpu-platform "Intel Skylake" \
        --zone=us-central1-a \
        --reservation-affinity=any
    

API

  1. Erstellen Sie eine offene Reservierung mit der Bezeichnung reservation-01.

    POST https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations
    
    {
      "name":"reservation-01",
      "specificReservation":{
        "count":"2",
        "instanceProperties":{
          "machineType":"n1-standard-32",
          "minCpuPlatform": "Intel Haswell",
        }
      },
      "specificReservationRequired": false
    }
    
  2. Erstellen Sie eine VM-Instanz, die auf eine beliebige offene Reservierung abzielt (any) und mit den Instanzattributen von reservation-01 übereinstimmt, einschließlich jener für Zone, vCPU, Mindest-CPU-Plattform, Arbeitsspeicher, GPUs und lokale SSD.

    POST https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances
    
    {
      "name": "instance-1",
      "machineType": "zones/us-central1-a/machineTypes/n1-standard-32",
      "minCpuPlatform": "Intel Haswell",
      "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 Instanzvorlage 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 ausgewählte Reservierung mit der Bezeichnung reservation-02 und erstellen Sie dann eine übereinstimmende Instanz, um Ressourcen aus dieser Reservierung zu verwenden.

Console

  1. Erstellen Sie eine Reservierung mit Ressourcen, die nur von Instanzen verwendet werden können, die ausdrücklich namentlich auf diese Reservierung abzielen.

    1. Öffnen Sie in der GCP Console die Seite Rabatte für zugesicherte Nutzung.

      Weiter zur Seite "Rabatte für zugesicherte Nutzung"

    2. Klicken Sie auf Reservierung erstellen, um eine eigenständige Reservierung zu erstellen, für die keine übergeordnete Nutzungszusicherung besteht.

    3. Benennen Sie die Reservierung, z. B. reservation-02.

    4. 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.

    5. Wählen Sie die Region und die Zone aus, in der Sie Ressourcen reservieren möchten.

    6. Geben Sie die Anzahl der VM-Instanzen an, die Sie reservieren möchten.

    7. Geben Sie die gewünschten Ressourcen zu jeder Instanz an: Anzahl der vCPUs, Mindest-CPU-Plattform, Größe des Arbeitsspeichers, GPUs und lokale SSD.

    8. Klicken Sie auf Erstellen, um die Reservierung zu erstellen.

  2. Erstellen Sie eine VM-Instanz, die namentlich auf die Reservierung abzielt und deren Attribute mit den Instanzattributen der Reservierung übereinstimmen.

    1. Rufen Sie die Seite "VM-Instanzen" auf.

      Zur Seite "VM-Instanzen"

    2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.
    3. Klicken Sie auf die Schaltfläche Instanz erstellen.
    4. Geben Sie unter Name einen Namen für Ihre Instanz an.
    5. 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.
    6. Wenn die Reservierung lokale SSDs enthält, klicken Sie unter Laufwerke auf Neues Laufwerk hinzufügen, um lokale SSDs hinzufügen, die der Reservierung entsprechen.
    7. Wählen Sie unter Verwaltung für Reservierungen eine verfügbare Reservierung mit übereinstimmenden Attributen aus, z. B. reservation-02.
    8. Klicken Sie auf Erstellen, um die Instanz anzulegen.

gcloud

  1. Erstellen Sie eine Reservierung mit der Bezeichnung reservation-02 mit Ressourcen, die nur von Instanzen verwendet werden können, die diese Reservierung ausdrücklich namentlich auswählen.

    gcloud beta compute reservations create reservation-02 \
        --machine-type=n1-standard-32 \
        --min-cpu-platform "Intel Skylake" \
        --vm-count=10 \
        --zone=us-central1-a \
        --require-specific-reservation
    
  2. Erstellen Sie eine VM-Instanz, die reservation-02 namentlich auswählt und mit den Instanzattributen der Reservierung übereinstimmt, einschließlich Zone, vCPU, Mindest-CPU-Plattform, Arbeitsspeicher, GPUs und lokalen SSD-Attributen.

    gcloud compute instances create instance-2 \
        --machine-type=n1-standard-32 \
        --min-cpu-platform "Intel Skylake" \
        --zone=us-central1-a \
        --reservation-affinity=specific \
        --reservation=reservation-02
    

API

  1. Erstellen Sie eine Reservierung mit der Bezeichnung reservation-02 mit Ressourcen, die nur von Instanzen verwendet werden können, die diese Reservierung ausdrücklich namentlich auswählen.

    POST https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations
    
    {
      "name":"reservation-02",
      "specificReservation":{
        "count":"10",
        "instanceProperties":{
          "machineType":"n1-standard-32",
          "minCpuPlatform": "Intel Haswell",
        }
      },
      "specificReservationRequired": true
    }
  2. Erstellen Sie eine VM-Instanz, die reservation-02 namentlich auswählt und mit den Instanzattributen der Reservierung für Zone, vCPU, Mindest-CPU-Plattform, Arbeitsspeicher, GPUs und lokalen SSD-Attributen übereinstimmt.

    POST https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances
    
    {
      "name": "instance-2",
      "machineType": "zones/us-central1-a/machineTypes/n1-standard-32",
      "minCpuPlatform": "Intel Haswell",
      "reservationAffinity":
      {
        "consumeReservationType": "SPECIFIC_RESERVATION",
        "key": "googleapis.com/reservation-name",
        "values":
        ["reservation-02"
        ]
      },
      ...
    }

Instanzen ohne Nutzung von Reservierungen erstellen

Wenn Sie vermeiden möchten, dass Ressourcen einer Reservierung genutzt werden, setzen Sie beim Erstellen der VM das Reservierungsaffinitäts-Flag auf "none".

Console

  1. Erstellen Sie eine Instanz, die keine Reservierung nutzt.
    1. Rufen Sie die Seite "VM-Instanzen" auf.

      Zur Seite "VM-Instanzen"

    2. Klicken Sie auf die Schaltfläche Instanz erstellen.
    3. Erstellen Sie wie gewohnt eine Instanz.
    4. Wählen Sie unter Verwaltung für Reservierungen die Option Nicht verwenden aus, um sicherzustellen, dass die Instanz keine vorhandenen Reservierungen nutzt.
    5. Klicken Sie auf Erstellen, um die Instanz anzulegen.

gcloud

Erstellen Sie eine Instanz, die keine Reservierung nutzt.

gcloud compute instances create instance-3 --reservation-affinity=none

API

Erstellen Sie eine Instanz, die keine Reservierung nutzt.

POST https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances

{
  "machineType": "zones/us-central1-a/machineTypes/n1-standard-16",
  "name": "instance-3",
  "reservationAffinity":
  {
    "consumeReservationType": "NO_RESERVATION"
  },
  ...
}

Reservierungen auflisten und beschreiben

Details zu Ihrer Reservierung können Sie über die Console, das gcloud-Befehlszeilentool oder die API auflisten bzw. ansehen.

Console

  1. Öffnen Sie in der GCP Console die Seite Rabatte für zugesicherte Nutzung.

    Weiter zur Seite "Rabatte für zugesicherte Nutzung"

  2. Klicken Sie auf Reservierungen, um eine Liste Ihrer Reservierungen anzusehen.

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]

creationTimestamp: '2019-04-01T08:29:10.210-07:00'
id: '702162498650398927'
kind: compute#reservation
name: reservation-04
selfLink: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/reservation-04
selfLinkWithId: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/702162498650398927
specificReservation:
  count: '50'
  inUseCount: '25'
  instanceProperties:
    machineType: n1-standard-1
specificReservationRequired: true
status: READY
zone: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a

Sie können die Auslastung jeder Reservierung anhand der Werte count und inUseCount ermitteln. In diesem Beispiel wurden 50 Instanzen reserviert, von denen derzeit 25 verwendet werden.

API

Listen Sie in der API Ihre Reservierungen mit einer GET-Anfrage an die Methode reservations.list auf.

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations

Beschreiben Sie eine Reservierung durch Aufrufen der Methode reservations.get.

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations/[RESERVATION_NAME]

{
 "id": "702162498650398927",
 "creationTimestamp": "2019-04-01T08:29:10.210-07:00",
 "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/reservation-04",
 "selfLinkWithId": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/702162498650398927",
 "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a",
 "name": "reservation-04",
 "specificReservationRequired": false,
 "status": "READY",
 "kind": "compute#reservation",
 "specificReservation": {
  "instanceProperties": {
   "machineType": "n1-standard-32"
  },
  "count": "50",
  "inUseCount": "25"
 }
}

Sie können die Auslastung jeder Reservierung anhand der Werte count und inUseCount ermitteln. In diesem Beispiel wurden 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ößenänderung einer Reservierung

Sie können die Anzahl der VMs in einer Reservierung, die nicht an eine Zusicherung gebunden ist, mithilfe des gcloud-Befehlszeilentools oder der API ändern.

gcloud

Ändern Sie die Größe der Reservierung mit dem Befehl gcloud compute reservations update. Beispiel:

Erstellen Sie eine Reservierung für 2 VMs:

gcloud compute reservations create reservation-01 \
    --machine-type=n1-standard-32 \
    --zone=us-central1-a \
    --vm-count=2

Ändern Sie die Größe der Reservierung von 2 auf 10 VMs:

gcloud compute reservations update reservation-01 \
    --zone=us-central1-a \
    --vm-count=10

API

Erstellen Sie in der API eine POST-Anfrage an die Methode reservations.resize und fügen Sie in den Anfragetext den neuen specificSkuCount ein. Der folgende Anfragetext aktualisiert die VM-Anzahl der Reservierung auf 10:

POST https://www.googleapis.com/compute/v1/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 ausgewählten Zone und ein ausreichendes Kontingent in der ausgewählten Zone 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

  1. Öffnen Sie in der GCP Console die Seite Rabatte für zugesicherte Nutzung.

    Weiter zur Seite "Rabatte für zugesicherte Nutzung"

  2. Klicken Sie auf Reservierungen, um eine Liste Ihrer Reservierungen anzusehen.
  3. Klicken Sie auf das Kästchen neben jeder zu löschenden Reservierung.

  4. Klicken Sie auf Reservierung löschen.

gcloud

Sie können Reservierungen mithilfe des Befehls delete löschen:

gcloud compute reservations delete [RESERVATION_NAME] --zone [ZONE]

API

Erstellen Sie in der API eine DELETE-Anfrage an die Methode reservation.delete:

DELETE https://www.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 werden 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 Preisvereinbarung mit einem Rabatt über ein oder drei Jahre, reserviert jedoch in einer bestimmten Zone keine Kapazitäten. 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 Cores 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.

Wenn Sie eine Zusicherung gekauft haben, kann sie nicht mehr storniert werden. 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 Maschinen vom Typ N1 unterstützt.
  • 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 Tesla P100 oder Tesla V100 kaufen. Sie können jedoch keine Nutzungszusicherungen für GPUs vom Typ Tesla 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 Nutzungszusicherung für vCPU und Arbeitsspeicher 0 angeben. Die Reservierung, die Sie der Nutzungszusicherung beifügen, muss jedoch dieselben GPUs und lokalen SSDs wie die Nutzungszusicherung sowie die zu reservierenden Maschinentypen, einschließlich der vCPUs und des Arbeitsspeichers, enthalten.

Sie können eine Nutzungszusicherung mit einer angehängten Reservierung über die Console, das gcloud-Tool oder die API kaufen.

Console

  1. Öffnen Sie in der GCP Console die Seite "Rabatte für zugesicherte Nutzung".

    Weiter zur Seite "Rabatte für zugesicherte Nutzung"

  2. Klicken Sie auf Commitment kaufen, um eine neue Nutzungszusicherung zu kaufen.
  3. Geben Sie der Zusicherung einen Namen und wählen Sie die Region aus, auf die sie angewendet werden soll.
  4. Wählen Sie unter Art der Vereinbarung die Option Allgemein aus.
  5. Wählen Sie den Zeitraum der Zusicherung aus, entweder 1 Jahr oder 3 Jahre.
  6. Wählen Sie den Eingabemodus für die Zusicherung aus:

    • Benutzerdefiniert (empfohlen): Sie können die Anzahl der vCPUs und die Speicherkapazität individuell anpassen.

    • Standard: Sie können die Anzahl der vCPUs wählen und Compute Engine weist die Speicherkapazität für diese Anzahl von vCPUs automatisch zu.

  7. Geben Sie die Menge der vCPUs und des Speichers ein, die Sie kaufen möchten. Abhängig von der gewählten Art des Rabatts müssen Sie ein bestimmtes Verhältnis von Speicher zu vCPUs einhalten. Für Standardrabatte für zugesicherte Nutzung können Sie zwischen 0,9 GB und 6,5 GB pro vCPU verwenden. Die Gesamtspeicherkapazität muss ein Vielfaches von 256 MB sein.

    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.

  8. 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.

  9. Klicken Sie auf Lokales SSD hinzufügen und geben Sie die Anzahl der Laufwerke ein, deren Nutzung Sie zusichern möchten.

  10. 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.

    1. Benennen Sie die Reservierung.
    2. 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.
    3. Wählen Sie die Region und die Zone aus, in der Sie Ressourcen reservieren möchten.
    4. Geben Sie die Anzahl der VM-Instanzen an, die Sie reservieren möchten.
    5. 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.
        1. Wählen Sie für vordefinierte Maschinentypen im Drop-down-Menü die erforderliche Option aus.
        2. 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.
        3. 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.
    6. Klicken Sie auf Erstellen, um die Reservierung zu erstellen.
  11. Klicken Sie auf die Schaltfläche Kaufen, um die Zusicherung zu kaufen.

  12. Lesen Sie die Kaufbedingungen durch und klicken Sie noch einmal auf Kaufen, um den Kauf der Nutzungszusicherung abzuschließen.

gcloud

Verwenden Sie den Befehl gcloud compute commmitments create, um eine Nutzungszusicherung zu kaufen, und Flags, um eine Reservierung hinzuzufügen.

Die folgende Zusicherung umfasst beispielsweise 4 GPUs und eine neue Reservierung für diese 4 GPUs zur Verwendung für 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 beta 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-1 \
    --accelerator=type=nvidia-tesla-p4,count=1 \
    --vm-count=1

Wenn Sie beim Kauf einer Nutzungszusicherung mehrere Reservierungen erstellen möchten, verwenden Sie eine YAML-Datei. 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]

Dabei enthält [YAML_FILE] die Reservierungsattribute.

Die folgende YAML-Datei enthält beispielsweise 2 Reservierungen. Die erste Reservierung res-01 enthält 1 n1-standard-1-Instanz mit 1 GPU, und es handelt sich um 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 n1-standard-1-VM-Instanz 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-1
  accelerator:
  - count: 1
    type: nvidia-tesla-v100
- reservation: res-02
  reservation_zone: us-central1-a
  vm_count: 1
  machine_type: n1-standard-1
  local_ssd:
  - interface: scsi
    size: 375
  - interface: nvme
    size: 375

API

Verwenden Sie die API regionCommitments.insert und fügen Sie das Feld reservations ein, um die Attribute der Reservierung zu definieren. Zum Beispiel umfasst die folgende Zusicherung 4 GPUs und eine Reservierung für diese 4 GPUs zur Verwendung für die 2 Instanzen in us-central1-a.

POST https://www.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 für VCPU und MEMORY den Wert 0 an. Beispiel:

POST https://www.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 mit GPUs oder lokalen SSDs hat, können Sie das gcloud-Tool oder die API verwenden, um GPUs oder lokale SSDs auf 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

Verwenden Sie den Befehl gcloud compute commitments update-reservations.

Erstellen Sie eine Zusicherung mit einer Reservierung: res-1 hat 4 n1-standard-1-Instanzen mit jeweils 1 P100-GPU (4 vCPUs und 4 P100-GPUs). Die insgesamt reservierten Ressourcen umfassen 4 P100-GPUs.

gcloud 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

Wobei one-reservation.yaml Folgendes enthält:

- reservation: res-1
  reservation_zone: asia-east1-a
  require_specific_reservation: true
  vm_count: 4
  machine_type: n1-standard-1
  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. In diesem Beispiel:

  • Ändern Sie res-1, sodass sie 2 n1-standard-1-Instanzen mit jeweils 2 P100-GPUs (2 vCPUs und 2 P100-GPUs) enthält.
  • Fügen Sie res-2 hinzu, sodass sie 2 n1-standard-2-Instanzen mit jeweils 1 P100-GPU (4 vCPUs und 2 P100-GPUs) enthält.

Die Gesamtanzahl der reservierten GPUs innerhalb der Zusicherung bleibt konstant bei 4.

gcloud compute commitments update-reservations my-commitment-with-reservations \
    --region=us-central1 \
    --reservations-from-file=two-reservations.yaml

Wobei two-reservations.yaml Folgendes enthält:

- reservation: res-1
  reservation_zone: asia-east1-a
  require_specific_reservation: true
  vm_count: 2
  machine_type: n1-standard-1
  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 4 n1-standard-1-Instanzen mit jeweils 1 nvidia-tesla-p100-GPU (4 vCPUs und 4 P100-GPUs).

In diesem Beispiel beinhalten die insgesamt reservierten Ressourcen vier P100-GPUs.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-central1/commitments

{
  "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-1"
        }
      },
      "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. In diesem Beispiel:

  • Ändern Sie res-1, sodass sie 2 n1-standard-1-Instanzen mit jeweils 2 P100-GPUs (2 vCPUs und 2 P100-GPUs) enthält.
  • Fügen Sie res-2 hinzu, sodass sie 2 n1-standard-2-Instanzen mit jeweils 1 P100-GPU (4 vCPUs und 2 P100-GPUs) enthält.

Die Gesamtanzahl der reservierten GPUs innerhalb der Zusicherung bleibt konstant bei 4.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-central1/commitments/my-commitment-with-reservation/updateReservations

{
  "reservations":
  [
    {
      "name": "res-1",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 1,
              "acceleratorType": "nvidia-tesla-p100"
            }
          ],
          "machineType": "n1-standard-1"
        }
      },
      "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 die Ressourcen-URIs enthalten den Begriff "reservation".
  • Die Gesamtzahl der reservierten Ressourcen. Diese Einträge enthalten SKU-Namen und Ressourcen-URIs mit dem Begriff "reservation". 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://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/[RESOURCE_TYPE]/[RESOURCE_NAME]

Beispiel: https://www.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://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations/[RESERVATION_NAME]

Beispiel: https://www.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-a/reservations/my-reservation
Reservierte Ressourcen insgesamt com.google.cloud/services/compute-engine/Reservation[SKU_NAME] https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations/[RESERVATION_NAME]

Beispiel: https://www.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 beispielsweise folgende Informationen:

  • Zeile 1 gibt den reservierten RAM an, der aktuell genutzt wird. Die ResourceId der Zeile zeigt, dass dieser RAM von einer Instanz namens my-instance genutzt wird.
  • Zeile 2 gibt reservierten RAM an, der nicht genutzt wird. Die ResourceId der Zeile gibt an, dass der reservierte RAM von my-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/VmimageN1StandardRam,166970074857472,byte-seconds,https://www.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/VmimageN1StandardRam,166970074857472,byte-seconds,https://www.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/ReservationN1StandardRam,333940149714944,byte-seconds,https://www.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 abgerechnet wie die von ihnen reservierten Ressourcen. 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 3-vCPU-Zusicherung in us-central1
  • Sie betreiben 5 vCPUs in us-central1-a
  • Sie haben eine 10-vCPU-Reservierung in us-central1-a

Beispiel für Reservierungen mit bestimmten Rabatten für zugesicherte Nutzung

Die Abrechnung erfolgt wie folgt:

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

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation