Protocolo y transporte de IB: capas, QP, RDMA, gestor de subred · InfiniBand · Tecnologías · Documentación · CodingBox
CodingBox Documentación

Protocolo y transporte de IB: capas, QP, RDMA, gestor de subred

InfiniBand se diseñó desde el principio como una fabric para que los ordenadores accedan a la memoria de otros, no para paquetes entre desconocidos. Sus capas, direccionamiento y gestión resultan poco familiares para un ingeniero de Ethernet, pero son sencillos una vez asimilado el vocabulario — y explican por qué la capa física se somete a estándares tan exigentes. Esta página cubre la vista de protocolo; la óptica está en óptica de InfiniBand.

Capas

CapaContenidoNotas
Físicacarriles (1x, 4x, 8x, 12x), señalización por carril (de NRZ a PAM4 en HDR… ver velocidades), codificación (8B/10B hasta QDR, 64B/66B desde FDR), FEC (opcional desde FDR, RS-FEC en HDR/NDR)el mundo del transceptor
Enlacecabecera de enrutamiento local (LRH) con LID, carriles virtuales (VL0–VL14 datos, VL15 gestión), control de flujo por créditos por VL, CRC de capa de enlace (ICRC/VCRC)sin pérdidas por diseño
Redcabecera de enrutamiento global (GRH) con GID de 128 bits para enrutamiento entre subredespoco usada dentro de un mismo clúster
Transportequeue pairs (QP) con colas de envío/recepción, tipos de servicio RC/UC/UD/XRC, segmentación a la MTU, ACK/NAK para servicio fiableaquí vive RDMA
SuperiorAPI verbs, MPI, NCCL (vía UCX/SHARP), almacenamiento (SRP, iSER, NVMe/IB), IPoIBlo que usan las aplicaciones

Direccionamiento e identidad

IdentificadorTamañoAsignado porSignificado
GUID64 bitsfabricanteidentidad permanente de un puerto, nodo o sistema (como una MAC)
LID (identificador local)16 bitssubnet managerdirección dentro de una subred; las tablas de reenvío usan LID
GID128 bitsSM (prefijo) + GUIDprefijo de subred + GUID; se usa entre subredes y en RoCE
PKey (clave de partición)16 bitsSMpertenencia a una partición (como una VLAN); miembros plenos/limitados
QPN24 bitsHCAnúmero de queue pair — el endpoint dentro de un puerto

Queue pairs y tipos de servicio de transporte

Un queue pair es una cola de envío y una cola de recepción en la HCA, propiedad de una aplicación. Las peticiones de trabajo publicadas en ella las ejecuta el hardware; las finalizaciones (completions) llegan a una completion queue. Tipos de servicio:

TipoFiableConectadoUso
RC — reliable connectedsí (ACK/NAK, retransmisión)sí, un QP por parla mayoría del tráfico RDMA; MPI, NCCL, almacenamiento
UC — unreliable connectednosípoco frecuente
UD — unreliable datagramnono, un QP para todos los paresgestión, IPoIB, multicast
XRC — extended reliable connectedsícolas de recepción compartidas entre procesostrabajos MPI grandes, para reducir el número de QP
RD — reliable datagramsínoen la práctica no se usa

Las operaciones RDMA (READ, WRITE, atómicas) mueven datos directamente entre los búferes de la aplicación en dos hosts sin que ninguna CPU los copie; SEND/RECEIVE transporta mensajes. La memoria debe estar registrada (fijada en memoria y con una clave asignada) antes de que la HCA pueda tocarla. GPUDirect RDMA extiende esto a la memoria de la GPU (fabrics de GPU).

Control de flujo y MTU

