Criar em massa instâncias otimizadas para HPC com H4D

Neste documento, explicamos como criar em massa um grande número de instâncias de máquina virtual (VM) de computação de alta performance (HPC) idênticas e independentes umas das outras. As instâncias usam tipos de máquina H4D e são executadas em blocos de capacidade reservados.

Para mais informações sobre a criação de VMs em massa, consulte Sobre a criação em massa de VMs. Para criar instâncias em massa que não usam reservas para recursos avançados de gerenciamento de cluster, consulte Criar VMs em massa.

Para saber mais sobre outras maneiras de criar clusters grandes de VMs H4D fortemente acopladas, consulte a página Visão geral da criação de clusters de HPC.

Antes de começar

  • Escolha uma opção de consumo: para criar instâncias de computação em massa e ativar recursos aprimorados de gerenciamento de clusters, escolha uma reserva futura no modo de calendário ou VMs do Spot.

    Se você usar VMs spot, elas poderão não estar compactamente colocadas. Além disso, as VMs do Spot podem ser interrompidas conforme necessário e não estão qualificadas para gerenciar eventos de manutenção do host para grupos de VMs.

  • Obter capacidade: o processo para obter capacidade é diferente para cada opção de consumo.

    Para saber mais, consulte Escolher uma opção de consumo e adquirir capacidade.

  • Configure a autenticação, caso ainda não tenha feito isso. Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar código ou exemplos em um ambiente de desenvolvimento local, faça a autenticação no Compute Engine com um destes métodos:

    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. Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

      Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

Funções exigidas

Para ter as permissões necessárias para criar VMs em massa, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para criar VMs em massa. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para criar VMs em massa:

  • compute.instances.create no projeto
  • Usar uma imagem personalizada para criar a VM: compute.images.useReadOnly na imagem
  • Usar um snapshot para criar a VM: compute.snapshots.useReadOnly no snapshot
  • Usar um modelo de instância para criar a VM: compute.instanceTemplates.useReadOnly no modelo de instância
  • Especificar uma sub-rede para a VM: compute.subnetworks.use no projeto ou na sub-rede escolhida
  • Especificar um endereço IP estático para a VM: compute.addresses.use no projeto
  • Atribuir um endereço IP externo à VM ao usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida
  • Atribuir uma rede legada à VM: compute.networks.use no projeto
  • Atribuir um endereço IP externo à VM usando uma rede legada: compute.networks.useExternalIp no projeto
  • Definir os metadados da instância de VM para a VM: compute.instances.setMetadata no projeto
  • Definir tags para a VM: compute.instances.setTags na VM
  • Definir rótulos para a VM: compute.instances.setLabels na VM
  • Definir uma conta de serviço a ser usada pela VM: compute.instances.setServiceAccount na VM
  • Criar um disco para a VM: compute.disks.create no projeto
  • Anexar um disco atual no modo somente leitura ou de leitura e gravação: compute.disks.use no disco
  • Anexar um disco atual no modo somente leitura: compute.disks.useReadOnly no disco

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Visão geral

A criação de instâncias de HPC em massa com o tipo de máquina H4D inclui as seguintes etapas:

  1. Opcional: criar redes de nuvem privada virtual.
  2. Opcional: crie uma política de posicionamento se você não estiver criando as instâncias de computação no mesmo bloco ou sub-bloco.
  3. Criar instâncias H4D em massa.

Opcional: criar redes de nuvem privada virtual

Ao criar uma instância de computação, é possível especificar uma rede e uma sub-rede VPC. Se você omitir essa configuração, a rede e a sub-rede padrão serão usadas.

  • Se você quiser configurar as instâncias H4D no MIG para usar o Cloud RDMA, siga as etapas desta seção.
  • Se você não quiser usar o Cloud RDMA, pule esta seção e use a rede padrão.

Para usar o Cloud RDMA com instâncias H4D, é preciso ter pelo menos duas redes configuradas, uma para cada tipo de interface de rede (NIC):

  • Tipo de NIC GVNIC: usa o driver gve para tráfego TCP/IP e da Internet para comunicação normal entre VM-VM e VM-Internet.
  • Tipo de NIC IRDMA: usa drivers IDPF/iRDMA para rede Cloud RDMA entre instâncias.

As instâncias que usam o Cloud RDMA só podem ter uma interface IRDMA. É possível adicionar até oito interfaces de rede GVNIC para um total de 10 vNICs por instância.

Para configurar as redes VPC do Falcon para usar com suas instâncias, siga as instruções documentadas ou use o script fornecido.

