HPC-optimierte Instanzen mit H4D im Bulk erstellen

In diesem Dokument wird beschrieben, wie Sie eine große Anzahl von identischen und voneinander unabhängigen HPC-VM-Instanzen (High Performance Computing) erstellen. Die Instanzen verwenden H4D-Maschinentypen und werden auf reservierten Kapazitätsblöcken ausgeführt.

Weitere Informationen zum Erstellen von VMs im Bulk finden Sie unter Informationen zur Bulk-Erstellung von VMs. Wenn Sie Instanzen im Bulk erstellen möchten, die keine Reservierungen für erweiterte Clusterverwaltungsfunktionen verwenden, lesen Sie stattdessen VMs im Bulk erstellen.

Weitere Informationen zum Erstellen großer Cluster eng gekoppelter H4D-VMs finden Sie auf der Seite HPC-Cluster erstellen – Übersicht.

Hinweise

  • Verbrauchsoption auswählen: Wenn Sie Compute-Instanzen im Bulk erstellen und erweiterte Clusterverwaltungsfunktionen aktivieren möchten, können Sie eine vorausschauende Reservierung im Kalendermodus oder Spot-VMs auswählen.

    Wenn Sie Spot-VMs verwenden, werden die VMs möglicherweise nicht kompakt nebeneinander platziert. Außerdem können Spot-VMs nach Bedarf vorzeitig beendet werden und sind nicht für die Verwaltung von Hostwartungsereignissen für Gruppen von VMs geeignet.

  • Kapazität abrufen: Der Prozess zum Abrufen von Kapazität unterscheidet sich für jede Verbrauchsoption.

    Weitere Informationen finden Sie unter Nutzungsoption auswählen und Kapazität erhalten.

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud Dienste und APIs überprüft. Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

      gcloud init

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    2. Set a default region and zone.

    REST

    Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

      Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

      gcloud init

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von VMs im Bulk benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Erstellen von VMs im Bulk erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um VMs im Bulk zu erstellen:

  • compute.instances.create für das Projekt
  • Zum Erstellen der VM mit einem benutzerdefinierten Image: compute.images.useReadOnly für das Image
  • Zum Erstellen der VM mit einem Snapshot: compute.snapshots.useReadOnly für den Snapshot
  • Zum Erstellen der VM mit einer Instanzvorlage: compute.instanceTemplates.useReadOnly für die Instanzvorlage
  • Zum Angeben eines Subnetzes für Ihre VM: compute.subnetworks.use für das Projekt oder für das ausgewählte Subnetz
  • Zum Festlegen einer statischen IP-Adresse für die VM: compute.addresses.use für das Projekt
  • Zum Zuweisen einer externen IP-Adresse zur VM, wenn Sie ein VPC-Netzwerk verwenden: compute.subnetworks.useExternalIp für das Projekt oder für das ausgewählte Subnetz
  • Zum Zuweisen eines Legacy-Netzwerks zur VM: compute.networks.use für das Projekt
  • Zum Zuweisen einer externen IP-Adresse zur VM, wenn Sie ein Legacy-Netzwerk verwenden: compute.networks.useExternalIp für das Projekt
  • Zum Festlegen von Metadaten der VM-Instanz für die VM: compute.instances.setMetadata für das Projekt
  • Zum Festlegen von Tags für die VM: compute.instances.setTags für die VM
  • Zum Festlegen von Labels für die VM: compute.instances.setLabels für die VM
  • Zum Festlegen eines Dienstkontos für die VM: compute.instances.setServiceAccount für die VM
  • Zum Erstellen eines neuen Laufwerks für die VM: compute.disks.create für das Projekt
  • Zum Anhängen eines vorhandenen Laufwerks im Lese- oder Lese-/Schreibmodus: compute.disks.use für das Laufwerk
  • Zum Anhängen eines vorhandenen Laufwerks im Lesemodus: compute.disks.useReadOnly für das Laufwerk

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Übersicht

Das Erstellen von HPC-Instanzen im Bulk mit dem Maschinentyp „H4D“ umfasst die folgenden Schritte:

  1. Optional: Virtual Private Cloud-Netzwerke erstellen.
  2. Optional: Erstellen Sie eine Platzierungsrichtlinie, wenn Sie die Compute-Instanzen nicht im selben Block oder Unterblock erstellen.
  3. H4D-Instanzen im Bulk erstellen

Optional: Virtual Private Cloud-Netzwerke erstellen

Beim Erstellen einer Compute-Instanz können Sie ein VPC-Netzwerk und ein Subnetz angeben. Wenn Sie diese Konfiguration weglassen, werden das Standardnetzwerk und das Standardsubnetz verwendet.

  • Wenn Sie die H4D-Instanzen in der MIG für die Verwendung von Cloud RDMA konfigurieren möchten, führen Sie die Schritte in diesem Abschnitt aus.
  • Wenn Sie Cloud RDMA nicht verwenden möchten, können Sie diesen Abschnitt überspringen und stattdessen das Standardnetzwerk verwenden.