Cada enlace aplica control de flujo por créditos por carril virtual: el receptor anuncia el espacio de búfer disponible y el emisor nunca transmite más de lo que este puede absorber. Ningún frame se descarta por congestión; en su lugar, la contrapresión se propaga — el mismo compromiso que los créditos de Fibre Channel, y la razón por la que un único enlace lento o con errores degrada todo un trabajo. La MTU de enlace es de 256 a 4096 bytes (4096 es lo habitual); la MTU de ruta se negocia extremo a extremo. Los service levels (SL) se mapean a los VL para separar clases de tráfico, y el enrutamiento adaptativo puede desviar los flujos alrededor de enlaces congestionados.

El subnet manager

Hay exactamente un subnet manager (SM) activo por subred (los demás quedan en espera). Este:

  1. Descubre la topología recorriendo la fabric con paquetes de gestión de ruta dirigida (SMP en VL15/QP0) — cada puerto de switch y de HCA.
  2. Asigna LID y configura los puertos (velocidad, ancho, MTU, arbitraje de VL, PKeys).
  3. Calcula rutas — min-hop, up-down, fat-tree, dragonfly+, enrutamiento adaptativo — y programa la tabla de reenvío lineal de cada switch.
  4. Barre periódicamente y ante traps (puerto arriba/abajo), reenrutando alrededor de los fallos.
  5. Ejecuta el subnet administrator (SA), que responde a las consultas de ruta de los hosts.

OpenSM (código abierto) y los fabric managers de los fabricantes (UFM) lo implementan; el fabric manager es también donde se recopilan, a escala de flota, los errores de puerto, los resultados de negociación de velocidad/ancho de enlace y el DDM de la óptica (Fiabilidad del enlace y monitorización).

Negociación de enlace

Al levantarse el enlace, ambos extremos negocian el ancho (1x/2x/4x) y la velocidad (tasa por carril) al valor común más alto. Un enlace que sube a 2x o a una generación menos de la esperada es el equivalente en InfiniBand del «enlace a 10G en vez de 25G» de Ethernet: la fibra o el láser de un carril, un cable al límite, o una generación de transceptor no coincidente (Velocidad y tasa). El fabric manager reporta el estado negociado; ibstat / ibportstate lo muestran en un host.

Herramientas de gestión y diagnóstico

HerramientaPropósito
ibstat, ibstatusestado local del puerto, tasa, ancho, LID
ibnetdiscovervolcado de la topología
ibdiagnetcomprobación de toda la fabric: errores, discrepancias de velocidad/ancho, GUID duplicados, información de cables
perfquery, ibqueryerrorscontadores por puerto: errores de símbolo, enlace caído, recuperación de enlace, errores de recepción de puerto, desbordamiento excesivo de búfer, VL15 descartados, contadores de FEC
mlxlink, mlxcablesdetalles de PHY por puerto y EEPROM de cable/transceptor, DDM, histograma de FEC
ibportstateforzar velocidad/ancho, reiniciar un puerto

Los errores de símbolo y las recuperaciones de enlace son los contadores de la capa física — el equivalente al CRC/FEC de Ethernet, ligados a la potencia de Rx y a la limpieza (Fabric).

InfiniBand frente a RoCE en un párrafo

RoCE v2 transporta el mismo transporte verbs/RDMA sobre UDP/IP/Ethernet; sustituye el subnet manager por enrutamiento IP y las PKeys por VLAN, y sustituye el control de flujo por créditos por PFC/ECN (DCQCN) — que debe configurarse correctamente para ser sin pérdidas (Ethernet sin pérdidas, Interconexiones). Los transceptores son físicamente los mismos; solo difieren la codificación de identidad y las políticas del host.

En CodingBox

Los módulos InfiniBand se leen como cualquier QSFP/OSFP: identidad (incluidos los bits de tasa InfiniBand en el byte 164 de SFF-8636 o en las aplicaciones CMIS), DDM por carril y sumas de comprobación en Check transceiver y DDM. Un puerto que negocia por debajo de su velocidad nominal merece una lectura de banco de ambos extremos.


Si encuentra una inexactitud o un error en este material, seleccione el fragmento correspondiente y pulse Ctrl+Enter para .