Crie em massa instâncias otimizadas para HPC com H4D

Este documento explica como criar um grande número de instâncias de máquinas virtuais (VMs) de computação de alto desempenho (HPC) em massa que são idênticas e independentes entre si. As instâncias usam tipos de máquinas H4D e são executadas em blocos de capacidade reservados.

Para mais informações sobre a criação de VMs em massa, consulte o artigo Acerca da criação em massa de VMs. Para criar instâncias em massa que não usam reservas para capacidades de gestão de clusters melhoradas, consulte o artigo Crie VMs em massa.

Para saber mais sobre outras formas de criar grandes clusters de VMs H4D fortemente acopladas, consulte a página Vista 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 capacidades de gestão de clusters melhoradas, pode escolher uma reserva futura no modo de calendário ou VMs de opção.

    Se optar por usar VMs do Spot, as VMs podem não estar localizadas de forma compacta. Além disso, as VMs de capacidade instantânea podem ser anuladas conforme necessário e não são elegíveis para gerir eventos de manutenção do anfitrião para grupos de VMs.

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

    Para saber mais, consulte o artigo Escolha uma opção de consumo e obtenha capacidade.

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

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

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

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

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

Funções necessárias

Para receber as autorizações necessárias para criar VMs em massa, peça ao seu administrador que lhe conceda as seguintes funções da IAM no projeto:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Estas funções predefinidas contêm as autorizações necessárias para criar VMs em massa. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

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

  • compute.instances.create no projeto
  • Para usar uma imagem personalizada para criar a VM: compute.images.useReadOnly na imagem
  • Para usar um instantâneo para criar a VM: compute.snapshots.useReadOnly no instantâneo
  • Para usar um modelo de instância para criar a VM: compute.instanceTemplates.useReadOnly no modelo de instância
  • Para especificar uma sub-rede para a sua VM: compute.subnetworks.use no projeto ou na sub-rede escolhida
  • Para especificar um endereço IP estático para a VM: compute.addresses.use no projeto
  • Para atribuir um endereço IP externo à VM quando usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida
  • Para atribuir uma rede antiga à VM: compute.networks.use no projeto
  • Para atribuir um endereço IP externo à VM quando usar uma rede antiga: compute.networks.useExternalIp no projeto
  • Para definir os metadados da instância de VM para a VM: compute.instances.setMetadata no projeto
  • Para definir etiquetas para a VM: compute.instances.setTags na VM
  • Para definir etiquetas para a VM: compute.instances.setLabels na VM
  • Para definir uma conta de serviço para a VM usar: compute.instances.setServiceAccount na VM
  • Para criar um novo disco para a VM: compute.disks.create no projeto
  • Para anexar um disco existente no modo de leitura ou leitura/escrita: compute.disks.use no disco
  • Para anexar um disco existente no modo de leitura: compute.disks.useReadOnly no disco

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Vista geral

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

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

Opcional: crie redes de nuvem privada virtual

Quando cria uma instância de computação, pode especificar uma rede de VPC e uma sub-rede. Se omitir esta configuração, são usadas a rede e a sub-rede predefinidas.

  • Se quiser configurar as instâncias H4D no MIG para usar o Cloud RDMA, conclua os passos nesta secção.
  • Se não quiser usar o RDMA na nuvem, pode ignorar esta secção e usar a rede predefinida

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

  • Tipo de NIC GVNIC: usa o controlador gve para TCP/IP e tráfego da Internet para comunicação normal entre VMs e entre VMs e a Internet.
  • Tipo de NIC IRDMA: usa controladores IDPF/iRDMA para rede RDMA na nuvem entre instâncias.

As instâncias que usam o RDMA na nuvem só podem ter uma interface IRDMA. Pode adicionar até oito interfaces de rede GVNIC adicionais para um total de 10 vNICs por instância.

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

Guias de instruções

Para criar as redes, pode usar as seguintes instruções:

Script