Wenn Sie Cloud RDMA mit H4D-Instanzen verwenden möchten, müssen Sie mindestens zwei Netzwerke konfigurieren, eines für jeden Typ von Netzwerkschnittstelle:

  • NIC-Typ GVNIC: verwendet den Treiber gve für TCP/IP- und Internet-Traffic für die normale VM-VM- und VM-Internet-Kommunikation.
  • NIC-Typ IRDMA: Verwendet IDPF-/iRDMA-Treiber für Cloud RDMA-Netzwerke zwischen Instanzen.

Instanzen, die Cloud RDMA verwenden, können nur eine IRDMA-Schnittstelle haben. Sie können bis zu acht zusätzliche GVNIC-Netzwerkschnittstellen hinzufügen, sodass insgesamt 10 vNICs pro Instanz möglich sind.

Sie können die Falcon-VPC-Netzwerke für die Verwendung mit Ihren Instanzen entweder anhand der dokumentierten Anleitung einrichten oder das bereitgestellte Skript verwenden.

Anleitungen

So erstellen Sie die Netzwerke:

Skript

Sie können pro Instanz bis zu neun gVNIC-Netzwerkschnittstellen und eine IRDMA-Netzwerkschnittstelle erstellen. Jede Netzwerkschnittstelle muss mit einem separaten Netzwerk verbunden sein. Sie können die Netzwerke mit dem folgenden Skript erstellen, das zwei Netzwerke für gVNIC und ein Netzwerk für IRDMA erstellt.

  1. Optional: Bevor Sie das Skript ausführen, können Sie die Falcon VPC-Netzwerkprofile auflisten, um zu prüfen, ob eines verfügbar ist.
      gcloud compute network-profiles list
      
  2. Kopieren Sie den folgenden Code und führen Sie ihn in einem Linux-Shell-Fenster aus.

      #!/bin/bash
      # Set the number of GVNIC interfaces to create. You can create up to 9.
      NUM_GVNIC=NUMBER_OF_GVNIC
    
      # Create regular VPC networks and subnets for the GVNIC interfaces
        for N in $(seq 0 $(($NUM_GVNIC - 1))); do
          gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
              --subnet-mode=custom
    
          gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
              --network=GVNIC_NAME_PREFIX-net-$N \
              --region=REGION \
              --range=10.$N.0.0/16
    
          gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
              --network=GVNIC_NAME_PREFIX-net-$N \
              --action=ALLOW \
              --rules=tcp:0-65535,udp:0-65535,icmp \
              --source-ranges=10.0.0.0/8
      done
    
      # Create SSH firewall rules
      gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=IP_RANGE
    
      # Optional: Create a firewall rule for the external IP address for the
      #  first GVNIC network interface
      gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=IP_RANGE
    
      # Create a Falcon VPC network for the Cloud RDMA network interface
      gcloud compute networks create RDMA_NAME_PREFIX-irdma \
          --network-profile=ZONE-vpc-falcon \
          --subnet-mode custom
    
      # Create a subnet in the Falcon VPC network
      gcloud compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \
          --network=RDMA_NAME_PREFIX-irdma \
          --region=REGION \
          --range=10.2.0.0/16  # offset to avoid overlap with GVNIC subnet ranges
      

    Ersetzen Sie Folgendes:

    • NUMBER_OF_GVNIC: die Anzahl der zu erstellenden GVNIC-Schnittstellen. Geben Sie eine Zahl zwischen 1 und 9 an.
    • GVNIC_NAME_PREFIX: Das Namenspräfix, das für das reguläre VPC-Netzwerk und -Subnetz verwendet werden soll, das den NIC-Typ „GVNIC“ verwendet.
    • REGION: Die Region, in der Sie die Netzwerke erstellen möchten. Dies muss der Zone entsprechen, die beim Erstellen des Falcon-VPC-Netzwerks für das Flag --network-profile angegeben wurde. Wenn Sie beispielsweise die Zone als europe-west4-b angeben, lautet Ihre Region europe-west4.
    • IP_RANGE: Der Bereich der IP-Adressen außerhalb des VPC-Netzwerk, der für die SSH-Firewallregeln verwendet werden soll. Als Best Practice sollten Sie statt aller IPv4- oder IPv6-Quellen die spezifischen IP-Adressbereiche angeben, von denen aus Sie Zugriff gewähren möchten. Verwenden Sie nicht 0.0.0.0/0 oder ::/0 als Quellbereich, da dadurch Traffic von allen IPv4- oder IPv6-Quellen zugelassen wird, einschließlich Quellen außerhalb von Google Cloud.
    • RDMA_NAME_PREFIX: Das Namenspräfix, das für das VPC-Netzwerk und das Subnetz verwendet werden soll, die den IRDMA-NIC-Typ verwenden.
    • ZONE: Die Zone, in der Sie die Netzwerke und Compute-Instanzen erstellen möchten. Verwenden Sie entweder us-central1-a oder europe-west4-b.
  3. Optional: Wenn Sie prüfen möchten, ob die VPC-Netzwerkressourcen erfolgreich erstellt wurden, sehen Sie sich die Netzwerkeinstellungen in der Google Cloud Console an:

    1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

      Zur Seite VPC-Netzwerke

    2. Suchen Sie in der Liste nach den Netzwerken, die Sie im vorherigen Schritt erstellt haben.
    3. Klicken Sie auf den Namen des Netzwerks, um die Subnetze, Firewallregeln und andere Netzwerkeinstellungen aufzurufen.

