Guía Hardware

¿Qué es NVMe-oF? Todo lo que debes conocer sobre esta especificación de interfaz tan interesante

Actualizado a: 19 de enero de 2024

El almacenamiento de datos en la era digital está experimentando una transformación radical, y el NVMe-oF está en el centro de esta revolución. Esta tecnología, a menudo es muy desconocida para el público en general, representa un hito en la forma en que los datos son transferidos y almacenados y en este artículo, exploraremos en profundidad toda esta interfaz.

Introducción al problema

NVMe

Cuando aún no existía la especificación NVMe-oF, la elección de una conexión para redes de almacenamiento (SAN o Storage Area Network) se limitaba a tres opciones disponibles para entornos empresariales y servidores:

  • iSCSI (Internet Small Computer Systems Interface): es un estándar de almacenamiento en red basado en el protocolo de Internet (IP) que usa Ethernet para transferir comandos SCSI a través de una red basada en TCP/IP. Normalmente, iSCSI funciona a velocidades de 1 GB/s, pero con tarjetas Ethernet de alto rendimiento, puede superar los 10 GB/s.
  • SAS (Serial Attached SCSI): es un protocolo punto a punto para transferir comandos SCSI a través de cables SAS. SAS utiliza expanders con puertos llamados canales SAS para conectar hasta 128 discos a través de adaptadores de bus del anfitrión (HBA). Las opciones de velocidad incluyen 3 GB/s, 6 GB/s, 12 GB/s y 22.5 GB/s.
  • FCP (Protocolo de canal de fibra): transporta comandos SCSI a través de cables de fibra óptica (o cobre) en redes de canal de fibra (FC). Los FC evitan problemas de interferencia electromagnética (EMI) y suelen tener velocidades entre 1 y 128 GB/s.

Estas tecnologías funcionaban bien para discos duros convencionales (HDD) y cintas magnéticas, pero no aprovechaban todo el potencial de los discos de estado sólido (SSD) nuevos de alta velocidad, como los basados en SATA y especialmente los basados en la interfaz PCIe.

Cuando se introdujo NVMe, un protocolo diseñado para conectar SSD a buses PCIe, dio lugar a matrices de tecnología flash en centros de datos mucho más rápidos que necesitaban una nueva solución. Por eso se desarrolló NVMe-oF, que trajo la velocidad sin pérdidas de FC con NVMe, llevando la matriz basada en tecnología flash a un nivel superior en términos de transferencia de datos de alta velocidad.

¿Qué es NVMe-oF?

El aumento constante en el rendimiento del almacenamiento ha planteado desafíos para los protocolos de almacenamiento más antiguos, que ahora se han convertido en un cuello de botella para los centros de datos. A pesar de utilizar las últimas estructuras de 100 GbE y los nuevos estándares de red, como InfiniBand, estos protocolos más lentos restringen el rendimiento en las transferencias de datos a altas velocidades y de baja latencia, como se necesita en HPC.

Por ello ha llegado NVMe over Fabrics (NVMe-oF) y NVMe over RDMA over Converged Ethernet (NVMe sobre RoCE), unas nuevas especificación de protocolo diseñada para abordar las limitaciones actuales en las redes de almacenamiento modernas.

Debido a la creciente demanda de baja latencia y alto rendimiento en entornos de nube y centros de datos, NVMe-oF ha aportado lo que se buscaba para eliminar esos cuellos de botella. Aunque la especificación NVMe ha estado disponible por menos de una década, NVMe-oF es aún más reciente, lo que ha llevado a algunos malentendidos sobre su aplicación práctica y sus beneficios empresariales.

Varios proveedores de redes han comenzado a ofrecer productos relacionados con NVMe-oF para empresas. Por lo tanto, es fundamental mantenerse al día con estas tecnologías avanzadas en el ámbito de los centros de datos.

Aplicaciones

El NVMe-oF se puede usar para múltiples casos de almacenamiento y transferencias de datos en red profesional o semiprofecional, como en los servidores o centros de datos, y también en algunos sistemas empresariales.

Ideales para aplicaciones con grandes colas de almacenamiento de E/S, incluyendo algunas operaciones de servidores web o en bases de datos. Por tanto, es ideal para el HPC, cuando la baja latencia es crítica.

Ventajas del NVMe-oF

Entre las ventajas de NVMe-oF tenemos que destacar primero las ventajas de NVMe:

  • Las unidades NVMe pueden enviar comandos el doble de rápido en comparación con las unidades SATA y las que utilizan la Interfaz Avanzada del Controlador Principal (Advanced Host Controller Interface, AHCI).
  • Los sockets PCIe pueden transferir mucho más datos que las unidades SATA.
  • Las unidades NVMe SSD tienen una latencia de solo unos pocos microsegundos, mientras que las unidades SSD SATA tienen una latencia entre 30 y 100 microsegundos.
  • NVMe ofrece un almacenamiento, gestión y acceso de datos eficientes.
  • Tiene un ancho de banda mucho más alto en comparación con SATA y SAS.
  • NVMe admite múltiples factores de forma, incluyendo conectores M.2 y U.2.
  • Puede optimizar conjuntos de comandos para analizar datos eficientemente.
  • NVMe admite protocolos de túneles para la privacidad.
  • Es eficiente en cuanto al consumo de energía, ya que las SSD habilitadas para NVMe en modo de espera consumen aproximadamente 0.0032 vatios en comparación con un NVMe activo, que consume alrededor de 0.08 vatios.