Pode criar até nove interfaces de rede gVNIC e uma interface de rede IRDMA por instância. Cada interface de rede tem de ser anexada a uma rede separada. Para criar as redes, pode usar o seguinte script, que cria duas redes para gVNIC e uma rede para IRDMA.

  1. Opcional: antes de executar o script, liste os perfis de rede VPC do Falcon para verificar se existe um disponível.
      gcloud compute network-profiles list
      
  2. Copie o seguinte código e execute-o numa 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 o seguinte:

    • NUMBER_OF_GVNIC: o número de interfaces GVNIC a criar. Especifique um número de 1 a 9.
    • GVNIC_NAME_PREFIX: o prefixo do nome a usar para a rede VPC normal e a sub-rede que usa um tipo de NIC GVNIC.
    • REGION: a região onde quer criar as redes. Tem de corresponder à zona especificada para a flag --network-profile quando cria a rede da VPC do Falcon. Por exemplo, se especificar a zona como europe-west4-b, a sua região é europe-west4.
    • IP_RANGE: o intervalo de endereços IP fora da rede VPC a usar para as regras de firewall SSH. Como prática recomendada, especifique os intervalos de endereços IP específicos a partir dos quais precisa de permitir o acesso, em vez de todas as origens IPv4 ou IPv6. Não use 0.0.0.0/0 nem ::/0 como um intervalo de origem, porque isso permite tráfego de todas as origens IPv4 ou IPv6, incluindo origens fora de Google Cloud.
    • RDMA_NAME_PREFIX: o prefixo do nome a usar para a rede VPC e a sub-rede que usa o tipo de NIC IRDMA.
    • ZONE: a zona onde quer criar as redes e as instâncias de computação. Use us-central1-a ou europe-west4-b.
  3. Opcional: para verificar se os recursos da rede VPC foram criados com êxito, verifique as definições de rede na Google Cloud consola:

    1. Na Google Cloud consola, aceda à página Redes VPC.

      Aceda a redes de VPC

    2. Pesquise na lista as redes que criou no passo anterior.
    3. Para ver as sub-redes, as regras da firewall e outras definições de rede, clique no nome da rede.

Opcional: crie uma política de posicionamento

Pode especificar o posicionamento de VMs criando uma política de posicionamento compacta. Quando aplica uma política de posicionamento compacta às suas VMs, o Compute Engine faz tentativas de melhor esforço para criar VMs o mais próximas possível umas das outras. Se a sua aplicação for sensível à latência e quiser que as VMs estejam mais próximas (máxima compactação), especifique o campo maxDistance (pré-visualização) quando criar uma política de posicionamento compacta. Um valor maxDistance mais baixo garante um posicionamento mais próximo das VMs, mas também aumenta a probabilidade de não serem criadas algumas VMs.

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

gcloud

Para criar uma política de posicionamento compacta, 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 o seguinte:

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

REST

Para criar uma política de posicionamento compacta, faça um pedido POST ao método beta.resourcePolicies.insert No corpo do pedido, 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 o seguinte:

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

Crie instâncias de VM em massa

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

Reveja as seguintes limitações antes de criar instâncias H4D com o RDMA na nuvem:

  • Não pode usar a migração em direto durante eventos de manutenção do anfitrião com instâncias que tenham uma interface de rede RDMA na nuvem. Tem de configurar a instância para terminar durante eventos de manutenção.
  • A interface de rede gVNIC só pode ter um endereço IPv6, interno ou externo, mas não ambos.
  • Só pode usar endereços IPv4 com interfaces de rede IRDMA e redes VPC Falcon.

gcloud

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

Os parâmetros que tem de especificar dependem da opção de consumo que está a usar para esta implementação. Selecione o separador que corresponde ao modelo de aprovisionamento da opção de consumo.

Restrito a 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
   

