Crea in blocco istanze ottimizzate per l'HPC con H4D

Questo documento spiega come creare in blocco un numero elevato di istanze di macchine virtuali (VM) per il computing ad alte prestazioni (HPC) identiche e indipendenti tra loro. Le istanze utilizzano tipi di macchine H4D e vengono eseguite su blocchi di capacità riservati.

Per saperne di più sulla creazione di VM in blocco, consulta Informazioni sulla creazione in blocco delle VM. Per creare in blocco istanze che non utilizzano le prenotazioni per funzionalità di gestione avanzata dei cluster, consulta Creare VM in blocco.

Per scoprire altri modi per creare cluster di grandi dimensioni di VM H4D strettamente accoppiate, consulta la pagina Panoramica della creazione di cluster HPC.

Prima di iniziare

  • Scegli un'opzione di consumo: per creare istanze di calcolo collettivamente e attivare funzionalità di gestione avanzata dei cluster, puoi scegliere una prenotazione futura in modalità Calendario o VM spot.

    Se scegli di utilizzare le VM spot, le VM potrebbero non essere collocate in modo compatto. Inoltre, le VM spot possono essere prerilasciate in base alle necessità e non sono idonee per la gestione degli eventi di manutenzione dell'host per gruppi di VM.

  • Ottenere capacità: la procedura per ottenere capacità varia per ogni opzione di consumo.

    Per saperne di più, consulta Scegliere un'opzione di consumo e ottenere capacità.

  • 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

    1. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    2. 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 comando seguente:

      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 Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare più VM contemporaneamente, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare più VM contemporaneamente. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare più VM contemporaneamente, 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 assegnare una rete legacy alla VM: compute.networks.use sul progetto
  • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete legacy: compute.networks.useExternalIp sul progetto
  • 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.

Panoramica

La creazione collettiva di istanze HPC con il tipo di macchina H4D include i seguenti passaggi:

  1. (Facoltativo) Crea reti Virtual Private Cloud.
  2. (Facoltativo) Crea una policy di posizionamento se non crei le istanze di computing nello stesso blocco o sottoblocco.
  3. Crea istanze H4D in blocco.

(Facoltativo) Crea reti Virtual Private Cloud

Quando crei un'istanza di computing, puoi specificare una rete VPC e una subnet. Se ometti questa configurazione, vengono utilizzate la rete e la subnet predefinite.

  • Se vuoi configurare le istanze H4D nel gruppo di istanze gestite per utilizzare Cloud RDMA, completa i passaggi descritti in questa sezione.
  • Se non vuoi utilizzare Cloud RDMA, puoi saltare questa sezione e utilizzare la rete predefinita.

Per utilizzare Cloud RDMA con le istanze H4D, devi configurare almeno due reti, una per ogni tipo di interfaccia 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 il networking Cloud 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 vNIC per istanza.

Per configurare le reti VPC 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 una 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.

  1. (Facoltativo) Prima di eseguire lo script, elenca i profili di rete VPC di Falcon per verificare che ne sia disponibile uno.
      gcloud compute network-profiles list
      
  2. Copia il seguente codice ed eseguilo in una finestra della shell Linux.

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

    Sostituisci quanto segue:

    • NUMBER_OF_GVNIC: il numero di interfacce gVNIC da creare. Specifica un numero compreso tra 1 e 9.
    • GVNIC_NAME_PREFIX: il prefisso del nome da utilizzare per la rete VPC e la subnet regolari 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 della rete VPC Falcon. Ad esempio, se specifichi la zona come europe-west4-b, la 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 a Google 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.
  3. (Facoltativo) Per verificare che le risorse di rete VPC siano state create correttamente, controlla le impostazioni di rete nella console Google Cloud :

    1. Nella console Google Cloud , vai alla pagina Reti VPC.

      Vai a Reti VPC

    2. Cerca nell'elenco le reti che hai creato nel passaggio precedente.
    3. Per visualizzare le subnet, le regole firewall e altre impostazioni di rete, fai clic sul nome della rete.

(Facoltativo) Crea una policy di posizionamento