Optional: Platzierungsrichtlinie erstellen

Sie können die VM-Platzierung festlegen, indem Sie eine Richtlinie für kompakte Platzierung erstellen. Wenn Sie eine Richtlinie für kompakte Platzierung auf Ihre VMs anwenden, versucht Compute Engine, VMs zu erstellen, die so nah wie möglich beieinander liegen. Wenn Ihre Anwendung latenzempfindlich ist und Sie möchten, dass die VMs näher beieinander liegen (maximale Kompaktheit), geben Sie beim Erstellen einer Richtlinie für kompakte Platzierung das Feld maxDistance (Vorabversion) an. Ein niedrigerer maxDistance-Wert sorgt für eine engere VM-Platzierung, erhöht aber auch die Wahrscheinlichkeit, dass einige VMs nicht erstellt werden.

Wählen Sie eine der folgenden Optionen aus, um eine Richtlinie für kompakte Platzierung zu erstellen:

gcloud

Verwenden Sie zum Erstellen einer Richtlinie für kompakte Platzierung den Befehl gcloud beta compute resource-policies create group-placement:

gcloud beta compute resource-policies create group-placement POLICY_NAME \
    --collocation=collocated \
    --max-distance=MAX_DISTANCE \
    --region=REGION

Ersetzen Sie Folgendes:

  • POLICY_NAME: der Name der Richtlinie für kompakte Platzierung.
  • MAX_DISTANCE: die maximale Entfernung zwischen den VMs. Der Wert muss 3 sein, um VMs in den benachbarten Blöcken zu platzieren, oder 2, um VMs im selben Block zu platzieren. Informationen zur maximalen Anzahl von VMs, die für jede maxDistance pro Maschinenserie unterstützt werden, finden Sie in der Compute Engine-Dokumentation unter Richtlinien für kompakte Platzierung.
  • REGION: Die Region, in der Sie die Richtlinie für kompakte Platzierungen erstellen möchten. Geben Sie eine Region an, in der der gewünschte Maschinentyp verfügbar ist. Informationen zu Regionen finden Sie unter Verfügbare Regionen und Zonen.

REST

Senden Sie zum Erstellen einer Richtlinie für kompakte Platzierung eine POST-Anfrage an die Methode resourcePolicies.insert. Geben Sie im Anfragetext das Feld collocation an, das auf COLLOCATED gesetzt ist, sowie das Feld maxDistance.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
  {
    "name": "POLICY_NAME",
    "groupPlacementPolicy": {
      "collocation": "COLLOCATED",
      "maxDistance": MAX_DISTANCE
    }
  }

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Projekt-ID.
  • POLICY_NAME: der Name der Richtlinie für kompakte Platzierung.
  • MAX_DISTANCE: die maximale Entfernung zwischen den VMs. Der Wert muss 3 sein, um VMs in den benachbarten Blöcken zu platzieren, oder 2, um VMs im selben Block zu platzieren. Informationen zur maximalen Anzahl von VMs, die für jede maxDistance pro Maschinenserie unterstützt werden, finden Sie in der Compute Engine-Dokumentation unter Richtlinien für kompakte Platzierung.
  • REGION: Die Region, in der Sie die Richtlinie für kompakte Platzierungen erstellen möchten. Geben Sie eine Region an, in der der gewünschte Maschinentyp verfügbar ist. Informationen zu Regionen finden Sie unter Verfügbare Regionen und Zonen.

VM-Instanzen im Bulk erstellen

In diesem Abschnitt wird beschrieben, wie Sie H4D-VMs im Bulk erstellen.

Beachten Sie die folgenden Einschränkungen, bevor Sie H4D-Instanzen mit Cloud RDMA erstellen:

  • Sie können die Live-Migration während Hostwartungsereignissen nicht für Instanzen mit einer Cloud RDMA-Netzwerkschnittstelle verwenden. Sie müssen die Instanz so konfigurieren, dass sie während Wartungsereignissen beendet wird.
  • Die gVNIC-Netzwerkschnittstelle kann nur eine IPv6-Adresse haben, entweder intern oder extern, aber nicht beides.
  • Sie können nur IPv4-Adressen mit IRDMA-Netzwerkschnittstellen und Falcon-VPC-Netzwerken verwenden.

