HPC-optimierte Instanzen, die RDMA verwenden, im Bulk erstellen


In dieser Anleitung erfahren Sie, wie Sie eine große Anzahl identischer und voneinander unabhängiger HPC-VM-Instanzen (Hochleistungs-Computing) erstellen. Die Instanzen verwenden HPC-optimierte H4D-Maschinentypen und werden auf reservierten Kapazitätsblöcken ausgeführt. In dieser Anleitung wird auch beschrieben, wie Sie die H4D-Instanzen für die Verwendung von Cloud RDMA konfigurieren.

Diese Anleitung richtet sich an HPC-Entwickler, Plattformadministratoren und ‑operatoren sowie an Daten- und MPI-Spezialisten, die einen Cluster aus miteinander verbundenen HPC-Instanzen erstellen möchten. Die resultierenden Instanzen verwenden keinen Orchestrator für die Instanzverwaltung oder die Jobplanung.

Ziele

  1. Reservieren Sie Kapazitätsblöcke für Ihre Bereitstellung.
  2. Optional: Erstellen Sie eine Platzierungsrichtlinie, wenn Sie die VMs nicht auf demselben Block oder Unterblock erstellen.
  3. Virtual Private Cloud-Netzwerke erstellen
  4. RDMA-fähige Instanzen im Bulk erstellen
  5. bereinigen.

Kosten

