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

Mit Reservierungen sorgen Sie dafür, 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:

  • Wenn Sie Maschinen reservieren, sind diese immer verfügbar, 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, 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 aufgefü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, 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, sind diese Ressourcen immer für Sie verfügbar. 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). Sie können 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 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, um übereinstimmende Instanzen zu 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 in der Drop-down-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 von lokalen SSD-Laufwerken 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]
    

Dabei gilt:

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

Dabei gilt:

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

      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 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=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, 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=n1-standard-32 \
            --min-cpu-platform "Intel Skylake" \
            --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":"n1-standard-32",
              "minCpuPlatform": "Intel Haswell",
            }
          },
          "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/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 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 von 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, um die Reservierung zu 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.

      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 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 eine verfügbare Reservierung mit übereinstimmenden Attributen aus, z. B. reservation-02.
    8. Klicken Sie auf Erstellen, um die Instanz zu erstellen.

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=n1-standard-32 \
            --min-cpu-platform "Intel Skylake" \
            --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=n1-standard-32 \
            --min-cpu-platform "Intel Skylake" \
            --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":"n1-standard-32",
              "minCpuPlatform": "Intel Haswell",
            }
          },
          "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/n1-standard-32",
          "minCpuPlatform": "Intel Haswell",
          "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.

      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, damit die Instanz keine vorhandenen Reservierungen nutzt.
    5. Klicken Sie auf Erstellen, um die Instanz zu 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 Abrufen 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/n1-standard-16",
      "name": "instance-3",
      "reservationAffinity":
      {
        "consumeReservationType": "NO_RESERVATION"
      },
      ...
    }

Oder erstellen Sie eine Instanz, die nicht mit den Instanzattributen Ihrer Reservierungen übereinstimmt. Informationen zum Abrufen 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 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. Prüfen Sie die Attribute der Reservierung insbesondere 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 prü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 prü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 prüfen, ob Sie die richtigen Instanzattribute haben.

  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, 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]
    
    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-1
        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-1 \
        --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://compute.googleapis.com/compute/v1/projects/my-project/zones/us-east1-d/reservations/reservation-05",
      "zone": "https://compute.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-1",
          "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, mit dem gcloud-Tool 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=n1-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 von Reservierungen 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 Auswirkungen auf ausgeführte 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 sorgt dafür, 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.

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 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 von GPUs und lokalen SSDs, die Sie reservieren, muss der Menge entsprechen, deren Nutzung Sie zusichern. Wenn Sie beispielsweise 2 V100-GPUs reservieren möchten, müssen Sie sich auch auf 2 V100-GPUs festlegen. Die Anzahl von 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 vCPUs und Arbeitsspeicher) enthalten.

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

Console

  1. Rufen Sie in der Cloud Console die Seite Rabatte für zugesicherte Nutzung auf.

    Zur Seite "Rabatte für zugesicherte Nutzung"

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

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

    • Basis: Sie können die Anzahl von vCPUs wählen. Compute Engine weist dann 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 ausgewä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 von GPUs aus, deren Nutzung Sie zusichern möchten.

  9. Klicken Sie auf Lokale SSD hinzufügen und geben Sie die Anzahl von Laufwerken 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 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. 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 von lokalen SSD-Laufwerken ein, die Sie jeder Instanz hinzufügen möchten, und legen Sie den zu verwendenden Schnittstellentyp fest.
    6. Klicken Sie auf Fertig, um die Reservierung zu erstellen.
  11. Klicken Sie auf die Schaltfläche Kaufen, um die Zusicherung zu kaufen.

  12. Lesen Sie die Kaufbedingungen 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.

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-1 \
        --accelerator=type=nvidia-tesla-p4,count=1 \
        --vm-count=1
    

Wenn Sie beim Erwerb 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. 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-1 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

Zum Definieren der Reservierungsattribute können Sie die API 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 für VCPU und MEMORY den Wert 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 von 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-1-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
    

Dabei enthält one-reservation.yaml Folgendes:

- 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 die Reservierung res-1 so, dass sie 2 n1-standard-1-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 von 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
    

Dabei enthält two-reservations.yaml Folgendes:

- 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 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-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 die Reservierung res-1 so, dass sie 2 n1-standard-1-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 von 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-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 haben SKU-Namen und Ressourcen-URIs, die den Begriff "reservation" enthalten. Mit diesen Einträgen sind keine Kosten verbunden. Berechnen Sie anhand dieser Einträge, wie viel von Ihren Reservierungen Sie nutzen.
Messung Format MeasurementId Format Resource URI
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/Reservation[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

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/VmimageN1StandardRam,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/VmimageN1StandardRam,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/ReservationN1StandardRam,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 von vCPUs
Preis mit Rabatt für zugesicherte Nutzung 3
On-Demand-Preis (2 vCPUs verwendeter Reservierungen + 5 vCPUs nicht verwendeter Reservierungen) 7

Weitere Informationen