NVMe (non-volatile memory express)

NVMe (non-volatile memory express) es una interfaz de controlador host y un protocolo de almacenamiento creado para acelerar la velocidad de transferencia de datos entre sistemas empresariales y clientes y unidades de estado sólido (SSD) a través del bus de interconexión de componentes periféricos (PCIe) de alta velocidad de un ordenador.

A medida que la tecnología de estado sólido se convirtió en el medio preferido en el mercado de almacenamiento, rápidamente se hizo evidente que las interfaces y protocolos existentes, en particular, el Accesorio de Tecnología Avanzada en Serie (SATA) y el SCSI conectado en serie (SAS), no eran adecuados, particularmente en entornos de centros de datos. El trabajo en un nuevo protocolo diseñado específicamente para NAND flash comenzó en 2007, con Intel a la cabeza. A principios de 2011, se lanzó la especificación inicial de NVMe: casi 100 empresas de tecnología participaron en el desarrollo.

La especificación NVMe define una interfaz de registro, un conjunto de comandos y una colección de características para SSD basados en PCIe con los objetivos de alto rendimiento e interoperabilidad en una amplia gama de subsistemas NVM. La especificación NVMe no estipula el modelo de uso definitivo, como el almacenamiento de estado sólido, la memoria principal, la memoria caché o la memoria de respaldo.

NVMe proporciona una alternativa al estándar de Interfaz de Sistema de Computadora Pequeña (SCSI) y al estándar ATA para conectar y transmitir datos entre un sistema host y un dispositivo de almacenamiento de destino periférico. El conjunto de comandos ATA en uso con SSD SATA y el conjunto de comandos SCSI para SSD SAS se desarrollaron en un momento en que las unidades de disco duro (HDD) y la cinta eran los principales medios de almacenamiento. NVMe fue diseñado para su uso con medios más rápidos.

Los principales beneficios de los SSD PCIe basados en NVMe sobre los SSD basados en SAS y SATA son una latencia reducida en la pila de software host, mayores operaciones de entrada/salida por segundo (IOPS) y un consumo de energía potencialmente menor, según el factor de forma y el número de carriles PCIe en uso.

El protocolo NVMe puede admitir SSD que utilizan diferentes tipos de memoria no volátil, como flash NAND y la tecnología 3D XPoint desarrollada por Intel y Micron Technology. Los controladores de referencia NVMe están disponibles para una variedad de sistemas operativos (SO), incluidos Windows y Linux.

NVMe no solo hace posible que las aplicaciones existentes se ejecuten de forma más rápida y eficiente; en realidad, es un habilitador clave de tecnologías y aplicaciones más nuevas y en evolución, como el Internet de las cosas (IoT), la inteligencia artificial (IA) y el aprendizaje automático (ML), que pueden beneficiarse de la baja latencia y el alto rendimiento del almacenamiento conectado a NVMe.

Cómo funciona NVMe

NVMe asigna comandos de entrada/salida (E/S) y respuestas a la memoria compartida en un equipo host a través de la interfaz PCIe. La interfaz NVMe admite E/S paralelas con procesadores multinúcleo para facilitar un alto rendimiento y mitigar los cuellos de botella de la unidad de procesamiento central (CPU).

NVMe ofrece un conjunto de comandos más simplificado para procesar una solicitud de E/S que los conjuntos de comandos SCSI y ATA. NVMe requiere menos de la mitad de instrucciones de CPU que el conjunto de comandos SCSI con dispositivos SAS y el conjunto de comandos ATA con unidades SATA.

SSD NVMe vs. SSD SATA

SATA es un protocolo de comunicaciones desarrollado para que las computadoras interactúen con sistemas de almacenamiento de discos duros. Introducido en 2000 por un grupo de importantes actores tecnológicos, SATA reemplazó a ATA paralelo y rápidamente se convirtió en el protocolo de sistema de almacenamiento ubicuo para computadoras que van desde computadoras portátiles hasta servidores. A lo largo de los años, las revisiones de la especificación se han acelerado y actualmente se ejecuta a 6 Gbps con un rendimiento efectivo de hasta 600 MBps.

