Nesta página, explicamos como criar instâncias de HPC com interfaces de rede compatíveis com RDMA. Para instruções sobre como criar instâncias A4 ou A3 Ultra otimizadas para aceleradores que usam RDMA, consulte Criar uma instância otimizada para IA com A4 ou A3 Ultra.
Para criar uma instância de computação que use acesso direto à memória remota (RDMA), você precisa configurar pelo menos duas interfaces de rede (NICs) ao criar a instância. Uma NIC precisa ser uma NIC IRDMA que se conecta a uma rede VPC com um perfil de rede RDMA, e a outra NIC precisa usar GVNIC.
Use a tabela Comparação de séries de máquinas para determinar quais séries de máquinas são compatíveis com interfaces de rede RDMA.
Antes de começar
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação verifica sua identidade para acesso a serviços e APIs do Google Cloud . Para executar
códigos ou amostras de um ambiente de desenvolvimento local, autentique-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
-
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.
- Set a default region and zone.
REST
Para usar as amostras da API REST nesta 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.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud .
Funções exigidas
Para receber as permissões necessárias para criar uma instância que ofereça suporte à comunicação RDMA, peça ao administrador para conceder a você o papel do IAM de Administrador da instância da computação (v1) (
roles/compute.instanceAdmin.v1
) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.Esse papel predefinido contém as permissões necessárias para criar uma instância que ofereça suporte à comunicação RDMA. Para conferir 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 uma instância que ofereça suporte à comunicação RDMA:
-
compute.instances.create
no projeto -
Usar uma imagem personalizada a fim de 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 -
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.
Requisitos
Confira as regras a seguir para configurar uma interface de rede para uma instância:
- Cada interface de rede precisa se conectar a uma rede de nuvem privada virtual diferente.
- Para configurar uma interface de rede IRDMA, primeiro crie uma rede VPC com o perfil de rede Falcon RDMA na mesma região e zona da instância.
- Se você não especificar uma rede ou sub-rede, o Compute Engine usará a rede VPC padrão e a sub-rede automática que estiver na mesma região da instância.
- Se você especificar uma sub-rede, mas não uma rede, o Compute Engine vai inferir a rede pela sub-rede especificada.
- Se você especificar uma rede, especifique uma sub-rede que pertença à mesma rede. Caso contrário, a criação da instância vai falhar.
Limitações
- A rede Tier_1 para comunicação de IP interno é compatível apenas com VMs que executam o driver de rede virtual gVNIC.
- Não é possível usar a migração em tempo real com VMs que usam RDMA. Você precisa configurar a instância para ser encerrada durante eventos de manutenção.
- Não é possível usar RDMA com grupos gerenciados de instâncias (MIGs) (gerenciados ou não gerenciados).
- Só é possível usar tipos de pilha de rede
IPv4_ONLY
com uma instância compatível com RDMA. - Só é possível usar a série de máquinas H4D para criar uma instância que usa o Cloud RDMA.
Criar uma instância ativada para Cloud RDMA
As instâncias do Cloud com RDMA exigem no mínimo duas interfaces de rede (NICs):
- Tipo de NIC
GVNIC
: usa o drivergve
para tráfego TCP/IP e da Internet para comunicação normal entre VMs e entre VM e Internet. - Tipo de NIC
IRDMA
: usa drivers IDPF/iRDMA para comunicação baseada em RDMA entre instâncias
Uma instância só pode ter uma interface
IRDMA
. Cada instância pode ter de uma a 10 interfaces de rede.Para criar uma instância que usa IRDMA, siga as etapas nas seções a seguir:
Crie uma política de posicionamento, se não houver uma adequada.
Crie uma rede VPC ou use uma rede VPC compatível com RDMA.
Crie uma instância habilitada para RDMA que tenha uma interface de rede
IRDMA
, pelo menos uma interface de redeGVNIC
e use uma política de posicionamento compacto.
Criar uma política de posicionamento para instâncias de RDMA
As instâncias que se comunicam usando RDMA precisam estar localizadas em uma única zona e, mais estritamente, em uma única estrutura de cluster. É possível criar uma política de posicionamento compacto e especificar um valor de distância máxima para definir a compactação mínima em uma zona. Há um limite para o número de instâncias a que você pode atribuir a política de posicionamento compacto ao especificar um valor de distância máxima, e o limite muda dependendo do valor escolhido.
- Para criar uma política de posicionamento compacto para usar com suas instâncias de RDMA, siga as etapas em Criar uma política de posicionamento compacto e especifique um valor de distância máxima de 3 ou menos.
Criar redes de nuvem privada virtual
Para configurar as redes, siga as instruções documentadas ou use o script fornecido.
Guias de instruções
Para criar as redes, use as seguintes instruções:
Para criar as redes de host das interfaces de rede
GVNIC
, consulte Criar e gerenciar redes VPC.Se você estiver configurando apenas uma interface de rede
GVNIC
, use a rede VPC padrão e a sub-rede automática que está na mesma região da instância.Para criar uma rede para a interface de rede
IRDMA
, consulte Criar uma rede VPC com um perfil de rede RDMA. Defina a unidade máxima de transmissão (MTU) como8896
para a rede RDMA.
Script
Para criar as redes, use o script a seguir.
Opcional: antes de executar o script, liste os perfis de rede RDMA para verificar se eles estão disponíveis.
gcloud beta compute network-profiles list
Copie e execute o código a seguir em uma janela de shell do Linux.
#!/bin/bash # Create standard VPC (network and subnet) for the GVNIC interface gcloud beta compute networks create GVNIC_NAME_PREFIX-net-0 \ --subnet-mode=custom gcloud beta compute networks subnets create GVNIC_NAME_PREFIX-sub-0 \ --network=GVNIC_NAME_PREFIX-net-0 \ --region=REGION \ --range=10.0.0.0/16 gcloud beta compute firewall-rules create GVNIC_NAME_PREFIX-internal-0 \ --network=GVNIC_NAME_PREFIX-net-0 \ --action=ALLOW \ --rules=tcp:0-65535,udp:0-65535,icmp \ --source-ranges=10.0.0.0/8 # Create SSH firewall rules gcloud beta 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 an external IP for only the GVNIC interface gcloud beta 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 network for RDMA over Falcon transport gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \ --network-profile=ZONE-vpc-falcon \ --subnet-mode custom # Create subnet for RDMA gcloud beta compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \ --network=RDMA_NAME_PREFIX-irdma \ --region=REGION \ --range=10.1.0.0/16 # offset to avoid overlap with GVNIC network
Substitua:
GVNIC_NAME_PREFIX
: o prefixo de nome a ser usado para a rede e a sub-rede padrão da nuvem privada virtual que usam um tipo de NIC GVNIC.RDMA_NAME_PREFIX
: o prefixo de nome a ser usado para a rede e sub-rede da nuvem privada virtual que usam o tipo de NIC IRDMA.ZONE
: a zona em que você quer criar as redes e instâncias de computação. Useus-central1-a
oueurope-west4-b
.REGION
: a região em que você quer criar as redes. Ele precisa corresponder à zona especificada. Por exemplo, se a zona foreurope-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 use0.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 deGoogle Cloud.
Criar uma instância ativada para RDMA
As etapas a seguir mostram como criar uma instância com a primeira interface de rede configurada como uma interface gVNIC e a segunda interface de rede configurada como uma interface de rede IRDMA:
Console
No console do Google Cloud , acesse a página Criar uma instância.
Se solicitado, selecione o projeto e clique em Continuar.
A página Criar uma instância aparece e mostra o painel Configuração da máquina.
No painel Configuração da máquina, faça o seguinte:
- No campo Nome, especifique um nome para a instância. Para mais informações, consulte Convenção de nomenclatura de recursos.
Opcional: no campo Zona, selecione uma zona para esta instância.
Escolha a zona que você usou para configurar o perfil de rede RDMA.
Escolha a família de máquinas Otimizada para computação.
Na coluna Série, selecione a série de máquinas H4D.
Na seção Tipo de máquina, selecione o tipo de máquina para sua instância.
No menu de navegação à esquerda, clique em SO e armazenamento. No painel Sistema operacional e armazenamento, faça o seguinte:
- Na parte de baixo da seção Sistema operacional e armazenamento, clique em Mudar.
- Nas listas Sistema operacional e Versão, selecione um tipo e uma versão de SO que ofereçam suporte a RDMA.
- Verifique se o Tipo de disco de inicialização está definido como "Hiperdisco balanceado".
- Clique em Selecionar na parte de baixo do painel para salvar as mudanças.
No menu de navegação à esquerda, clique em Rede. No painel Rede exibido, faça o seguinte:
- Acesse a seção Interfaces de rede. Já deve haver uma interface de rede, identificada como
default
. - Clique em Adicionar uma interface de rede. Na seção Nova interface de rede que aparece, faça o seguinte:
- Na lista Placa de rede, selecione
IRDMA
. - No campo Rede, selecione a rede VPC com um perfil de rede RDMA.
- Opcional: na lista Sub-rede, selecione a sub-rede que a instância vai usar.
- No campo Tipo de pilha de IP, verifique se ele está definido como Somente IPv4.
- Na lista Endereço IPv4 externo, selecione Nenhum.
- Para confirmar os detalhes da interface de rede, clique em Concluído.
- Na lista Placa de rede, selecione
- Acesse a seção Interfaces de rede. Já deve haver uma interface de rede, identificada como
Opcional: especifique outras opções de configuração para a instância. Para mais informações, consulte Opções de configuração durante a criação da instância.
Para criar e iniciar a instância, clique em Criar.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Use o comando
gcloud compute instances create
com pelo menos duas flags--network-interface
, uma para a interface GVNIC e outra para a IRDMA. Você pode personalizar o restante das opções de comando conforme necessário.gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --create-disk=boot=yes, \ image=projects/IMAGE_PROJECT/global/images/IMAGE, \ size=SIZE \ --maintenance-policy=TERMINATE \ --network-interface \ nic-type=GVNIC, \ network=NETWORK_NAME,subnet=SUBNET_NAME, \ stack-type=STACK_TYPE, \ private-network-ip=INTERNAL_IPV4_ADDRESS, \ address=EXTERNAL_IPV4_ADDRESS \ --network-interface \ nic-type=IRDMA, \ network=RDMA_NETWORK_NAME,subnet=RDMA_SUBNET_NAME, \ stack-type=IPV4_ONLY, \ no-address \
Substitua:
INSTANCE_NAME
: o nome da instância de computaçãoZONE
: a zona em que a instância é criada, comoeurope-west1-b
. A região da instância é inferida da zona.MACHINE_TYPE
: opcional: o tipo de máquina a ser usado na instância.IMAGE_PROJECT
(opcional): o projeto de imagem que contém a imagem. Durante o período de prévia, use uma imagem personalizada ou a imagem de VM de HPC.IMAGE
: opcional: especifique uma destas opções:- Uma versão específica da imagem do SO. Por
exemplo:
hpc-rocky-linux-8-v20250721
- Uma família de imagens, que precisa ser formatada como
family/IMAGE_FAMILY
. Isso cria a instância com a imagem do SO mais recente e não obsoleta. Por exemplo, se você especificarfamily/hpc-rocky-linux-8
, o Compute Engine vai criar uma instância usando a versão mais recente da imagem do SO na família de imagens HPC Rocky Linux 8. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.
- Uma versão específica da imagem do SO. Por
exemplo:
SIZE
: opcional: o tamanho do novo disco. O valor precisa ser um número inteiro. A unidade de medida padrão é GiB.NETWORK_NAME
: opcional: nome da redeSUBNET_NAME
: nome da sub-rede a ser usada para a interface de rede. Para ver uma lista de sub-redes na rede, use o comandogcloud compute networks subnets list
.Para a interface de rede gVNIC, é possível omitir as flags
network
esubnet
e usar a rededefault
.STACK_TYPE
: opcional: o tipo de pilha da interface de rede gVNIC.STACK_TYPE
precisa ser um dos seguintes:IPV4_ONLY
,IPV4_IPV6
ouIPV6_ONLY
. O valor padrão éIPV4_ONLY
.INTERNAL_IPV4_ADDRESS
(opcional): o endereço IPv4 interno que você quer que a instância de computação use na sub-rede de destino. Omita essa flag se você não precisar de um endereço IP específico.Para especificar um endereço IPv6 interno, use a flag
--internal-ipv6-address
.EXTERNAL_IPV4_ADDRESS
: opcional: o endereço IPv4 externo estático a ser usado com a interface de rede. É preciso ter reservado um endereço IPv4 externo. Escolha uma destas opções:- 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_NETWORK_NAME
: o nome da rede que você criou com um perfil de rede RDMA.RDMA_SUBNET_NAME
: o nome de uma sub-rede na rede RDMA.
REST
Para criar uma instância configurada para usar RDMA, faça uma solicitação
POST
para o métodoinstances.insert
. Inclua o objetonetworkInterfaces
com pelo menos duas configurações de rede, uma para a interface gVNIC e outra para a IRDMA. É possível personalizar o restante das propriedades da instância, conforme necessário.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID
: ID do projeto em que a instância será criada.ZONE
: a zona em que a instância será criadaMACHINE_TYPE
: o tipo de máquina a ser usado, por exemplo,h4d-highmem-192-lssd
.INSTANCE_NAME
: um nome para a nova instância.IMAGE_PROJECT
(opcional): o projeto de imagem que contém a imagemIMAGE
(opcional): especifique uma das seguintes opções:- Uma versão específica da imagem do SO. Por
exemplo:
debian-12-bookworm-v20250415
- Uma família de imagens, que precisa ser
formatada como
family/IMAGE_FAMILY
. Isso cria a instância com a imagem do SO mais recente e não obsoleta. Por exemplo, se você especificarfamily/debian-12
, o Compute Engine vai criar uma instância usando a versão mais recente da imagem do SO na família de imagens Debian 12. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.
- Uma versão específica da imagem do SO. Por
exemplo:
NETWORK_NAME
: opcional: nome da rede a ser usada com a interface de rede gVNICSUBNET_NAME
: nome da sub-rede a ser usada com a interface de rede gVNICPara a interface de rede GVNIC, é possível omitir as propriedades
network
esubnet
e usar a rededefault
.INTERNAL_IPV4_ADDRESS
: Opcional: o endereço IPv4 interno que você quer que a instância de computação use na sub-rede de destino. Omita essa flag se você não precisar de um endereço IP específico.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_NETWORK_NAME
: o nome da rede que você criou com um perfil de rede RDMA.RDMA_SUBNET_NAME
: o nome de uma sub-rede na rede RDMA
Método HTTP e URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Corpo JSON da solicitação:
{ "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "name": "INSTANCE_NAME", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "networkInterfaces": [ { "network": "NETWORK_NAME", "subnetwork": "SUBNET_NAME", "networkIP": "INTERNAL_IPV4_ADDRESS", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External IP", "natIP": "EXTERNAL_IPV4_ADDRESS" } ], "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "RDMA_NETWORK_NAME", "subnetwork": "RDMA_SUBNET_NAME", "stackType": "IPV4_ONLY", "nicType": "IRDMA", } ] }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "compute#operation", "id": "9216044482154695709", "name": "operation-1739207409646-62dccc7d7bc58-d1350b42-64fdb7f7", "zone": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`", "operationType": "insert", "targetLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/instances/`INSTANCE_NAME`", "targetId": "2679381553616227357", "status": "RUNNING", "user": "USER_ID", "progress": 0, "insertTime": "2025-02-10T09:10:10.551-08:00", "startTime": "2025-02-10T09:10:10.551-08:00", "selfLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/operations/operation-1565289606387-58f9f62f5989c-e582f586-6d22f38" "kind": "compute#operation" }
A seguir
- Saiba como verificar o status de uma instância para saber quando ela está pronta para uso.
- Saiba como se conectar à instância.
- Saiba mais sobre os endereços IP atribuídos quando você cria uma instância.
- Saiba como criar uma instância de pilha dupla ou somente IPv6.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-19 UTC.
-