Por tanto, NVMe-oF ofrece una conexión más veloz que une el almacenamiento y las aplicaciones en los servidores, permitiendo un uso más eficiente de la CPU. Esto facilita la consolidación en el centro de datos para aplicaciones que antes dependían del almacenamiento con conexión directa (DAS). En lugar de ello, las aplicaciones pueden ejecutarse en unidades de almacenamiento compartidas a través de una red más rápida y con mayor ancho de banda. NVMe-oF también mejora la consolidación de redes y centros de datos, ya que las aplicaciones SAN y DAS pueden aprovechar una única infraestructura de almacenamiento compartido y eficiente.

Además, NVMe-oF permite que el almacenamiento externo tenga la misma latencia que el DAS, superando en eficiencia el procesamiento de E/S de almacenamiento a través de iSCSI. Además, aumenta la capacidad de procesar múltiples operaciones al mismo tiempo en toda la arquitectura, eliminando los cuellos de botella en las aplicaciones modernas.

Desventajas

No obstante, también tiene sus desventajas:

  • Falta de soporte para sistemas heredados.
  • No es rentable para el almacenamiento de grandes volúmenes de datos. NVMe es más caro en función de la capacidad de almacenamiento en comparación con las unidades de disco duro tipo HDD, y también es bastante más caro que las cintas magnéticas que se han vuelto a poner de «moda» en los centros de datos.

Interfaces disponibles

Existen varias interfaces que se pueden usar en las redes NVMe-oF, ya que en el ámbito personal usamos M.2, pero en los entornos empresariales se pueden usar otras especificaciones diferentes para el almacenamiento NVMe, como:

  • AIC: permite a los fabricantes crear sus propias tarjetas que se ajustan al bus PCIe sin preocuparse por el diseño de compartimentos de almacenamiento u otras limitaciones similares. Estas tarjetas suelen estar diseñadas para casos de uso especiales y pueden incluir procesadores adicionales y otros chips para mejorar el rendimiento del almacenamiento en estado sólido.
  • EDSFF: es otro factor de forma NVMe menos común en centros de datos, pero también es importante destacarlo. El objetivo de EDSFF es brindar un mayor rendimiento y capacidades a los sistemas de almacenamiento de clase empresarial.
  • U.2: a diferencia del factor de forma M.2 convencional, las SSD U.2 fueron diseñadas para encajar en compartimentos de almacenamiento existentes originalmente destinados para dispositivos SATA o SAS estándar. Las SSD U.2 se parecen a los medios antiguos, ya que suelen utilizar carcasas de 2.5 pulgadas o 3.5 pulgadas que son carcasas familiares para las unidades de disco duro. La idea era hacer que la implementación de la tecnología NVMe fuera lo más fácil posible con la menor cantidad de reingeniería.
  • U.3: este otro factor de forma es una evolución del anterior. Sirve para unidades NVMe, SAS y SATA en la misma ranura del servidor. U.3 se construyó utilizando la especificación U.2 y funciona con un controlador de tres modos, conectores SFF-8639 y un marco de gestión de backplane universal. Con U.3, las organizaciones no necesitan adaptadores separados para NVMe, SAS o SATA.

NVMe y NVMe-oF

SSD para centro de datos

A pesar de la utilización de las últimas tecnologías de red, como 100 GbE e InfiniBand, los protocolos de los dispositivos de almacenamiento flash han generado este cuello de botella que he mencionado anteriormente, y que hay que acabar con él. Como es el NVMe-oF o el NVMe over RoCE del que también comentaré más adelante.

En cuanto a los protocolos de almacenamiento en red, continúan siendo un desafío en el entorno de los centros de datos. A pesar del auge de NVMe, sus beneficios se limitan a dispositivos individuales. Los dispositivos de almacenamiento en flash y otros dispositivos de nivel empresarial, como los All-Flash Array (AFA), no están diseñados para mantener su notable rendimiento dentro del armario del servidor. En lugar de eso, se utilizan en configuraciones de clústeres masivos de servidores paralelos, conectados a otros servidores y sistemas de almacenamiento. Esta interconexión se conoce como la estructura de red de almacenamiento, que incluye conmutadores, enrutadores, puentes de protocolo, dispositivos de puerta de enlace y cables.

En 2016 se introdujo para estos sistemas el conocido NVMe-oF. Esta especificación de protocolo extiende el impresionante rendimiento de NVMe desde los controladores de almacenamiento hasta la estructura de la red, utilizando tecnologías como Ethernet, Fibre Channel, RoCE e InfiniBand. En vez de emplear un protocolo de bus PCIe como los NVMe convencionales, en este caso se emplea une transporte de datos alternativo, sobre estructuras. Estas estructuras se basan en el concepto de enviar y recibir mensajes sin compartir memoria entre los puntos finales. Por tanto, los transportes de mensajes de NVMe-oF encapsulan los comandos y respuestas de NVMe.