Conclua os seguintes passos:

  1. Substitua o seguinte:

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

      Para ver uma lista das imagens de SO suportadas, consulte a secção Sistema operativo suportado. Escolha uma versão da imagem do SO que suporte a interface IRDMA.

    • IMAGE_PROJECT: o ID do projeto da imagem do SO, por exemplo, rocky-linux-cloud.
    • REGION: especifique uma região na qual o tipo de máquina que quer usar está 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 arranque em GiB. O valor tem de ser um número inteiro.
  2. Opcional: se optou por usar uma política de posicionamento compacta, 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 uma das seguintes ações:

    • Se estiver a usar uma política de posicionamento ou se as VMs puderem ser posicionadas em qualquer lugar no seu bloco de reserva, adicione as seguintes flags 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 não estiver a usar uma política de posicionamento compacta e quiser as instâncias colocadas num 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 ver o nome da reserva ou os blocos de reserva disponíveis, consulte a secção Ver capacidade.

  4. Opcional: para configurar as instâncias para usar o RDMA na nuvem, adicione as 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 o seguinte:

    • GVNIC_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface GVNIC.

      Para a primeira interface de rede GVNIC, pode omitir as flags network e subnet para usar a rede default.

    • STACK_TYPE: Opcional: o tipo de pilha para a interface de rede GVNIC. STACK_TYPE tem de ser um de IPV4_ONLY ou IPV4_IPV6. O valor predefinido é IPV4_ONLY.
    • EXTERNAL_IPV4_ADDRESS: Opcional: um endereço IPv4 externo estático a usar com a interface de rede. Tem de ter reservado um endereço IPv4 externo anteriormente. Realize um dos seguintes passos:
      • Especifique um endereço IPv4 válido da sub-rede.
      • Use a flag no-address em alternativa 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 efémero.

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

    • RDMA_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface IRDMA.
  5. Opcional: adicione flags adicionais para personalizar as restantes propriedades da instância, conforme necessário.
  6. Execute o comando.

Espaço

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
   

Conclua os seguintes passos:

  1. Substitua o seguinte:

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

      Para ver uma lista das imagens de SO suportadas, consulte a secção Sistema operativo suportado. Escolha uma versão da imagem do SO que suporte a interface IRDMA.

    • IMAGE_PROJECT: o ID do projeto da imagem do SO, por exemplo, rocky-linux-cloud.
    • REGION: especifique uma região na qual o tipo de máquina que quer usar está 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 arranque em GiB. O valor tem de ser um número inteiro.
    • TERMINATION_ACTION: a ação a tomar quando o Compute Engine antecipa a instância, STOP (predefinição) ou DELETE.

  2. Opcional: se optou por usar uma política de posicionamento compacta, 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 RDMA na nuvem, adicione as 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 o seguinte:

    • GVNIC_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface GVNIC.

      Para a primeira interface de rede GVNIC, pode omitir as flags network e subnet para usar a rede default.

    • STACK_TYPE: Opcional: o tipo de pilha para a interface de rede GVNIC. STACK_TYPE tem de ser um de IPV4_ONLY ou IPV4_IPV6. O valor predefinido é IPV4_ONLY.
    • EXTERNAL_IPV4_ADDRESS: Opcional: um endereço IPv4 externo estático a usar com a interface de rede. Tem de ter reservado um endereço IPv4 externo anteriormente. Realize um dos seguintes passos:
      • Especifique um endereço IPv4 válido da sub-rede.
      • Use a flag no-address em alternativa 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 efémero.

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

    • RDMA_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface IRDMA.
  4. Opcional: adicione flags adicionais para personalizar as restantes propriedades da instância, conforme necessário.
  5. Execute o comando.

REST

Para criar instâncias de VM em massa, faça um pedido POST ao método instances.bulkInsert

Os parâmetros que tem de especificar dependem da opção de consumo que está a usar para esta implementação. Selecione o separador que corresponde ao modelo de aprovisionamento da opção de consumo.

Associado a reserva

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