Aunque se desarrolló para la tecnología de disco duro con discos giratorios mecánicos y cabezales de lectura/escritura controlados por actuadores, los primeros SSD se comercializaron con interfaces SATA para aprovechar el ecosistema SATA existente. Era un diseño conveniente y ayudó a acelerar la adopción de SSD, pero no era, ni sigue siendo, la interfaz ideal para dispositivos de almacenamiento flash NAND y se veía cada vez más como un cuello de botella del sistema.

Diseñado para flash, la velocidad y la baja latencia de NVMe dejan a SATA en el polvo, y NVMe permite capacidades de almacenamiento mucho más altas en factores de forma más pequeños, como M. 2. En general, los parámetros de rendimiento de NVMe superan a los de SATA cinco veces o más.

SATA puede estar más establecido con un historial más largo y costos de implementación más bajos que NVMe, pero es claramente la tecnología de disco duro que se ha adaptado a medios de almacenamiento más modernos.

SSD NVMe vs. SSD SAS

NVMe admite 64.000 comandos en una sola cola de mensajes y un máximo de 65.535 colas de E/S. Por el contrario, la profundidad de cola de un dispositivo SAS suele admitir hasta 256 comandos y una unidad SATA admite hasta 32 comandos en una cola.

Sin embargo, los SSD PCIe basados en NVMe son actualmente más caros que los SSD basados en SAS y SATA de capacidad equivalente; aunque, ese delta se está reduciendo. Además, los SSD NVMe empresariales de gama alta pueden consumir más energía que los SSD SAS o SATA. La Asociación Comercial SCSI afirma que los SSD SAS más maduros ofrecen ventajas adicionales sobre los SSD NVMe PCIe, como una mayor escalabilidad, capacidad de conexión en caliente y capacidades de conmutación por error probadas en el tiempo. Los SSD NVMe PCIe también pueden proporcionar un nivel de rendimiento que muchas aplicaciones no requieren.

SATA vs SAS vs NVMe
Una comparación de los protocolos de almacenamiento SATA, SAS y NVMe.

Historia y evolución de NVM Express

El grupo de trabajo de Interfaz de Controlador de Host de Memoria No Volátil (NVMHCI) comenzó a desarrollar la especificación NVMe en 2009 y publicó la versión 1.0 el 1 de marzo de 2011. El 1.la especificación 0 incluía la interfaz de cola, el conjunto de comandos NVM, el conjunto de comandos de administración y las características de seguridad.

El Grupo de Trabajo NVMHCI, comúnmente conocido como Grupo de Trabajo NVM Express, lanzó una actualización de la especificación NVMe en octubre. 11, 2012. NVMe 1.1 se ha añadido compatibilidad con SSD con varios puertos PCIe para permitir el uso compartido de E/S de múltiples rutas y espacios de nombres. Otras nuevas capacidades incluyeron transiciones autónomas de estado de energía durante el tiempo de inactividad para reducir las necesidades de energía y reservas que permiten que dos o más hosts coordinen el acceso a un espacio de nombres compartido para mejorar la tolerancia a fallos.

NVMe desarrollo de la línea de tiempo
Un calendario de fechas importantes para el desarrollo de NVMe.

El Grupo de trabajo NVM Express celebró su primer Plugfest en mayo de 2013 para permitir a las empresas probar el cumplimiento de sus productos con la especificación NVMe y comprobar la interoperabilidad con otros productos NVMe.

El Grupo de Trabajo NVM Express se incorporó bajo el nombre de organización NVM Express en marzo de 2014. Los miembros fundadores en ese momento incluían a Cisco Systems, Dell, EMC, la subsidiaria HGST de Western Digital, Intel, LSI, Micron Technology, NetApp, Oracle, PMC-Sierra, Samsung Electronics, SanDisk y Seagate Technology.

La organización NVM Express más tarde se conoció simplemente como NVM Express Inc. La organización sin fines de lucro cuenta con más de 100 empresas de tecnología como miembros.

La especificación NVMe 1.2 surgió en noviembre. 3, 2014, con mejoras como soporte para actualizaciones de firmware en vivo, administración de energía mejorada y la opción de protección de datos de extremo a extremo.

