← Volver a artículos
Noticias· 3 min de lectura

Qué es RoCE (RDMA sobre Ethernet) y cómo lo soporta Ubuntu

Escritorio de Ubuntu 24.10 (Oracular Oriole) con GNOME
Imagen: Canonical Ltd. / GPL · Wikimedia Commons

Canonical ha publicado una guía técnica sobre RDMA over Converged Ethernet (RoCE), la tecnología que permite usar el modelo de acceso remoto a memoria de InfiniBand sobre redes Ethernet normales. La idea importa porque las cargas de entrenamiento de IA y de HPC mueven cantidades enormes de datos entre nodos, y cada microsegundo de latencia cuenta cuando tienes cientos de GPU esperándose entre sí.

Qué resuelve RoCE

RDMA deja que una máquina lea o escriba directamente en la memoria de otra sin pasar por el kernel ni por copias intermedias. Tradicionalmente eso requería InfiniBand, un tejido de red propio y caro. RoCE conserva la misma interfaz de programación (las verbs de RDMA) pero cambia el transporte por Ethernet estándar, que ya tienes en el centro de datos.

Hay dos variantes y la diferencia es práctica. RoCEv1 vive dentro de un único dominio de difusión de capa 2, así que su alcance es limitado. RoCEv2 encapsula el tráfico RDMA en UDP/IP, lo que lo hace enrutable en capa 3 y compatible con topologías leaf-spine. Por eso los despliegues de producción se estandarizan en RoCEv2: escala a varios racks sin romperse.

El problema de Ethernet

Ethernet entrega paquetes en modo “best-effort”, es decir, puede descartar paquetes cuando hay congestión. A RDMA eso no le gusta nada, porque espera una red sin pérdidas. Canonical detalla dos mecanismos que arreglan el desajuste:

  • Priority Flow Control (PFC) pausa el tráfico antes de que se desborde la cola del switch. El precio es el head-of-line blocking: tráfico no relacionado se queda bloqueado detrás del que provocó la pausa.
  • Explicit Congestion Notification (ECN) marca los paquetes antes de que las colas se llenen, de modo que los extremos bajan su ritmo de envío de forma gradual.

Sobre estas señales se construyen Data Center Bridging (DCB) y DCQCN para regular la tasa de envío de forma dinámica.

El patrón de tráfico de RoCE es muy sincronizado y a ráfagas, sobre todo en entrenamiento de IA. Cuando varios emisores apuntan al mismo receptor a la vez aparece el incast: los búferes del switch se llenan de golpe, se descartan paquetes y eso paraliza las colas de pares (queue pairs), generando latencias que se propagan por toda la carga de trabajo.

Las alternativas que vienen

La guía repasa lo que se mueve más allá de RoCE clásico. NVIDIA Spectrum-X junta switches Spectrum, DPUs BlueField, enrutado adaptativo y telemetría en una plataforma Ethernet pensada para RoCE. El Ultra Ethernet Consortium, formado en 2023 bajo la Linux Foundation, apuesta por mejor señalización de congestión, multipathing, packet spraying y tolerancia a entrega desordenada. Falcon de Google añade retransmisión asistida por hardware y control de congestión programable. Y Scale-Up Ethernet (SUE) de Broadcom usa control de flujo por créditos y colectivos dentro de la red para aceleradores muy acoplados.

Qué pone Ubuntu de su parte

Aquí está lo que te interesa si despliegas esto. Ubuntu trae la pila rdma-core con libibverbs, que da la interfaz de programación RDMA consistente, y los drivers de kernel de los principales fabricantes: mlx5 (NVIDIA/Mellanox ConnectX), irdma (Intel E810), bnxt_re (Broadcom NetXtreme-E) e ice/ixgbe de Intel. SR-IOV y los VF representors están disponibles de forma nativa.

Para la operativa diaria tienes ethtool y devlink-health para ver las capacidades de la NIC, tc con mqprio para modelar clases de tráfico y activar PFC, y cgroups con CPU pinning para mantener rutas de datos predecibles. Los contadores en /sys/class/infiniband sirven para monitorización. En orquestación, MAAS provisiona el hardware desnudo y Juju gestiona el ciclo de vida del firmware de NIC y la configuración de red, con soporte para operadores SR-IOV, redes secundarias con Multus y el NVIDIA Network Operator.

Toda esta pila viene de serie en las versiones LTS, así que no tienes que parchear ni recompilar nada para empezar a probar RoCE. En la ficha de Ubuntu tienes el resto de versiones y el detalle de soporte a largo plazo.

Fuente

Artículo original What is RDMA over Converged Ethernet (RoCE)? publicado por Canonical en el blog de Ubuntu.