En NVMe-oF, los destinos se presentan como espacios de nombres, que son similares a las unidades lógicas en un sistema SCSI. Así es como se permite que los hosts se comuniquen con estos destinos de almacenamiento a distancias mucho mayores sin aumentar significativamente la latencia, manteniéndola en tan solo fracciones de segundo.

Transportes posibles

Podemos distinguir entre tres tipos diferentes de transportes con NVMe-oF que debes conocer, y estos son:

NVMe over TCP/IP

Uno de los tipos existentes es el transporte NVMe sobre TCP/IP, que se emplea en sistemas NVMe-oF recientes para poder transferir entre unidades de almacenamiento de última generación a través de una red Ethernet de lata velocidad. Es decir, las unidades NVMe origen y destino transportan sus comandos NVMe a través de datagramas TCP a través de una red como capa física.

Este es un tipo de transporte bastante barato con respecto a otros sistemas de esta lista, además de ser muy versátil. Por otro lado, también ofrece una solución de almacenamiento NVMe completa de extremo a extremo, al igual que las otras soluciones que vamos a ver a continuación.

NVMe over Fibre Channel

La siguiente forma de transporte es NVMe over Fibre Channel (FC), también conocido como FC-NVMe o NVMe/FC. Fibre Channel es un protocolo fiable utilizado para la transferencia de datos entre sistemas de almacenamiento y servidores, y es ampliamente adoptado en entornos de sistemas de área de almacenamiento empresarial (SAN) por su alto rendimiento, al usar fibra óptica para las transferencias.

En este caso, los comandos se encapsulan dentro de los marcos FC, siguiendo las reglas estándar del protocolo FC que son compatibles con el acceso a memoria flash NVMe compartida.

NVMe-oF over RDMA

Existe el concepto de acceso directo a memoria remota (RDMA), es decir, como DMA pero para dispositivos que no se encuentran en el mismo ordenador o el mismo nodo, sino que se encuentran separadas y conectados por una red. Para permitir la transferencia de datos y memoria entre dispositivos en este tipo de redes, también se puede usar unidades de almacenamiento NVMe. RDMA es un método que facilita el intercambio de información entre la memoria principal en una red sin necesidad de involucrar al procesador, la caché o el sistema operativo de ninguna de ellas, ya que de todo ello se encarga el chip controlador DMA, evitando este tipo de sobrecargas en la CPU.

NVMe-oF over RDMA utiliza el protocolo de transporte TCP para llevar los datos a través de redes IP, es decir, en este sentido es similar al TCP/IP que vimos anteriormente. Pero se pueden implementar de varias formas, como con arquitectura de interfaz virtual, RDMA over Ethernet Convergente (RoCE), InfiniBand, Omni-Path e iWARP. Sistemas muy empleados en los centros de datos o HPC.

Uno de los protocolos RDMA más empleados en la actualidad es el conocido como RoCE. Esto permite una compresión RDMA y NVMe-oF y la introducción de la convergencia CE (Converged Ethernet), que es un respaldo para RDMA sobre una red Ethernet. Es decir, básicamente es una red Ethernet mejorada. Lo que hace CE es encapsular el paquete de transporte InfiniBand a través de Ethernet. Esta solución proporciona un mecanismo de control de flujo de nivel de enlace que garantiza que no se pierdan datos, incluso cuando la red está bajo una carga intensa, y las larencias de RoCE son incluso más bajas en comparación con iWARP.

Por otro lado, es importante destacar que existen dos versiones de RoCE:

  • RoCE v1: es un protocolo de capa 2 (enlace) de Ethernet que permite la comunicación entre dos hosts dentro del mismo dominio de transmisión de Ethernet, lo que significa que no puede enrutarse entre subredes.
  • RoCE v2: un protocolo que opera en la capa 3 (Internet), además de poder usar protocolos UDP/IPv4 o UDP/IPv6, permitiendo que sus paquetes sean enrutados hacia otros nodos que no estén en el mismo dominio de red. Aunque el soporte de software para RoCE v2 aún se está desarrollando, soluciones como Mellanox OFED 2.3 o posteriores lo respaldan, y también se incluye en el Kernel de Linux a partir de la versión 4.5.

NVMe over RoCE es por tanto una implementación novedosa para SAN, proporcionando un rendimiento y una flexibilidad muy superior a las soluciones alternativas. Para usar esta estructura de almacenamiento, se necesitará una tarjeta de red NIC y un switch compatibles con Ethernet Convergente.

Jaime Herrera

Jaime Herrera

Ingeniero Informático apasionado por el hardware y la tecnología. Llevo más de diez años dedicándome al análisis de componentes como procesadores, tarjetas gráficas y sistemas de almacenamiento. Mi objetivo es ofrecer información clara y precisa, combinando mi experiencia técnica con un enfoque práctico para ayudar a los lectores a entender mejor el mundo del hardware.

>
Guía Hardware
Logo