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ä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

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
  • 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

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

    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 von 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 aus der Liste 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 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 Format custom-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 sind scsi und nvme.
  • 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 Format custom-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 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 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

  1. Erstellen Sie eine offene Reservierung.

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

      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 Ihre Reservierung. Beispiel: 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 Ressourcen an, die die einzelnen Instanzen haben sollen:

      • Anzahl der vCPUs
      • Mindest-CPU-Plattform
      • Arbeitsspeichermenge
      • GPUs
      • Lokale SSD (falls erforderlich)
    8. Klicken Sie auf Erstellen, um die Reservierung zu erstellen.

  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, Maschinentyp (vCPU-Anzahl, Arbeitsspeichermenge), Mindest-CPU-Plattform, GPU-Anzahl und -Art sowie Schnittstelle und Größe der lokalen SSD.

    1. Öffnen Sie in der Cloud Console die Seite VM-Instanzen.

      Zu "VM-Instanzen"

    2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.

    3. Klicken Sie auf 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 hinzuzufügen, die der Schnittstelle und der Speichergröße der lokalen SSD für die 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 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
    
  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, 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

  1. 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
    }
    
  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, 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

  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 Cloud Console die Seite Rabatte für zugesicherte Nutzung.

      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 Ihre Reservierung. Beispiel: 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 Ressourcen an, die die einzelnen Instanzen haben sollen:

      • Anzahl der vCPUs
      • Mindest-CPU-Plattform
      • Arbeitsspeichermenge
      • GPUs
      • Lokale SSD
    8. Klicken Sie auf Erstellen.

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

    1. Öffnen Sie in der Cloud Console die Seite VM-Instanzen.

      Zu "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 hinzuzufügen, die der lokalen SSD-Schnittstelle und -Anzahl 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 mit dem Flag --require-specific-reservation eine Reservierung mit dem Namen reservation-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
    
  2. Erstellen Sie mit den Flags --reservation-affinity und --reservation eine VM-Instanz, die namentlich auf reservation-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

  1. Erstellen Sie mit dem auf true festgelegten Feld specificReservationRequired eine Reservierung mit dem Namen reservation-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
    }
  2. Erstellen Sie mit Feld reservationAffinity eine VM-Instanz, die namentlich auf reservation-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

  1. Erstellen Sie eine Instanz, die explizit keine Reservierung nutzt.

    1. Öffnen Sie in der Cloud Console die Seite VM-Instanzen.

      Zu "VM-Instanzen"

    2. Klicken Sie auf 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.

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:

  1. Ü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.
    • 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 passenden minCpuPlatform.
      • 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 passenden minCpuPlatform.
    • localSsds.diskSizeGb
    • localSsds.interface
  2. Erstellen Sie eine Instanz, die diesen Attributen entspricht.

  3. Beschreiben Sie die Instanz, um zu überprüfen, ob ihre Attribute mit denen der Reservierung übereinstimmen. Verwenden Sie beispielsweise den Befehl instances describe des gcloud-Tools.

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

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.

  1. Erstellen Sie eine Reservierung mit der Option specificReservationRequired.
  2. 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

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

    Zur Seite "Rabatte für zugesicherte Nutzung"

  2. 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 die Reservierung 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

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

    Zur Seite "Rabatte für zugesicherte Nutzung"

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

  3. Klicken Sie das Kästchen neben jeder Reservierung an, die Sie löschen möchten.

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

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

    Zur Seite "Rabatte für zugesicherte Nutzung"

  2. Klicken Sie auf Zusicherung kaufen, um eine neue Zusicherung 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 als Dauer der Zusicherung 1 oder 3 Jahre aus.

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

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

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

  9. 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 Zone aus, in der Sie Ressourcen reservieren möchten.
    4. Geben Sie die Anzahl von 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. Klicken Sie auf Anpassen, um mit dem Schieberegler die Kerne und den Arbeitsspeicher für Ihren Maschinentyp auszuwählen.
        2. Geben Sie die CPU-Plattform an.
        3. Geben Sie die Anzahl der GPUs und den GPU-Typ ein, um GPUs hinzuzufügen.
        4. 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.
    6. Klicken Sie auf Fertig, um die Reservierung zu erstellen.
  10. Klicken Sie auf die Schaltfläche Kaufen, um die Zusicherung zu kaufen.

  11. 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 4 n1-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 2 n1-standard-2-Instanzen mit jeweils 2 P100-GPUs (2 vCPUs und 2 P100-GPUs) hat.
  • Fügen Sie die Reservierung res-2 für 2 n1-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 4 n1-standard-2-Instanzen mit jeweils 1 nvidia-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 2 n1-standard-2-Instanzen mit jeweils 2 P100-GPUs (2 vCPUs und 2 P100-GPUs) hat.
  • Fügen Sie die Reservierung res-2 für 2 n1-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 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/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.

Reservierungen mit bestimmten Rabatten für zugesicherte Nutzung

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

Weitere Informationen