Guias de instruções

Crie as redes, suando as seguintes instruções:

Script

É possível criar até nove interfaces de rede gVNIC e uma interface de rede IRDMA por instância. Cada interface de rede precisa ser anexada a uma rede separada. Para criar as redes, use o script a seguir, que cria duas redes para gVNIC e uma rede para IRDMA.

  1. Opcional: antes de executar o script, liste os perfis de rede da VPC do Falcon para verificar se há um disponível.
      gcloud compute network-profiles list
      
  2. Copie e execute o código a seguir em uma janela de shell do 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
      

    Substitua:

    • NUMBER_OF_GVNIC: o número de interfaces gVNIC a serem criadas. Especifique um número de 1 a 9.
    • GVNIC_NAME_PREFIX: o prefixo de nome a ser usado para a rede e sub-rede VPC regulares que usam um tipo de NIC GVNIC.
    • REGION: a região em que você quer criar as redes. Isso precisa corresponder à zona especificada para a flag --network-profile ao criar a rede VPC do Falcon. Por exemplo, se você especificar a zona como europe-west4-b, a região será europe-west4.
    • IP_RANGE: o intervalo de endereços IP fora da rede VPC a ser usado para as regras de firewall SSH. Como prática recomendada, especifique os intervalos de endereços IP específicos dos quais é preciso permitir o acesso, em vez de todas as origens IPv4 ou IPv6. Não use 0.0.0.0/0 ou ::/0 como um intervalo de origem, porque isso permite o tráfego de todas as origens IPv4 ou IPv6, incluindo origens fora de Google Cloud.
    • RDMA_NAME_PREFIX: o prefixo de nome a ser usado para a rede VPC e a sub-rede que usam o tipo de NIC IRDMA.
    • ZONE: a zona em que você quer criar as redes e instâncias de computação. Use us-central1-a ou europe-west4-b.
  3. Opcional: para verificar se os recursos de rede VPC foram criados, confira as configurações de rede no console do Google Cloud :

    1. No console do Google Cloud , acesse a página Redes VPC.

      Acessar redes VPC

    2. Pesquise na lista as redes que você criou na etapa anterior.
    3. Para conferir as sub-redes, regras de firewall e outras configurações de rede, clique no nome da rede.

Opcional: criar uma política de posicionamento

É possível especificar o posicionamento de VMs criando uma política de posicionamento compacto. Quando você aplica uma política de posicionamento compacto às VMs, o Compute Engine faz o possível para criar VMs que estejam o mais próximo possível umas das outras. Se o aplicativo for sensível à latência e você quiser que as VMs estejam mais próximas (compactação máxima), especifique o campo maxDistance (prévia) ao criar uma política de posicionamento compacto. Um valor de maxDistance menor garante um posicionamento mais próximo da VM, mas também aumenta a chance de algumas VMs não serem criadas.

Para criar uma política de posicionamento compacto, selecione uma das seguintes opções:

gcloud

Para criar uma política de posicionamento compacto, use o 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

Substitua:

  • POLICY_NAME: o nome da política de posicionamento compacto.
  • MAX_DISTANCE: a configuração da distância máxima para suas VMs. O valor precisa ser 3 para colocar VMs em blocos adjacentes ou 2 para colocar VMs no mesmo bloco. Para informações sobre o número máximo de VMs compatíveis com cada maxDistance por série de máquinas, consulte Sobre as políticas de posicionamento compactas na documentação do Compute Engine.
  • REGION: a região em que você quer criar a política de posicionamento compacto. Especifique uma região em que o tipo de máquina que você quer usar esteja disponível. Para informações sobre regiões, consulte Regiões e zonas disponíveis.

REST

Para criar uma política de posicionamento compacto, faça uma solicitação POST para o método resourcePolicies.insert da versão Beta. No corpo da solicitação, inclua o campo collocation definido como COLLOCATED e o campo maxDistance.

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

Substitua:

  • PROJECT_ID: ID do projeto;
  • POLICY_NAME: o nome da política de posicionamento compacto.
  • MAX_DISTANCE: a configuração da distância máxima para suas VMs. O valor precisa ser 3 para colocar VMs em blocos adjacentes ou 2 para colocar VMs no mesmo bloco. Para informações sobre o número máximo de VMs compatíveis com cada maxDistance por série de máquinas, consulte Sobre as políticas de posicionamento compactas na documentação do Compute Engine.
  • REGION: a região em que você quer criar a política de posicionamento compacto. Especifique uma região em que o tipo de máquina que você quer usar esteja disponível. Para informações sobre regiões, consulte Regiões e zonas disponíveis.

