Esta página aborda a criação de instâncias de HPC com interfaces de rede compatíveis com RDMA. Para obter instruções sobre como criar instâncias otimizadas para aceleradores A4 ou A3 Ultra que usam RDMA, consulte o artigo Crie uma instância otimizada para IA com A4 ou A3 Ultra.
Para criar uma instância de computação que use o acesso direto à memória (RDMA) remoto, tem de configurar, pelo menos, duas interfaces de rede (NICs) quando criar a instância. Uma NIC tem de ser uma NIC IRDMA que se anexa a uma rede VPC com um perfil de rede RDMA, e a outra NIC tem de usar GVNIC.
Use a tabela Comparação da série de máquinas para determinar que séries de máquinas suportam interfaces de rede RDMA.
Antes de começar
-
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
-
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.
- 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 de que precisa para criar uma instância que suporte a comunicação RDMA, peça ao seu administrador para lhe conceder a função do IAM Administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1
) 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.Esta função predefinida contém as autorizações necessárias para criar uma instância que suporte a comunicação RDMA. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para criar uma instância que suporte a comunicação RDMA:
-
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 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.
Requisitos
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.
- 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.
Limitações
- A rede de nível 1 para comunicação IP interna só é compatível com VMs que executam o controlador de rede virtual gVNIC.
- Não pode usar a migração em direto com VMs que usam RDMA. Tem de configurar a instância para terminar durante eventos de manutenção.
- Não pode usar RDMA com grupos de instâncias geridas (MIGs) (geridos ou não geridos).
- Só pode usar tipos de pilha de rede
IPv4_ONLY
com uma instância com RDMA ativado. - Só pode usar a série de máquinas H4D para criar uma instância que use o RDMA na nuvem.
Crie uma instância compatível com RDMA na nuvem
As instâncias com RDMA na nuvem requerem, no mínimo, duas interfaces de rede (NICs):
- Tipo de NIC
GVNIC
: usa o controladorgve
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 baseada em RDMA entre instâncias
Uma instância só pode ter uma interface
IRDMA
. Cada instância pode ter entre 1 e 10 interfaces de rede.Para criar uma instância que use o IRDMA, conclua os passos nas seguintes secções:
Crie uma política de posicionamento, se não existir uma adequada.
Crie uma nova rede de VPC ou use uma rede de VPC com RDMA ativado.
Crie uma instância com RDMA que tenha uma interface de rede
IRDMA
, pelo menos, uma interface de redeGVNIC
e use uma política de posicionamento compacta.
Crie uma política de posicionamento para instâncias RDMA
As instâncias que comunicam através de RDMA têm de estar localizadas numa única zona e, de forma mais rigorosa, 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 para usar com as suas instâncias RDMA, siga os passos em Crie uma política de posicionamento compacta e especifique um valor de distância máxima de 3 ou inferior.
Crie redes de nuvem privada virtual
Para configurar as redes, 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:
Para criar as redes anfitriãs para as interfaces de rede
GVNIC
, consulte o artigo Crie e faça a gestão de redes VPC.Se estiver a configurar apenas uma interface de rede
GVNIC
, pode usar a rede VPC predefinida e a sub-rede automática que se encontra na mesma região que a instância.Para criar uma rede para a interface de rede
IRDMA
, consulte o artigo Crie uma rede VPC com um perfil de rede RDMA. Defina a unidade de transmissão máxima (MTU) como8896
para a rede RDMA.
Script
Para criar as redes, pode usar o seguinte script.
Opcional: antes de executar o script, liste os perfis de rede RDMA para verificar se estão disponíveis.
gcloud beta compute network-profiles list
Copie o seguinte código e execute-o numa 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 o seguinte:
GVNIC_NAME_PREFIX
: o prefixo do nome a usar para a rede da nuvem virtual privada e a sub-rede padrão que usa um tipo de NIC GVNIC.RDMA_NAME_PREFIX
: o prefixo do nome a usar para a rede e a sub-rede da nuvem privada virtual que usa o tipo de NIC IRDMA.ZONE
: a zona onde quer criar as redes e as instâncias de computação. Useus-central1-a
oueurope-west4-b
.REGION
: a região onde quer criar as redes. Tem de corresponder à zona especificada. Por exemplo, se a sua zona foreurope-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 use0.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.
Crie uma instância com RDMA
Os passos seguintes 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:
Consola
Na Google Cloud consola, aceda à página Criar uma instância.
Se lhe for solicitado, selecione o seu projeto e clique em Continuar.
É apresentada a página Criar uma instância, que 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 a Convenção de nomenclatura de recursos.
Opcional: no campo Zona, selecione uma zona para esta instância.
Escolha a zona que 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 secção Tipo de máquina, selecione o tipo de máquina para a sua instância.
No menu de navegação do lado esquerdo, clique em SO e armazenamento. No painel Sistema operativo e armazenamento apresentado, faça o seguinte:
- Na parte inferior da secção Sistema operativo e armazenamento, clique em Alterar.
- Nas listas Sistema operativo e Versão, selecione um tipo e uma versão do SO que ofereçam suporte para RDMA.
- Certifique-se de que o tipo de disco de arranque está definido como Hyperdisk Balanced.
- Clique em Selecionar na parte inferior do painel para guardar as alterações.
No menu de navegação do lado esquerdo, clique em Rede. No painel Rede apresentado, faça o seguinte:
- Aceda à secção Interfaces de rede. Já deve existir uma interface de rede etiquetada como
default
. - Clique em Adicionar uma interface de rede. Na secção Nova interface de rede
apresentada, faça o seguinte:
- Na lista Placa de interface de rede, selecione
IRDMA
. - No campo Rede, selecione a rede de 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 IP, certifique-se de que está definido como Apenas 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 interface de rede, selecione
- Aceda à secção Interfaces de rede. Já deve existir uma interface de rede etiquetada como
Opcional: especifique outras opções de configuração para a instância. Para mais informações, consulte o artigo 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 interface IRDMA. Pode personalizar as restantes 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 o seguinte:
INSTANCE_NAME
: o nome da instância do ComputeZONE
: a zona onde a instância é criada, comoeurope-west1-b
. A região da instância é inferida a partir da zona.MACHINE_TYPE
: Opcional: o tipo de máquina a usar para a instância.IMAGE_PROJECT
: opcional: o projeto de imagem que contém a imagem. Durante o período de pré-visualização, use uma imagem personalizada ou a imagem de VM de HPC.IMAGE
: Opcional: especifique uma das seguintes opções:- Uma versão específica da imagem do SO, por exemplo,
hpc-rocky-linux-8-v20250721
. - Uma família de imagens, que tem de estar formatada como
family/IMAGE_FAMILY
. Isto cria a instância a partir da imagem do SO mais recente e não descontinuada. Por exemplo, se especificarfamily/hpc-rocky-linux-8
, o Compute Engine cria uma instância com a versão mais recente da imagem do SO na família de imagens do HPC Rocky Linux 8. Para mais informações sobre a utilização de famílias de imagens, consulte o artigo 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 tem de ser um número inteiro. A unidade de medida predefinida é GiB.NETWORK_NAME
: opcional: nome da redeSUBNET_NAME
: nome da sub-rede a usar 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, pode omitir os indicadores
network
esubnet
e usar a rededefault
.STACK_TYPE
: Opcional: o tipo de pilha para a interface de rede GVNIC.STACK_TYPE
tem de ser um dos seguintes:IPV4_ONLY
,IPV4_IPV6
ouIPV6_ONLY
. O valor predefinido éIPV4_ONLY
.INTERNAL_IPV4_ADDRESS
: Opcional: o endereço IPv4 interno que quer que a instância de computação use na sub-rede de destino. Omita este sinalizador se não precisar de um endereço IP específico.Para especificar um endereço IPv6 interno, use a flag
--internal-ipv6-address
em alternativa.EXTERNAL_IPV4_ADDRESS
: Opcional: o 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_NETWORK_NAME
: O nome da rede que 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 um
POST
pedido ao métodoinstances.insert
. Inclua o objetonetworkInterfaces
com, pelo menos, duas configurações de rede, uma para a interface gVNIC e outra para a interface IRDMA. Pode personalizar as restantes propriedades da instância, conforme necessário.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: ID do projeto no qual criar a instânciaZONE
: zona na qual criar a instânciaMACHINE_TYPE
: o tipo de máquina a usar, por exemplo,h4d-highmem-192-lssd
INSTANCE_NAME
: um nome para a nova instânciaIMAGE_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 tem de ter o formato
family/IMAGE_FAMILY
. Isto cria a instância a partir da imagem do SO mais recente e não descontinuada. Por exemplo, se especificarfamily/debian-12
, o Compute Engine cria uma instância com a versão mais recente da imagem do SO na família de imagens do Debian 12. Para mais informações sobre a utilização de famílias de imagens, consulte as 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 usar com a interface de rede gVNICSUBNET_NAME
: nome da sub-rede a usar com a interface de rede gVNICPara a interface de rede GVNIC, pode omitir as propriedades
network
esubnet
e usar a rededefault
.INTERNAL_IPV4_ADDRESS
: Opcional: o endereço IPv4 interno que quer que a instância de computação use na sub-rede de destino. Omita este sinalizador se 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. Tem de ter reservado um endereço IPv4 externo anteriormente.RDMA_NETWORK_NAME
: o nome da rede que criou com um perfil de rede RDMARDMA_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 do pedido:
{ "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 o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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" }
O que se segue?
- Saiba como verificar o estado de uma instância para ver quando está pronta a usar.
- Saiba como estabelecer ligação à sua instância.
- Saiba mais sobre os endereços IP que são atribuídos quando cria uma instância.
- Saiba como criar uma instância de pilha dupla ou apenas 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.
-