El Nov. El 17 de diciembre de 2015, la organización NVM Express ratificó la versión 1.0 de la Interfaz de administración NVM Express (NVMe-MI) para proporcionar una arquitectura y un conjunto de comandos para administrar un subsistema de memoria no volátil fuera de banda. NVMe-MI permite a un controlador de gestión realizar tareas como el descubrimiento de dispositivos y capacidades SSD, la supervisión del estado y la temperatura y las actualizaciones de firmware no disruptivas. Sin NVMe-MI, los gerentes de TI generalmente confiaban en interfaces de administración propietarias y específicas del proveedor para permitir la administración de SSD PCIe.

Mejoras de funciones de NVMe 1.3

NVM Express lanzó NVMe 1.3 de junio de 2017. Los aspectos destacados se centran en las operaciones de desinfección, un nuevo marco conocido como Directivas y mejoras de virtualización.

En una operación de desinfección, todos los datos de usuario en el subsistema NVMe se modifican para que la recuperación no sea posible «desde ninguna caché, medio no volátil o búfer de memoria del controlador», de acuerdo con una hoja de referencia de NVM Express. Se recomiendan las operaciones de desinfección cuando un SSD se está retirando o reutilizando para un nuevo caso de uso. Los modos de desinfección incluyen borrado de bloques de bajo nivel en medios NAND, borrado criptográfico para cambiar una clave de cifrado de medios y sobrescribir.

El marco de directivas define un mecanismo para el intercambio de datos entre un subsistema host y un subsistema NVMe. Esto habilita el etiquetado de comandos per-I/O y brinda a los administradores de TI la capacidad de configurar atributos y configuraciones de informes.

El primer uso de Directivas es una función llamada Flujos para optimizar la colocación de datos para aumentar la resistencia y el rendimiento de las unidades SSD NAND. Tradicionalmente, antes de que se puedan escribir nuevos datos en el SSD, primero se deben borrar grandes bloques de datos.

La función Flujos permite a un host usar un «identificador de flujo» para indicar los bloques lógicos de almacenamiento específicos que pertenecen a un grupo de datos asociados. Esto permite etiquetar una lectura o escritura con datos relacionados almacenados en otras ubicaciones.

Las mejoras de virtualización definen cómo se puede usar el flash NVMe en un entorno de almacenamiento compartido en el que están presentes controladores físicos y virtuales, incluidos los controladores de almacenamiento primario y los controladores de almacenamiento secundario. NVM Express dijo que el objetivo es permitir que los equipos de desarrollo dediquen un SSD específico a una máquina virtual (VM) específica.

Mejoras de funciones de NVMe 1.4

NVMe 1.4 se introdujo en julio de 2019. Esta última versión incluye una serie de mejoras y nuevas funciones, entre las que se incluyen:

  • La asistencia de reconstrucción mejora la recuperación de datos y las operaciones de migración de datos.
  • El registro de eventos persistentes mantiene un historial de unidades detallado que se puede usar para depurar y determinar las causas de los problemas.
  • Los conjuntos NVM y el determinismo de E / S mejoran el rendimiento y la calidad de servicio (QoS).
  • El acceso asimétrico a espacios de nombres (ANA) mejora las rutas múltiples para una alta disponibilidad.
  • El búfer de memoria de host (HMB) reduce la latencia y ayuda en el diseño de SSD.
  • La región de memoria persistente (PMR) permite a los sistemas host leer y escribir directamente en la memoria de acceso aleatorio dinámico (DRAM) que los SSD incluyen junto con su flash central, que se había utilizado principalmente para almacenar en caché

Las nuevas características requerirán que los fabricantes de unidades flash actualicen sus productos para incorporar las mejoras. También se necesitarán nuevos controladores para los sistemas operativos.

Factores de forma y estándares NVMe

La necesidad de una interfaz de almacenamiento y un protocolo para aprovechar mejor el potencial de rendimiento de NAND flash en entornos empresariales fue el principal impulso detrás del desarrollo de la especificación NVMe. Pero reimaginar el estándar de conexión abrió las puertas a varios tipos diferentes de implementaciones de interfaces que podían permanecer dentro de los límites de la nueva especificación al tiempo que ofrecían una variedad de opciones de implementación.

