Capítulo 1. Comprensión de InfiniBand y RDMA
InfiniBand se refiere a dos cosas distintas:
- El protocolo de la capa de enlace física para las redes InfiniBand
- La API InfiniBand Verbs, que es una implementación de la tecnología de acceso directo a memoria remota (RDMA)
RDMA permite acceder a la memoria de un ordenador a la de otro sin que intervenga el sistema operativo de ninguno de los dos. Esta tecnología permite crear redes de alto rendimiento y baja latencia con una baja utilización de la CPU.
En una transferencia de datos IP típica, cuando una aplicación en una máquina envía datos a una aplicación en otra máquina, lo siguiente sucede en el lado receptor:
- El núcleo debe recibir los datos.
- El núcleo debe determinar que los datos pertenecen a la aplicación.
- El núcleo despierta la aplicación.
- El kernel espera a que la aplicación realice una llamada al sistema en el kernel.
- La aplicación copia los datos del espacio de memoria interna del propio kernel en el buffer proporcionado por la aplicación.
Este proceso implica que la mayor parte del tráfico de red se copie a través de la memoria principal del sistema si el adaptador de host utiliza el acceso directo a la memoria (DMA), o de lo contrario, al menos dos veces. Además, el ordenador ejecuta una serie de cambios de contexto para cambiar entre el contexto del núcleo y el de la aplicación. Ambos cambios de contexto pueden causar una alta carga de la CPU a altas tasas de tráfico y ralentizar otras tareas.
La comunicación RDMA evita la intervención del kernel en el proceso de comunicación, a diferencia de la comunicación IP normal. Esto reduce la sobrecarga de la CPU. El protocolo RDMA permite al adaptador del host saber cuándo llega un paquete desde la red, qué aplicación debe recibirlo y en qué lugar del espacio de memoria de la aplicación debe almacenarse el paquete. En lugar de enviar el paquete al núcleo para que lo procese y luego lo copie en la memoria de la aplicación del usuario, con InfiniBand, el adaptador de host coloca el contenido del paquete directamente en el búfer de la aplicación. Este proceso requiere una API separada, la InfiniBand Verbs API, y las aplicaciones deben soportar esta API antes de poder utilizar RDMA.
Red Hat Enterprise Linux 8 soporta tanto el hardware InfiniBand como la API InfiniBand Verbs. Además, Red Hat Enterprise Linux admite las siguientes tecnologías que permiten utilizar la API Verbs InfiniBand en hardware que no sea InfiniBand:
- Protocolo RDMA de área amplia de Internet (iWARP): Un protocolo de red que implementa RDMA sobre redes IP.
- RDMA sobre Ethernet convergente (RoCE), también conocido como InfiniBand sobre Ethernet (IBoE): Un protocolo de red que implementa RDMA sobre redes Ethernet.
Recursos adicionales
- Para más detalles sobre la configuración de una implementación de software de RoCE, consulte Capítulo 2, Configuración de RoCE.