gcloud

Verwenden Sie den Befehl gcloud compute instances create, um VMs im Bulk zu erstellen.

Die Parameter, die Sie angeben müssen, hängen von der Verbrauchsoption ab, die Sie für diese Bereitstellung verwenden. Wählen Sie den Tab aus, der dem Bereitstellungsmodell Ihrer Option für die Nutzung entspricht.

Reservierungsgebunden

Beginnen Sie mit dem folgenden gcloud compute instances create-Befehl.

   gcloud compute instances bulk create \
       --name-pattern=NAME_PATTERN \
       --count=COUNT \
       --machine-type=MACHINE_TYPE \
       --image-family=IMAGE_FAMILY \
       --image=project= IMAGE_PROJECT \
       --instance-termination=action=DELETE \
       --maintenance-policy=TERMINATE \
       --region=REGION \
       --boot-disk-type=hyperdisk-balanced \
       --boot-disk-size=DISK_SIZE
   

Gehen Sie folgendermaßen vor:

  1. Ersetzen Sie Folgendes:

    • NAME_PATTERN: das Namensmuster für die Instanzen. Wenn Sie beispielsweise vm-# für das Namensmuster verwenden, werden Instanzen mit Namen wie vm-1 und vm-2 bis zu der durch das Flag --count angegebenen Anzahl erstellt.
    • COUNT: die Anzahl der zu erstellenden Instanzen.
    • MACHINE_TYPE: der für die Instanzen zu verwendende Maschinentyp. Verwenden Sie einen der H4D-Maschinentypen, z. B. h4d-highmem-192-lssd.
    • IMAGE_FAMILY: die Image-Familie des Betriebssystem-Images, das Sie verwenden möchten, z. B. rocky-linux-9-optimized-gcp.

      Eine Liste der unterstützten Betriebssystem-Images finden Sie unter Unterstützte Betriebssysteme. Wählen Sie eine Betriebssystem-Image-Version aus, die die IRDMA-Schnittstelle unterstützt.

    • IMAGE_PROJECT: die Projekt-ID für das Betriebssystem-Image, z. B. rocky-linux-cloud.
    • REGION: Geben Sie eine Region an, in der der Maschinentyp, den Sie verwenden möchten, verfügbar ist, z. B. europe-west4. Informationen zu verfügbaren Regionen finden Sie unter Verfügbare Regionen und Zonen.
    • DISK_SIZE (optional): Die Größe des Bootlaufwerks in GiB. Wert muss eine ganze Zahl sein.
  2. Optional: Wenn Sie eine Richtlinie für kompakte Platzierung verwenden möchten, fügen Sie das Flag --resource-policies ein:

             --resource-policies=POLICY_NAME
             

    Ersetzen Sie POLICY_NAME durch den Namen der Richtlinie für kompakte Platzierung.

  3. Geben Sie die Reservierung auf eine der folgenden Arten an:

    • Wenn Sie eine Platzierungsrichtlinie verwenden oder VMs an einer beliebigen Stelle in Ihrem Reservierungsblock platziert werden können, fügen Sie dem Befehl die folgenden Flags hinzu:

                 --provisioning-model=RESERVATION_BOUND \
                 --reservation-affinity=specific \
                 --reservation=RESERVATION_NAME \
                 

      Ersetzen Sie RESERVATION_NAME durch den Namen der Reservierung, z. B. h4d-highmem-exfr-prod.

    • Wenn Sie keine Richtlinie für kompakte Platzierung verwenden und die Instanzen in einem bestimmten Block platziert werden sollen, fügen Sie dem Befehl die folgenden Flags hinzu:

                 --provisioning-model=RESERVATION_BOUND \
                 --reservation-affinity=specific \
                 --reservation=<RESERVATION_BLOCK_NAME \
                 

      Ersetzen Sie RESERVATION_BLOCK_NAME durch den Namen eines Blocks in der Reservierung, z. B. h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1.

    Informationen zum Anzeigen des Reservierungsnamens oder der verfügbaren Reservierungsblöcke finden Sie unter Kapazität ansehen.

  4. Optional: Wenn Sie die Instanzen für die Verwendung von Cloud RDMA konfigurieren möchten, fügen Sie dem Befehl Flags hinzu, die den folgenden ähneln. In diesem Beispiel werden zwei GVNIC-Netzwerkschnittstellen und eine IRDMA-Netzwerkschnittstelle konfiguriert:

            --network-interface=nic-type=GVNIC, \
                network=GVNIC_NAME_PREFIX-net-0, \
                subnet=GVNIC_NAME_PREFIX-sub-0, \
                stack-type=STACK_TYPE, \
                address=EXTERNAL_IPV4_ADDRESS \
            --network-interface=nic-type=GVNIC, \
                network=GVNIC_NAME_PREFIX-net-1, \
                subnet=GVNIC_NAME_PREFIX-sub-1, no-address \
            --network-interface=nic-type=IRDMA, \
                network=RDMA_NAME_PREFIX-irdma, \
                subnet=RDMA_NAME_PREFIX-irdma-sub, \
                stack-type=IPV4_ONLY, no-address \
            

    Ersetzen Sie Folgendes:

    • GVNIC_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen des VPC-Netzwerks und des Subnetzes für die GVNIC-Schnittstelle verwendet haben.

      Bei der ersten GVNIC-Netzwerkschnittstelle können Sie die Flags network und subnet weglassen und stattdessen das default-Netzwerk verwenden.

    • STACK_TYPE (optional): der Stacktyp für die GVNIC-Netzwerkschnittstelle. STACK_TYPE muss IPV4_ONLY oder IPV4_IPV6 sein. Der Standardwert ist IPV4_ONLY.
    • EXTERNAL_IPV4_ADDRESS (optional): Eine statische externe IPv4-Adresse, die mit der Netzwerkschnittstelle verwendet werden soll. Sie müssen zuvor eine externe IPv4-Adresse reserviert haben. Führen Sie einen der folgenden Schritte aus:
      • Geben Sie eine gültige IPv4-Adresse aus dem Subnetz an.
      • Verwenden Sie stattdessen das Flag no-address, wenn die Netzwerkschnittstelle keine externe IP-Adresse haben soll.
      • Geben Sie address='' an, wenn die Schnittstelle eine sitzungsspezifische externe IP-Adresse erhalten soll.

      Verwenden Sie stattdessen das Flag --external-ipv6-address, um eine externe IPv6-Adresse anzugeben.

    • RDMA_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen des VPC-Netzwerks und des Subnetzes für die IRDMA-Schnittstelle verwendet haben.
  5. Optional: Fügen Sie weitere Flags hinzu, um die restlichen Instanzeigenschaften nach Bedarf anzupassen.
  6. Führen Sie den Befehl aus.