Puoi specificare il posizionamento delle VM creando una policy di posizionamento compatto. Quando applichi una policy di posizionamento compatto alle tue VM, Compute Engine tenta al meglio di creare VM il più vicine possibile tra loro. Se la tua applicazione è sensibile alla latenza e vuoi che le VM siano più vicine (massima compattezza), specifica il campo maxDistance (anteprima) quando crei una policy di posizionamento compatto. Un valore maxDistance inferiore garantisce un posizionamento più vicino delle VM, ma aumenta anche la probabilità che alcune VM non vengano create.

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 VM. Il valore deve essere 3 per posizionare le VM nei blocchi adiacenti o 2 per posizionare le VM nello stesso blocco. Per informazioni sul numero massimo di VM supportate per ogni maxDistance per serie di macchine, consulta Informazioni sulle policy di posizionamento compatto nella documentazione di Compute Engine.
  • REGION: la regione in cui vuoi creare la policy di posizionamento compatto. Specifica una regione in cui è disponibile il tipo di macchina che vuoi utilizzare. Per informazioni sulle regioni, vedi Regioni e zone disponibili.

REST

Per creare una policy di posizionamento compatto, invia una richiesta POST al metodo resourcePolicies.insert beta. 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
  • POLICY_NAME: il nome della policy di posizionamento compatto.
  • MAX_DISTANCE: la configurazione della distanza massima per le VM. Il valore deve essere 3 per posizionare le VM nei blocchi adiacenti o 2 per posizionare le VM nello stesso blocco. Per informazioni sul numero massimo di VM supportate per ogni maxDistance per serie di macchine, consulta Informazioni sulle policy di posizionamento compatto nella documentazione di Compute Engine.
  • REGION: la regione in cui vuoi creare la policy di posizionamento compatto. Specifica una regione in cui è disponibile il tipo di macchina che vuoi utilizzare. Per informazioni sulle regioni, vedi Regioni e zone disponibili.

Crea istanze VM collettivamente

Le istruzioni in questa sezione descrivono come creare VM H4D 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.
  • L'interfaccia di rete gVNIC può avere un solo indirizzo IPv6, interno o esterno, ma non entrambi.
  • Puoi utilizzare solo indirizzi IPv4 con interfacce di rete IRDMA e reti VPC Falcon.

gcloud

Per creare più VM contemporaneamente, utilizza il comando gcloud compute instances create.

I parametri da specificare dipendono dall'opzione di consumo che utilizzi per questo deployment. Seleziona la scheda corrispondente al modello di provisioning dell'opzione di consumo.

Con prenotazione

Inizia con il seguente comando gcloud compute instances create.

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

Completa i seguenti passaggi:

  1. 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 sistema operativo, ad esempio rocky-linux-cloud.
    • REGION: specifica una regione in cui è disponibile il tipo di macchina che vuoi utilizzare, ad esempio europe-west4. Per informazioni sulle regioni disponibili, vedi Regioni e zone disponibili.
    • DISK_SIZE: (Facoltativo) le dimensioni del disco di avvio in GiB. Il valore deve essere un numero intero.
  2. (Facoltativo) Se hai scelto di utilizzare una policy di posizionamento compatto, includi il flag --resource-policies:

             --resource-policies=POLICY_NAME
             

    Sostituisci POLICY_NAME con il nome della policy di posizionamento compatto.

  3. Per specificare la prenotazione, esegui una delle seguenti operazioni:

    • Se utilizzi una policy di posizionamento o se le VM possono essere posizionate ovunque nel blocco di prenotazione, aggiungi i seguenti flag al comando:

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

      Sostituisci RESERVATION_NAME con il nome della prenotazione, ad esempio h4d-highmem-exfr-prod.

    • Se non utilizzi una policy di posizionamento compatto e vuoi che le istanze vengano posizionate in un blocco specifico, aggiungi i seguenti flag al comando:

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

      Sostituisci RESERVATION_BLOCK_NAME con il nome di un blocco nella prenotazione, ad esempio h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1.

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

  4. (Facoltativo) Per configurare le istanze in modo che utilizzino Cloud RDMA, aggiungi al comando i flag simili a quelli riportati di seguito. Questo esempio configura due interfacce di rete gVNIC e un'interfaccia di rete IRDMA:

            --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:

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

      Per la prima interfaccia di rete GVNIC, puoi omettere i flag network e subnet per utilizzare la rete default.

    • STACK_TYPE: (Facoltativo) il tipo di stack per l'interfaccia di rete gVNIC. STACK_TYPE deve essere 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 delle seguenti 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.
  5. (Facoltativo) Aggiungi flag aggiuntivi per personalizzare le altre proprietà dell'istanza, se necessario.
  6. Esegui il comando.

Spot

Inizia con il seguente comando gcloud compute instances create.

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

