Inicio Empresa ¿Qué es NVMe-oF?

¿Qué es NVMe-oF?

by Juan Mulford
NVMeoF

En los últimos años, seguimos experimentando cómo el rendimiento del almacenamiento es cada vez más rápido, lo que ha desafiado los antiguos protocolos de almacenamiento que se han convertido en un cuello de botella para los centros de datos. A pesar de utilizar la velocidad de estructura más reciente de 100 GbE y los nuevos estándares de red, como InfiniBand, esas tecnologías de protocolo de red lento restringen el rendimiento del dispositivo flash, lo mantienen dentro del propio dispositivo y aislado en la caja. En este artículo, echamos un vistazo rápido a Non-Volatile Memory Express (NVMe). Además, analizamos NVMe over Fabrics (NVMe-oF) y NVMe over RDMA over Converged Ethernet (NVMe over RoCE), una nueva especificación de protocolo desarrollada para resolver los cuellos de botella de las redes de almacenamiento modernas.

En los últimos años, seguimos experimentando cómo el rendimiento del almacenamiento es cada vez más rápido, lo que ha desafiado los antiguos protocolos de almacenamiento que se han convertido en un cuello de botella para los centros de datos. A pesar de utilizar la velocidad de estructura más reciente de 100 GbE y los nuevos estándares de red, como InfiniBand, esas tecnologías de protocolo de red lento restringen el rendimiento del dispositivo flash, lo mantienen dentro del propio dispositivo y aislado en la caja. En este artículo, echamos un vistazo rápido a Non-Volatile Memory Express (NVMe). Además, analizamos NVMe over Fabrics (NVMe-oF) y NVMe over RDMA over Converged Ethernet (NVMe over RoCE), una nueva especificación de protocolo desarrollada para resolver los cuellos de botella de las redes de almacenamiento modernas.

NVMe-oF

Debido a la demanda constante de baja latencia y alto rendimiento en las nubes y los centros de datos, hay mucha discusión en torno a NVMe sobre Fabrics. La especificación NVMe existe desde hace menos de una década, y dado que NVMe-oF también es relativamente nuevo, todavía hay muchos malentendidos sobre su práctica y cómo beneficia a las empresas. Esta tecnología ha evolucionado constantemente y ha sido ampliamente adoptada en la industria de TI. Estamos comenzando a ver varios proveedores de redes que ofrecen productos relacionados con NVMe-oF al mercado empresarial. Por lo tanto, para mantenerse al día con las tecnologías avanzadas de centros de datos, es esencial comprender qué es NVMe-oF, las capacidades y sus características de rendimiento. Además, cómo se puede implementar y cómo combinamos esta tecnología en soluciones diferentes y nuevas.

NVMe y NVMe-oF

Los arreglos all-flash (AFA) surgieron en los centros de datos para responder a la demanda de alto rendimiento, ya que son mucho más rápidos que el almacenamiento heredado y pueden alcanzar el siempre prometido 1 millón de IOPS en el mercado sin esfuerzo. Sin embargo, muchas de estas matrices siguieron usando una tecnología de almacenamiento casi heredada, la SSD SATA. Este tipo de almacenamiento se basa en el protocolo de comando AHCI (Advanced Host Controller Interface) y es compatible con IDE. AHCI se creó esencialmente para el disco giratorio y no para las unidades avanzadas basadas en flash. Esta tecnología basada en SCSI crea un cuello de botella para los SSD y los controladores de matrices de almacenamiento actuales, ya que el bus SATA III con AHCI solo permite una velocidad de transferencia de datos de hasta 600 MB/s.

Velocidades de bus NVMe-oFTabla 1: Velocidad de buses comunes

Para desbloquear la capacidad total de los SSD, necesitábamos nueva tecnología para descargar la velocidad del flash más rápido. NVMe es una especificación que permite que el almacenamiento flash (o SSD) se beneficie realmente del rendimiento flash. Esta tecnología se introdujo por primera vez en 2014 para mejorar el tiempo de respuesta de las aplicaciones, presentando nuevas y mejores capacidades. Hay muchos factores de forma de unidad de estado sólido NVMe, y los más conocidos son AIC (tarjeta adicional), U.2, U.3 y M.2. Los SSD NVMe aprovechan el bus de alta velocidad Peripheral Component Interconnector Express (PCIe) en la computadora o servidor, conectándolo directamente a él. Considerablemente, NVMe reduce la sobrecarga de la CPU y agiliza las operaciones que reducen la latencia, aumenta las operaciones de entrada/salida por segundo (IOPS) y el rendimiento. Por ejemplo, los SSD NVMe proporcionan velocidades de escritura superiores a 3,000 MB/s. Si lo comparamos con los SSD SATA, esto significa 5 veces más rápido o 30 veces más rápido que los discos giratorios.