Criar instâncias de VM em massa

As instruções nesta seção descrevem como criar VMs H4D em massa.

Analise as seguintes limitações antes de criar instâncias H4D com o Cloud RDMA:

  • Não é possível usar a migração em tempo real durante eventos de manutenção de host com instâncias que têm uma interface de rede Cloud RDMA. Configure a instância para ser encerrada durante eventos de manutenção.
  • A interface de rede gVNIC pode ter apenas um endereço IPv6, interno ou externo, mas não ambos.
  • É possível usar apenas endereços IPv4 com interfaces de rede IRDMA e redes VPC do Falcon.

gcloud

Para criar VMs em massa, use o comando gcloud compute instances create.

Os parâmetros que você precisa especificar dependem da opção de consumo que está usando para essa implantação. Selecione a guia que corresponde ao modelo de provisionamento da sua opção de consumo.

Vinculada à reserva

Comece com o seguinte 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
   

Siga estas etapas:

  1. Substitua:

    • NAME_PATTERN: o padrão de nome das instâncias. Por exemplo, usar vm-# no padrão de nome gera instâncias com nomes como vm-1 e vm-2, até o número especificado pela flag --count.
    • COUNT: o número de instâncias a serem criadas.
    • MACHINE_TYPE: o tipo de máquina a ser usado para as instâncias. Use um dos tipos de máquina H4D, por exemplo, h4d-highmem-192-lssd.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar, por exemplo rocky-linux-9-optimized-gcp.

      Para uma lista de imagens de SO compatíveis, consulte Sistemas operacionais compatíveis. Escolha uma versão de imagem do SO que seja compatível com a interface IRDMA.

    • IMAGE_PROJECT: o ID do projeto da imagem do SO, por exemplo, rocky-linux-cloud.
    • REGION: especifique uma região em que o tipo de máquina que você quer usar esteja disponível, por exemplo europe-west4. Para informações sobre as regiões disponíveis, consulte Regiões e zonas disponíveis.
    • DISK_SIZE: opcional: o tamanho do disco de inicialização em GiB. O valor precisa ser um número inteiro.
  2. Opcional: se você escolheu usar uma política de posicionamento compacto, inclua a flag --resource-policies:

             --resource-policies=POLICY_NAME
             

    Substitua POLICY_NAME pelo nome da política de posicionamento compacto.

  3. Para especificar a reserva, faça o seguinte:

    • Se você estiver usando uma política de posicionamento ou se as VMs puderem ser colocadas em qualquer lugar no bloco de reserva, adicione as flags a seguir ao comando:

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

      Substitua RESERVATION_NAME pelo nome da reserva, por exemplo, h4d-highmem-exfr-prod.

    • Se você não estiver usando uma política de posicionamento compacto e quiser que as instâncias sejam colocadas em um bloco específico, adicione as seguintes flags ao comando:

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

      Substitua RESERVATION_BLOCK_NAME pelo nome de um bloco na reserva, por exemplo, h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1.

    Para conferir o nome da reserva ou os blocos de reserva disponíveis, consulte Visualizar capacidade.

  4. Opcional: para configurar as instâncias para usar o Cloud RDMA, adicione flags semelhantes às seguintes ao comando. Este exemplo configura duas interfaces de rede gVNIC e uma interface de rede 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 \
            

    Substitua:

    • GVNIC_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface GVNIC.

      Para a primeira interface de rede gVNIC, é possível omitir as flags network e subnet para usar a rede default.

    • STACK_TYPE: opcional: o tipo de pilha da interface de rede gVNIC. STACK_TYPE precisa ser IPV4_ONLY ou IPV4_IPV6. O valor padrão é IPV4_ONLY.
    • EXTERNAL_IPV4_ADDRESS: opcional: um endereço IPv4 externo estático para usar com a interface de rede. É preciso ter reservado um endereço IPv4 externo. Faça o seguinte:
      • Especifique um endereço IPv4 válido da sub-rede.
      • Use a flag no-address se não quiser que a interface de rede tenha um endereço IP externo.
      • Especifique address='' se quiser que a interface receba um endereço IP externo temporário.

      Para especificar um endereço IPv6 externo, use a flag --external-ipv6-address.

    • RDMA_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface IRDMA.
  5. Opcional: adicione outras flags para personalizar o restante das propriedades da instância, conforme necessário.
  6. Execute o comando.

