Usa el controlador IRDMA Cloud RDMA

Cloud RDMA habilita capacidades de mensajería confiables de baja latencia mediante el uso del controlador IRDMA RDMA. Este controlador admite el acceso directo a la memoria remoto (RDMA) entre instancias de Compute Engine. RDMA transfiere datos entre máquinas remotas y memoria local a través de la interfaz de red sin usar la CPU del host ni los búferes de host intermedios.

Las instancias compatibles con Cloud RDMA requieren al menos dos interfaces de red virtuales (vNIC):

  • Una vNIC para la comunicación de Cloud RDMA que usa el controlador de red IDPF y el controlador IRDMA RDMA. Esta vNIC no se puede conectar a Internet. Una instancia solo puede tener una vNIC que use Cloud RDMA.
  • Una vNIC para el tráfico de red normal. Esta vNIC está completamente conectada a la Google Cloud red y se puede conectar a Internet. Esta vNIC usa el controlador de red gVNIC. Puedes agregar hasta ocho interfaces de red gVNIC adicionales, para un total de 10 vNIC por instancia.

El controlador IRDMA es compatible con las instancias H4D y Z4M.

Cuando configuras una vNIC que usa el controlador IRDMA, debes especificar una red de VPC que se creó con el perfil de red Falcon RDMA.

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación verifica tu identidad para acceder a los Google Cloud servicios y las APIs. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Selecciona la pestaña según cómo planeas usar las muestras en esta página:

    Console

    Cuando usas la Google Cloud consola para acceder a los Google Cloud servicios y las APIs, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada. Después de acceder, inicializa Google Cloud CLI con el siguiente comando:

      gcloud init
  • Configura una región y una zona predeterminadas.
  • REST

    Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.

      Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate para usar REST en la Google Cloud documentación de autenticación de.

Compatibilidad con el sistema operativo

Google recomienda usar imágenes de procesamiento avanzado o la imagen de VM de HPC, que incluye controladores de Cloud RDMA preinstalados.

El controlador IRDMA RDMA es compatible con las siguientes imágenes de SO públicas que se proporcionan para Google Cloud:

  • LTS de Container-Optimized OS 117 (o posterior)
  • Rocky Linux 8 optimizado para Google Cloud y versiones posteriores optimizadas para Google Cloud

Descripción general del uso de Cloud RDMA con instancias de Compute Engine

Para crear una instancia de procesamiento que use Cloud RDMA, debes tener al menos una red de VPC normal y una red de VPC de Falcon. La red de VPC de Falcon usa el perfil de red Falcon RDMA para habilitar el tráfico de Cloud RDMA entre instancias H4D. Esta red está separada de la red de VPC normal que transporta tráfico que no es de RDMA a otros Google Cloud servicios o a Internet.

Las tareas que debes completar para crear una instancia de procesamiento que use Cloud RDMA son las siguientes:

  1. Elige una imagen de SO pública que admita Cloud RDMA o crea una imagen de SO personalizada que esté etiquetada para usar IRDMA.
  2. Identifica o crea al menos dos redes de VPC:

    • Una red de VPC normal para el tráfico que pasa por la interfaz de red gVNIC
    • Una red de VPC de Falcon para el tráfico de Cloud RDMA
  3. Crea una instancia de procesamiento con la imagen de SO pública o una imagen de SO personalizada. Durante la creación de la instancia, configura al menos dos interfaces de red: una que use el controlador de red gVNIC y otra que use el controlador IRDMA RDMA.

  4. Verifica que Cloud RDMA esté habilitado.

Agrega el controlador IRDMA a una imagen de SO