Con NVMe, IOPS funciona en paralelo, lo que permite realizar muchos cálculos al mismo tiempo. Las tareas grandes se pueden dividir en varias tareas más pequeñas para procesarlas de forma independiente. Similar a una CPU multinúcleo, trabajando con múltiples subprocesos. Cada núcleo de CPU podría funcionar de forma independiente para realizar tareas específicas.

Queue Depths (QD) es otra ventaja de NVMe sobre AHCI. Mientras que ACHI y SATA pueden manejar profundidades de cola de 32 (1 cola y 32 comandos), NVMe puede manejar profundidades de cola de hasta 65K. Estas son colas de 65 65, donde cada cola puede contener hasta XNUMX XNUMX comandos por cola. Junto con la reducción de la latencia, esto acelera el rendimiento de los servidores ocupados que procesan solicitudes simultáneas.

NVMe-oF q profundidadTabla 2: Comparación de colas

Sin embargo, el problema de los centros de datos sigue estando en los protocolos de red de almacenamiento. Aunque el auge de NVMe, sus ganancias se limitan a cada dispositivo individual. Y el hecho es que el almacenamiento flash y otros dispositivos de nivel empresarial (costosos), como los AFA, no están destinados a aislar su notable rendimiento dentro del chasis. En cambio, están destinados a ser utilizados en clústeres masivos de computadoras paralelas, conectándolos con dispositivos adicionales y múltiples, como otros servidores y almacenamiento. Esta interconexión de dispositivos es lo que llamamos estructura, la red de almacenamiento, incluidos conmutadores, enrutadores, puentes de protocolo, dispositivos de puerta de enlace y cables.

En 2016, se lanzó el estándar de la industria NVMe-oF. La especificación del protocolo amplía el increíble rendimiento de NVMe desde los controladores de arreglos de almacenamiento hasta la estructura, utilizando Ethernet, Fibre Channel, RoCE o InfiniBand. NVMe-oF utiliza un protocolo de transporte de datos alternativo (sobre estructuras) como asignación de transporte, en lugar del bus PCIe que utiliza NVMe. Las estructuras se basan en el concepto de enviar y recibir mensajes sin memoria compartida entre puntos finales. Los transportes de mensajes de la estructura NVMe encapsulan los comandos y las respuestas de NVMe en un sistema basado en mensajes que incluye uno o más comandos o respuestas de NVMe.

En NVMe-oF, los destinos se presentan como espacios de nombres, lo que equivale a SCSI LUN. NVMe-oF permite que los hosts se comuniquen con estos objetivos de almacenamiento a través de distancias mucho más lejanas mientras mantiene la latencia ultrabaja, en niveles de microsegundos (μs). En pocas palabras, obtenemos un mejor rendimiento entre los sistemas y el almacenamiento flash sin aumentar sustancialmente la latencia de la estructura. Esta baja latencia, en parte, es posible para las profundidades de cola de NVMe mencionadas anteriormente. NVMe-oF puede manejar las mismas colas que NVMe, 65KEste notable número hace posible que NVMe-oF diseñe una arquitectura altamente paralela entre hosts y unidades, usando una cola separada para cada uno de estos dispositivos.

Transportes de tejidos NVMe 

Los tres tipos de transportes de estructura admitidos y utilizados por NVMe son NVMe-oF con RDMA, NVMe-oF con canal de fibra y NVMe-oF con TCP.

NVMe-oF sobre RDMA

Esta especificación utiliza el acceso directo a memoria remota (RDMA) y permite que los datos y la memoria se transfieran entre la computadora y los dispositivos de almacenamiento a través de la red. RDMA es una forma de intercambiar información entre la memoria principal de dos computadoras en una red sin involucrar el procesador, el caché o el sistema operativo de ninguna de las computadoras. Dado que RDMA evita el sistema operativo, suele ser el mecanismo más rápido y de menor sobrecarga para transmitir datos a través de una red.