Spot

Beginnen Sie mit dem folgenden gcloud compute instances create-Befehl.

   gcloud compute instances bulk create \
       --name-pattern=NAME_PATTERN \
       --count=COUNT \
       --machine-type=MACHINE_TYPE \
       --image-family=IMAGE_FAMILY \
       --image=project= IMAGE_PROJECT \
       --region=REGION \
       --boot-disk-type=hyperdisk-balanced \
       --boot-disk-size=DISK_SIZE \
       --provisioning-model=SPOT \
       --instance-termination=action=TERMINATION_ACTION
   

Gehen Sie folgendermaßen vor:

  1. Ersetzen Sie Folgendes:

    • NAME_PATTERN: das Namensmuster für die Instanzen. Wenn Sie beispielsweise vm-# für das Namensmuster verwenden, werden Instanzen mit Namen wie vm-1 und vm-2 bis zu der durch das Flag --count angegebenen Anzahl erstellt.
    • COUNT: die Anzahl der zu erstellenden Instanzen.
    • MACHINE_TYPE: der für die Instanzen zu verwendende Maschinentyp. Verwenden Sie einen der H4D-Maschinentypen, z. B. h4d-highmem-192-lssd.
    • IMAGE_FAMILY: die Image-Familie des Betriebssystem-Images, das Sie verwenden möchten, z. B. rocky-linux-9-optimized-gcp.

      Eine Liste der unterstützten Betriebssystem-Images finden Sie unter Unterstützte Betriebssysteme. Wählen Sie eine Betriebssystem-Image-Version aus, die die IRDMA-Schnittstelle unterstützt.

    • IMAGE_PROJECT: die Projekt-ID für das Betriebssystem-Image, z. B. rocky-linux-cloud.
    • REGION: Geben Sie eine Region an, in der der Maschinentyp, den Sie verwenden möchten, verfügbar ist, z. B. europe-west4. Informationen zu verfügbaren Regionen finden Sie unter Verfügbare Regionen und Zonen.
    • DISK_SIZE (optional): die Größe des Bootlaufwerks in GiB. Wert muss eine ganze Zahl sein.
    • TERMINATION_ACTION: Die Aktion, die ausgeführt werden soll, wenn Compute Engine die Instanz vorzeitig beendet, entweder STOP (Standard) oder DELETE.

  2. Optional: Wenn Sie eine Richtlinie für kompakte Platzierungen verwenden möchten, fügen Sie dem Befehl das folgende Flag hinzu:

          --resource-policies=POLICY_NAME \
          

    Ersetzen Sie POLICY_NAME durch den Namen der Richtlinie für kompakte Platzierung.

  3. Optional: Wenn Sie die Instanzen für die Verwendung von Cloud RDMA konfigurieren möchten, fügen Sie dem Befehl Flags hinzu, die den folgenden ähneln. In diesem Beispiel werden zwei GVNIC-Netzwerkschnittstellen und eine IRDMA-Netzwerkschnittstelle konfiguriert:

          --network-interface=nic-type=GVNIC, \
              network=GVNIC_NAME_PREFIX-net-0, \
              subnet=GVNIC_NAME_PREFIX-sub-0, \
              stack-type=STACK_TYPE, \
              address=EXTERNAL_IPV4_ADDRESS \
          --network-interface=nic-type=GVNIC, \
              network=GVNIC_NAME_PREFIX-net-1, \
              subnet=GVNIC_NAME_PREFIX-sub-1, no-address \
          --network-interface=nic-type=IRDMA, \
              network=RDMA_NAME_PREFIX-irdma, \
              subnet=RDMA_NAME_PREFIX-irdma-sub, \
              stack-type=IPV4_ONLY, no-address \
          

    Ersetzen Sie Folgendes:

    • GVNIC_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen des VPC-Netzwerks und des Subnetzes für die GVNIC-Schnittstelle verwendet haben.

      Bei der ersten GVNIC-Netzwerkschnittstelle können Sie die Flags network und subnet weglassen und stattdessen das default-Netzwerk verwenden.

    • STACK_TYPE (optional): der Stacktyp für die GVNIC-Netzwerkschnittstelle. STACK_TYPE muss IPV4_ONLY oder IPV4_IPV6 sein. Der Standardwert ist IPV4_ONLY.
    • EXTERNAL_IPV4_ADDRESS (optional): Eine statische externe IPv4-Adresse, die mit der Netzwerkschnittstelle verwendet werden soll. Sie müssen zuvor eine externe IPv4-Adresse reserviert haben. Führen Sie einen der folgenden Schritte aus:
      • Geben Sie eine gültige IPv4-Adresse aus dem Subnetz an.
      • Verwenden Sie stattdessen das Flag no-address, wenn die Netzwerkschnittstelle keine externe IP-Adresse haben soll.
      • Geben Sie address='' an, wenn die Schnittstelle eine sitzungsspezifische externe IP-Adresse erhalten soll.

      Verwenden Sie stattdessen das Flag --external-ipv6-address, um eine externe IPv6-Adresse anzugeben.

    • RDMA_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen des VPC-Netzwerks und des Subnetzes für die IRDMA-Schnittstelle verwendet haben.
  4. Optional: Fügen Sie weitere Flags hinzu, um die restlichen Instanzeigenschaften nach Bedarf anzupassen.
  5. Führen Sie den Befehl aus.

