InfiniBand

De Departamento de Informatica
Saltar a: navegación, buscar

InfiniBand es una interconexión de centro de datos de baja latencia y elevado ancho de banda que utiliza RDMA (dirección de memoria directa remota) para comunicaciones de alto rendimiento entre servidores (IPC). Se utiliza en un amplio rango de entornos informáticos, desde sistemas de informática de alto rendimiento (HPC) y grandes centros de datos hasta aplicaciones integradas, en las que las rápidas comunicaciones entre servidores son críticas para el rendimiento.

Contenido

Historia

InfiniBand nació de la fusión de los proyectos Future I/O y Next Generation I/O. Ambas compartían una buena parte de sus metas, y pronto se vió que no había mercado para las dos. Se decidió hacerlas converger en una única propuesta, de esta forma, en octubre del año 1999 se fundó la InfiniBand Trade Association (IBTA).

Las dos principales metas que en un principio se plantea InfiniBand son: salvar las limitaciones que presentan los actuales buses PCI (por ejemplo, cuellos de botella, fiabilidad, escalabilidad, etc.), y estandarizar las emergentes tecnologías propietarias en el terreno de los clústers (por ejemplo, Servernet, Myricom, Giganet, etc.). Sin embargo, InfiniBand pretende ir mucho más allá que una simple sustitución del típico bus PCI. InfiniBand incorpora características que hasta ahora sólo podían encontrarse en supercomputadores grandes y costosos. Estas características son importantes para el montaje de clústers de altas prestaciones y permiten aprovechar las posibilidades de la tecnología actual.

Arquitectura

Red de área de sistema con InfiniBand
InfiniBand define una red de área de sistema (System Area Network, SAN) para conectar ordenadores, sistemas de E/S y dispositivos de E/S. InfiniBand proporciona la infraestructura adecuada para comunicación y gestión, tanto para transacciones de E/S como para comunicación entre ordenadores. Un sistema InfiniBand puede variar desde un pequeño servidor formado por un procesador y unos cuantos dispositivos de E/S conectados, hasta un supercomputador masivamente paralelo con miles de procesadores y dispositivos de E/S que está conectado vía Internet a otras plataformas de procesamiento y/o sistemas de E/S.

InfiniBand define una interconexión conmutada que permite a muchos dispositivos intercambiar datos de forma simultánea, con gran ancho de banda y baja latencia. Al ser un sistema conmutado, se pueden conseguir características como protección, fiabilidad, escalabilidad, seguridad, etc., hasta ahora impensables en sistemas de E/S, e incluso en la mayoría de las redes habituales para conexión de computadores.

Un nodo final en una SAN InfiniBand puede comunicarse por medio de múltiples puertos del conmutador al que está conectado, pudiéndose habilitar de esta manera caminos alternativos. Así, se podría aprovechar la disponibilidad de caminos alternativos tanto para incrementar el ancho de banda real, como para permitir tolerancia a fallos.

InfiniBand permite a las unidades de E/S comunicarse entre ellas y con cualquier sistema de procesamiento existente en el sistema. De esta manera, una unidad de E/S tiene la misma capacidad de comunicación que cualquier otro nodo de procesamiento.

Estructura arquitectónica

Niveles en la arquitectura de InfiniBand
El funcionamiento de InfiniBand se describe mediante la interaccion de una serie de niveles. El protocolo que gobierna cada nivel es independiente del resto de niveles.

Nivel Físico

El nivel fisico especifica como se trasladan los bits al cable. InfiniBand utiliza el sistema de codificacion 8B/10B, con lo que, de cada 10 bits enviados solamente 8 son de datos. InfiniBand especifica tres tipos de medios fisicos: par trenzado, fibra optica o circuito en placa. El nivel fisico tambien especifica los simbolos que se usaran para indicar principio y final de paquete, datos, espacio entre paquetes, el protocolo de señalizacion a utilizar, etc.

Nivel de Enlace

El nivel de enlace describe los formatos de paquete a usar y los protocolos para las operaciones con ellos. Tambien son tareas de este nivel el control de flujo y el encaminamiento de los paquetes dentro de la misma subred.

Nivel de Red

El nivel de red describe el protocolo para encaminar un paquete entre distintas subredes. Este nivel define una Global Route Header (GRH) que debe estar presente en los paquetes que tengan que ser encaminados entre dos o mas subredes. La GRH identifica los puertos origen y destino usando direcciones globales (GID) en el formato de una direccion IPv6.

Nivel de Transporte

Los protocolos de enlace y de red llevan un paquete al destino deseado. La parte de nivel de transporte del paquete se encarga de hacer que se entregue el paquete en la cola (QP) apropiada, indicandole ademas como procesar los datos contenidos en el paquete. El nivel de transporte es el responsable de segmentar una operacion en varios paquetes si los datos a transmitir exceden el tamaño maximo de paquete (MTU). El QP en el extremo final reensambla los paquetes para formar la secuencia de datos que se quiso enviar.

Características de InfiniBand

Pares de colas

Los pares de colas (queue pairs, o QP) son la interfaz virtual que el hardware proporciona a un productor de información en InfiniBand, y el puerto de comunicación virtual que proporciona para el consumidor de dicha información. De esta forma, la comunicación tiene lugar entre un QP fuente y un QP destino.

Tipos de servicio

Cada QP se configura para proporcionar un determinado tipo de servicio. Hay tres caracteristicas que identifican a cada tipo de servicio:

Tipos de servicio de transporte en InfiniBand
  • Servicio orientado a conexion frente a no orientado a conexion: El servicio no orientado a conexion suele llamarse tambien datagrama. En un tipo de servicio orientado a conexion cada QP fuente esta asociado con un unico QP destino, y viceversa. En un tipo de servicio no orientado a conexion esta permitido que un QP envie/reciba paquetes a/desde cualquier otro QP en cualquier nodo.
  • Servicio con confirmacion frente a sin confirmacion: En un servicio confirmado, cuando un QP recibe un paquete debe confirmar al QP origen que lo ha recibido correctamente. Estos mensajes de confirmacion pueden ir integrados en otro paquete con informacion, o en un mensaje ACK o NAK (negative acknowledged) propio. El servicio confirmado se dice que es fiable, pues el protocolo de transporte garantiza un envio sin errores y con entrega en orden para el posterior reensamblado de los paquetes en un mensaje de nivel superior. Por contra, el servicio sin confirmacion se dice que es no fiable pues el protocolo de transporte no asegura que la información llegue a su destino.
  • Servicio de transporte de InfiniBand frente a otro tipo de transporte: El servicio de transporte de InfiniBand permite transmitir paquetes en bruto encapsulando paquetes de otros protocolos de transporte, como por ejemplo IPv6, o de otros tipos de redes.

Claves

Las claves (keys) proporcionan un cierto nivel de aislamiento y proteccion del trafico. Se insertan en los paquetes. Las aplicaciones solo podran acceder a los paquetes que contengan claves para los que ellas estén habilitadas. Los diferentes tipos de claves son:

  • Management Key (M Key): Esta clave se usa para tareas de gestion y se puede asignar una distinta a cada puerto. Una vez hecha la asignacion, todo el trafico de control con ese puerto debera llevar esa clave insertada en los paquetes.
  • Baseboard Management Key (B Key): Permite que actue el gestor de subred en placa. Esta clave la contienen cierto tipo de paquetes de gestion de la subred.
  • Partition Key (P Key): Permite la division logica de la subred en distintas zonas. Cada adaptador contiene una tabla de claves de particion que define las particiones para las que ese adaptador esta habilitado. Hay un gestor de particiones (Partition Manager, PM) unico, que se encarga de gestionar las claves de las particiones.
  • Queue Key (Q Key): Permite controlar el derecho de acceso a las colas para los servicios sin conexion (datagrama). De esta forma, dos nodos que no hayan establecido previamente una conexion pueden intercambiar informacion de forma que esta clave identifique univocamente a los interlocutores.
  • Memory Keys (L Key y R Key): Permite el uso de direcciones de memoria virtuales y dota al consumidor de un mecanismo para controlar el acceso a dicha memoria. El consumidor le especifica al adaptador una zona de memoria y recibe de este una L Key y otra R Key. El consumidor usa la L Key en las gestiones locales de memoria, y pasa la R Key a los consumidores remotos para que la usen en las operaciones remotas de DMA (RDMA).

Las claves no proporcionan seguridad por si solas pues dichas claves estan disponibles en la cabecera de los paquetes que circulan por la red. No obstante, permiten hacer un aislamiento virtual de forma que cada adaptador sepa que mensajes le atañen directamente a el, o van dirigidos a otro tipo de entidades.

Canales virtuales

Los canales virtuales (VL) constituyen un mecanismo para crear multiples enlaces virtuales con un unico enlace fisico. Un canal virtual representa un conjunto de buffers de transmision y recepcion en un puerto.

Control de la tasa de inyeccion

InfiniBand define enlaces serie punto a punto full-duplex funcionando a una frecuencia de 2,5 GHz. La velocidad de transmision que se obtiene es 2,5 Gb/seg, que se denomina 1X. Sin embargo, InfiniBand permite alcanzar mayores velocidades usando varios de esos enlaces en paralelo, como 10 Gb/seg (4X) y 30 Gb/seg (12X).

Multicast

Multicast es un paradigma de comunicacion uno-muchos/muchos-muchos diseñado para simplificar y mejorar la comunicacion entre un conjunto de nodos finales. InfiniBand permite la comunicacion multidestino.

InfiniBand vs. Ethernet

Escalabilidad InfiniBand vs. Ethernet
En el mercado existen redes de características muy variadas, Ethernet, Fibre Channel, Myrinet, etc. Todas ellas alcanzan actualmente velocidades de transmisión elevadas, sin embargo, no alcanzan las velocidades que los procesadores actuales requieren. Cada vez que un procesador necesita un dato externo a su sistema local, su rendimiento se ve mermado por el mero hecho de la espera producida hasta que el dato está disponible para su uso. Además, en los últimos años las aplicaciones requieren más y más información, aplicaciones multimedia, Internet de banda ancha, transmisión en tiempo real, etc.

Para conocer alguna de las ventajas de InfiniBand con respecto a Ethernet, en la siguiente imagen se compara la escalabilidad de ambas en un clúster HPC, en la que se gráfica el tiempo de computo según la cantidad de procesadores. Es una solución a una ecuación diferencial de tercer orden mediante la Transformada Rápida de Fourier. La comparación no es del todo justa, ya que se utilizó el compilador gcc para Ethernet y el compilador de Sun para InfiniBand, de ahí la diferencia entre los resultados en pequeños números de CPUs. Pero a pesar del hecho de que gcc es un poco más rápido, Ethernet no muestra escalabilidad en absoluto.


Enlaces externos

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas