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
- Riserva blocchi di capacità per il tuo deployment.
- (Facoltativo) Crea una policy di posizionamento se non crei le VM nello stesso blocco o sottoblocco.
- Crea reti Virtual Private Cloud.
- Crea in blocco istanze abilitate a RDMA.
- 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
- 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.
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
-
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 theresourcemanager.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.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable compute.googleapis.com
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
-
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 theresourcemanager.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.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable compute.googleapis.com
-
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.
- Per i deployment non densi: Modelli di provisioning delle istanze Compute Engine
- Per implementazioni dense: Scegli un'opzione di consumo e ottieni la capacità
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, specificaZ
.
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:
Se non l'hai ancora fatto, verifica che il progetto in cui Google crea la richiesta sia autorizzato a creare prenotazioni condivise.
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.
Google crea una bozza di richiesta di prenotazione futura e il tuo team dell'account ti contatta.
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
Nella console Google Cloud , vai alla pagina Prenotazioni.
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à.
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.
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.
Se alcuni di questi dettagli non sono corretti, contatta il tuo team dell'account.
gcloud
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 suPROCUREMENT_STATUS=DRAFTING
:gcloud beta compute future-reservations list --filter=PROCUREMENT_STATUS=DRAFTING
Nell'output del comando, cerca la richiesta di prenotazione con il nome che hai fornito al tuo team dell'account.
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
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.
Se i dettagli non sono corretti, contatta il team dedicato al tuo account.
REST
Per visualizzare un elenco delle richieste di prenotazione futura nel tuo progetto, invia una richiesta
GET
al metodofutureReservations.list
beta. Nell'URL della richiesta, includi il parametro di queryfilter
e impostalo sustatus.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.
Nell'output della richiesta, cerca la richiesta di prenotazione con il nome che hai fornito al tuo team dell'account.
Per visualizzare i dettagli della bozza di richiesta, invia una richiesta
GET
al metodofutureReservations.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" }
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.
Se i dettagli non sono corretti, contatta il team dedicato al tuo account.
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
Nella console Google Cloud , vai alla pagina Prenotazioni.
Fai clic sulla scheda Prenotazioni future.
Nella colonna Nome, fai clic sul nome della richiesta in bozza che Google ha creato per te.
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 suSUBMITTED
: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 metodofutureReservations.update
beta. Nell'URL della richiesta, includi il parametro di queryupdateMask
e impostalo suplanningStatus
:PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME?updateMask=planningStatus { "name": "FUTURE_RESERVATION_NAME", "planningStatus": "SUBMITTED" }
Google Cloud approva immediatamente la richiesta inviata.
Compute Engine crea una prenotazione vuota con le risorse richieste.
Per visualizzare la prenotazione, consulta Visualizzare la capacità riservata nella documentazione di AI Hypercomputer.
POLICY_NAME
: il nome della policy di posizionamento compattoMAX_DISTANCE
: la configurazione della distanza massima per le istanze VM. Specifica3
per posizionare le VM in blocchi adiacenti e2
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.PROJECT_ID
: il tuo ID progettoREGION
: 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 compattoMAX_DISTANCE
: la configurazione della distanza massima per le istanze VM. Specifica3
per posizionare le VM in blocchi adiacenti e specifica2
per posizionarle nello stesso blocco. Il posizionamento delle VM viene eseguito al meglio delle possibilità.- 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 di rete RDMA tra le istanze - 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 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. Utilizza il valore predefinito per l'unità massima di trasmissione (MTU) per una rete RDMA, ovvero8896
.(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
Copia il seguente codice ed eseguilo in una finestra della shell Linux.
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 comeeurope-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.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. Utilizzaus-central1-a
oeurope-west4-b
.- 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.
NAME_PATTERN
: il pattern del nome per le istanze. Ad esempio, l'utilizzo divm-#
per il pattern del nome genera istanze con nomi comevm-1
evm-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 esempioh4d-highmem-192-lssd
.IMAGE_FAMILY
: la famiglia di immagini dell'immagine sistema operativo che vuoi utilizzare, ad esempiorocky-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 esempiorocky-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à.
- 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
REGION
: specifica una regione in cui è disponibile il tipo di macchina che vuoi utilizzare, ad esempioeurope-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
esubnet
per utilizzare invece la retedefault
.STACK_TYPE
: (Facoltativo) il tipo di stack per l'interfaccia di rete gVNIC.STACK_TYPE
deve essere uno dei seguenti:IPV4_ONLY
oIPV4_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.- 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
suRESERVATION_BOUND
. - Puoi personalizzare le altre proprietà dell'istanza in base alle esigenze.
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 divm-#
per il pattern del nome genera istanze con nomi comevm-1
evm-2
, fino al numero specificato dal campocount
.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 esempioh4d-highmem-192-lssd
.DISK_SIZE
: le dimensioni del disco di avvio in GiB.IMAGE_PROJECT
: l'ID progetto per l'immagine sistema operativo, ad esempiodebian-cloud
.IMAGE_FAMILY
: la famiglia di immagini dell'immagine sistema operativo che vuoi utilizzare, ad esempiorocky-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 gVNICPer l'interfaccia di rete gVNIC, puoi omettere i campi
network
esubnetwork
per utilizzare invece la retedefault
.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à.
- 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
(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.
Invia la richiesta.
Nella console Google Cloud , vai alla pagina Istanze VM.
Seleziona le righe contenenti le istanze VM che hai creato in questo tutorial.
Fai clic su
Elimina, quindi fai clic su Elimina per confermare.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 posizionamentoREGION
: la regione in cui si trova la policy di posizionamento
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:
(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:
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:
Crea reti Virtual Private Cloud
Le istanze abilitate a RDMA richiedono un minimo di due interfacce di rete (NIC):
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:
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.
#!/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:
Crea istanze abilitate a RDMA in blocco
Esamina le seguenti limitazioni prima di creare istanze H4D 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:
REST
Per creare in blocco istanze abilitate per RDMA, invia una richiesta POST
al
metodo
beta instances.bulkInsert
con le seguenti impostazioni:
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:
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