Crie em massa instâncias otimizadas para HPC que usam RDMA


Este tutorial mostra como criar um grande número de instâncias de máquinas virtuais (VMs) de computação de alto desempenho (HPC) idênticas e independentes entre si. As instâncias usam tipos de máquinas otimizadas para HPC H4D e são executadas em blocos de capacidade reservados. Este tutorial também mostra como configurar as instâncias H4D para usar o RDMA na nuvem.

Este tutorial destina-se a engenheiros de HPC, administradores e operadores de plataformas, bem como a especialistas em dados e MPI interessados em criar um cluster de instâncias de HPC interligadas. As instâncias resultantes não usam um orquestrador para a gestão de instâncias ou o agendamento de tarefas.

Objetivos

  1. Reserve blocos de capacidade para a sua implementação.
  2. Opcional: crie uma política de posicionamento se não estiver a criar as VMs no mesmo bloco ou sub-bloco.
  3. Criar redes da nuvem privada virtual.
  4. Crie instâncias com RDMA em massa.
  5. Limpar.

Custos

Este tutorial usa componentes faturáveis do Google Cloud, incluindo:

Para gerar uma estimativa de custo com base na sua utilização projetada, use a calculadora de preços.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

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

  4. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  8. Install the Google Cloud CLI.

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

  10. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  14. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/compute.instanceAdmin.v1,roles/compute.networkAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  15. Reserve blocos de capacidade para a sua implementação

    Este documento explica como reservar blocos de capacidade pedindo à sua equipa da conta que crie um pedido de reserva futuro para si. Use este tipo de reserva para obter capacidade para uma implementação densa de instâncias de VM. Para uma vista geral de todas as opções de consumo, consulte:

    Esta ação permite-lhe reservar blocos de capacidade durante uma duração definida, a partir de uma data e hora específicas à sua escolha. Com base no seu pedido, a Google cria um pedido de reserva futuro de rascunho. Depois de rever e enviar este pedido de rascunho, e de o Google Cloud aprovar, o Compute Engine cria automaticamente (cria automaticamente) uma reserva vazia. Em seguida, na hora de início escolhida, o Compute Engine aprovisiona a capacidade pedida na reserva criada automaticamente. Em seguida, pode usar a reserva para criar instâncias de máquinas virtuais (VM) até o período de reserva terminar.

    Como parte do processo de solicitação de reserva futura, a Google gere a quota dos seus recursos reservados. Não precisa de pedir quota. Na hora de início da sua reserva futura aprovada, a Google aumenta a sua quota se não tiver quota suficiente para os recursos reservados.

    Para reservar blocos de capacidade, conclua os seguintes passos:

    1. Contacte a equipa da sua conta e faculte as seguintes informações para que a Google crie um pedido de reserva futuro em rascunho:

      • Número do projeto: o número do projeto onde a sua equipa da conta cria o pedido e o Compute Engine aprovisiona a capacidade. Para obter informações sobre como encontrar o número do projeto, consulte o artigo Encontre o nome, o número e o ID do projeto na documentação do Resource Manager.

      • Tipo de máquina: um dos tipos de máquinas otimizadas para HPC H4D

      • Total count: o número total de VMs a reservar. Só pode reservar múltiplos de duas VMs. Os tamanhos dos blocos e a quantidade de VMs por bloco variam com base no tipo de máquina e na disponibilidade. A equipa da conta pode fornecer mais detalhes sobre o seu pedido.

      • Zona: a zona onde quer reservar capacidade. Para rever as regiões e as zonas disponíveis para a série de máquinas H4D, consulte o artigo Regiões e zonas disponíveis e selecione H4D na lista Selecionar uma série de máquinas.

      • Hora de início: a hora de início do período de reserva. Formate a hora de início como uma indicação de tempo RFC 3339:

        YYYY-MM-DDTHH:MM:SSOFFSET
        

        Substitua o seguinte:

        • YYYY-MM-DD: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia do mês de dois dígitos, separados por hífenes (-).

        • HH:MM:SS: uma hora formatada como uma hora de dois dígitos com uma hora de 24 horas, minutos de dois dígitos e segundos de dois dígitos, separados por dois pontos (:).

        • OFFSET: o fuso horário formatado como um desvio do Tempo Universal Coordenado (UTC). Por exemplo, para usar a Hora Padrão do Pacífico (PST), especifique -08:00. Para não usar nenhum desvio, especifique Z.

      • Hora de fim: a hora de fim do período de reserva. Formate-o como uma data/hora RFC 3339.

      • Tipo de partilha: se apenas o seu projeto pode usar a reserva criada automaticamente (LOCAL) ou se outros projetos podem usar a reserva (SPECIFIC_PROJECTS).

        Para partilhar capacidade reservada com outros projetos na sua organização, faça o seguinte:

        1. Se ainda não o fez, verifique se o projeto onde a Google cria o pedido tem autorização para criar reservas partilhadas.

        2. Indique os números dos projetos com os quais quer partilhar a capacidade reservada. Pode especificar até 100 projetos na sua organização.

      • Nome da reserva: o nome da reserva que o Compute Engine cria automaticamente para fornecer a sua capacidade reservada. O Compute Engine só cria reservas especificamente segmentadas.

      • Nome do compromisso: se o período de reserva for de um ano ou mais, tem de comprar e anexar um compromisso baseado em recursos aos recursos reservados. Pode comprar um compromisso com um plano de 1 ano ou 3 anos. Se partilhar a capacidade reservada com outros projetos, esses projetos só recebem descontos se usarem a mesma conta de faturação do Google Cloud que o projeto onde reserva capacidade. Para ver detalhes, consulte o artigo Ative a partilha de CUDs para compromissos baseados em recursos.

    2. A Google cria um pedido de reserva futuro de rascunho e a equipa da sua conta entra em contacto consigo.

    3. Reveja o pedido de rascunho. Tenha em atenção o seguinte ao rever o pedido de reserva:

      • Só pode começar a usar a capacidade reservada após a data e a hora de início especificadas.
      • Quando a hora de fim especificada é atingida, o Compute Engine faz o seguinte:

        • Elimina a reserva criada automaticamente.
        • Para ou elimina todas as VMs que usam a reserva. A ação realizada baseia-se na ação de rescisão que especifica quando cria as VMs.
      • Não pode alterar se a capacidade reservada é partilhada depois de enviar o pedido de reserva.

      Para rever um pedido de reserva futuro em rascunho, selecione uma das seguintes opções:

      Consola

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

        Aceda a Reservas

      2. Clique no separador Reservas futuras. A tabela Reservas futuras apresenta cada pedido de reserva futura no seu projeto e cada coluna da tabela descreve uma propriedade.

      3. Na coluna Nome, clique no nome do pedido de rascunho que a Google criou para si. É aberta uma página com os detalhes do pedido de reserva futuro.

      4. Na secção Informações básicas, verifique se os detalhes do pedido, como as Datas e o Tipo de partilha, estão corretos. Além disso, se solicitou um compromisso, verifique se este está especificado.

      5. Se algum destes detalhes estiver incorreto, contacte a equipa da sua conta.

      gcloud

      1. Para ver uma lista de pedidos de reserva futuros no seu projeto, use o comando gcloud beta compute future-reservations list com a flag --filter definida como PROCUREMENT_STATUS=DRAFTING:

        gcloud beta compute future-reservations list --filter=PROCUREMENT_STATUS=DRAFTING
        
      2. Na saída do comando, procure o pedido de reserva que tem o nome que indicou à equipa da sua conta.

      3. Para ver os detalhes do pedido de rascunho, use o comando gcloud beta compute future-reservations describe:

        gcloud beta compute future-reservations describe FUTURE_RESERVATION_NAME \
            --zone=ZONE
        

        Substitua o seguinte:

        • FUTURE_RESERVATION_NAME: o nome do pedido de reserva futuro em rascunho.
        • ZONE: a zona onde a Google criou o pedido.

        O resultado é semelhante ao seguinte:

        autoCreatedReservationsDeleteTime: '2026-02-10T19:20:00Z'
        creationTimestamp: '2025-11-27T11:14:58.305-08:00'
        deploymentType: DENSE
        id: '7979651787097007552'
        kind: compute#futureReservation
        name: example-draft-request
        planningStatus: DRAFT
        reservationName: example-reservation
        schedulingType: INDEPENDENT
        selfLink: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/example-draft-request
        selfLinkWithId: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/7979651787097007552
        specificReservationRequired: true
        specificSkuProperties:
          instanceProperties:
            localSsds:
            - diskSizeGb: '375'
              interface: NVME
            ...
          machineType: h4d-highmem-192-lssd
        totalCount: '2'
        status:
          autoCreatedReservations:
          - https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/reservations/example-reservation
          fulfilledCount: '2'
          lockTime: '2026-01-27T19:15:00Z'
          procurementStatus: DRAFTING
        timeWindow:
          endTime: '2026-02-10T19:20:00Z'
          startTime: '2026-01-27T19:20:00Z'
        zone: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b
        
      4. Na saída do comando, verifique se os detalhes do pedido, como o período de reserva e o tipo de partilha, estão corretos. Além disso, se comprou um compromisso, verifique se este está especificado.

      5. Se os detalhes estiverem incorretos, contacte a equipa da sua conta.

      REST

      1. Para ver uma lista de pedidos de reserva futuros no seu projeto, faça um pedido GET ao método beta futureReservations.list. No URL do pedido, inclua o parâmetro de consulta filter e defina-o como status.procurementStatus=DRAFTING:

        GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations?filter=status.procurementStatus=DRAFTING
        

        Substitua o seguinte:

        • PROJECT_ID: o ID do projeto onde a Google criou o pedido de reserva futuro de rascunho.
        • ZONE: a zona onde o pedido existe.
      2. No resultado do pedido, procure o pedido de reserva que tenha o nome que indicou à equipa da sua conta.

      3. Para ver os detalhes do pedido de rascunho, faça um pedido GET ao método beta futureReservations.get:

        GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME
        

        Substitua FUTURE_RESERVATION_NAME pelo nome do pedido de reserva futuro de rascunho.

        O resultado é semelhante ao seguinte:

        {
          "specificSkuProperties": {
            "instanceProperties": {
              "machineType": "h4d-highmem-192-lssd",
              "localSsds": [
                {
                  "diskSizeGb": "375",
                  "interface": "NVME"
                },
                ...
              ]
            },
            "totalCount": "2"
          },
          "kind": "compute#futureReservation",
          "id": "7979651787097007552",
          "creationTimestamp": "2025-11-27T11:14:58.305-08:00",
          "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/example-draft-request",
          "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/7979651787097007552",
          "zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b",
          "name": "example-draft-request",
          "timeWindow": {
            "startTime": "2026-01-27T19:20:00Z",
            "endTime": "2026-02-10T19:20:00Z"
          },
          "status": {
            "procurementStatus": "DRAFTING",
            "lockTime": "2026-01-27T19:15:00Z"
          },
          "planningStatus": "DRAFT",
          "specificReservationRequired": true,
          "reservationName": "example-reservation",
          "deploymentType": "DENSE",
          "schedulingType": "INDEPENDENT",
          "autoCreatedReservationsDeleteTime": "2026-02-10T19:20:00Z"
        }
        
      4. Na saída, verifique se os detalhes do pedido, como o período de reserva e o tipo de partilha, estão corretos. Além disso, se pediu um compromisso, verifique se este está especificado.

      5. Se os detalhes estiverem incorretos, contacte a equipa da sua conta.

    4. Se tudo estiver correto, envie o pedido de reserva. Tem de enviar o pedido antes da hora de início do pedido.

      Para enviar um pedido de reserva futuro em rascunho, selecione uma das seguintes opções:

      Consola

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

        Aceda a Reservas

      2. Clique no separador Reservas futuras.

      3. Na coluna Nome, clique no nome do pedido de rascunho que a Google criou para si.

      4. Clique em Enviar.

      gcloud

      Para enviar o pedido de rascunho para revisão, use o comando gcloud beta compute future-reservations update com a flag --planning-status definida como SUBMITTED:

      gcloud beta compute future-reservations update FUTURE_RESERVATION_NAME \
          --planning-status=SUBMITTED \
          --zone=ZONE
      

      REST

      Para enviar o pedido de rascunho para revisão, faça um pedido ao método beta futureReservations.update.PATCH No URL do pedido, inclua o parâmetro de consulta updateMask e defina-o como planningStatus:

      PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME?updateMask=planningStatus
      
      {
        "name": "FUTURE_RESERVATION_NAME",
        "planningStatus": "SUBMITTED"
      }
      
    5. Google Cloud aprova imediatamente o pedido enviado.

    6. O Compute Engine cria uma reserva vazia com os recursos pedidos.

    7. Para ver a reserva, consulte o artigo Veja a capacidade reservada na documentação do hipercomputador de IA.

    Opcional: crie uma política de posicionamento

    Use uma política de posicionamento se quiser que as suas VMs sejam posicionadas o mais perto possível umas das outras. No entanto, se quiser que as VMs estejam num bloco específico, ignore este passo e indique o nome do bloco necessário durante a criação em massa de VMs.

    As instâncias que comunicam através do RDMA na nuvem têm de estar localizadas numa única zona e, mais rigorosamente, numa única estrutura de cluster. Pode criar uma política de posicionamento compacta e especificar um valor de distância máxima para definir a compacidade mínima numa zona. Existe um limite para o número de instâncias às quais pode atribuir a política de posicionamento compacto quando especifica um valor de distância máximo, e o limite varia consoante o valor que escolher.

    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 instâncias de VM. Especifique 3 para colocar as VMs em blocos adjacentes e 2 para colocar as VMs no mesmo bloco. O posicionamento da VM é feito com base no melhor esforço.
    • REGION: a região onde quer criar a política de posicionamento. Especifique uma região na qual o tipo de máquina que quer usar está disponível. Para informações sobre as regiões disponíveis, consulte o artigo 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
    • REGION: a região onde quer criar a política de posicionamento. Especifique uma região na qual o tipo de máquina que quer usar está disponível. Para informações sobre as regiões disponíveis, consulte o artigo Regiões e zonas disponíveis.
    • POLICY_NAME: o nome da política de posicionamento compacta
    • MAX_DISTANCE: a configuração de distância máxima para as suas instâncias de VM. Especifique 3 para colocar as VMs em blocos adjacentes e especifique 2 para colocar as VMs no mesmo bloco. O posicionamento da VM é feito com base no melhor esforço.

    Crie redes de nuvem privada virtual

    As instâncias com RDMA requerem, no mínimo, duas interfaces de rede (NICs):

    • Tipo de NIC GVNIC: usa o controlador gve para TCP/IP e tráfego de Internet para a comunicação normal entre VMs e entre VMs e a Internet
    • Tipo de NIC IRDMA: usa controladores IDPF/iRDMA para comunicação de rede RDMA 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 NICs por instância.

    Reveja as seguintes regras para configurar uma interface de rede para uma instância:

    • Cada interface de rede tem de se ligar a uma rede de nuvem privada virtual diferente.
    • Para configurar uma interface de rede IRDMA, primeiro tem de criar uma rede VPC com o perfil de rede Falcon RDMA na mesma região e zona que a instância.
    • Para a interface de rede GVNIC, se não especificar uma rede ou uma sub-rede, o Compute Engine usa a rede VPC predefinida e a sub-rede automática que se encontra na mesma região que a instância.
    • Se especificar uma sub-rede, mas não especificar uma rede, o Compute Engine infere a rede a partir da sub-rede especificada.
    • Se especificar uma rede, tem de especificar uma sub-rede e esta tem de pertencer à mesma rede. Caso contrário, a criação da instância falha.

    Para configurar as redes da nuvem virtual privada (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 estar associada a uma rede separada. Para criar as redes, pode usar o seguinte script, que cria duas redes para GVNIC e uma rede para IRDMA que usa o perfil de rede VPC Falcon.

    1. Opcional: antes de executar o script, liste os perfis de rede da VPC do Falcon para verificar se existe um disponível. Os perfis de rede VPC do Falcon não estão disponíveis em todas as zonas.

      gcloud beta compute network-profiles list --filter=falcon
      
    2. Copie o seguinte código e execute-o numa janela de shell do Linux.

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

    Substitua o seguinte:

    • GVNIC_NAME_PREFIX: o prefixo do nome a usar para a rede e a sub-rede da VPC padrão que usam um tipo de NIC GVNIC.
    • REGION: a região onde quer criar as redes. Isto tem de corresponder à zona especificada para a flag --network-profile quando cria a 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 de 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 ou ::/0 como um intervalo de origem, porque isto permite o tráfego de todas as origens IPv4 ou IPv6, incluindo origens fora deGoogle 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.

    Crie instâncias com RDMA 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 os eventos de manutenção.
    • Só pode usar endereços IPv4 com interfaces de rede RDMA e redes VPC com um perfil de rede Falcon RDMA.
    • Só pode usar a série de máquinas H4D para criar instâncias otimizadas para HPC com o RDMA na nuvem.

    Os passos seguintes mostram como criar instâncias com RDMA em massa com as duas primeiras interfaces de rede configuradas como interfaces GVNIC e a terceira interface de rede configurada como uma interface de rede IRDMA:

    gcloud

    Use o comando gcloud compute instances create com três flags --network-interface, duas para interfaces GVNIC e uma para a interface IRDMA. Se optou por usar uma política de posicionamento compacta, adicione também a seguinte flag: --resource-policies=POLICY_NAME. Substitua POLICY_NAME pelo nome da política de posicionamento compacto. Pode personalizar as restantes opções da instância, conforme necessário.

    gcloud compute instances bulk create \
        --name-pattern=NAME_PATTERN \
        --count=COUNT \
        --machine-type=MACHINE_TYPE \
        --image-family=IMAGE_FAMILY \
        --image=project= IMAGE_PROJECT \
        --reservation-affinity=specific \
        --reservation=RESERVATION \
        --provisioning-model=RESERVATION_BOUND \
        --instance-termination=action=DELETE \
        --maintenance-policy=TERMINATE \
        --region=REGION \
        --boot-disk-type=hyperdisk-balanced \
        --boot-disk-size=DISK_SIZE \
        --scopes=cloud-platform \
        --network-interface=nic-type=GVNIC, \
            network=GVNIC_NAME_PREFIX-net-0, \
            subnet=GVNIC_NAME_PREFIX-sub-0, \
            stack-type=STACK_TYPE, \
            address=EXTERNAL_IPV4_ADDRESS \
        --network-interface=nic-type=GVNIC, \
            network=GVNIC_NAME_PREFIX-net-1, \
            subnet=GVNIC_NAME_PREFIX-sub-1, no-address \
        --network-interface=nic-type=IRDMA, \
            network=RDMA_NAME_PREFIX-irdma, \
            subnet=RDMA_NAME_PREFIX-irdma-sub, \
            stack-type=IPV4_ONLY, no-address
    

    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 de imagens de SO suportadas, consulte o artigo Sistema operativo suportado. Escolha uma versão de imagem do SO que suporte a interface IRDMA.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO, por exemplo, rocky-linux-cloud.
    • RESERVATION: para este valor, pode especificar uma das seguintes opções:

      • Se estiver a usar uma política de posicionamento ou se for possível posicionar as VMs em qualquer lugar no bloco de reserva, especifique o nome da reserva, por exemplo, h4d-highmem-exfr-prod.
      • Se quiser que as instâncias sejam colocadas num bloco específico e não estiver a usar uma política de posicionamento compacta, especifique um nome de bloco de reserva usando o formato RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME, for example,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.

    • REGION: especifique uma região na qual o tipo de máquina que quer usar está disponível, por exemplo, europe-west1. Para informações sobre as regiões disponíveis, consulte o artigo 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.

    • 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 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 dos seguintes: 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. Efetue um dos seguintes passos:

      • 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 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.

    REST

    Para criar instâncias com RDMA em massa, faça um pedido ao método beta instances.bulkInsert com as seguintes definições:POST

    • Inclua o objeto networkInterfaces com, pelo menos, duas configurações de rede, uma para a interface de rede gVNIC e outra para a interface de rede RDMA.
    • Se optou por usar uma política de posicionamento compacta, também deve adicionar o objeto resourcePolicies ao corpo do pedido.
    • Para usar os blocos de capacidade reservados quando criar as instâncias, defina provisioningModel como RESERVATION_BOUND.
    • Pode personalizar as restantes propriedades da instância, conforme necessário.
    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
    {
      "namePattern":"NAME_PATTERN",
      "count":"COUNT",
      "instanceProperties":{
        "machineType":"MACHINE_TYPE",
        "disks":[
          {
            "boot":true,
            "initializeParams":{
              "diskSizeGb":"DISK_SIZE",
              "diskType":"hyperdisk-balanced",
              "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode":"READ_WRITE",
            "type":"PERSISTENT"
          }
        ],
        "networkInterfaces": [
          {
              "network": "GVNIC_NAME_PREFIX-net-0",
              "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
              "accessConfigs": [
                {
                    "type": "ONE_TO_ONE_NAT",
                    "name": "External IP",
                    "natIP": "EXTERNAL_IPV4_ADDRESS"
                }
              ],
              "stackType": "IPV4_ONLY",
              "nicType": "GVNIC",
          },
          {
              "network": "GVNIC_NAME_PREFIX-net-1",
              "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
              "stackType": "IPV4_ONLY",
              "nicType": "GVNIC",
          },
          {
              "network": "RDMA_NAME_PREFIX-irdma",
              "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
              "stackType": "IPV4_ONLY",
              "nicType": "IRDMA",
          }
        ],
        "reservationAffinity":{
            "consumeReservationType":"SPECIFIC_RESERVATION",
            "key":"compute.googleapis.com/reservation-name",
            "values":[
                "RESERVATION"
            ],
            "scheduling":{
                "provisioningModel":"RESERVATION_BOUND",
                "instanceTerminationAction":"DELETE",
                "onHostMaintenance": "TERMINATE",
                "automaticRestart":true
            }
        },
        ...
      }
    }
    

    Conclua os seguintes passos:

    1. Substitua o seguinte no corpo do pedido:

      • PROJECT_ID: o ID 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 compacto, use uma zona na mesma região que a política de posicionamento compacto. Para obter informações sobre as regiões onde os tipos de máquinas H4D estão disponíveis, consulte o artigo 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 de imagens de SO suportadas, consulte o artigo Sistema operativo suportado. Escolha uma versão de imagem do SO que suporte a interface IRDMA.
      • 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.

      • RESERVATION: para este valor, pode especificar uma das seguintes opções:

        • Se estiver a usar uma política de posicionamento ou se for possível posicionar as VMs em qualquer lugar no bloco de reserva, especifique o nome da reserva, por exemplo, h4d-highmem-exfr-prod.
        • Se quiser que as instâncias sejam colocadas num bloco específico e não estiver a usar uma política de posicionamento compacta, especifique um nome de bloco de reserva como RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME, for example,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.

    2. Opcional: se estiver a usar uma política de posicionamento compacta, substitua ... no corpo do pedido pelo seguinte campo:

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

      Substitua o seguinte:

      • PROJECT_ID: o ID do projeto da política de posicionamento compacto.
      • REGION: a região da política de posicionamento compacto.
      • POLICY_NAME: o nome da política de posicionamento compacta.
    3. Envie o pedido.

    Limpar

    Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.

    Elimine o projeto

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    Elimine os recursos

    1. Na Google Cloud consola, aceda à página Instâncias de VM.

      Aceder às instâncias de VM

    2. Selecione as linhas que contêm as instâncias de VM que criou neste tutorial.

    3. Clique em Eliminar e, de seguida, clique em Eliminar para confirmar.

    4. Para eliminar a política de posicionamento, use o comando gcloud compute resource-policies delete.

      gcloud compute resource-policies delete POLICY_NAME \
          --region=REGION
      

      Substitua o seguinte:

      • POLICY_NAME: o nome da política de posicionamento
      • REGION: a região onde se encontra a política de posicionamento

    O que se segue?