Crea in blocco istanze ottimizzate per l'HPC che utilizzano RDMA


Questo tutorial mostra come creare un numero elevato di istanze di macchine virtuali (VM) di computing ad alte prestazioni (HPC) identiche e indipendenti tra loro. Le istanze utilizzano tipi di macchine H4D ottimizzati per l'HPC e vengono eseguite su blocchi di capacità riservata. Questo tutorial mostra anche come configurare le istanze H4D per utilizzare Cloud RDMA.

Questo tutorial è rivolto a ingegneri HPC, amministratori e operatori di piattaforme e a specialisti di dati e MPI interessati a creare un cluster di istanze HPC interconnesse. Le istanze risultanti non utilizzano un orchestratore per la gestione delle istanze o la pianificazione dei job.

Obiettivi

  1. Riserva blocchi di capacità per il tuo deployment.
  2. (Facoltativo) Crea una policy di posizionamento se non crei le VM nello stesso blocco o sottoblocco.
  3. Crea reti Virtual Private Cloud.
  4. Crea in blocco istanze abilitate a RDMA.
  5. Eseguire la pulizia.

Costi

Questo tutorial utilizza componenti fatturabili di Google Cloud, tra cui:

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.

Prima di iniziare

  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. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    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. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  10. Per inizializzare gcloud CLI, esegui questo comando:

    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. Riservare blocchi di capacità per il deployment

    Questo documento spiega come prenotare blocchi di capacità chiedendo al tuo team dell'account di creare una richiesta di prenotazione futura per te. Utilizza questo tipo di prenotazione per ottenere capacità per il deployment denso di istanze VM. Per una panoramica di tutte le opzioni di consumo, consulta:

    Questa azione ti consente di prenotare blocchi di capacità per una durata definita, a partire da una data e un'ora specifiche che scegli. In base alla tua richiesta, Google crea una bozza di richiesta di prenotazione futura. Dopo aver esaminato e inviato questa richiesta di bozza e che Google Cloud l'ha approvata, Compute Engine crea automaticamente (crea automaticamente) una prenotazione vuota. Poi, all'ora di inizio scelta, Compute Engine esegue il provisioning della capacità richiesta nella prenotazione creata automaticamente. Puoi quindi utilizzare la prenotazione per creare istanze di macchine virtuali (VM) fino al termine del periodo di prenotazione.

    Nell'ambito della procedura di richiesta di prenotazione futura, Google gestisce la quota per le risorse riservate. Non è necessario richiedere una quota. All'ora di inizio della prenotazione futura approvata, Google aumenta la quota se non è sufficiente per le risorse prenotate.

    Per prenotare blocchi di capacità, completa i seguenti passaggi:

    1. Contatta il team dedicato al tuo account e fornisci le seguenti informazioni per consentire a Google di creare una bozza di richiesta di prenotazione futura:

      • Numero di progetto: il numero del progetto in cui il team dell'account crea la richiesta e Compute Engine esegue il provisioning della capacità. Per informazioni su come trovare il numero del progetto, consulta Trovare il nome, il numero e l'ID del progetto nella documentazione di Resource Manager.

      • Tipo di macchina: uno dei tipi di macchine H4D ottimizzati per HPC

      • Conteggio totale: il numero totale di VM da prenotare. Puoi prenotare solo multipli di due VM. Le dimensioni dei blocchi e il numero di VM per blocco variano in base al tipo di macchina e alla disponibilità. Il team dedicato al tuo account può fornire maggiori dettagli sulla tua richiesta.

      • Zona: la zona in cui vuoi prenotare la capacità. Per esaminare le regioni e le zone disponibili per la serie di macchine H4D, consulta Regioni e zone disponibili e seleziona H4D nell'elenco Seleziona una serie di macchine.

      • Ora di inizio: l'ora di inizio del periodo di prenotazione. Formatta l'ora di inizio come timestamp RFC 3339:

        YYYY-MM-DDTHH:MM:SSOFFSET
        

        Sostituisci quanto segue:

        • YYYY-MM-DD: una data formattata come anno a quattro cifre, mese a due cifre e giorno del mese a due cifre, separati da trattini (-).

        • HH:MM:SS: un orario formattato con l'ora a due cifre utilizzando il sistema a 24 ore, i minuti a due cifre e i secondi a due cifre, separati da due punti (:).

        • OFFSET: il fuso orario formattato come offset rispetto al Tempo Universale Coordinato (UTC). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), specifica -08:00. Per non utilizzare alcun offset, specifica Z.

      • Ora di fine: l'ora di fine del periodo di prenotazione. Formattalo come timestamp RFC 3339.

      • Tipo di condivisione: indica se solo il tuo progetto può utilizzare la prenotazione creata automaticamente (LOCAL) o se altri progetti possono utilizzare la prenotazione (SPECIFIC_PROJECTS).

        Per condividere la capacità prenotata con altri progetti della tua organizzazione, procedi nel seguente modo:

        1. Se non l'hai ancora fatto, verifica che il progetto in cui Google crea la richiesta sia autorizzato a creare prenotazioni condivise.

        2. Fornisci i numeri dei progetti con cui condividere la capacità riservata. Puoi specificare fino a 100 progetti nella tua organizzazione.

      • Nome prenotazione: il nome della prenotazione che Compute Engine crea automaticamente per fornire la capacità riservata. Compute Engine crea solo prenotazioni con target specifico.

      • Nome dell'impegno: se il periodo di prenotazione è di un anno o più, devi acquistare e collegare un impegno basato sulle risorse alle risorse prenotate. Puoi acquistare un impegno con un piano di 1 anno o 3 anni. Se condividi la capacità prenotata con altri progetti, questi progetti ricevono sconti solo se utilizzano lo stesso account di fatturazione Cloud del progetto in cui prenoti la capacità. Per informazioni dettagliate, vedi Attiva la condivisione del CUD per gli impegni basati sulle risorse.

    2. Google crea una bozza di richiesta di prenotazione futura e il tuo team dell'account ti contatta.

    3. Rivedi la bozza della richiesta. Tieni presente quanto segue quando esamini la richiesta di prenotazione:

      • Puoi iniziare a utilizzare la capacità prenotata solo dopo la data e l'ora di inizio specificate.
      • Quando viene raggiunta l'ora di fine specificata, Compute Engine esegue le seguenti operazioni:

        • Elimina la prenotazione creata automaticamente.
        • Arresta o elimina le VM che utilizzano la prenotazione. L'azione intrapresa si basa sull'azione di terminazione che specifichi durante la creazione delle VM.
      • Non puoi modificare la condivisione della capacità riservata dopo aver inviato la richiesta di prenotazione.

      Per esaminare una bozza di richiesta di prenotazione futura, seleziona una delle seguenti opzioni:

      Console

      1. Nella console Google Cloud , vai alla pagina Prenotazioni.

        Vai a Prenotazioni

      2. Fai clic sulla scheda Prenotazioni future. La tabella Prenotazioni future elenca ogni richiesta di prenotazione futura nel tuo progetto e ogni colonna della tabella descrive una proprietà.

      3. Nella colonna Nome, fai clic sul nome della richiesta in bozza che Google ha creato per te. Viene visualizzata una pagina con i dettagli della richiesta di prenotazione futura.

      4. Nella sezione Informazioni di base, verifica che i dettagli della richiesta, come Date e Tipo di condivisione, siano corretti. Inoltre, se hai richiesto un impegno, verifica che sia specificato.

      5. Se alcuni di questi dettagli non sono corretti, contatta il tuo team dell'account.

      gcloud

      1. Per visualizzare un elenco delle richieste di prenotazione futura nel tuo progetto, utilizza il comando gcloud beta compute future-reservations list con il flag --filter impostato su PROCUREMENT_STATUS=DRAFTING:

        gcloud beta compute future-reservations list --filter=PROCUREMENT_STATUS=DRAFTING
        
      2. Nell'output del comando, cerca la richiesta di prenotazione con il nome che hai fornito al tuo team dell'account.

      3. Per visualizzare i dettagli della bozza di richiesta, utilizza il comando gcloud beta compute future-reservations describe:

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

        Sostituisci quanto segue:

        • FUTURE_RESERVATION_NAME: il nome della bozza di richiesta di prenotazione futura.
        • ZONE: la zona in cui Google ha creato la richiesta.

        L'output è simile al seguente:

        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. Nell'output del comando, verifica che i dettagli della richiesta, come il periodo di prenotazione e il tipo di condivisione, siano corretti. Inoltre, se hai acquistato un impegno, verifica che sia specificato.

      5. Se i dettagli non sono corretti, contatta il team dedicato al tuo account.

      REST

      1. Per visualizzare un elenco delle richieste di prenotazione futura nel tuo progetto, invia una richiesta GET al metodo futureReservations.list beta. Nell'URL della richiesta, includi il parametro di query filter e impostalo su status.procurementStatus=DRAFTING:

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

        Sostituisci quanto segue:

        • PROJECT_ID: l'ID del progetto in cui Google ha creato la bozza della richiesta di prenotazione futura.
        • ZONE: la zona in cui esiste la richiesta.
      2. Nell'output della richiesta, cerca la richiesta di prenotazione con il nome che hai fornito al tuo team dell'account.

      3. Per visualizzare i dettagli della bozza di richiesta, invia una richiesta GET al metodo futureReservations.get beta:

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

        Sostituisci FUTURE_RESERVATION_NAME con il nome della bozza di richiesta di prenotazione futura.

        L'output è simile al seguente:

        {
          "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. Nell'output, verifica che i dettagli della richiesta, come il periodo di prenotazione e il tipo di condivisione, siano corretti. Inoltre, se hai richiesto un impegno, verifica che sia specificato.

      5. Se i dettagli non sono corretti, contatta il team dedicato al tuo account.

    4. Se è tutto corretto, invia la richiesta di prenotazione. Devi inviare la richiesta prima dell'ora di inizio della richiesta.

      Per inviare una bozza di richiesta di prenotazione futura, seleziona una delle seguenti opzioni:

      Console

      1. Nella console Google Cloud , vai alla pagina Prenotazioni.

        Vai a Prenotazioni

      2. Fai clic sulla scheda Prenotazioni future.

      3. Nella colonna Nome, fai clic sul nome della richiesta in bozza che Google ha creato per te.

      4. Fai clic su Invia.

      gcloud

      Per inviare la bozza di richiesta per la revisione, utilizza il comando gcloud beta compute future-reservations update con il flag --planning-status impostato su SUBMITTED:

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

      REST

      Per inviare la bozza della richiesta per la revisione, invia una richiesta PATCH al metodo futureReservations.update beta. Nell'URL della richiesta, includi il parametro di query updateMask e impostalo su planningStatus:

      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 approva immediatamente la richiesta inviata.

    6. Compute Engine crea una prenotazione vuota con le risorse richieste.

    7. Per visualizzare la prenotazione, consulta Visualizzare la capacità riservata nella documentazione di AI Hypercomputer.

    (Facoltativo) Crea una policy di posizionamento

    Utilizza una policy di posizionamento se vuoi che le VM siano posizionate il più vicino possibile l'una all'altra. Tuttavia, se vuoi che le tue VM si trovino su un blocco specifico, salta questo passaggio e fornisci il nome del blocco richiesto durante la creazione collettiva delle VM.

    Le istanze che comunicano utilizzando Cloud RDMA devono trovarsi in una singola zona e, in modo più rigoroso, all'interno di un singolo fabric del cluster. Puoi creare una policy di posizionamento compatto e specificare un valore di distanza massima per impostare la compattezza minima all'interno di una zona. Esiste un limite al numero di istanze a cui puoi assegnare la policy di posizionamento compatto quando specifichi un valore di distanza massima e il limite cambia a seconda del valore scelto.

    Per creare una policy di posizionamento compatto, seleziona una delle seguenti opzioni:

    gcloud

    Per creare una policy di posizionamento compatto, utilizza il comando 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
    

    Sostituisci quanto segue:

    • POLICY_NAME: il nome della policy di posizionamento compatto
    • MAX_DISTANCE: la configurazione della distanza massima per le istanze VM. Specifica 3 per posizionare le VM in blocchi adiacenti e 2 per posizionarle nello stesso blocco. Il posizionamento delle VM viene eseguito al meglio delle possibilità.
    • REGION: la regione in cui vuoi creare la policy di posizionamento. Specifica una regione in cui è disponibile il tipo di macchina che vuoi utilizzare. Per informazioni sulle regioni disponibili, consulta Regioni e zone disponibili.

    REST

    Per creare una policy di posizionamento compatto, invia una richiesta POST al metodo beta.resourcePolicies.insert. Nel corpo della richiesta, includi il campo collocation impostato su COLLOCATED e il campo maxDistance.

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

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo ID progetto
    • REGION: la regione in cui vuoi creare la policy di posizionamento. Specifica una regione in cui è disponibile il tipo di macchina che vuoi utilizzare. Per informazioni sulle regioni disponibili, consulta Regioni e zone disponibili.
    • POLICY_NAME: il nome della policy di posizionamento compatto
    • MAX_DISTANCE: la configurazione della distanza massima per le istanze VM. Specifica 3 per posizionare le VM in blocchi adiacenti e specifica 2 per posizionarle nello stesso blocco. Il posizionamento delle VM viene eseguito al meglio delle possibilità.

    Crea reti Virtual Private Cloud

    Le istanze abilitate a RDMA richiedono un minimo di due interfacce di rete (NIC):

    • Tipo di NIC GVNIC: utilizza il driver gve per il traffico TCP/IP e internet per la normale comunicazione VM-VM e VM-internet
    • Tipo di NIC IRDMA: utilizza i driver IDPF/iRDMA per la comunicazione di rete RDMA tra le istanze

    Le istanze che utilizzano Cloud RDMA possono avere una sola interfaccia IRDMA. Puoi aggiungere fino a otto interfacce di rete GVNIC aggiuntive per un totale di 10 NIC per istanza.

    Esamina le seguenti regole per configurare un'interfaccia di rete per un'istanza:

    • Ogni interfaccia di rete deve connettersi a una rete Virtual Private Cloud diversa.
    • Per configurare un'interfaccia di rete IRDMA, devi prima creare una rete VPC con il profilo di rete Falcon RDMA nella stessa regione e zona dell'istanza.
    • Per l'interfaccia di rete gVNIC, se non specifichi una rete o una subnet, Compute Engine utilizza la rete VPC predefinita e la subnet automatica che si trova nella stessa regione dell'istanza.
    • Se specifichi una subnet ma non una rete, Compute Engine deduce la rete dalla subnet specificata.
    • Se specifichi una rete, devi specificare una subnet che deve appartenere alla stessa rete. In caso contrario, la creazione dell'istanza non andrà a buon fine.

    Per configurare le reti Virtual Private Cloud (VPC) di Falcon da utilizzare con le tue istanze, puoi seguire le istruzioni documentate o utilizzare lo script fornito.

    Guide con istruzioni

    Per creare le reti, puoi utilizzare le seguenti istruzioni:

    Script

    Puoi creare fino a nove interfacce di rete GVNIC e un'interfaccia di rete IRDMA per istanza. Ogni interfaccia di rete deve essere collegata a una rete separata. Per creare le reti, puoi utilizzare il seguente script, che crea due reti per GVNIC e una rete per IRDMA che utilizza il profilo di rete VPC Falcon.

    1. (Facoltativo) Prima di eseguire lo script, elenca i profili di rete VPC di Falcon per verificare che ne sia disponibile uno. Falcon I profili di rete VPC non sono disponibili in tutte le zone.

      gcloud beta compute network-profiles list --filter=falcon
      
    2. Copia il seguente codice ed eseguilo in una finestra della shell Linux.

    #!/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
    

    Sostituisci quanto segue:

    • GVNIC_NAME_PREFIX: il prefisso del nome da utilizzare per la rete VPC e la subnet standard che utilizzano un tipo di NIC GVNIC.
    • REGION: la regione in cui vuoi creare le reti. Deve corrispondere alla zona specificata per il flag --network-profile durante la creazione del VPC Falcon. Ad esempio, se specifichi la zona come europe-west4-b, la tua regione è europe-west4.
    • IP_RANGE: l'intervallo di indirizzi IP al di fuori della rete VPC da utilizzare per le regole firewall SSH. Come best practice, specifica gli intervalli di indirizzi IP specifici da cui devi consentire l'accesso, anziché tutte le origini IPv4 o IPv6. Non utilizzare 0.0.0.0/0 o ::/0 come intervallo di origine perché ciò consente il traffico da tutte le origini IPv4 o IPv6, incluse quelle esterne aGoogle Cloud.
    • RDMA_NAME_PREFIX: il prefisso del nome da utilizzare per la rete VPC e la subnet che utilizzano il tipo di NIC IRDMA.
    • ZONE: la zona in cui vuoi creare le reti e le istanze di computing. Utilizza us-central1-a o europe-west4-b.

    Crea istanze abilitate a RDMA in blocco

    Esamina le seguenti limitazioni prima di creare istanze H4D con Cloud RDMA:

    • Non puoi utilizzare la migrazione live durante gli eventi di manutenzione dell'host con istanze che hanno un'interfaccia di rete Cloud RDMA. Devi configurare l'istanza in modo che venga terminata durante gli eventi di manutenzione.
    • Puoi utilizzare solo indirizzi IPv4 con interfacce di rete RDMA e reti VPC con un profilo di rete Falcon RDMA.
    • Puoi utilizzare solo la serie di macchine H4D per creare istanze ottimizzate per l'HPC con Cloud RDMA.

    I seguenti passaggi mostrano come creare istanze abilitate a RDMA collettivamente con le prime due interfacce di rete configurate come interfacce GVNIC e la terza interfaccia di rete configurata come interfaccia di rete IRDMA:

    gcloud

    Utilizza il comando gcloud compute instances create con tre flag --network-interface, due per le interfacce gVNIC e uno per l'interfaccia IRDMA. Se hai scelto di utilizzare una policy di posizionamento compatto, aggiungi anche il seguente flag: --resource-policies=POLICY_NAME. Sostituisci POLICY_NAME con il nome della policy di posizionamento compatto. Puoi personalizzare le altre opzioni dell'istanza in base alle tue esigenze.

    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
    

    Sostituisci quanto segue:

    • NAME_PATTERN: il pattern del nome per le istanze. Ad esempio, l'utilizzo di vm-# per il pattern del nome genera istanze con nomi come vm-1 e vm-2, fino al numero specificato dal flag --count.
    • COUNT: il numero di istanze da creare.
    • MACHINE_TYPE: il tipo di macchina da utilizzare per le istanze. Utilizza uno dei tipi di macchine H4D, ad esempio h4d-highmem-192-lssd.
    • IMAGE_FAMILY: la famiglia di immagini dell'immagine sistema operativo che vuoi utilizzare, ad esempio rocky-linux-9-optimized-gcp. Per un elenco delle immagini del sistema operativo supportate, vedi Sistema operativo supportato. Scegli una versione dell'immagine del sistema operativo che supporti l'interfaccia IRDMA.
    • IMAGE_PROJECT: l'ID progetto per l'immagine del sistema operativo, ad esempio rocky-linux-cloud.
    • RESERVATION: per questo valore, puoi specificare uno dei seguenti valori:

      • Se utilizzi una policy di posizionamento o se le VM possono essere posizionate ovunque nel blocco di prenotazione, specifica il nome della prenotazione, ad esempio h4d-highmem-exfr-prod.
      • Se vuoi che le istanze vengano inserite in un blocco specifico e non utilizzi una policy di posizionamento compatto, specifica un nome di blocco di prenotazione utilizzando il formato RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME, for example,h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1`.

      Per visualizzare il nome della prenotazione o i blocchi di prenotazione disponibili, vedi Visualizzare la capacità.

    • REGION: specifica una regione in cui è disponibile il tipo di macchina che vuoi utilizzare, ad esempio europe-west1. Per informazioni sulle regioni disponibili, consulta Regioni e zone disponibili.

    • DISK_SIZE: (Facoltativo) le dimensioni del disco di avvio in GiB. Il valore deve essere un numero intero.

    • GVNIC_NAME_PREFIX: il prefisso del nome che hai utilizzato durante la creazione della rete VPC e della subnet per l'interfaccia GVNIC.

      Per l'interfaccia di rete gVNIC, puoi omettere i flag network e subnet per utilizzare invece la rete default.

    • STACK_TYPE: (Facoltativo) il tipo di stack per l'interfaccia di rete gVNIC. STACK_TYPE deve essere uno dei seguenti: IPV4_ONLY o IPV4_IPV6. Il valore predefinito è IPV4_ONLY.

    • EXTERNAL_IPV4_ADDRESS: (Facoltativo) un indirizzo IPv4 esterno statico da utilizzare con l'interfaccia di rete. Devi aver prenotato un indirizzo IPv4 esterno in precedenza. Esegui una di queste operazioni:

      • Specifica un indirizzo IPv4 valido dalla subnet.
      • Utilizza il flag no-address se non vuoi che l'interfaccia di rete abbia un indirizzo IP esterno.
      • Specifica address='' se vuoi che l'interfaccia riceva un indirizzo IP esterno temporaneo.

      Per specificare un indirizzo IPv6 esterno, utilizza invece il flag --external-ipv6-address.

    • RDMA_NAME_PREFIX: il prefisso del nome che hai utilizzato durante la creazione della rete VPC e della subnet per l'interfaccia IRDMA.

    REST

    Per creare in blocco istanze abilitate per RDMA, invia una richiesta POST al metodo beta instances.bulkInsert con le seguenti impostazioni:

    • Includi l'oggetto networkInterfaces con almeno due configurazioni di rete, una per l'interfaccia di rete gVNIC e una per l'interfaccia di rete RDMA.
    • Se hai scelto di utilizzare una policy di posizionamento compatto, aggiungi anche l'oggetto resourcePolicies al corpo della richiesta.
    • Per utilizzare i blocchi di capacità riservati durante la creazione delle istanze, imposta provisioningModel su RESERVATION_BOUND.
    • Puoi personalizzare le altre proprietà dell'istanza in base alle esigenze.
    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
            }
        },
        ...
      }
    }
    

    Completa i seguenti passaggi:

    1. Nel corpo della richiesta, sostituisci quanto segue:

      • PROJECT_ID: l'ID del progetto in cui vuoi creare le istanze.
      • ZONE: specifica una zona in cui è disponibile il tipo di macchina che vuoi utilizzare. Se utilizzi una policy di posizionamento compatto, utilizza una zona nella stessa regione della policy di posizionamento compatto. Per informazioni sulle regioni in cui sono disponibili i tipi di macchine H4D, consulta Regioni e zone disponibili.
      • NAME_PATTERN: il pattern del nome per le istanze. Ad esempio, l'utilizzo di vm-# per il pattern del nome genera istanze con nomi come vm-1 e vm-2, fino al numero specificato dal campo count.
      • COUNT: il numero di istanze da creare.
      • MACHINE_TYPE: il tipo di macchina da utilizzare per le istanze. Utilizza uno dei tipi di macchine H4D, ad esempio h4d-highmem-192-lssd.
      • DISK_SIZE: le dimensioni del disco di avvio in GiB.
      • IMAGE_PROJECT: l'ID progetto per l'immagine sistema operativo, ad esempio debian-cloud.
      • IMAGE_FAMILY: la famiglia di immagini dell'immagine sistema operativo che vuoi utilizzare, ad esempio rocky-linux-9-optimized-gcp. Per un elenco delle immagini del sistema operativo supportate, vedi Sistema operativo supportato. Scegli una versione dell'immagine del sistema operativo che supporti l'interfaccia IRDMA.
      • GVNIC_NAME_PREFIX: il prefisso del nome che hai utilizzato durante la creazione della rete VPC e della subnet per l'interfaccia gVNIC

        Per l'interfaccia di rete gVNIC, puoi omettere i campi network e subnetwork per utilizzare invece la rete default.

      • EXTERNAL_IPV4_ADDRESS: (Facoltativo) un indirizzo IPv4 esterno statico da utilizzare con l'interfaccia di rete. Devi aver prenotato un indirizzo IPv4 esterno in precedenza.

      • RDMA_NAME_PREFIX: il prefisso del nome che hai utilizzato durante la creazione della rete VPC e della subnet per l'interfaccia IRDMA.

      • RESERVATION: per questo valore, puoi specificare uno dei seguenti valori:

        • Se utilizzi una policy di posizionamento o se le VM possono essere posizionate ovunque nel blocco di prenotazione, specifica il nome della prenotazione, ad esempio h4d-highmem-exfr-prod.
        • Se vuoi che le istanze vengano posizionate in un blocco specifico e non utilizzi una policy di posizionamento compatto, specifica un nome di blocco di prenotazione come RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME, for example,h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1`.

        Per visualizzare il nome della prenotazione o i blocchi di prenotazione disponibili, vedi Visualizzare la capacità.

    2. (Facoltativo) Se utilizzi una policy di posizionamento compatto, sostituisci ... nel corpo della richiesta con il seguente campo:

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

      Sostituisci quanto segue:

      • PROJECT_ID: l'ID progetto della policy di posizionamento compatto.
      • REGION: la regione della policy di posizionamento compatto.
      • POLICY_NAME: il nome della policy di posizionamento compatto.
    3. Invia la richiesta.

    Esegui la pulizia

    Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

    Elimina il progetto

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    Elimina le risorse

    1. Nella console Google Cloud , vai alla pagina Istanze VM.

      Vai a Istanze VM

    2. Seleziona le righe contenenti le istanze VM che hai creato in questo tutorial.

    3. Fai clic su Elimina, quindi fai clic su Elimina per confermare.

    4. Per eliminare la policy di posizionamento, utilizza il comando gcloud compute resource-policies delete.

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

      Sostituisci quanto segue:

      • POLICY_NAME: il nome della policy di posizionamento
      • REGION: la regione in cui si trova la policy di posizionamento

    Passaggi successivi