REST

Wenn Sie VM-Instanzen im Bulk erstellen möchten, senden Sie eine POST-Anfrage an die Methode instances.bulkInsert.

Die Parameter, die Sie angeben müssen, hängen von der Verbrauchsoption ab, die Sie für diese Bereitstellung verwenden. Wählen Sie den Tab aus, der dem Bereitstellungsmodell Ihrer Option für die Nutzung entspricht.

Reservierungsgebunden

Beginnen Sie mit der folgenden POST-Anfrage an die Methode instances.bulkInsert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
    {
      "namePattern":"NAME_PATTERN",
      "count":"COUNT",
      "instanceProperties":{
        "machineType":"MACHINE_TYPE",
        "disks":[
          {
            "boot":true,
            "initializeParams":{
              "diskSizeGb":"DISK_SIZE",
              "diskType":"hyperdisk-balanced",
              "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode":"READ_WRITE",
            "type":"PERSISTENT"
          }
        ],
        "scheduling":{
            "provisioningModel":"RESERVATION_BOUND",
            "instanceTerminationAction":"DELETE",
            "onHostMaintenance": "TERMINATE",
            "automaticRestart":true
        }
      }
    }
    

Gehen Sie folgendermaßen vor:

  1. Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID des Projekts, in dem Sie die Instanzen erstellen möchten.
    • ZONE: Geben Sie eine Zone an, in der der Maschinentyp, den Sie verwenden möchten, verfügbar ist. Wenn Sie eine Richtlinie für kompakte Platzierung verwenden, wählen Sie eine Zone in derselben Region wie die Richtlinie für kompakte Platzierung aus. Informationen zu den Regionen, in denen H4D-Maschinentypen verfügbar sind, finden Sie unter Verfügbare Regionen und Zonen.
    • NAME_PATTERN: das Namensmuster für die Instanzen. Wenn Sie z. B. vm-# für das Namensmuster verwenden, werden Instanzen mit Namen wie vm-1 und vm-2 bis zu der durch das Feld count angegebenen Anzahl erzeugt.
    • COUNT: die Anzahl der zu erstellenden Instanzen.
    • MACHINE_TYPE: der für die Instanzen zu verwendende Maschinentyp. Verwenden Sie einen der H4D-Maschinentypen, z. B. h4d-highmem-192-lssd.
    • DISK_SIZE: Die Größe des Bootlaufwerks in GiB.
    • IMAGE_PROJECT: die Projekt-ID für das Betriebssystem-Image, z. B. debian-cloud.
    • IMAGE_FAMILY: die Image-Familie des Betriebssystem-Images, das Sie verwenden möchten, z. B. rocky-linux-9-optimized-gcp. Eine Liste der unterstützten Betriebssystem-Images finden Sie unter Unterstützte Betriebssysteme. Wählen Sie eine Betriebssystem-Image-Version aus, die die IRDMA-Schnittstelle unterstützt.
  2. Optional: Wenn Sie eine Richtlinie für kompakte Platzierungen verwenden möchten, fügen Sie den Parameter resourcePolicies in den Anfragetext als Teil des Parameters "instanceProperties" ein.

              "resourcePolicies": [
                "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
              ],
              

    Ersetzen Sie POLICY_NAME durch den Namen der Richtlinie für kompakte Platzierung.

  3. Geben Sie die Reservierung auf eine der folgenden Arten an:

    • Wenn Sie eine Platzierungsrichtlinie verwenden oder VMs an einer beliebigen Stelle in Ihrem Reservierungsblock platziert werden können, fügen Sie dem Anfragetext im Rahmen des Parameters "instanceProperties" Folgendes hinzu:

                 "reservationAffinity":{
                   "consumeReservationType":"SPECIFIC_RESERVATION",
                   "key":"compute.googleapis.com/reservation-name",
                   "values":[
                     "RESERVATION_NAME"
                   ],
                 },
                 

      Ersetzen Sie RESERVATION_NAME durch den Namen der Reservierung, z. B. h4d-highmem-exfr-prod.

    • Wenn Sie keine Richtlinie für kompakte Platzierung verwenden oder die Instanzen in einem bestimmten Block platziert werden sollen, fügen Sie dem Anfragetext im Rahmen des Parameters "instanceProperties" Folgendes hinzu:

                  "reservationAffinity":{
                    "consumeReservationType":"SPECIFIC_RESERVATION",
                    "key":"compute.googleapis.com/reservation-name",
                    "values":[
                      "RESERVATION_BLOCK_NAME"
                    ],
                  },
                 

      Ersetzen Sie RESERVATION_BLOCK_NAME durch den Namen eines Blocks in der Reservierung, z. B. h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1.

    Informationen zum Anzeigen des Reservierungsnamens oder der verfügbaren Reservierungsblöcke finden Sie unter Kapazität ansehen.

  4. Wenn Sie die Instanzen für die Verwendung von Cloud RDMA konfigurieren möchten, fügen Sie dem Anfragetext als Teil des Parameters "instanceProperties" einen Parameterblock ein, der dem folgenden ähnelt. In diesem Beispiel werden zwei GVNIC-Netzwerkschnittstellen und eine IRDMA-Netzwerkschnittstelle konfiguriert:

              "networkInterfaces": [
              {
                "network": "GVNIC_NAME_PREFIX-net-0",
                "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
                "accessConfigs": [
                   {
                      "type": "ONE_TO_ONE_NAT",
                      "name": "External IP",
                      "natIP": "EXTERNAL_IPV4_ADDRESS"
                   }
                ],
                "stackType": "IPV4_ONLY",
                "nicType": "GVNIC",
              },
              {
                "network": "GVNIC_NAME_PREFIX-net-1",
                "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
                "stackType": "IPV4_ONLY",
                "nicType": "GVNIC",
              },
              {
                "network": "RDMA_NAME_PREFIX-irdma",
                "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
                "stackType": "IPV4_ONLY",
                "nicType": "IRDMA",
              }
            ],
             

    Ersetzen Sie Folgendes:

    • GVNIC_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen des VPC-Netzwerks und des Subnetzes für die GVNIC-Schnittstelle verwendet haben.

      Bei der GVNIC-Netzwerkschnittstelle können Sie die Felder network und subnetwork weglassen und stattdessen das default-Netzwerk verwenden.

    • EXTERNAL_IPV4_ADDRESS (optional): Eine statische externe IPv4-Adresse, die mit der Netzwerkschnittstelle verwendet werden soll. Sie müssen zuvor eine externe IPv4-Adresse reserviert haben.
    • RDMA_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen des VPC-Netzwerks und des Subnetzes für die IRDMA-Schnittstelle verwendet haben.
  5. Optional: Passen Sie die restlichen Instanzeigenschaften nach Bedarf an.
  6. Senden Sie die Anfrage.

Spot

Beginnen Sie mit der folgenden POST-Anfrage an die Methode instances.bulkInsert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
    {
      "namePattern":"NAME_PATTERN",
      "count":"COUNT",
      "instanceProperties":{
        "machineType":"MACHINE_TYPE",
        "disks":[
          {
            "boot":true,
            "initializeParams":{
              "diskSizeGb":"DISK_SIZE",
              "diskType":"hyperdisk-balanced",
              "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode":"READ_WRITE",
            "type":"PERSISTENT"
          }
        ],
        "scheduling":{
            "provisioningModel":"SPOT",
            "instanceTerminationAction":"TERMINATION_ACTION"
        }
      }
    }
    

Gehen Sie folgendermaßen vor:

  1. Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID des Projekts, in dem Sie die Instanzen erstellen möchten.
    • ZONE: Geben Sie eine Zone an, in der der Maschinentyp, den Sie verwenden möchten, verfügbar ist. Wenn Sie eine Richtlinie für kompakte Platzierung verwenden, wählen Sie eine Zone in derselben Region wie die Richtlinie für kompakte Platzierung aus. Informationen zu den Regionen, in denen H4D-Maschinentypen verfügbar sind, finden Sie unter Verfügbare Regionen und Zonen.
    • NAME_PATTERN: das Namensmuster für die Instanzen. Wenn Sie z. B. vm-# für das Namensmuster verwenden, werden Instanzen mit Namen wie vm-1 und vm-2 bis zu der durch das Feld count angegebenen Anzahl erzeugt.
    • COUNT: die Anzahl der zu erstellenden Instanzen.
    • MACHINE_TYPE: der für die Instanzen zu verwendende Maschinentyp. Verwenden Sie einen der H4D-Maschinentypen, z. B. h4d-highmem-192-lssd.
    • DISK_SIZE: die Größe des Bootlaufwerks in GiB.
    • IMAGE_PROJECT: die Projekt-ID für das Betriebssystem-Image, z. B. debian-cloud.
    • IMAGE_FAMILY: die Image-Familie des Betriebssystem-Images, das Sie verwenden möchten, z. B. rocky-linux-9-optimized-gcp. Eine Liste der unterstützten Betriebssystem-Images finden Sie unter Unterstützte Betriebssysteme. Wählen Sie eine Betriebssystem-Image-Version aus, die die IRDMA-Schnittstelle unterstützt.
    • TERMINATION_ACTION: Die Aktion, die ausgeführt werden soll, wenn Compute Engine die Instanz vorzeitig beendet, entweder STOP (Standard) oder DELETE.

  2. Optional: Wenn Sie eine Richtlinie für kompakte Platzierungen verwenden möchten, fügen Sie den Parameter resourcePolicies als Teil des Parameters "instanceProperties" ein.

              "resourcePolicies": [
                "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
              ]
              
  3. Wenn Sie die Instanzen für die Verwendung von Cloud RDMA konfigurieren möchten, fügen Sie dem Anfragetext als Teil des Parameters "instanceProperties" einen Parameterblock ein, der dem folgenden ähnelt. In diesem Beispiel werden zwei GVNIC-Netzwerkschnittstellen und eine IRDMA-Netzwerkschnittstelle konfiguriert:

              "networkInterfaces": [
              {
                "network": "GVNIC_NAME_PREFIX-net-0",
                "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
                "accessConfigs": [
                   {
                      "type": "ONE_TO_ONE_NAT",
                      "name": "External IP",
                      "natIP": "EXTERNAL_IPV4_ADDRESS"
                   }
                ],
                "stackType": "IPV4_ONLY",
                "nicType": "GVNIC",
              },
              {
                "network": "GVNIC_NAME_PREFIX-net-1",
                "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
                "stackType": "IPV4_ONLY",
                "nicType": "GVNIC",
              },
              {
                "network": "RDMA_NAME_PREFIX-irdma",
                "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
                "stackType": "IPV4_ONLY",
                "nicType": "IRDMA",
              }
            ],
             

    Ersetzen Sie Folgendes:

    • GVNIC_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen des VPC-Netzwerks und des Subnetzes für die GVNIC-Schnittstelle verwendet haben.

      Bei der GVNIC-Netzwerkschnittstelle können Sie die Felder network und subnetwork weglassen und stattdessen das default-Netzwerk verwenden.

    • EXTERNAL_IPV4_ADDRESS (optional): Eine statische externe IPv4-Adresse, die mit der Netzwerkschnittstelle verwendet werden soll. Sie müssen zuvor eine externe IPv4-Adresse reserviert haben.
    • RDMA_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen des VPC-Netzwerks und des Subnetzes für die IRDMA-Schnittstelle verwendet haben.
  4. Optional: Passen Sie die restlichen Instanzeigenschaften nach Bedarf an.
  5. Senden Sie die Anfrage.

Nächste Schritte