Spot

Comece com o seguinte 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
   

Siga estas etapas:

  1. Substitua:

    • NAME_PATTERN: o padrão de nome das instâncias. Por exemplo, usar vm-# no padrão de nome gera instâncias com nomes como vm-1 e vm-2, até o número especificado pela flag --count.
    • COUNT: o número de instâncias a serem criadas.
    • MACHINE_TYPE: o tipo de máquina a ser usado para as instâncias. Use um dos tipos de máquina H4D, por exemplo, h4d-highmem-192-lssd.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar, por exemplo rocky-linux-9-optimized-gcp.

      Para uma lista de imagens de SO compatíveis, consulte Sistemas operacionais compatíveis. Escolha uma versão de imagem do SO que seja compatível com a interface IRDMA.

    • IMAGE_PROJECT: o ID do projeto da imagem do SO, por exemplo, rocky-linux-cloud.
    • REGION: especifique uma região em que o tipo de máquina que você quer usar esteja disponível, por exemplo europe-west4. Para informações sobre as regiões disponíveis, consulte Regiões e zonas disponíveis.
    • DISK_SIZE: opcional: o tamanho do disco de inicialização em GiB. O valor precisa ser um número inteiro.
    • TERMINATION_ACTION: a ação a ser realizada quando o Compute Engine forçar a interrupção da instância, STOP (padrão) ou DELETE.

  2. Opcional: se você escolheu usar uma política de posicionamento compacto, adicione a seguinte flag ao comando:

          --resource-policies=POLICY_NAME \
          

    Substitua POLICY_NAME pelo nome da política de posicionamento compacto.

  3. Opcional: para configurar as instâncias para usar o Cloud RDMA, adicione ao comando flags semelhantes às seguintes. Este exemplo configura duas interfaces de rede gVNIC e uma interface de rede 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 \
          

    Substitua:

    • GVNIC_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface GVNIC.

      Para a primeira interface de rede gVNIC, é possível omitir as flags network e subnet para usar a rede default.

    • STACK_TYPE: opcional: o tipo de pilha da interface de rede gVNIC. STACK_TYPE precisa ser IPV4_ONLY ou IPV4_IPV6. O valor padrão é IPV4_ONLY.
    • EXTERNAL_IPV4_ADDRESS: opcional: um endereço IPv4 externo estático para usar com a interface de rede. É preciso ter reservado um endereço IPv4 externo. Faça o seguinte:
      • Especifique um endereço IPv4 válido da sub-rede.
      • Use a flag no-address se não quiser que a interface de rede tenha um endereço IP externo.
      • Especifique address='' se quiser que a interface receba um endereço IP externo temporário.

      Para especificar um endereço IPv6 externo, use a flag --external-ipv6-address.

    • RDMA_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface IRDMA.
  4. Opcional: adicione outras flags para personalizar o restante das propriedades da instância, conforme necessário.
  5. Execute o comando.

REST

Para criar instâncias de VM em massa, faça uma solicitação POST para o método instances.bulkInsert.

Os parâmetros que você precisa especificar dependem da opção de consumo que está usando para essa implantação. Selecione a guia que corresponde ao modelo de provisionamento da sua opção de consumo.

Vinculada à reserva

Comece com a seguinte solicitação POST para o método 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
        }
      }
    }
    

