Questa pagina spiega come creare istanze HPC con interfacce di rete abilitate a RDMA. Per istruzioni sulla creazione di istanze A4 o A3 Ultra ottimizzate per l'acceleratore che utilizzano RDMA, consulta Crea un'istanza ottimizzata per l'AI con A4 o A3 Ultra.
Per creare un'istanza di computing che utilizzi l'accesso diretto alla memoria (RDMA) remoto, devi configurare almeno due interfacce di rete (NIC) durante la creazione dell'istanza. Una NIC deve essere una NIC IRDMA che si collega a una rete VPC con un profilo di rete RDMA, mentre l'altra NIC deve utilizzare GVNIC.
Utilizza la tabella Confronto tra serie di macchine per determinare quali serie di macchine supportano le interfacce di rete RDMA.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso a Google Cloud servizi e API. Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
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
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
- Set a default region and zone.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare un'istanza che supporti la comunicazione RDMA, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene le autorizzazioni necessarie per creare un'istanza che supporta la comunicazione RDMA. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare un'istanza che supporti la comunicazione RDMA sono necessarie le seguenti autorizzazioni:
-
compute.instances.create
sul progetto -
Per utilizzare un'immagine personalizzata per creare la VM:
compute.images.useReadOnly
sull'immagine -
Per utilizzare uno snapshot per creare la VM:
compute.snapshots.useReadOnly
sullo snapshot -
Per utilizzare un template di istanza per creare la VM:
compute.instanceTemplates.useReadOnly
sul template di istanza -
Per specificare una subnet per la VM:
compute.subnetworks.use
sul progetto o sulla subnet scelta -
Per specificare un indirizzo IP statico per la VM:
compute.addresses.use
sul progetto -
Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC:
compute.subnetworks.useExternalIp
sul progetto o sulla subnet scelta -
Per impostare i metadati dell'istanza VM per la VM:
compute.instances.setMetadata
sul progetto -
Per impostare i tag per la VM:
compute.instances.setTags
sulla VM -
Per impostare le etichette per la VM:
compute.instances.setLabels
sulla VM -
Per impostare un service account che la VM possa utilizzare:
compute.instances.setServiceAccount
sulla VM -
Per creare un nuovo disco per la VM:
compute.disks.create
sul progetto -
Per collegare un disco esistente in modalità di sola lettura o di lettura e scrittura:
compute.disks.use
sul disco -
Per collegare un disco esistente in modalità di sola lettura:
compute.disks.useReadOnly
sul disco
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Requisiti
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.
- 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.
Limitazioni
- Il networking Tier_1 per la comunicazione IP interna è compatibile solo con le VM che eseguono il driver di rete virtuale gVNIC.
- Non puoi utilizzare la migrazione live con le VM che utilizzano RDMA. Devi configurare l'istanza in modo che venga terminata durante gli eventi di manutenzione.
- Non puoi utilizzare RDMA con i gruppi di istanze gestite (MIG) (gestiti o non gestiti).
- Puoi utilizzare solo i tipi di stack di rete
IPv4_ONLY
con un'istanza abilitata RDMA. - Puoi utilizzare solo la serie di macchine H4D per creare un'istanza che utilizza Cloud RDMA.
Crea un'istanza abilitata a Cloud RDMA
Le istanze abilitate a Cloud RDMA richiedono un minimo di due interfacce di rete (NIC):
- Tipo di NIC
GVNIC
: utilizza il drivergve
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 basata su RDMA tra le istanze
Un'istanza può avere una sola interfaccia
IRDMA
. Ogni istanza può avere da una a 10 interfacce di rete.Per creare un'istanza che utilizza IRDMA, completa i passaggi nelle sezioni seguenti:
Crea una policy di posizionamento, se non ne esiste una adatta.
Crea una nuova rete VPC o utilizza una rete VPC esistente abilitata per RDMA.
Crea un'istanza abilitata a RDMA con un'interfaccia di rete
IRDMA
, almeno un'interfaccia di reteGVNIC
e che utilizza una policy di posizionamento compatto.
Crea una policy di posizionamento per le istanze RDMA
Le istanze che comunicano utilizzando 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 da utilizzare con le istanze RDMA, segui i passaggi descritti in Creare una policy di posizionamento compatto e specifica un valore di distanza massima pari a 3 o inferiore.
Crea reti Virtual Private Cloud
Per configurare le reti, puoi seguire le istruzioni documentate o utilizzare lo script fornito.
Guide con istruzioni
Per creare le reti, puoi utilizzare le seguenti istruzioni:
Per creare le reti host per le interfacce di rete
GVNIC
, consulta Crea e gestisci le reti VPC.Se configuri una sola interfaccia di rete
GVNIC
, puoi utilizzare la rete VPC predefinita e la subnet automatica che si trova nella stessa regione dell'istanza.Per creare una rete per l'interfaccia di rete
IRDMA
, consulta Crea una rete VPC con un profilo di rete RDMA. Imposta l'unità massima di trasmissione (MTU) su8896
per la rete RDMA.
Script
Per creare le reti, puoi utilizzare il seguente script.
(Facoltativo) Prima di eseguire lo script, elenca i profili di rete RDMA per verificare che siano disponibili.
gcloud beta compute network-profiles list
Copia il seguente codice ed eseguilo in una finestra della shell Linux.
#!/bin/bash # Create standard VPC (network and subnet) for the GVNIC interface gcloud beta compute networks create GVNIC_NAME_PREFIX-net-0 \ --subnet-mode=custom gcloud beta compute networks subnets create GVNIC_NAME_PREFIX-sub-0 \ --network=GVNIC_NAME_PREFIX-net-0 \ --region=REGION \ --range=10.0.0.0/16 gcloud beta compute firewall-rules create GVNIC_NAME_PREFIX-internal-0 \ --network=GVNIC_NAME_PREFIX-net-0 \ --action=ALLOW \ --rules=tcp:0-65535,udp:0-65535,icmp \ --source-ranges=10.0.0.0/8 # Create SSH firewall rules gcloud beta 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 an external IP for only the GVNIC interface gcloud beta 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 network for RDMA over Falcon transport gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \ --network-profile=ZONE-vpc-falcon \ --subnet-mode custom # Create subnet for RDMA gcloud beta compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \ --network=RDMA_NAME_PREFIX-irdma \ --region=REGION \ --range=10.1.0.0/16 # offset to avoid overlap with GVNIC network
Sostituisci quanto segue:
GVNIC_NAME_PREFIX
: il prefisso del nome da utilizzare per la rete e la subnet Virtual Private Cloud standard che utilizzano un tipo di NIC GVNIC.RDMA_NAME_PREFIX
: il prefisso del nome da utilizzare per la rete Virtual Private Cloud e la subnet che utilizza il tipo di NIC IRDMA.ZONE
: la zona in cui vuoi creare le reti e le istanze di computing. Utilizzaus-central1-a
oeurope-west4-b
.REGION
: la regione in cui vuoi creare le reti. Deve corrispondere alla zona specificata. Ad esempio, se la tua zona è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 utilizzare0.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.
Crea un'istanza abilitata a RDMA
I passaggi riportati di seguito mostrano come creare un'istanza con la prima interfaccia di rete configurata come interfaccia gVNIC e la seconda interfaccia di rete configurata come interfaccia di rete IRDMA:
Console
Nella console Google Cloud , vai alla pagina Crea un'istanza.
Se richiesto, seleziona il progetto e fai clic su Continua.
Viene visualizzata la pagina Crea un'istanza, che contiene il riquadro Configurazione macchina.
Nel riquadro Configurazione macchina, segui questi passaggi:
- Nel campo Nome, specifica un nome per l'istanza. Per ulteriori informazioni, consulta le convenzioni per la denominazione delle risorse.
(Facoltativo) Nel campo Zona, seleziona una zona per l'istanza.
Scegli la zona che hai utilizzato per configurare il profilo di rete RDMA.
Scegli la famiglia di macchine ottimizzate per il calcolo.
Nella colonna Serie, seleziona la serie di macchine H4D.
Nella sezione Tipo di macchina, seleziona il tipo di macchina per la tua istanza.
Nel menu di navigazione a sinistra, fai clic su Sistema operativo e spazio di archiviazione. Nel riquadro Sistema operativo e spazio di archiviazione visualizzato, segui questi passaggi:
- In fondo alla sezione Sistema operativo e spazio di archiviazione, fai clic su Cambia.
- Negli elenchi Sistema operativo e Versione, seleziona un tipo e una versione del sistema operativo che offrono il supporto RDMA.
- Assicurati che Tipo di disco di avvio sia impostato su Hyperdisk bilanciato.
- Fai clic su Seleziona in fondo al riquadro per salvare le modifiche.
Nel menu di navigazione a sinistra, fai clic su Networking. Nel riquadro Networking visualizzato, segui questi passaggi:
- Vai alla sezione Interfacce di rete. Dovrebbe essere già presente
un'interfaccia di rete, etichettata
default
. - Fai clic su Aggiungi un'interfaccia di rete. Nella sezione Nuova interfaccia di rete visualizzata, segui questi passaggi:
- Nell'elenco Scheda di interfaccia di rete, seleziona
IRDMA
. - Nel campo Rete, seleziona la rete VPC con un profilo di rete RDMA.
- (Facoltativo) Nell'elenco Subnet, seleziona la subnet da utilizzare per l'istanza.
- Nel campo Tipo di stack IP, assicurati che sia impostato su Solo IPv4.
- Nell'elenco Indirizzo IPv4 esterno, seleziona Nessuno.
- Per confermare i dettagli dell'interfaccia di rete, fai clic su Fine.
- Nell'elenco Scheda di interfaccia di rete, seleziona
- Vai alla sezione Interfacce di rete. Dovrebbe essere già presente
un'interfaccia di rete, etichettata
(Facoltativo) Specifica altre opzioni di configurazione per l'istanza. Per maggiori informazioni, vedi Opzioni di configurazione durante la creazione dell'istanza.
Per creare e avviare l'istanza, fai clic su Crea.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Utilizza il comando
gcloud compute instances create
con almeno due flag--network-interface
, uno per l'interfaccia GVNIC e uno per l'interfaccia IRDMA. Puoi personalizzare le altre opzioni del comando in base alle tue esigenze.gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --create-disk=boot=yes, \ image=projects/IMAGE_PROJECT/global/images/IMAGE, \ size=SIZE \ --maintenance-policy=TERMINATE \ --network-interface \ nic-type=GVNIC, \ network=NETWORK_NAME,subnet=SUBNET_NAME, \ stack-type=STACK_TYPE, \ private-network-ip=INTERNAL_IPV4_ADDRESS, \ address=EXTERNAL_IPV4_ADDRESS \ --network-interface \ nic-type=IRDMA, \ network=RDMA_NETWORK_NAME,subnet=RDMA_SUBNET_NAME, \ stack-type=IPV4_ONLY, \ no-address \
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanza di computingZONE
: la zona in cui viene creata l'istanza, ad esempioeurope-west1-b
. La regione dell'istanza viene dedotta dalla zona.MACHINE_TYPE
: (facoltativo) il tipo di macchina da utilizzare per l'istanza.IMAGE_PROJECT
: (facoltativo) il progetto di immagine che contiene l'immagine. Durante il periodo di anteprima, utilizza un'immagine personalizzata o l'immagine VM HPC.IMAGE
: (facoltativo) specifica uno dei seguenti valori:- Una versione specifica dell'immagine sistema operativo, ad esempio
hpc-rocky-linux-8-v20250721
. - Una famiglia di immagini, che deve essere formattata come
family/IMAGE_FAMILY
. In questo modo, l'istanza viene creata dall'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichifamily/hpc-rocky-linux-8
, Compute Engine crea un'istanza utilizzando l'ultima versione dell'immagine sistema operativo nella famiglia di immagini HPC Rocky Linux 8. Per ulteriori informazioni sull'utilizzo delle famiglie di immagini, consulta le rispettive best practice.
- Una versione specifica dell'immagine sistema operativo, ad esempio
SIZE
: (facoltativo) le dimensioni del nuovo disco. Il valore deve essere un numero intero. L'unità di misura predefinita è GiB.NETWORK_NAME
: (Facoltativo) il nome della reteSUBNET_NAME
: il nome della subnet da utilizzare per l'interfaccia di rete. Per visualizzare un elenco delle subnet nella rete, utilizza il comandogcloud compute networks subnets list
.Per l'interfaccia di rete gVNIC, puoi omettere i flag
network
esubnet
e utilizzare invece la retedefault
.STACK_TYPE
: (Facoltativo) il tipo di stack per l'interfaccia di rete gVNIC.STACK_TYPE
deve essere uno dei seguenti valori:IPV4_ONLY
,IPV4_IPV6
oIPV6_ONLY
. Il valore predefinito èIPV4_ONLY
.INTERNAL_IPV4_ADDRESS
: (Facoltativo) l'indirizzo IPv4 interno che vuoi che l'istanza di computing utilizzi nella subnet di destinazione. Ometti questo flag se non hai bisogno di un indirizzo IP specifico.Per specificare un indirizzo IPv6 interno, utilizza invece il flag
--internal-ipv6-address
.EXTERNAL_IPV4_ADDRESS
: (Facoltativo) l'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_NETWORK_NAME
: il nome della rete che hai creato con un profilo di rete RDMA.RDMA_SUBNET_NAME
: il nome di una subnet nella rete RDMA.
REST
Per creare un'istanza configurata per utilizzare RDMA, invia una richiesta
POST
al metodoinstances.insert
. Includi l'oggettonetworkInterfaces
con almeno due configurazioni di rete, una per l'interfaccia gVNIC e una per l'interfaccia IRDMA. Puoi personalizzare le altre proprietà dell'istanza in base alle esigenze.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del progetto in cui creare l'istanzaZONE
: la zona in cui creare l'istanzaMACHINE_TYPE
: il tipo di macchina da utilizzare, ad esempioh4d-highmem-192-lssd
INSTANCE_NAME
: un nome per la nuova istanzaIMAGE_PROJECT
: (facoltativo) il progetto di immagine( che contiene l'immagineIMAGE
: (facoltativo) specifica uno dei seguenti valori:- Una versione specifica dell'immagine sistema operativo, ad esempio
debian-12-bookworm-v20250415
- Una famiglia di immagini, che deve essere formattata come
family/IMAGE_FAMILY
. In questo modo, l'istanza viene creata dall'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichifamily/debian-12
, Compute Engine crea un'istanza utilizzando l'ultima versione dell'immagine sistema operativo nella famiglia di immagini Debian 12. Per ulteriori informazioni sull'utilizzo delle famiglie di immagini, consulta le rispettive best practice.
- Una versione specifica dell'immagine sistema operativo, ad esempio
NETWORK_NAME
: (facoltativo) il nome della rete da utilizzare con l'interfaccia di rete gVNICSUBNET_NAME
: il nome della subnet da utilizzare con l'interfaccia di rete gVNICPer l'interfaccia di rete gVNIC, puoi omettere le proprietà
network
esubnet
e utilizzare invece la retedefault
.INTERNAL_IPV4_ADDRESS
: (Facoltativo) l'indirizzo IPv4 interno che vuoi che l'istanza di computing utilizzi nella subnet di destinazione. Ometti questo flag se non hai bisogno di un indirizzo IP specifico.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_NETWORK_NAME
: il nome della rete creata con un profilo di rete RDMARDMA_SUBNET_NAME
: il nome di una subnet nella rete RDMA
Metodo HTTP e URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Corpo JSON della richiesta:
{ "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "name": "INSTANCE_NAME", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "networkInterfaces": [ { "network": "NETWORK_NAME", "subnetwork": "SUBNET_NAME", "networkIP": "INTERNAL_IPV4_ADDRESS", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External IP", "natIP": "EXTERNAL_IPV4_ADDRESS" } ], "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "RDMA_NETWORK_NAME", "subnetwork": "RDMA_SUBNET_NAME", "stackType": "IPV4_ONLY", "nicType": "IRDMA", } ] }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "compute#operation", "id": "9216044482154695709", "name": "operation-1739207409646-62dccc7d7bc58-d1350b42-64fdb7f7", "zone": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`", "operationType": "insert", "targetLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/instances/`INSTANCE_NAME`", "targetId": "2679381553616227357", "status": "RUNNING", "user": "USER_ID", "progress": 0, "insertTime": "2025-02-10T09:10:10.551-08:00", "startTime": "2025-02-10T09:10:10.551-08:00", "selfLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/operations/operation-1565289606387-58f9f62f5989c-e582f586-6d22f38" "kind": "compute#operation" }
Passaggi successivi
- Scopri come controllare lo stato di un'istanza per sapere quando è pronta per l'uso.
- Scopri come connetterti all'istanza.
- Scopri di più sugli indirizzi IP assegnati quando crei un'istanza.
- Scopri come creare un'istanza a doppio stack o solo IPv6.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-09-19 UTC.
-