NVMe-oF sobre RDMA utiliza el protocolo de transporte TCP para entregar datos a través de redes IP. Las implementaciones típicas de RDMA incluyen la arquitectura de interfaz virtual, RDMA sobre Ethernet convergente (RoCE), InfiniBand, Omni-Path e iWARP. RoCE, InfiniBand e iWARP son actualmente los más utilizados.

NVMe sobre canal de fibra

La combinación de usar NVMe sobre Fibre Channel (FC) a menudo se denomina FC-NVMe, NVMe sobre FC o, a veces, NVMe/FC. Fibre Channel es un protocolo sólido para transferir datos entre matrices de almacenamiento y servidores, y la mayoría de los sistemas SAN empresariales lo utilizan. En FC-NVMe, los comandos se encapsulan dentro de marcos FC. Se basa en las reglas FC estándar y coincide con el protocolo FC estándar que admite el acceso a flash NVMe compartido. Los comandos SCSI se encapsulan en tramas FC; sin embargo, se impone una penalización de rendimiento para interpretarlos y traducirlos a comandos NVMe.

NVMe sobre TCP/IP

Este tipo de transporte es uno de los últimos desarrollos dentro de NVMe-oF. NVMe sobre TCP (Protocolo de control de transporte) utiliza NVMe-oF y el protocolo de transporte TCP para transferir datos a través de redes IP (Ethernet). NVMe transportado dentro de datagramas TCP a través de Ethernet como transporte físico. A pesar de tener RDMA y Fibre Channel, TCP ofrece una alternativa probablemente más barata y flexible. Además, al compararlo con RoCE, que también usa Ethernet, NVMe/TCP funciona más como FC-NVMe porque usan semántica de mensajería para E/S.

El uso de NVMe-oF con RDMA, Fibre Channel o TCP constituye una solución completa de almacenamiento NVMe de extremo a extremo. Estas soluciones proporcionan un rendimiento notablemente alto manteniendo la bajísima latencia disponible a través de NVMe.

NVMe sobre RDMA sobre Ethernet convergente (RoCE)

Entre los protocolos RDMA destaca RoCE. Sabemos qué son RDMA y NVMe-oF, y ahora tenemos Converged Ethernet (CE), el soporte de RDMA sobre una red Ethernet. CE es como una versión mejorada de Ethernet, también conocida como Data Center Bridging y Data Center Ethernet. Encapsula el paquete de transporte InfiniBand a través de Ethernet. Su solución proporciona el mecanismo de control de flujo de nivel de enlace para asegurar cero pérdidas, incluso cuando la red está saturada. El protocolo RoCE permite latencias más bajas que su predecesor, el protocolo iWARP.

Hay dos versiones de RoCE, RoCE v1 y RoCE v2. RoCE v1 es un protocolo de capa 2 (enlace) de Ethernet que permite la comunicación entre dos hosts en el mismo dominio de transmisión de Ethernet. Por lo tanto, no puede enrutar entre subredes. La nueva opción es RoCE v2, un protocolo además del protocolo UDP/IPv4 o UDP/IPv6. RoCE v2 es un protocolo de capa 3 (internet) de Ethernet, lo que significa que sus paquetes se pueden enrutar. El soporte de software para RoCE v2 aún está surgiendo. Mellanox OFED 2.3 o posterior tiene soporte para RoCE v2 y también Linux Kernel v4.5.

NVMe sobre RoCE es un nuevo tipo de SAN. Este protocolo proporciona el mismo rendimiento y flexibilidad de los servicios de datos empresariales que el hardware y el software SAN. Aunque el protocolo RoCE se beneficia de las características de una red Ethernet convergente, el protocolo también se puede utilizar en una red Ethernet tradicional o no convergente. Para configurar NVMe sobre estructura de almacenamiento RoCE, la NIC, el conmutador y AFA deben ser compatibles con Ethernet convergente. La NIC (denominada R-NIC) y la matriz all-flash deben ser compatibles con RoCE. Los servidores con R-NIC y AFA con NVMe sobre interfaces RoCE se conectarán y usarán con los conmutadores CE instalados.