Completa i seguenti passaggi:

  1. 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 sistema operativo, ad esempio rocky-linux-cloud.
    • REGION: specifica una regione in cui è disponibile il tipo di macchina che vuoi utilizzare, ad esempio europe-west4. Per informazioni sulle regioni disponibili, vedi Regioni e zone disponibili.
    • DISK_SIZE: (Facoltativo) le dimensioni del disco di avvio in GiB. Il valore deve essere un numero intero.
    • TERMINATION_ACTION: l'azione da intraprendere quando Compute Engine prerilascia l'istanza, ovvero STOP (impostazione predefinita) o DELETE.

  2. (Facoltativo) Se hai scelto di utilizzare una policy di posizionamento compatto, aggiungi il seguente flag al comando:

          --resource-policies=POLICY_NAME \
          

    Sostituisci POLICY_NAME con il nome della policy di posizionamento compatto.

  3. (Facoltativo) Per configurare le istanze in modo che utilizzino Cloud RDMA, aggiungi al comando i flag simili a quelli riportati di seguito. Questo esempio configura due interfacce di rete gVNIC e un'interfaccia di rete IRDMA:

          --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:

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

      Per la prima interfaccia di rete GVNIC, puoi omettere i flag network e subnet per utilizzare la rete default.

    • STACK_TYPE: (Facoltativo) il tipo di stack per l'interfaccia di rete gVNIC. STACK_TYPE deve essere 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 delle seguenti 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.
  4. (Facoltativo) Aggiungi flag aggiuntivi per personalizzare le altre proprietà dell'istanza, se necessario.
  5. Esegui il comando.

REST

Per creare istanze VM in blocco, invia una richiesta POST al metodo instances.bulkInsert.

I parametri da specificare dipendono dall'opzione di consumo che utilizzi per questo deployment. Seleziona la scheda corrispondente al modello di provisioning dell'opzione di consumo.

Con prenotazione

Inizia con la seguente richiesta POST al metodo instances.bulkInsert.

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

Completa i seguenti passaggi:

  1. Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto 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.
  2. (Facoltativo) Se hai scelto di utilizzare una policy di posizionamento compatto, includi il parametro resourcePolicies nel corpo della richiesta come parte del parametro "instanceProperties".

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

    Sostituisci POLICY_NAME con il nome della policy di posizionamento compatto.

  3. Per specificare la prenotazione, esegui una delle seguenti operazioni:

    • Se utilizzi una policy di posizionamento o se le VM possono essere posizionate ovunque nel blocco di prenotazione, aggiungi quanto segue al corpo della richiesta come parte del parametro "instanceProperties":

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

      Sostituisci RESERVATION_NAME con il nome della prenotazione, ad esempio h4d-highmem-exfr-prod.

    • Se non utilizzi una policy di posizionamento compatto o vuoi che le istanze vengano posizionate in un blocco specifico, aggiungi quanto segue al corpo della richiesta come parte del parametro "instanceProperties":

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

      Sostituisci RESERVATION_BLOCK_NAME con il nome di un blocco nella prenotazione, ad esempio h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1.

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

  4. Se vuoi configurare le istanze in modo che utilizzino Cloud RDMA, includi un blocco di parametri simile al seguente nel corpo della richiesta come parte del parametro "instanceProperties". Questo esempio configura due interfacce di rete gVNIC e un'interfaccia di rete IRDMA:

              "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",
              }
            ],
             

    Sostituisci quanto segue:

    • 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 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.
  5. (Facoltativo) Personalizza le altre proprietà dell'istanza, se necessario.
  6. Invia la richiesta.

Spot

Inizia con la seguente richiesta POST al metodo instances.bulkInsert.

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

Completa i seguenti passaggi:

  1. Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto 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.
    • TERMINATION_ACTION: l'azione da intraprendere quando Compute Engine prerilascia l'istanza, ovvero STOP (impostazione predefinita) o DELETE.

  2. (Facoltativo) Se hai scelto di utilizzare una policy di posizionamento compatto, includi il parametro resourcePolicies come parte del parametro "instanceProperties".

              "resourcePolicies": [
                "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
              ]
              
  3. Se vuoi configurare le istanze in modo che utilizzino Cloud RDMA, includi un blocco di parametri simile al seguente nel corpo della richiesta come parte del parametro "instanceProperties". Questo esempio configura due interfacce di rete gVNIC e un'interfaccia di rete IRDMA:

              "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",
              }
            ],
             

    Sostituisci quanto segue:

    • 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 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.
  4. (Facoltativo) Personalizza le altre proprietà dell'istanza, se necessario.
  5. Invia la richiesta.

Passaggi successivi