Conclua os seguintes passos:

  1. Substitua o seguinte:

    • PROJECT_ID: o ID do projeto do projeto onde quer criar as instâncias.
    • ZONE: especifique uma zona na qual o tipo de máquina que quer usar está disponível. Se estiver a usar uma política de posicionamento compacta, use uma zona na mesma região que a política de posicionamento compacta. Para obter informações sobre as regiões onde os tipos de máquinas H4D estão disponíveis, consulte Regiões e zonas disponíveis.
    • NAME_PATTERN: o padrão de nome para as instâncias. Por exemplo, usar vm-# para o padrão de nome gera instâncias com nomes como vm-1 e vm-2, até ao número especificado pelo campo count.
    • COUNT: o número de instâncias a criar.
    • MACHINE_TYPE: o tipo de máquina a usar para as instâncias. Use um dos tipos de máquinas H4D, por exemplo, h4d-highmem-192-lssd.
    • DISK_SIZE: o tamanho do disco de arranque em GiB.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO, por exemplo, debian-cloud.
    • IMAGE_FAMILY: a família de imagens do SO que quer usar, por exemplo, rocky-linux-9-optimized-gcp. Para ver uma lista das imagens do SO suportadas, consulte o artigo Sistema operativo suportado. Escolha uma versão da imagem do SO que suporte a interface IRDMA.
  2. Opcional: se optou por usar uma política de posicionamento compacta, inclua o parâmetro resourcePolicies no corpo do pedido 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 uma das seguintes ações:

    • Se estiver a usar uma política de posicionamento ou se for possível posicionar VMs em qualquer lugar no seu bloco de reserva, adicione o seguinte ao corpo do pedido 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 não estiver a usar uma política de posicionamento compacta ou quiser as instâncias colocadas num bloco específico, adicione o seguinte ao corpo do pedido 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 ver o nome da reserva ou os blocos de reserva disponíveis, consulte Ver capacidade.

  4. Se quiser configurar as instâncias para usar o Cloud RDMA, inclua um bloco de parâmetros semelhante ao seguinte no corpo do pedido 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 o seguinte:

    • GVNIC_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface GVNIC.

      Para a interface de rede GVNIC, pode omitir os campos network e subnetwork para usar a rede default.

    • EXTERNAL_IPV4_ADDRESS: Opcional: um endereço IPv4 externo estático a usar com a interface de rede. Tem de ter reservado um endereço IPv4 externo anteriormente.
    • RDMA_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface IRDMA.
  5. Opcional: personalize as restantes propriedades da instância, conforme necessário.
  6. Envie o pedido.

Espaço

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

Conclua os seguintes passos:

  1. Substitua o seguinte:

    • PROJECT_ID: o ID do projeto do projeto onde quer criar as instâncias.
    • ZONE: especifique uma zona na qual o tipo de máquina que quer usar está disponível. Se estiver a usar uma política de posicionamento compacta, use uma zona na mesma região que a política de posicionamento compacta. Para obter informações sobre as regiões onde os tipos de máquinas H4D estão disponíveis, consulte Regiões e zonas disponíveis.
    • NAME_PATTERN: o padrão de nome para as instâncias. Por exemplo, usar vm-# para o padrão de nome gera instâncias com nomes como vm-1 e vm-2, até ao número especificado pelo campo count.
    • COUNT: o número de instâncias a criar.
    • MACHINE_TYPE: o tipo de máquina a usar para as instâncias. Use um dos tipos de máquinas H4D, por exemplo, h4d-highmem-192-lssd.
    • DISK_SIZE: o tamanho do disco de arranque 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 quer usar, por exemplo, rocky-linux-9-optimized-gcp. Para ver uma lista das imagens de SO suportadas, consulte o artigo Sistema operativo suportado. Escolha uma versão da imagem do SO que suporte a interface IRDMA.
    • TERMINATION_ACTION: a ação a realizar quando o Compute Engine antecipa a instância, STOP (predefinição) ou DELETE.

  2. Opcional: se optou por usar uma política de posicionamento compacta, inclua o parâmetro resourcePolicies como parte do parâmetro "instanceProperties".

              "resourcePolicies": [
                "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
              ]
              
  3. Se quiser configurar as instâncias para usar o Cloud RDMA, inclua um bloco de parâmetros semelhante ao seguinte no corpo do pedido 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 o seguinte:

    • GVNIC_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface GVNIC.

      Para a interface de rede GVNIC, pode omitir os campos network e subnetwork para usar a rede default.

    • EXTERNAL_IPV4_ADDRESS: Opcional: um endereço IPv4 externo estático a usar com a interface de rede. Tem de ter reservado um endereço IPv4 externo anteriormente.
    • RDMA_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface IRDMA.
  4. Opcional: personalize as restantes propriedades da instância, conforme necessário.
  5. Envie o pedido.

O que se segue?