Para usar una imagen de SO que no tenga el controlador IRDMA instalado de forma predeterminada, completa los siguientes pasos:

  1. Crea una instancia de procesamiento que use la imagen de SO que deseas usar con Cloud RDMA.

  2. Conéctate a la instancia de procesamiento que creaste.

  3. Si no usas una imagen de SO optimizada para Google Cloud, agrega el repositorio de CIQ con una de las siguientes opciones:

    • Recomendado: Instala el paquete RPM de CIQ directamente para configurar el repositorio de CIQ:

      sudo dnf install -y https://depot.ciq.com/public/files/gce-accelerator/irdma-kernel-modules-el8-x86_64/irdma-repos.rpm
      
    • Como alternativa, actualiza los repositorios de YUM directamente:

      sudo tee /etc/yum.repos.d/irdma-kernel-modules.repo > /dev/null << 'EOF'
      [irdma-kernel-modules]
      name = irdma kernel modules for EL $releasever ($basearch)
      baseurl = https://depot.ciq.com/public/files/gce-accelerator/irdma-kernel-modules-el$releasever-$basearch
      metadata_expire = 5m
      priority = -1
      repo_gpgcheck = false
      gpgcheck = false
      enabled = true
      skip_if_unavailable = true
      
      [irdma-kernel-modules-source]
      name = irdma kernel modules for EL $releasever (source)
      baseurl = https://depot.ciq.com/public/files/gce-accelerator/irdma-kernel-modules-el$releasever-source
      metadata_expire = 5m
      priority = -1
      repo_gpgcheck = false
      gpgcheck = false
      enabled = false
      skip_if_unavailable = true
      
      [irdma-kernel-modules-testing]
      name = irdma kernel modules for EL $releasever ($basearch) - testing
      baseurl = https://depot.ciq.com/public/files/gce-accelerator/irdma-kernel-modules-testing-el$releasever-$basearch
      metadata_expire = 5m
      priority = -1
      repo_gpgcheck = false
      gpgcheck = false
      enabled = false
      skip_if_unavailable = true
      
      [irdma-kernel-modules-testing-source]
      name = irdma kernel modules for EL $releasever (source) - testing
      baseurl = https://depot.ciq.com/public/files/gce-accelerator/irdma-kernel-modules-testing-el$releasever-source
      metadata_expire = 5m
      priority = -1
      repo_gpgcheck = false
      gpgcheck = false
      enabled = false
      skip_if_unavailable = true
      EOF
      
  4. Instala el paquete del controlador kmod-idpf-irdma, que incluye los controladores IDPF e IRDMA:

    sudo dnf install kmod-idpf-irdma
    

    El paquete de CIQ requiere versiones específicas del kernel, lo que puede afectar la instalación de las siguientes maneras:

    • Si la versión del kernel es anterior a la versión requerida, la instalación del paquete actualiza automáticamente el kernel y otros paquetes del sistema como una dependencia.
    • Si la versión del kernel es más reciente que la versión compatible con el repositorio de CIQ, es posible que falle la instalación. En este caso, usa una imagen de SO optimizada para Google Cloud, que usa una versión de kernel compatible.
  5. Verifica que el paquete kmod-idpf-irdma esté instalado:

    sudo dnf list --installed
    

    El resultado incluye una entrada similar a la siguiente:

    kmod-idpf-irdma.ARCHITECTURE VERSION@REPO_NAME
  6. Instala los paquetes del espacio de usuario:

    sudo dnf install -y \
        libibverbs libibverbs-devel libibverbs-utils \
        librdmacm librdmacm-devel librdmacm-utils \
        infiniband-diags
    

    Los paquetes librdmacm-utils y libibverbs-utils instalan utilidades complementarias para verificar la funcionalidad de RDMA, como rping y ibv_devinfo.

  7. Recomendado: Después de actualizar el sistema operativo en tu instancia de procesamiento para usar IRDMA, crea una imagen personalizada basada en esa imagen de SO. Luego, puedes usar la imagen personalizada para crear instancias de procesamiento adicionales que usen IRDMA en ese SO.

    Sigue las instrucciones que se indican en Crea la imagen para crear una imagen personalizada con el disco de arranque de la instancia que creaste en el primer paso.

Crea una imagen de SO personalizada a partir de una imagen de SO pública que admita Cloud RDMA

Puedes crear la imagen de SO con el Google Cloud CLI o REST. Si deseas obtener información detallada y prácticas recomendadas para crear imágenes de SO personalizadas, consulta Crea imágenes de SO personalizadas.

