Usar o controlador RDMA IRDMA


O RDMA na nuvem permite capacidades de mensagens fiáveis de baixa latência através do controlador IRDMA RDMA. Este controlador suporta o acesso direto à memória remoto (RDMA) entre instâncias do Compute Engine. O RDMA transfere dados entre máquinas remotas e memória local através da interface de rede sem usar a CPU do anfitrião nem buffers de anfitrião intermédios.

As instâncias compatíveis com RDMA requerem, pelo menos, duas interfaces de rede virtuais (vNICs):

  • Uma vNIC para comunicação RDMA que usa a rede IDPF e o controlador IRDMA RDMA. Esta vNIC não consegue estabelecer ligação à Internet. Uma instância só pode ter uma vNIC que use IRDMA.
  • Uma vNIC para tráfego de rede normal. Esta vNIC está totalmente ligada à redeGoogle Cloud e pode ligar-se à Internet. Esta vNIC usa o controlador de rede gVNIC. Pode adicionar até oito interfaces de rede GVNIC adicionais, para um total de 10 NICs por instância.

O controlador de rede IRDMA é suportado com instâncias H4D.

Quando configurar uma vNIC que usa o controlador IRDMA, tem de especificar uma rede VPC criada através do perfil de rede Falcon 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

    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.

Apoio técnico a sistemas operativos

Durante o período de pré-visualização, use a imagem de VM de HPC, que inclui controladores RDMA na nuvem pré-instalados.

Vista geral da utilização do IRDMA com instâncias do Compute Engine

Para criar uma instância de computação que use o RDMA na nuvem, tem de ter, pelo menos, uma rede VPC normal e uma rede VPC Falcon. A rede de VPC Falcon usa um perfil de rede RDMA que permite o tráfego RDMA entre instâncias H4D. Esta rede é separada da rede VPC normal que transporta tráfego não RDMA para outros serviços ou a Internet. Google Cloud

As tarefas a concluir para criar uma instância de computação que use o RDMA na nuvem são as seguintes:

  1. Escolha uma imagem de SO pública que suporte IRDMA ou crie uma imagem de SO personalizada etiquetada para usar IRDMA.
  2. Identifique ou crie, pelo menos, duas redes VPC:

    • Uma rede VPC normal para o tráfego que passa pela interface de rede gVNIC
    • Uma rede VPC do Falcon para o tráfego RDMA
  3. Crie uma instância de computação com a imagem do SO pública ou personalizada. Durante a criação da instância, configure, pelo menos, duas interfaces de rede: uma que use o controlador gVNIC e outra que use o controlador IRDMA.

  4. Verifique se o IRDMA está ativado.

Crie uma imagem do SO personalizada que suporte IRDMA

Pode criar a imagem do SO através da Google Cloud CLI ou da REST. Para ver informações detalhadas e práticas recomendadas para criar imagens de SO personalizadas, consulte o artigo Crie imagens de SO personalizadas.

gcloud

  1. Selecione uma imagem do SO ou uma família de imagens que suporte IRDMA. Durante o período de pré-visualização, use a imagem de VM de HPC.

  2. Usando a imagem do SO ou a família de imagens selecionada no passo anterior, crie uma imagem do SO personalizada. Para criar a imagem do SO personalizada, use o comando gcloud compute images create. Por exemplo, o comando seguinte cria uma imagem do SO personalizada que suporta IRDMA e se baseia numa imagem do SO específica.

    gcloud compute images create IMAGE_NAME \
        --source-image=SOURCE_IMAGE \
        --source-image-project=SOURCE_IMAGE_PROJECT \
    

    Substitua o seguinte:

    • IMAGE_NAME: o nome da imagem que quer criar
    • SOURCE_IMAGE: uma imagem de SO específica que suporta IRDMA, por exemplo: hpc-rocky-linux-8-v20250721

      Se quiser usar a imagem do SO mais recente numa família de imagens, substitua a flag --source-image pela flag --source-image-family e defina o respetivo valor para uma família de imagens que suporte o IRDMA. Por exemplo: --source-image-family=hpc-rocky-linux-8.

    • SOURCE_IMAGE_PROJECT: o nome do projeto que contém a imagem do SO de origem ou a família de imagens

    Para mais informações sobre quando usar famílias de imagens, consulte o artigo Práticas recomendadas para famílias de imagens.

REST

  1. Selecione uma imagem do SO ou uma família de imagens que suporte o IRDMA. Para mais informações, consulte os detalhes do sistema operativo.

  2. Usando a imagem do SO ou a família de imagens do SO selecionada no passo anterior, crie uma imagem do SO usando o método images.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images
    {
      "name":"IMAGE_NAME",
      "sourceImage":"SOURCE_IMAGE_URI"
    }
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do projeto no qual criar a nova imagem
    • IMAGE_NAME: um nome para a imagem personalizada
    • SOURCE_IMAGE_URI: o URI da imagem do SO ou da família de imagens específica que quer usar

      Por exemplo:

      • Imagem do SO específica: "sourceImage": "projects/rocky-linux-cloud/global/images/hpc-rocky-linux-8-v20250721"
      • Família de imagens: "sourceImage": "projects/rocky-linux-cloud/global/images/family/hpc-rocky-linux-8"

      Quando especifica uma família de imagens, o Compute Engine cria uma VM a partir da imagem do SO não descontinuada mais recente nessa família. Para mais informações sobre quando usar famílias de imagens, consulte as práticas recomendadas para famílias de imagens.

Crie uma VM com suporte de IRDMA

Pode criar uma VM com uma das imagens de SO públicas suportadas ou com uma imagem de SO personalizada criada através dos passos descritos no artigo Crie uma imagem de SO personalizada que suporte o IRDMA.

Para usar o RDMA com a sua instância, tem de configurar várias interfaces de rede (NICs) para a instância. Uma NIC tem de usar o controlador GVNIC (especifique nic-type=GVNIC) e outra NIC tem de usar o controlador IRDMA (especifique nic-type=IRDMA).

Crie uma VM com uma imagem de SO pública

Para criar VMs com a imagem de VM de HPC ou uma imagem de SO pública que suporte IRDMA, siga as instruções nas páginas seguintes:

Crie uma VM com uma imagem de SO personalizada

Se não estiver a usar uma imagem de SO pública que suporte o IRDMA, tem de criar primeiro uma imagem de SO personalizada que suporte o IRDMA. Em seguida, usa essa imagem do SO personalizada para criar uma VM através da Google Cloud consola, da CLI do Google Cloud ou do REST.

Para obter instruções sobre como criar uma instância com uma imagem personalizada, consulte o artigo Crie uma instância a partir de uma imagem personalizada.

Verifique se o IRDMA está ativado

Após a implementação da VM, execute o seguinte teste de largura de banda de desempenho para garantir que está a ser executado numa instância de VM com RDMA ativado em bom estado.

ib_send_bw -aF & # start the server
ib_send_bw -aF $(hostname) # start the client (can be done on the same machine)

A largura de banda de ligação única comunicada BW average [MB/s] deve atingir, pelo menos, 11 000 MB/s para linhas superiores a 4096 B. Esperam-se valores mais pequenos para tamanhos de mensagens inferiores.

O que se segue?