Compatibilidad con NVMe-oF sobre RoCE para VMware

VMware agregó soporte para almacenamiento NVMe compartido mediante NVMe-oF. Para conectividad externa, NVMe sobre Fibre Channel y NVMe sobre RDMA son compatibles con vSphere 7.0. Los hosts ESXi pueden usar RDMA sobre Converged Ethernet v2 (RoCE v2). Para habilitar y acceder al almacenamiento NVMe mediante RDMA, el host ESXi usa un adaptador R-NIC en su host y un adaptador de almacenamiento SW NVMe sobre RDMA. La configuración debe configurarse en ambos adaptadores para usarlos para el descubrimiento de almacenamiento NVMe.

Los destinos se presentan como espacios de nombres a un host en modos de acceso activo/activo o asimétrico (ALUA) cuando se usa NVMe-oF. Esto permite que los hosts ESXi descubran y utilicen los espacios de nombres presentados. ESXi emula los destinos NVMe-oF como destinos SCSI internamente y los presenta como destinos SCSI activos/activos o destinos SCSI ALUA implícitos.

Requisitos de NVMe sobre RDMA:

  • Matriz NVMe compatible con transporte RDMA (RoCE v2)
  • Anfitrión ESXi compatible
  • Conmutadores Ethernet compatibles con una red sin pérdidas.
  • Adaptador de red compatible con RoCE v2
  • SW NVMe sobre adaptador RDMA
  • controlador NVMe
  • RoCE se ejecuta hoy en estructuras con pérdidas que admiten ZTR (Zero Touch RoCE) o requiere una red configurada para el tráfico de información sin pérdidas solo en la capa 2 o en las capas 2 y 3 (usando PFC)

Al configurar NVMe-oF en un host ESXi, se deben seguir algunas prácticas.

  • No mezcle tipos de transporte para acceder al mismo espacio de nombres.
  • Asegúrese de que todas las rutas activas se presenten al host.
  • NMP no se usa/soporta; en su lugar, HPP (complemento de alto rendimiento) se usa para objetivos NVMe.
  • Debe tener enlaces dedicados, VMkernels y adaptadores RDMA para sus destinos NVMe.
  • VLAN dedicada de capa 3 o conectividad de capa 2
  • Límites:
    • Espacios de nombres-32
    • Rutas = 128 (máximo 4 rutas/espacio de nombres en un host)

Conclusión

Con más y más personas que dependen de los datos en los servicios en la nube, existe una demanda creciente de almacenamiento back-end más rápido en los centros de datos. NVMe es una forma más nueva de interactuar con dispositivos flash y, junto con NVMe-oF, las tecnologías han mejorado las opciones de conectividad externa. NVMe-oF y sus diferentes tipos de transporte comienzan a ser reconocidos como el futuro del almacenamiento de datos. Estos dispositivos y dispositivos de almacenamiento se consideran el corazón de los centros de datos, ya que cada milisegundo cuenta dentro de la estructura interconectada. La tecnología NVMe reduce los comandos de entrada/salida asignados a la memoria y se adapta a los controladores de dispositivos del sistema operativo para lograr un mayor rendimiento y una latencia más baja.

NVMe se ha vuelto cada vez más popular debido a su velocidad multitarea con baja latencia y alto rendimiento. Si bien NVMe también se usa en computadoras personales para mejorar la edición de video, los juegos y otras soluciones, el beneficio real se ve en la empresa, a través de NVMe-oF. Las industrias, como TI, inteligencia artificial y aprendizaje automático, continúan avanzando y la demanda de un rendimiento mejorado continúa creciendo. Ahora es habitual ver proveedores de software y redes, como VMware y Mellanox, que ofrecen más productos y soluciones relacionados con NVMe-oF al mercado empresarial. Con los clústeres informáticos modernos y masivamente paralelos, cuanto más rápido podamos procesar y acceder a nuestros datos, más valiosos serán para nuestro negocio.

Recursos

Centro de almacenamiento: VMware NVMeoF vSphere

NVMexpress: NVMe sobre telas

Revisión de NetApp AFF A800 NVMeOF

Interactuar con StorageReview

BOLETÍN  | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | Facebook | RSS Feed