gcloud

  1. Selecciona una imagen o familia de imágenes de SO que admita el controlador y la interfaz IRDMA. Para obtener más información, consulta Detalles de los sistemas operativos y selecciona la pestaña Interfaces.

  2. Usa la imagen o la familia de imágenes de SO que seleccionaste en el paso anterior y crea una imagen de SO personalizada. Para crear la imagen de SO personalizada, usa el gcloud compute images create comando. Por ejemplo, el siguiente comando crea una imagen de SO personalizada que admite el controlador IRDMA y que se basa en una imagen de SO específica.

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

    Reemplaza lo siguiente:

    • IMAGE_NAME: el nombre de la imagen que deseas crear
    • SOURCE_IMAGE: una imagen de SO específica que admite el controlador IRDMA, por ejemplo: hpc-rocky-linux-8-v20250721

      Si deseas usar la imagen de SO más reciente en una familia de imágenes, reemplaza la --source-image marca por la --source-image-family marca y configura su valor en una familia de imágenes que admita el controlador IRDMA. Por ejemplo: --source-image-family=hpc-rocky-linux-8.

    • SOURCE_IMAGE_PROJECT: el nombre del proyecto que contiene la imagen o la familia de imágenes de SO de origen

    Para obtener más información sobre cuándo usar familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.

REST

  1. Selecciona una imagen o familia de imágenes de SO que admita la interfaz de red IRDMA. Para obtener más información, consulta Detalles de los sistemas operativos.

  2. Usa la imagen o la familia de imágenes de SO que seleccionaste en el paso anterior y crea una imagen de SO con el images.insert método.

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

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID del proyecto en el que se creará la imagen nueva
    • IMAGE_NAME: un nombre para la imagen personalizada
    • SOURCE_IMAGE_URI: el URI de la imagen o familia de imágenes de SO específica que deseas usar

      Por ejemplo:

      • Imagen de SO específica: "sourceImage": "projects/rocky-linux-cloud/global/images/hpc-rocky-linux-8-v20250721"
      • Familia de imágenes: "sourceImage": "projects/rocky-linux-cloud/global/images/family/hpc-rocky-linux-8"

      Cuando especificas una familia de imágenes, Compute Engine crea una VM a partir de la imagen de SO no obsoleta más reciente de esa familia. Para obtener más información sobre el balanceo de cargas, consulta Prácticas recomendadas para las familias de imágenes.

Crea una VM con compatibilidad con el controlador IRDMA

Puedes crear una VM con una de las imágenes de SO públicas compatibles o con una imagen de SO personalizada que creaste con los pasos que se indican en Crea una imagen de SO personalizada que admita IRDMA.

Para usar Cloud RDMA con tu instancia, debes configurar varias interfaces de red (NIC) para la instancia. Una NIC debe usar el controlador gVNIC (especifica nic-type=GVNIC) y otra NIC debe usar el controlador IRDMA (especifica nic-type=IRDMA).

Crea una VM con una imagen de SO pública

Para crear VMs con imágenes de procesamiento avanzado, la imagen de VM de HPC o una imagen de SO pública que admita Cloud RDMA, sigue las instrucciones de las siguientes páginas:

Crea una VM con una imagen de SO personalizada

Si creaste una imagen de SO personalizada que admite Cloud RDMA, entonces puedes usar esa imagen de SO personalizada para crear una VM con la Google Cloud consola, Google Cloud CLI o REST.

Para obtener instrucciones sobre cómo crear una instancia con una imagen personalizada, consulta Crea una instancia a partir de una imagen personalizada.

Verifica que Cloud RDMA esté habilitado

Después de implementar la VM, ejecuta la siguiente prueba de ancho de banda de rendimiento para asegurarte de que se ejecute en una instancia de VM habilitada para Cloud RDMA en buen estado.

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

El ancho de banda de conexión única informado BW average [MB/s] debe alcanzar al menos 11,000 MBps para filas superiores a 4096 B. Se esperan valores más pequeños para tamaños de mensajes más bajos.

¿Qué sigue?