Siga estas etapas:

  1. Substitua:

    • PROJECT_ID: o ID do projeto em que você quer criar as instâncias.
    • ZONE: especifique uma zona em que o tipo de máquina que você quer usar esteja disponível. Se você estiver usando uma política de posicionamento compacto, use uma zona na mesma região da política de posicionamento compacto. Para informações sobre as regiões em que os tipos de máquina H4D estão disponíveis, consulte Regiões e zonas disponíveis.
    • NAME_PATTERN: o padrão de nome das instâncias. Por exemplo, usar vm-# no padrão de nome gera instâncias com nomes como vm-1 e vm-2, até o número especificado no campo count.
    • COUNT: o número de instâncias a serem criadas.
    • MACHINE_TYPE: o tipo de máquina a ser usado para as instâncias. Use um dos tipos de máquina H4D, por exemplo, h4d-highmem-192-lssd.
    • DISK_SIZE: o tamanho do disco de inicialização em GiB.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO, por exemplo, debian-cloud.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar, por exemplo, rocky-linux-9-optimized-gcp. Para uma lista de imagens de SO compatíveis, consulte Sistemas operacionais compatíveis. Escolha uma versão de imagem do SO que seja compatível com a interface IRDMA.
  2. Opcional: se você escolheu usar uma política de posicionamento compacto, inclua o parâmetro resourcePolicies no corpo da solicitação como parte do parâmetro "instanceProperties".

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

    Substitua POLICY_NAME pelo nome da política de posicionamento compacto.

  3. Para especificar a reserva, faça o seguinte:

    • Se você estiver usando uma política de posicionamento ou se as VMs puderem ser colocadas em qualquer lugar no bloco de reserva, adicione o seguinte ao corpo da solicitação como parte do parâmetro "instanceProperties":

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

      Substitua RESERVATION_NAME pelo nome da reserva, por exemplo, h4d-highmem-exfr-prod.

    • Se você não estiver usando uma política de posicionamento compacto ou quiser que as instâncias sejam colocadas em um bloco específico, adicione o seguinte ao corpo da solicitação como parte do parâmetro "instanceProperties":

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

      Substitua RESERVATION_BLOCK_NAME pelo nome de um bloco na reserva, por exemplo, h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1.

    Para conferir o nome da reserva ou os blocos de reserva disponíveis, consulte Visualizar capacidade.

  4. Se você quiser configurar as instâncias para usar o Cloud RDMA, inclua um bloco de parâmetros semelhante ao seguinte no corpo da solicitação como parte do parâmetro "instanceProperties". Este exemplo configura duas interfaces de rede gVNIC e uma interface de rede 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",
              }
            ],
             

    Substitua:

    • GVNIC_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface GVNIC.

      Para a interface de rede gVNIC, é possível omitir os campos network e subnetwork para usar a rede default.

    • EXTERNAL_IPV4_ADDRESS: opcional: um endereço IPv4 externo estático para usar com a interface de rede. É preciso ter reservado um endereço IPv4 externo.
    • RDMA_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface IRDMA.
  5. Opcional: personalize o restante das propriedades da instância, conforme necessário.
  6. Envie a solicitação.

Spot

Comece com a seguinte solicitação POST para o método 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"
        }
      }
    }
    

Siga estas etapas:

  1. Substitua:

    • PROJECT_ID: o ID do projeto em que você quer criar as instâncias.
    • ZONE: especifique uma zona em que o tipo de máquina que você quer usar esteja disponível. Se você estiver usando uma política de posicionamento compacto, use uma zona na mesma região da política de posicionamento compacto. Para informações sobre as regiões em que os tipos de máquina H4D estão disponíveis, consulte Regiões e zonas disponíveis.
    • NAME_PATTERN: o padrão de nome das instâncias. Por exemplo, usar vm-# no padrão de nome gera instâncias com nomes como vm-1 e vm-2, até o número especificado no campo count.
    • COUNT: o número de instâncias a serem criadas.
    • MACHINE_TYPE: o tipo de máquina a ser usado para as instâncias. Use um dos tipos de máquina H4D, por exemplo, h4d-highmem-192-lssd.
    • DISK_SIZE: o tamanho do disco de inicialização em GiB.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO, por exemplo, debian-cloud.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar, por exemplo, rocky-linux-9-optimized-gcp. Para uma lista de imagens de SO compatíveis, consulte Sistemas operacionais compatíveis. Escolha uma versão de imagem do SO que seja compatível com a interface IRDMA.
    • TERMINATION_ACTION: a ação a ser realizada quando o Compute Engine forçar a interrupção da instância, STOP (padrão) ou DELETE.

  2. Opcional: se você escolheu usar uma política de posicionamento compacto, inclua o parâmetro resourcePolicies como parte do parâmetro "instanceProperties".

              "resourcePolicies": [
                "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
              ]
              
  3. Se você quiser configurar as instâncias para usar o Cloud RDMA, inclua um bloco de parâmetros semelhante ao seguinte no corpo da solicitação como parte do parâmetro "instanceProperties". Este exemplo configura duas interfaces de rede gVNIC e uma interface de rede 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",
              }
            ],
             

    Substitua:

    • GVNIC_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface GVNIC.

      Para a interface de rede gVNIC, é possível omitir os campos network e subnetwork para usar a rede default.

    • EXTERNAL_IPV4_ADDRESS: opcional: um endereço IPv4 externo estático para usar com a interface de rede. É preciso ter reservado um endereço IPv4 externo.
    • RDMA_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface IRDMA.
  4. Opcional: personalize o restante das propriedades da instância, conforme necessário.
  5. Envie a solicitação.

A seguir