In dieser Anleitung werden kostenpflichtige Komponenten von Google Cloudverwendet, darunter:

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

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

  4. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  8. Install the Google Cloud CLI.

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

  10. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  14. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/compute.instanceAdmin.v1,roles/compute.networkAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  15. Kapazitätsblöcke für die Bereitstellung reservieren

    In diesem Dokument wird erläutert, wie Sie Kapazitätsblöcke reservieren, indem Sie Ihr Kontoteam bitten, eine zukünftige Reservierungsanfrage für Sie zu erstellen. Mit diesem Reservierungstyp können Sie Kapazität für die dichte Bereitstellung von VM-Instanzen erhalten. Eine Übersicht über alle Verbrauchsoptionen finden Sie hier:

    Mit dieser Aktion können Sie Kapazitätsblöcke für einen bestimmten Zeitraum reservieren, der an einem von Ihnen ausgewählten Datum und einer von Ihnen ausgewählten Uhrzeit beginnt. Basierend auf Ihrer Anfrage erstellt Google einen Entwurf für eine zukünftige Reservierungsanfrage. Nachdem Sie diesen Anforderungsentwurf überprüft und gesendet haben und Google Cloud ihn genehmigt hat, erstellt Compute Engine automatisch (automatisch erstellt) eine leere Reservierung. Zur ausgewählten Startzeit stellt Compute Engine die angeforderte Kapazität in der automatisch erstellten Reservierung bereit. Sie können die Reservierung dann verwenden, um VM-Instanzen zu erstellen, bis der Reservierungszeitraum endet.

    Im Rahmen des Prozesses für zukünftige Reservierungsanfragen verwaltet Google das Kontingent für Ihre reservierten Ressourcen. Sie müssen kein Kontingent anfordern. Zum Startzeitpunkt Ihrer genehmigten zukünftigen Reservierung erhöht Google Ihr Kontingent, wenn es für die reservierten Ressourcen nicht ausreicht.

    So reservieren Sie Kapazitätsblöcke:

    1. Wenden Sie sich an Ihr Kontoteam und geben Sie die folgenden Informationen an, damit Google einen Entwurf für eine zukünftige Reservierungsanfrage erstellen kann:

      • Projektnummer: Die Nummer des Projekts, in dem Ihr Kontoteam die Anfrage erstellt und Compute Engine die Kapazität bereitstellt. Informationen zum Ermitteln der Projektnummer finden Sie in der Resource Manager-Dokumentation unter Projektname, ‑nummer und ‑ID finden.

      • Maschinentyp: Einer der H4D-Maschinentypen, die für HPC optimiert sind

      • Gesamtzahl: Die Gesamtzahl der zu reservierenden VMs. Sie können nur ein Vielfaches von zwei VMs reservieren. Blockgrößen und VM-Anzahl pro Block variieren je nach Maschinentyp und Verfügbarkeit. Ihr Account-Management-Team kann Ihnen weitere Informationen zu Ihrer Anfrage geben.

      • Zone: Die Zone, in der Sie Kapazität reservieren möchten. Informationen zu den verfügbaren Regionen und Zonen für die H4D-Maschinenserie finden Sie unter Verfügbare Regionen und Zonen. Wählen Sie dort in der Liste Maschinenserie auswählen die Option H4D aus.

      • Beginn: Die Startzeit des Reservierungszeitraums. Formatieren Sie die Startzeit als RFC 3339-Zeitstempel:

        YYYY-MM-DDTHH:MM:SSOFFSET
        

        Ersetzen Sie Folgendes:

        • YYYY-MM-DD: ein Datum, formatiert als vierstelliges Jahr, zweistelliger Monat und zweistelliger Tag des Monats und durch Bindestriche (-) getrennt.

        • HH:MM:SS: eine Uhrzeit, die als zweistellige Stundenzahl im 24-Stunden-Format, zweistellige Minuten und zweistellige Sekunden formatiert und durch Doppelpunkte getrennt (:) ist.

        • OFFSET: die Zeitzone formatiert als Versatz der koordinierten Weltzeit (Coordinated Universal Time, UTC). Wenn Sie beispielsweise Pacific Standard Time (PST) verwenden möchten, geben Sie -08:00 an. Wenn Sie keinen Versatz verwenden möchten, geben Sie Z an.

      • Ende: Das Ende des Reservierungszeitraums. Formatieren Sie ihn als RFC 3339-Zeitstempel.

      • Freigabetyp: Gibt an, ob nur Ihr Projekt die automatisch erstellte Reservierung verwenden kann (LOCAL) oder ob auch andere Projekte die Reservierung verwenden können (SPECIFIC_PROJECTS).

        So geben Sie reservierte Kapazitäten für andere Projekte in Ihrer Organisation frei:

        1. Falls noch nicht geschehen, prüfen Sie, ob das Projekt, in dem Google die Anfrage erstellt, freigegebene Reservierungen erstellen darf.

        2. Geben Sie die Nummern der Projekte an, für die die reservierte Kapazität freigegeben werden soll. Sie können bis zu 100 Projekte in Ihrer Organisation angeben.

      • Reservierungsname: Der Name der Reservierung, die von Compute Engine automatisch erstellt wird, um die reservierte Kapazität bereitzustellen. Compute Engine erstellt nur speziell ausgewählte Reservierungen.

      • Name der Zusicherung: Wenn Ihr Reservierungszeitraum ein Jahr oder länger ist, müssen Sie eine ressourcenbasierte Zusicherung für Ihre reservierten Ressourcen erwerben und anhängen. Sie können eine Zusicherung mit einem 1-Jahres- oder 3-Jahres-Plan erwerben. Wenn Sie die reservierte Kapazität für andere Projekte freigeben, erhalten diese Projekte nur dann Rabatte, wenn sie dasselbe Cloud-Rechnungskonto wie das Projekt verwenden, in dem Sie Kapazität reservieren. Weitere Informationen finden Sie unter CUD-Freigabe für ressourcenbasierte Zusicherungen aktivieren.

    2. Google erstellt einen Entwurf für eine zukünftige Reservierungsanfrage und Ihr Kontoteam setzt sich mit Ihnen in Verbindung.

    3. Sehen Sie sich den Anforderungsentwurf an. Beachten Sie bei der Überprüfung der Reservierungsanfrage Folgendes:

      • Sie können die reservierte Kapazität erst nach dem angegebenen Startdatum und der angegebenen Startzeit verwenden.
      • Wenn die angegebene Endzeit erreicht ist, führt Compute Engine die folgenden Schritte aus:

        • Löscht die automatisch erstellte Reservierung.
        • Alle VMs, die die Reservierung verwenden, werden beendet oder gelöscht. Die ausgeführte Aktion basiert auf der Beendigungsaktion, die Sie beim Erstellen der VMs angeben.
      • Nachdem Sie die Reservierungsanfrage eingereicht haben, können Sie nicht mehr ändern, ob die reservierte Kapazität freigegeben wird.

      Wählen Sie eine der folgenden Optionen aus, um den Entwurf einer vorausschauenden Reservierungsanfrage zu prüfen:

      Console

      1. Rufen Sie in der Google Cloud Console die Seite Reservierungen auf.

        Zu „Reservierungen“

      2. Klicken Sie auf den Tab Vorausschauende Reservierungen. In der Tabelle Zukünftige Reservierungen wird jede zukünftige Reservierungsanfrage in Ihrem Projekt aufgeführt. Jede Tabellenspalte beschreibt eine Eigenschaft.

      3. Klicken Sie in der Spalte Name auf den Namen des Anfragenentwurfs, den Google für Sie erstellt hat. Eine Seite mit den Details der zukünftigen Reservierungsanfrage wird geöffnet.

      4. Prüfen Sie im Abschnitt Allgemeine Informationen, ob die Details der Anfrage, z. B. Zeiträume und Freigabetyp, korrekt sind. Wenn Sie eine Zusage angefordert haben, prüfen Sie, ob sie angegeben ist.

      5. Sollten diese Angaben nicht korrekt sein, wenden Sie sich an Ihr Kontoteam.

      gcloud

      1. Verwenden Sie den Befehl gcloud beta compute future-reservations list, wobei das Flag --filter auf PROCUREMENT_STATUS=DRAFTING gesetzt ist, um eine Liste der vorausschauenden Reservierungsanfragen in Ihrem Projekt aufzurufen:

        gcloud beta compute future-reservations list --filter=PROCUREMENT_STATUS=DRAFTING
        
      2. Suchen Sie in der Befehlsausgabe nach der Reservierungsanfrage mit dem Namen, den Sie Ihrem Kontoteam mitgeteilt haben.

      3. Verwenden Sie den gcloud beta compute future-reservations describe-Befehl, um die Details der Anforderung im Entwurf aufzurufen:

        gcloud beta compute future-reservations describe FUTURE_RESERVATION_NAME \
            --zone=ZONE
        

        Ersetzen Sie Folgendes:

        • FUTURE_RESERVATION_NAME: der Name des Reservierungsanfrageentwurfs.
        • ZONE: die Zone, in der Google die Anfrage erstellt hat.

        Die Ausgabe sieht etwa so aus:

        autoCreatedReservationsDeleteTime: '2026-02-10T19:20:00Z'
        creationTimestamp: '2025-11-27T11:14:58.305-08:00'
        deploymentType: DENSE
        id: '7979651787097007552'
        kind: compute#futureReservation
        name: example-draft-request
        planningStatus: DRAFT
        reservationName: example-reservation
        schedulingType: INDEPENDENT
        selfLink: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/example-draft-request
        selfLinkWithId: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/7979651787097007552
        specificReservationRequired: true
        specificSkuProperties:
          instanceProperties:
            localSsds:
            - diskSizeGb: '375'
              interface: NVME
            ...
          machineType: h4d-highmem-192-lssd
        totalCount: '2'
        status:
          autoCreatedReservations:
          - https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/reservations/example-reservation
          fulfilledCount: '2'
          lockTime: '2026-01-27T19:15:00Z'
          procurementStatus: DRAFTING
        timeWindow:
          endTime: '2026-02-10T19:20:00Z'
          startTime: '2026-01-27T19:20:00Z'
        zone: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b
        
      4. Prüfen Sie in der Befehlsausgabe, ob die Details der Anfrage, z. B. der Reservierungszeitraum und der Freigabetyp, korrekt sind. Wenn Sie eine Zusage erworben haben, prüfen Sie, ob sie angegeben ist.

      5. Wenn die Angaben nicht stimmen, wenden Sie sich an Ihr Account-Management-Team.

      REST

      1. Wenn Sie eine Liste zukünftiger Reservierungsanfragen in Ihrem Projekt aufrufen möchten, stellen Sie eine GET-Anfrage an die Beta-Methode futureReservations.list. Fügen Sie in der Anfrage-URL den Abfrageparameter filter ein und legen Sie ihn auf status.procurementStatus=DRAFTING fest:

        GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations?filter=status.procurementStatus=DRAFTING
        

        Ersetzen Sie Folgendes:

        • PROJECT_ID: die ID des Projekts, in dem Google den Entwurf der zukünftigen Reservierungsanfrage erstellt hat.
        • ZONE: die Zone, in der die Anfrage vorhanden ist.
      2. Suchen Sie in der Ausgabe der Anfrage nach der Reservierungsanfrage mit dem Namen, den Sie Ihrem Account-Management-Team mitgeteilt haben.

      3. Wenn Sie die Details der Anforderung im Entwurf ansehen möchten, stellen Sie eine GET-Anfrage an die Beta-Methode futureReservations.get:

        GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME
        

        Ersetzen Sie FUTURE_RESERVATION_NAME durch den Namen der Anfrage für eine zukünftige Reservierung im Entwurf.

        Die Ausgabe sieht etwa so aus:

        {
          "specificSkuProperties": {
            "instanceProperties": {
              "machineType": "h4d-highmem-192-lssd",
              "localSsds": [
                {
                  "diskSizeGb": "375",
                  "interface": "NVME"
                },
                ...
              ]
            },
            "totalCount": "2"
          },
          "kind": "compute#futureReservation",
          "id": "7979651787097007552",
          "creationTimestamp": "2025-11-27T11:14:58.305-08:00",
          "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/example-draft-request",
          "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/7979651787097007552",
          "zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b",
          "name": "example-draft-request",
          "timeWindow": {
            "startTime": "2026-01-27T19:20:00Z",
            "endTime": "2026-02-10T19:20:00Z"
          },
          "status": {
            "procurementStatus": "DRAFTING",
            "lockTime": "2026-01-27T19:15:00Z"
          },
          "planningStatus": "DRAFT",
          "specificReservationRequired": true,
          "reservationName": "example-reservation",
          "deploymentType": "DENSE",
          "schedulingType": "INDEPENDENT",
          "autoCreatedReservationsDeleteTime": "2026-02-10T19:20:00Z"
        }
        
      4. Prüfen Sie in der Ausgabe, ob die Anfragedetails wie der Reservierungszeitraum und der Freigabetyp korrekt sind. Wenn Sie eine Zusage angefordert haben, prüfen Sie, ob sie angegeben ist.

      5. Wenn die Angaben nicht stimmen, wenden Sie sich an Ihr Account-Management-Team.

    4. Wenn alles korrekt ist, senden Sie die Reservierungsanfrage. Sie müssen die Anfrage vor dem Startzeitpunkt der Anfrage einreichen.

      Wählen Sie eine der folgenden Optionen aus, um einen Entwurf einer zukünftigen Reservierungsanfrage einzureichen:

      Console

      1. Rufen Sie in der Google Cloud Console die Seite Reservierungen auf.

        Zu „Reservierungen“

      2. Klicken Sie auf den Tab Vorausschauende Reservierungen.

      3. Klicken Sie in der Spalte Name auf den Namen des Anfragenentwurfs, den Google für Sie erstellt hat.

      4. Klicken Sie auf Senden.

      gcloud

      Verwenden Sie zum Senden des Antragsentwurfs zur Überprüfung den Befehl gcloud beta compute future-reservations update, wobei das Flag --planning-status auf SUBMITTED gesetzt ist:

      gcloud beta compute future-reservations update FUTURE_RESERVATION_NAME \
          --planning-status=SUBMITTED \
          --zone=ZONE
      

      REST

      Wenn Sie den Anfrageentwurf zur Überprüfung einreichen möchten, stellen Sie eine PATCH-Anfrage an die Beta-Methode futureReservations.update. Fügen Sie in der Anfrage-URL den Abfrageparameter updateMask ein und legen Sie ihn auf planningStatus fest:

      PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME?updateMask=planningStatus
      
      {
        "name": "FUTURE_RESERVATION_NAME",
        "planningStatus": "SUBMITTED"
      }
      
    5. Google Cloud genehmigt Ihre eingereichte Anfrage sofort.

    6. Compute Engine erstellt eine leere Reservierung mit den angeforderten Ressourcen.

    7. Informationen zum Aufrufen der Reservierung finden Sie in der AI Hypercomputer-Dokumentation unter Reservierte Kapazität ansehen.

    Optional: Platzierungsrichtlinie erstellen

    Verwenden Sie eine Platzierungsrichtlinie, wenn Ihre VMs so nah wie möglich beieinander platziert werden sollen. Wenn Sie jedoch möchten, dass sich Ihre VMs in einem bestimmten Block befinden, überspringen Sie diesen Schritt und geben Sie den Namen des erforderlichen Blocks beim Bulk-Erstellen von VMs an.

    Instanzen, die über Cloud RDMA kommunizieren, müssen sich in einer einzelnen Zone und, noch strenger, in einem einzelnen Cluster-Fabric befinden. Sie können eine Richtlinie für kompakte Platzierungen erstellen und einen Wert für die maximale Entfernung angeben, um die Mindestkompaktheit innerhalb einer Zone festzulegen. Wenn Sie einen Wert für „max-distance“ angeben, ist die Anzahl der Instanzen, denen Sie die Richtlinie für kompakte Platzierung zuweisen können, begrenzt. Das Limit hängt vom ausgewählten Wert ab.

    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 VM-Instanzen. Geben Sie 3 an, um die VMs in benachbarten Blöcken zu platzieren, und 2, um die VMs im selben Block zu platzieren. Die Platzierung von VMs erfolgt nach Möglichkeit.
    • REGION: Die Region, in der Sie die Platzierungsrichtlinie erstellen möchten. Geben Sie eine Region an, in der der gewünschte Maschinentyp verfügbar ist. Informationen zu verfügbaren 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 beta.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.
    • REGION: Die Region, in der Sie die Platzierungsrichtlinie erstellen möchten. Geben Sie eine Region an, in der der gewünschte Maschinentyp verfügbar ist. Informationen zu verfügbaren Regionen finden Sie unter Verfügbare Regionen und Zonen.
    • POLICY_NAME: der Name der Richtlinie für kompakte Platzierung
    • MAX_DISTANCE: die maximale Entfernung zwischen den VM-Instanzen. Geben Sie 3 an, um die VMs in benachbarten Blöcken zu platzieren, und 2, um die VMs im selben Block zu platzieren. Die Platzierung von VMs erfolgt nach Möglichkeit.

    Virtual Private Cloud-Netzwerke erstellen

    Für RDMA-fähige Instanzen sind mindestens zwei Netzwerkschnittstellen (NICs) erforderlich:

    • 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 die RDMA-Netzwerkkommunikation 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 NICs pro Instanz möglich sind.

    Beachten Sie die folgenden Regeln für die Konfiguration einer Netzwerkschnittstelle für eine Instanz:

    • Jede Netzwerkschnittstelle muss mit einem anderen VPC-Netzwerk verbunden sein.
    • Wenn Sie eine IRDMA-Netzwerkschnittstelle konfigurieren möchten, müssen Sie zuerst ein VPC-Netzwerk mit dem Falcon-RDMA-Netzwerkprofil in derselben Region und Zone wie die Instanz erstellen.
    • Wenn Sie für die GVNIC-Netzwerkschnittstelle kein Netzwerk oder Subnetz angeben, verwendet Compute Engine das Standard-VPC-Netzwerk und das automatische Subnetz, das sich in derselben Region wie die Instanz befindet.
    • Wenn Sie ein Subnetz, aber kein Netzwerk angeben, leitet Compute Engine das Netzwerk aus dem angegebenen Subnetz ab.
    • Wenn Sie ein Netzwerk angeben, müssen Sie ein Subnetz angeben, das zu demselben Netzwerk gehören muss. Andernfalls schlägt die Instanzerstellung fehl.

    Wenn Sie die Falcon VPC-Netzwerke (Virtual Private Cloud) für die Verwendung mit Ihren Instanzen einrichten möchten, können Sie entweder der dokumentierten Anleitung folgen 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 an ein separates Netzwerk angehängt werden. Sie können die Netzwerke mit dem folgenden Skript erstellen. Damit werden zwei Netzwerke für GVNIC und ein Netzwerk für IRDMA erstellt, das das Falcon-VPC-Netzwerkprofil verwendet.

    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. Falcon-VPC-Netzwerkprofile sind nicht in allen Zonen verfügbar.

      gcloud beta compute network-profiles list --filter=falcon
      
    2. Kopieren Sie den folgenden Code und führen Sie ihn in einem Linux-Shell-Fenster aus.

    #!/bin/bash
    
    # Create standard VPC (networks and subnets) for the two GVNIC interfaces
      for N in $(seq 0 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=<var>REGION</var> \
            --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 network for the RDMA over Falcon network interface
    gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \
      --network-profile=ZONE-vpc-falcon \
      --subnet-mode custom
    
    # Create a subnet for the RDMA network
    gcloud beta 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:

    • GVNIC_NAME_PREFIX: Das Namenspräfix, das für das Standard-VPC-Netzwerk und -Subnetz verwendet werden soll, das einen GVNIC-NIC-Typ verwendet.
    • REGION: Die Region, in der Sie die Netzwerke erstellen möchten. Dies muss der Zone entsprechen, die beim Erstellen der Falcon-VPC für das Flag --network-profile angegeben wurde. Wenn Sie beispielsweise die Zone als europe-west4-b angeben, ist 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 vonGoogle 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.

    RDMA-fähige Instanzen im Bulk erstellen

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

    • Bei Instanzen mit einer Cloud RDMA-Netzwerkschnittstelle ist während Hostwartungsereignissen keine Live-Migration möglich. Sie müssen die Instanz so konfigurieren, dass sie während der Wartung beendet wird.
    • Sie können nur IPv4-Adressen mit RDMA-Netzwerkschnittstellen und VPC-Netzwerken mit einem Falcon-RDMA-Netzwerkprofil verwenden.
    • Sie können nur die H4D-Maschinenserie verwenden, um HPC-optimierte Instanzen mit Cloud RDMA zu erstellen.

    In den folgenden Schritten wird gezeigt, wie Sie RDMA-fähige Instanzen im Bulk erstellen, wobei die ersten beiden Netzwerkschnittstellen als GVNIC-Schnittstellen und die dritte Netzwerkschnittstelle als IRDMA-Netzwerkschnittstelle konfiguriert werden:

    gcloud

    Verwenden Sie den Befehl gcloud compute instances create mit drei --network-interface-Flags, zwei für GVNIC-Schnittstellen und eines für die IRDMA-Schnittstelle. Wenn Sie eine Richtlinie für kompakte Platzierung verwenden möchten, fügen Sie auch das folgende Flag hinzu: --resource-policies=POLICY_NAME. Ersetzen Sie POLICY_NAME durch den Namen der Richtlinie für kompakte Platzierung. Sie können die restlichen Instanzoptionen nach Bedarf anpassen.

    gcloud compute instances bulk create \
        --name-pattern=NAME_PATTERN \
        --count=COUNT \
        --machine-type=MACHINE_TYPE \
        --image-family=IMAGE_FAMILY \
        --image=project= IMAGE_PROJECT \
        --reservation-affinity=specific \
        --reservation=RESERVATION \
        --provisioning-model=RESERVATION_BOUND \
        --instance-termination=action=DELETE \
        --maintenance-policy=TERMINATE \
        --region=REGION \
        --boot-disk-type=hyperdisk-balanced \
        --boot-disk-size=DISK_SIZE \
        --scopes=cloud-platform \
        --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:

    • 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.
    • RESERVATION: Für diesen Wert können Sie Folgendes angeben:

      • Wenn Sie eine Platzierungsrichtlinie verwenden oder VMs an einer beliebigen Stelle in Ihrem Reservierungsblock platziert werden können, geben Sie den Reservierungsnamen an, z. B. h4d-highmem-exfr-prod.
      • Wenn die Instanzen in einem bestimmten Block platziert werden sollen und Sie keine Richtlinie für kompakte Platzierungen verwenden, geben Sie einen Reservierungsblocknamen im Format RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME, for example,h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1` an.

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

    • REGION: Geben Sie eine Region an, in der der Maschinentyp, den Sie verwenden möchten, verfügbar ist, z. B. europe-west1. Informationen zu verfügbaren Regionen finden Sie unter Verfügbare Regionen und Zonen.

    • DISK_SIZE (optional) ist die Größe des Bootlaufwerks in GiB. Der Wert muss eine ganze Zahl sein.

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

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

    • STACK_TYPE (optional): der Stacktyp für die GVNIC-Netzwerkschnittstelle. STACK_TYPE muss einer der folgenden Werte sein: IPV4_ONLY oder IPV4_IPV6. 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-Netzwerk und des Subnetzes für die IRDMA-Schnittstelle verwendet haben.

    REST

    Wenn Sie RDMA-fähige Instanzen im Bulk erstellen möchten, senden Sie eine POST-Anfrage an die beta instances.bulkInsert-Methode mit den folgenden Einstellungen:

    • Fügen Sie das networkInterfaces-Objekt mit mindestens zwei Netzwerkkonfigurationen ein, eine für die gVNIC-Netzwerkschnittstelle und eine für die RDMA-Netzwerkschnittstelle.
    • Wenn Sie eine Richtlinie für kompakte Platzierung verwenden möchten, fügen Sie dem Anfragetext auch das Objekt resourcePolicies hinzu.
    • Wenn Sie die reservierten Kapazitätsblöcke beim Erstellen der Instanzen verwenden möchten, legen Sie provisioningModel auf RESERVATION_BOUND fest.
    • Sie können die restlichen Instanzeigenschaften nach Bedarf anpassen.
    POST https://compute.googleapis.com/compute/beta/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"
          }
        ],
        "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",
          }
        ],
        "reservationAffinity":{
            "consumeReservationType":"SPECIFIC_RESERVATION",
            "key":"compute.googleapis.com/reservation-name",
            "values":[
                "RESERVATION"
            ],
            "scheduling":{
                "provisioningModel":"RESERVATION_BOUND",
                "instanceTerminationAction":"DELETE",
                "onHostMaintenance": "TERMINATE",
                "automaticRestart":true
            }
        },
        ...
      }
    }
    

    Gehen Sie folgendermaßen vor:

    1. Ersetzen Sie im Anfragetext 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, müssen Sie eine Zone in derselben Region wie die Richtlinie für kompakte Platzierung verwenden. Informationen zu den Regionen, in denen H4D-Maschinentypen verfügbar sind, finden Sie unter Verfügbare Regionen und Zonen.
      • NAME_PATTERN ist 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 Feld 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.
      • 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.
      • GVNIC_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen des VPC-Netzwerk und des Subnetzes für die GVNIC-Schnittstelle verwendet haben.

        Bei der GVNIC-Netzwerkschnittstelle können Sie die Felder network und subnetwork weglassen, um stattdessen das Netzwerk default zu 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-Netzwerk und des Subnetzes für die IRDMA-Schnittstelle verwendet haben.

      • RESERVATION: Für diesen Wert können Sie Folgendes angeben:

        • Wenn Sie eine Platzierungsrichtlinie verwenden oder VMs an einer beliebigen Stelle in Ihrem Reservierungsblock platziert werden können, geben Sie den Reservierungsnamen an, z. B. h4d-highmem-exfr-prod.
        • Wenn Sie möchten, dass die Instanzen in einem bestimmten Block platziert werden, und Sie keine Richtlinie für kompakte Platzierungen verwenden, geben Sie einen Reservierungsblocknamen als RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME, for example,h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1` an.

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

    2. Optional:Wenn Sie eine Richtlinie für kompakte Platzierung verwenden, ersetzen Sie ... im Anfragetext durch das folgende Feld:

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

      Ersetzen Sie Folgendes:

      • PROJECT_ID: Die Projekt-ID der Richtlinie für kompakte Platzierung.
      • REGION: die Region der Richtlinie für kompakte Platzierung.
      • POLICY_NAME: der Name der Richtlinie für kompakte Platzierung.
    3. Senden Sie die Anfrage.

    Bereinigen

    Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.

    Projekt löschen

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    Ressourcen löschen

    1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:

      Zu "VM-Instanzen"

    2. Wählen Sie die Zeilen mit den VM-Instanzen aus, die Sie in dieser Anleitung erstellt haben.

    3. Klicken Sie auf Löschen und dann noch einmal auf Löschen, um den Löschvorgang zu bestätigen.

    4. Verwenden Sie zum Löschen der Platzierungsrichtlinie den Befehl gcloud compute resource-policies delete.

      gcloud compute resource-policies delete POLICY_NAME \
          --region=REGION
      

      Ersetzen Sie Folgendes:

      • POLICY_NAME: der Name der Platzierungsrichtlinie
      • REGION: die Region, in der sich die Platzierungsrichtlinie befindet

    Nächste Schritte