Habla con proveedores de almacenamiento de datos empresariales hoy mismo; de lo único que se habla es de NVMe esto, NVMe aquello, bla bla bla.
Hay una buena razón para todo este ruido. La implementación de NVMe (NVM Express) como protocolo de transferencia de datos integral en tu entorno SAN puede mejorar considerablemente el rendimiento y reducir la latencia, lo que deriva en una experiencia mucho mejor para tus usuarios. Sin embargo, la parte «integral» es crucial; por desgracia, muchos de los productos de almacenamiento de datos NVMe que están ahora en el mercado ofrecen solo una pequeña parte de las posibles mejoras que se pueden producir en el rendimiento de NVMe.
Esto se debe a que el estándar de transferencia de datos NVMe tiene dos aspectos distintos:
- Como protocolo de «back-end» entre los medios flash y la controladora de almacenamiento
- Como protocolo de «front-end» entre el host y la controladora de almacenamiento en Data Fabric; es decir, como NVMe over Fabrics (NVMe-oF)
Es muy importante leer la letra pequeña puesto que, en la mayoría de los casos, menos del 20 % del aumento potencial de velocidad de NVMe proviene del uso de medios NVMe del back-end, lo que supone un 80 % o más de las ventajas que se obtienen al usar NVMe-oF para sustituir los protocolos de transferencia de datos front-end basados en SCSI. Algunos blogs sobre el marketing de centros de datos dicen solo tonterías, por lo que siempre se debe comprobar si el sistema de almacenamiento en cuestión realmente ejecuta NVMe-oF en lugar de solo medios flash NVMe del back-end.
Al incorporar el paralelismo masivo de NVMe en el Data Fabric, se espera que sea posible proporcionar grandes mejoras en rendimiento. Por tanto, la cuestión a la que se enfrentan los arquitectos y los líderes tecnológicos es qué tipo de estructura se debe adoptar teniendo en cuenta que existen grandes diferencias de rendimiento, fiabilidad y coste.
Desde sus comienzos en 2016, el estándar NVMe-oF se diseñó para garantizar que el conjunto de comandos NVMe se pudiera transportar mediante la mayor variedad posible de estructuras y transportes de red.
Tres tipos principales de estructuras
Hoy en día, los principales protocolos de transporte de datos del mundo de la tecnología son:
- Fibre Channel (FC). El protocolo dominante para transferir datos entre dispositivos de almacenamiento y servidores que utiliza la mayoría de sistemas SAN de empresa.
- Acceso directo a memoria remota (RDMA). Varias formas de acceder directamente a la memoria entre sistemas de computación sin depender del sistema operativo.
- Protocolo de control de transmisión/protocolo de Internet (TCP/IP). Uso del protocolo de transporte TCP para entregar datos en redes IP, como en Internet.
Los tres tipos correspondientes de estructuras compatibles con NVMe son los siguientes:
- NVMe/FC. El conjunto de comandos NVMe encapsulado dentro de tramas de FC. Se basa en procesos FC comunes, como la división en zonas, y coexiste sin esfuerzo con el protocolo FC estándar actual, en el cual los conjuntos de comandos SCSI se encapsulan en tramas de FC.
- NVMe over RoCE (NVMe/RoCE), InfiniBand y iWARP. Una alternativa emergente es RoCE v2, que utiliza RDMA en una red Ethernet convergente física (una red Ethernet sin pérdida de información de Data Center Bridging).
- NVMe over TCP (NVMe/TCP). NVMe se transportó dentro de datagramas TCP a través de Ethernet como transporte físico. Aunque tanto RoCE como NVMe/TCP usan Ethernet, NVMe/TCP se comporta más como NVMe/FC porque ambos usan semántica de mensajería para E/S.
Echemos un vistazo a la tecnología que subyace en estas tres maneras de implementar NVMe en un Data Fabric y, a continuación, examinemos los pros y los contras de cada enfoque.
¿Qué hace que NVMe sea tan rápido?
Los principales protocolos de transferencia de datos que utilizan los sistemas SAN en la actualidad son el protocolo FC, iSCSI y FCoE. A partir de ahora puedes ignorar esos acrónimos, porque todos están construidos sobre SCSI, un conjunto de estándares de interfaz de los años 70 que fueron diseñados para disquetes y unidades de disco duro.
El estándar NVMe se desarrolló en la pasada década y se diseñó específicamente para aprovechar al máximo la memoria flash, las unidades de estado sólido (SSD), las SSD conectadas a NVMe e incluso las tecnologías de almacenamiento que aún no se han inventado. En lugar de la única cola de comandos de SCSI (con una profundidad de 32 comandos), NVMe admite 65 000 colas con 65 000 comandos por cola, lo que significa que es posible ejecutar simultáneamente un mayor número de comandos.
Las primeras iteraciones de NVMe se centraron en optimizar las operaciones de I/O entre un equipo host y medios NVMe locales conectados a través de un bus PCIe (Peripheral Component Interconnect Express) de alta velocidad. Cuando este evolucionó a NVMe-oF, un objetivo clave del diseño era garantizar que admitiera la mayor variedad posible de protocolos de red y estructuras. Hoy en día, esto implica tres protocolos principales de transporte de datos: NVMe/FC, NVMe over RDMA (NVMe/RDMA) y NVMe/TCP.
NVMe/FC
La mayoría de empresas confían actualmente sus cargas de trabajo críticas a los sistemas SAN basados en FC, debido a su gran velocidad, eficiencia y disponibilidad constantes.
- NVMe/FC
- Pros:
- NVMe/FC ofrece importantes mejoras de rendimiento y reducciones de las latencias de las cargas de trabajo.
- El protocolo FC es estable, maduro, eficiente y de una gran velocidad, y ofrece un rendimiento alto de forma constante.
- Los sistemas de almacenamiento AFF A300, AFF A700s y AFF A800 de NetApp® que están disponibles actualmente pueden alojar y admitir el tráfico NVMe/FC y FC al mismo tiempo utilizando los mismos componentes de estructura (HBA, switches, etc.), lo que permite que los usuarios puedan realizar fácilmente la transición de FC a NVMe/FC.
- Con las soluciones NVMe de NetApp no hay que aplicar cambios en las aplicaciones para implementar NVMe/FC, por lo que no se necesitan actualizaciones costosas.
- El estándar ofrece almacenamiento de alta disponibilidad (HA) con una mejora de ANA (NVMe Asymmetric Namespace Access), el cual fue desarrollado por NetApp y contribuyó a la especificación NVMe.
- NVMe/FC es más maduro que otras opciones de NVMe-oF y ofrece el ecosistema más grande que hay ahora mismo en el universo NVMe-oF.
- Las organizaciones que quieran empezar a probar o poner en marcha NVMe/FC solo tienen que actualizar a NetApp ONTAP® 9.4 u otras versiones posteriores y añadir una licencia NVMe/FC.
- Contras:
- Al igual que todas las ofertas de NVMe, NVMe/FC es tan reciente que todavía hay un ecosistema relativamente pequeño de sistemas operativos, adaptadores de bus de host (HBA) y switches compatibles.
- NVMe/FC tiene un ecosistema mayor que RoCE v2, pero sigue siendo muy pequeño en comparación con el protocolo FC que está muy consolidado.
- NVMe/FC depende de una estructura de FC y, por lo tanto, podría no ser una opción tan adecuada para las organizaciones que no tienen una estructura de FC o que intentan apartarse de estructuras de FC.
Acceso remoto directo a memoria (RDMA)
RDMA es una forma de intercambiar datos entre la memoria principal de dos equipos en una red sin implicar al procesador, la memoria caché ni el sistema operativo de ninguno de los equipos. Como RDMA omite el sistema operativo, suele ser el mecanismo más rápido y con menor sobrecarga a la hora de comunicar datos a través de una red.
Existen dos variantes de RDMA principales en el sector de la informática empresarial: InfiniBand y RDMA sobre Ethernet convergente (RoCE, RDMA over Converged Ethernet).
NVMe over InfiniBand (NVMe/IB)
InfiniBand fue una de las primeras implementaciones de RDMA y es conocido por su increíble rendimiento. NetApp lleva proporcionando cabinas all-flash e híbridas E-Series que admiten InfiniBand de 100 Gbps desde 2017, las cuales proporcionan una latencia inferior a 100 microsegundos para cargas de trabajo de análisis de Big Data. A pesar de sus ventajas, InfiniBand ya no es tan popular como su pariente cercano, RoCE, ni como el estándar empresarial FC.
- NVMe/IB
- Pros:
- Un protocolo muy rápido.
- Se usa ampliamente en análisis de Big Data (por ejemplo, cargas de trabajo de Hadoop) y en computación científica.
- Contras:
- Es caro; no es compatible con muchos proveedores.
- No se escala fácilmente.
- No se encuentra en la mayoría de entornos de computación empresariales generales.
RoCE v2
Entre los protocolos RDMA, el próximo competidor es RoCE, que se ejecuta en Ethernet convergente, un conjunto de mejoras DBC (Data Center Bridging) para el protocolo Ethernet que pretende evitar las pérdidas. RoCE v1 funciona en la capa 2, la capa de enlace de datos en el modelo de interconexión de sistemas abiertos (OSI). Por ello, no se puede enrutar entre subredes, por lo que solo admite la comunicación entre dos hosts de la misma red Ethernet. RoCE v2 es mucho más valioso porque utiliza el protocolo de datagramas de usuario (UDP) y, por lo tanto, como NVMe/TCP, funciona en la capa 3 de OSI y se puede enrutar.
- NVMe/RoCE v2
- Pros:
- NVMe/RoCE utiliza una red Ethernet para el transporte y aprovecha un estándar de redes enormemente popular.
- Hay varios proveedores de almacenamiento empresarial que están desarrollando ofertas de RoCE v2.
- Contras:
- De momento, RoCE v2 tiene un ecosistema muy pequeño con una sola versión de Linux y no admite la alta disponibilidad de almacenamiento ni la multivía.
- Ethernet es imperfecto en su esencia: está diseñado para hacer frente a redes poco fiables y, por lo tanto, tiene muchas opciones para la corrección de errores y retransmisión. Sin embargo, las redes Ethernet convergente (la «CE» en RoCE) para I/O de NVMe no deben sufrir pérdidas, lo que requiere mecanismos como el control de flujo prioritario (PFC) y la notificación explícita de congestión (ECN). De este modo, las redes Ethernet convergentes cuentan con ajustadas tolerancias que dificultan su expansión.
- La mayoría de las organizaciones que contemplan la adopción de RoCE v2 deberán adquirir switches de red DCB especializados y tarjetas de interfaz de red RDMA (RNIC), que son relativamente caras. Las redes DCB pueden resultar difíciles de configurar y escalar; por ejemplo, cuando las organizaciones agregan switches a la red.
NVMe over TCP/IP
Hasta la fecha, el coste de las redes FC o InfiniBand ha mantenido a algunas organizaciones fuera del mercado de NVMe-oF. Para abordar esta brecha en el mercado, NetApp y otros miembros del consorcio NVMe.org desarrollaron y publicaron un nuevo estándar NVMe-oF (NVMe/TCP) que utiliza una LAN de Ethernet con datagramas TCP como transporte.
De hecho, en noviembre de 2018, el organismo de estándares NVMe ratificó NVMe/TCP como un nuevo mecanismo de transporte. En el futuro, es probable que TCP/IP evolucione hasta convertirse en un importante transporte del centro de datos para NVMe.
- NVMe over TCP
- Pros:
- El estándar utiliza TCP como transporte. TCP es muy común, se conoce bien y es muy escalable.
- A pesar de utilizar Ethernet para la conectividad, NVMe/TCP se parece más a NVMe/FC porque ambos utilizan mensajes para sus comunicaciones principales, a diferencia de los protocolos basados en RDMA, como RoCE, que utilizan la semántica de memoria.
- Existe una enorme red de proveedores en el mundo de TCP que realizan importantes inversiones para mejorar sus capacidades de rendimiento. En los próximos años, es probable que las velocidades aumenten significativamente.
- Contras:
- El diseño de la red puede tener un enorme impacto en el rendimiento de NVMe/TCP. En particular, la asignación de búferes debe ser «justa». Si se utiliza demasiado almacenamiento en búfer, se añadirá latencia y, si se utiliza demasiado poco, se producirán caídas y retransmisiones.
- NVMe over TCP es la tecnología de Data Fabric más reciente para NVMe, pero no está todavía disponible en el mercado.
¿Qué estructura?
Para los arquitectos de tecnología empresarial que planean actualizar su infraestructura para dar soporte a NVMe-oF, la pregunta principal es qué estructura. Naturalmente, la respuesta dependerá del contenido de su infraestructura actual, además de sus planes y presupuestos para el futuro.
El otro factor clave son los plazos. NVMe/RoCE v2 muestra un gran potencial, pero probablemente necesitará un par de años más para evolucionar antes de estar listo para asumir de forma fiable cargas de trabajo empresariales de nivel 1. También es posible que NVMe/TCP ofrezca una excelente relación precio/rendimiento cuando la tecnología madure, pero para ello se necesitan también unos años.
Por ahora, la mayoría de arquitectos tecnológicos han llegado a la conclusión de que FC proporciona el protocolo de transferencia de datos más desarrollado para cargas de trabajo críticas para la empresa, lo que convierte a NVMe/FC en la opción de estructura adecuada. Un informe de 2018 elaborado por los analistas técnicos de Demartek, Performance Benefits of NVMe over Fibre Channel (Ventajas en rendimiento de NVMe over Fibre Channel), confirma la magnitud del aumento del rendimiento que se puede atribuir a la estructura NVMe/FC, la cual se muestra en la siguiente figura. En una carga de trabajo típica de Oracle que se ejecuta en un sistema NetApp AFF 700, las IOPS fueron aproximadamente un 50 % superiores para NVMe/FC que para el protocolo FC SCSI. Las pruebas de laboratorio se realizaron en un sistema AFF A700 de un solo nodo mediante una carga de trabajo de Oracle simulada con una combinación 80/20 de lectura/escritura y un tamaño de bloque de 8 KB (I/O típico de base de datos OLTP), más una pequeña cantidad de escrituras secuenciales de 64 KB (registros de reconstrucción habituales). Los resultados mostraron que NVMe/FC alcanzó una tasa de IOPS un 58 % superior a una latencia de 375 μs, en comparación con el protocolo FC SCSI.
Observamos resultados similares en nuestros laboratorios con los sistemas de almacenamiento SAN AFF A800 que se han estado fabricando desde mayo de 2018. Estos sistemas proporcionan una conectividad NVMe integral, con medios flash conectados a NVMe y conectividad NVMe/FC en toda la estructura entre las controladoras de almacenamiento y los hosts. Los resultados de la prueba confirman que, aunque los medios conectados a NVMe en el back-end proporcionan una mejora cuantificable del rendimiento cuando se ejecutan aplicaciones de Oracle en AFF A800, el NVMe-oF front-end altamente paralelizado es el responsable de la mayor parte de la mejora.
Es lo mejor de ambos mundos: puedes implementar de forma no disruptiva la tecnología de redes de almacenamiento más consolidadas actualmente y prepararse para el futuro más inmediato donde todo es NVMe.
Para obtener más información, consulta el informe Ventajas de rendimiento de NVMe over Fibre Channel (no es necesario registrarse).