En poco tiempo, surgieron una serie de factores de forma flash que se ajustaban a las especificaciones NVMe, incluidas las tarjetas de complemento (AIC) de tipo convencional para el bus PCIe, y nuevos factores de forma para SSD denominados M. 2 y U. 2.

  • AIC. El factor de forma AIC permite a los fabricantes crear sus propias tarjetas que se insertan en el bus PCIe sin preocuparse por diseños de compartimientos de almacenamiento o limitaciones similares. Las tarjetas a menudo están diseñadas para casos de uso especiales y pueden incluir procesadores adicionales y otros chips para mejorar el rendimiento del almacenamiento de estado sólido.
  • M. 2. La M.el factor de forma 2 se desarrolló para aprovechar el tamaño compacto del flash NAND y la baja descarga de calor. Como tal, los dispositivos M. 2 no están diseñados para caber en compartimentos tradicionales de compartimientos de unidades, sino para implementarse en espacios mucho más pequeños. A menudo descrito como del tamaño de una barra de goma de mascar, los SSD M. 2 miden 22 mm de ancho y generalmente 80 mm de largo, aunque algunos productos pueden ser más largos o más cortos.
  • U. 2. A diferencia del factor de forma M. 2, las unidades SSD U. 2 se diseñaron para adaptarse a las bahías de almacenamiento existentes originalmente destinadas a dispositivos SATA o SAS estándar. U.2 Las unidades SSD se parecen mucho a los medios más antiguos, ya que normalmente utilizan las carcasas de 2,5 o 3,5 pulgadas que son carcasas familiares para discos duros. La idea, por supuesto, era hacer que fuera lo más fácil posible implementar la tecnología NVMe con la menor reingeniería posible.

Otro factor de forma NVMe menos extendido es el factor de forma SSD para empresas y centros de datos, o EDSFF. Está respaldado por actores de la industria de almacenamiento clave, como Intel, Dell EMC, Hewlett Packard Enterprise (HPE), Lenovo, Samsung y otros. El objetivo de EDSFF es brindar un mayor rendimiento y capacidades a los sistemas de almacenamiento de clase empresarial. Quizás el ejemplo más conocido de flash EDSFF sea el E1 de Intel.L (largo) y E1.Dispositivos flash S (cortos), que se proporcionan en lo que originalmente se conocía como el factor de forma «regla».

NVMe sobre tejidos

NVM Express Inc. se publicó la versión 1.0 de la especificación NVMe over Fabrics (NVMe-oF) el 5 de junio de 2016. NVMe-oF está diseñado para ampliar los beneficios de alto rendimiento y baja latencia de NVMe a través de tejidos de red que conectan servidores y sistemas de almacenamiento, como Fibre Channel (FC), Ethernet e InfiniBand.

Los transportes de tela incluyen NVM-de uso de acceso a memoria directa remota (RDMA) y NVMe-de mapeado a FC. Un subgrupo técnico de NVM Express Inc. trabajó en NVMe-oF con RDMA, y el comité T11 del Comité Internacional de Estándares de Tecnología de la Información (INCITS) es responsable del desarrollo de NVMe sobre FC (FC-NVMe).

La especificación NVMe-oF es en gran medida la misma que la especificación NVMe. Una de las principales diferencias entre NVMe-oF y NVMe es la metodología para transmitir y recibir comandos y respuestas. NVMe está diseñado para uso local y asigna comandos y respuestas a la memoria compartida de un equipo a través de PCIe. Por el contrario, NVMe over Fabrics emplea un sistema basado en mensajes para comunicarse entre el ordenador host y el dispositivo de almacenamiento de destino.

Cómo funciona NVMe-oF
Una visual simple de cómo funciona NVMe-oF.

El objetivo de diseño declarado para NVMe-oF era agregar no más de 10 microsegundos de latencia para la comunicación entre un equipo host NVMe y un dispositivo de almacenamiento NVMe conectado a la red, en comparación con la latencia asociada con un dispositivo de almacenamiento NVMe que utiliza el bus PCIe de un equipo local.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *