Memoria exprés no volátil o NVMe
¿Qué es NVMe?
La memoria exprés no volátil o NVMe es una interfaz de controlador de host y un protocolo de almacenamiento creado para acelerar la velocidad de transferencia de datos entre los sistemas empresarial y cliente y las unidades de estado sólido a través del bus de interconexión de componentes periféricos exprés de alta velocidad de una computadora.
NVMe se usa comúnmente para almacenamiento de estado sólido, memoria principal, memoria caché o memoria de respaldo. Proporciona una alternativa al estándar Small Computer System Interface (SCSI) y al estándar Advanced Technology Attachment (ATA) para conectar y transmitir datos entre un sistema host y un dispositivo de almacenamiento de destino. NVMe fue diseñado para usarse con medios más rápidos. Las principales ventajas de los SSD PCIe basados en NVMe sobre otros tipos de almacenamiento son la latencia reducida y las operaciones de entrada/salida más altas por segundo (IOPS).
A medida que la tecnología de estado sólido se convirtió en el medio preferido en el mercado de almacenamiento, rápidamente quedó claro que las interfaces y protocolos existentes —como Serial Advanced Technology Attachment (SATA) y Serial-Attached SCSI (SAS)— ya no eran adecuados para ambientes de centros de datos. A principios de 2011, se lanzó la especificación NVMe inicial. Casi 100 empresas de tecnología participaron en su desarrollo.
NVMe también es un habilitador clave de tecnologías y aplicaciones en evolución, como internet de las cosas, inteligencia artificial y aprendizaje automático, que pueden beneficiarse de la baja latencia y las mejoras de alto rendimiento proporcionadas por el almacenamiento adjunto a NVMe.
¿Cómo funciona NVMe?
El estándar NVMe no establece el uso principal de NVMe; sin embargo, define una interfaz de registro, un conjunto de comandos y una colección de funciones para SSD basados en PCIe con los objetivos de alto rendimiento e interoperabilidad en una amplia gama de sistemas NVM.
El protocolo NVMe puede admitir cualquier forma de memoria no volátil, como SSD que utilizan diferentes tipos de memoria no volátil, incluida la memoria flash NAND. Los controladores de referencia NVMe están disponibles para una variedad de sistemas operativos, incluidos Windows y Linux.
Un SSD NVMe se conecta a través de un bus PCIe o conectores M.2 y U.2. El protocolo NVMe, adjunto con estas conexiones, permite una latencia más baja y una IOPS más alta junto con una reducción en el uso de energía.
Los comandos NVMe mapean la entrada/salida (E/S) y las respuestas a la memoria compartida en una computadora host a través de una interfaz PCIe. La interfaz NVMe admite E/S paralelas con procesadores multinúcleo para facilitar un alto rendimiento y abordar los cuellos de botella de la unidad central de procesamiento (CPU).
¿Por qué es importante NVMe?
Diseñado para medios de almacenamiento no volátiles de alto rendimiento, como SSD, NVMe es ideal para configuraciones de computación intensiva altamente exigentes. Por ejemplo, NVMe puede manejar cargas de trabajo empresariales mientras deja una huella de infraestructura más pequeña y consume menos energía.
En comparación, existe una gran diferencia de rendimiento entre NVMe y SATA. Por ejemplo, NVMe experimenta mucha menos latencia que los protocolos SAS y SATA. Este aumento en el rendimiento y la latencia reducida significa que NVMe se puede utilizar con aplicaciones de carga de trabajo intensiva que necesitan procesamiento en tiempo real evitando cuellos de botella.
Los entornos empresariales y los centros de datos pueden aprovechar el alto rendimiento que ofrece el almacenamiento basado en NVMe.
¿Cuáles son los casos de uso de NVMe?
Debido al excelente rendimiento del almacenamiento flash que proporciona NVMe, junto con su capacidad para manejar una gran cantidad de colas y comandos, NVMe es adecuado para:
- Uso profesional y prosumidor, manejando tareas como la edición de gráficos.
- Aplicaciones con grandes profundidades de cola para E/S de almacenamiento, incluidas bases de datos y algunas operaciones web.
- Computación de alto rendimiento. Específicamente, en aplicaciones donde la baja latencia es crítica.
- Áreas que requieren el almacenamiento de grandes cantidades de datos, como en IA, aprendizaje automático, análisis avanzado y big data.
- Bases de datos relacionales. El mejor rendimiento de los sistemas de memoria flash NVMe reduce la cantidad de servidores físicos necesarios.
- Aplicaciones que necesitan recuperar o almacenar datos en tiempo real, como aplicaciones de finanzas y comercio electrónico.
¿Cuáles son los beneficios de NVMe?
Los beneficios de NVMe incluyen:
- Las unidades NVMe pueden enviar comandos dos veces más rápido en comparación con las unidades AHCI SATA.
- Los SSD NVMe tienen una latencia de solo unos pocos microsegundos, mientras que los SSD SATA tienen una latencia de entre 30 y 100 microsegundos.
- Almacenamiento, gestión y acceso a datos eficientes.
- Tiene un ancho de banda mucho mayor en comparación con SATA y SAS.
- Admite múltiples factores de forma, incluidos M.2, U.2 y conexiones.
- Los datos se pueden dividir y simplificar.
- Admite protocolos de tunelización, que abordan la privacidad.
¿Cuáles son los inconvenientes de NVMe?
Los posibles inconvenientes incluyen:
- Falta de soporte para NVMe en sistemas heredados.
- No es rentable para almacenar grandes volúmenes de datos. Es más caro en comparación con las unidades giratorias en función de la capacidad de almacenamiento.
- Por lo general, se usa con el formato M.2, lo que puede limitar aún más la selección de unidades.
¿Cuáles son las diferencias entre SATA, NVMe y SAS?
SATA. SATA es un protocolo de comunicaciones desarrollado para que las computadoras interactúen con sistemas de almacenamiento de unidades de disco duro (HDD). Introducido en 2000, SATA reemplazó a ATA paralelo y rápidamente se convirtió en el protocolo de sistema de almacenamiento ubicuo para computadoras. A lo largo de los años, las revisiones de las especificaciones se han acelerado para funcionar a 6 Gbps con un rendimiento efectivo de hasta 600 MB por segundo.
Aunque se desarrolló para tecnología de disco duro con platos giratorios mecánicos y cabezales de lectura/escritura controlados por actuador, 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 la interfaz ideal para dispositivos de almacenamiento flash NAND y se convirtió cada vez más en un cuello de botella del sistema.
NVMe. 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. Por lo general, los parámetros de rendimiento de NVMe superan en cinco veces o más a los de SATA.
SATA puede estar más establecido con una larga historia y menores costos de implementación que NVMe, pero es la tecnología de disco duro la que se ha adaptado a medios de almacenamiento más modernos.
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 la cola de un dispositivo SAS generalmente admite hasta 256 comandos y una unidad SATA admite hasta 32 comandos en una cola.
Sin embargo, las SSD PCIe basadas en NVMe son actualmente más caras que las SSD SAS 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 SCSI Trade Association afirma que los SSD SAS más maduros ofrecen ventajas adicionales sobre los SSD PCIe NVMe, como una mayor escalabilidad, capacidad de conexión en caliente y capacidades de conmutación por error probadas en el tiempo. Los SSD PCIe NVMe también pueden proporcionar un nivel de rendimiento que muchas aplicaciones no requieren.
Cómo se compara NVMe con SATA y SAS.
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. Esta especificación incluía la interfaz de cola, el conjunto de comandos NVM, el conjunto de comandos de administración y características de seguridad. Otras fechas destacadas incluyen:
- El 11 de octubre de 2012, NVMHCI Workgroup, comúnmente conocido como NVM Express Workgroup, lanzó NVMe 1.1, que agregó soporte para SSD con múltiples puertos PCIe para habilitar E/S de múltiples rutas y espacio de nombres. tiempo para reducir las necesidades de energía y las reservas, lo que significa que dos o más hosts podrían coordinar el acceso a un espacio de nombres compartido para mejorar la tolerancia a fallas.
- En mayo de 2013, NVM Express Workgroup celebró su primer Plugfest para permitir a las empresas probar el cumplimiento de sus productos con la especificación NVMe y verificar la interoperabilidad con otros productos NVMe.
- En marzo de 2014, NVM Express Workgroup se incorporó bajo el nombre de organización NVM Express. Posteriormente, el grupo pasó a ser conocido simplemente como NVM Express Inc. La organización sin fines de lucro tiene más de 100 empresas de tecnología miembro.
- El 3 de noviembre de 2014, surgió la especificación NVMe 1.2, 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 un extremo a otro.
- El 17 de noviembre de 2015, la organización NVM Express ratificó la versión 1.0 de NVM Express Management Interface (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 que un controlador de administración realice tareas como el descubrimiento de capacidades y dispositivos SSD, monitoreo de temperatura y salud, y actualizaciones de firmware no disruptivas. Sin NVMe-MI, los gerentes de TI generalmente confiaban en interfaces de administración patentadas y específicas del proveedor para permitir la administración de SSD PCIe.
- En junio de 2017, NVM Express lanzó NVMe 1.3. Aspectos destacados centrados en operaciones de saneamiento, un nuevo marco conocido como Directivas y virtualización
- En julio de 2019, se introdujo NVMe 1.4 junto con mejoras y nuevas funciones, que incluyen una asistencia de reconstrucción, registro de eventos persistentes, acceso asimétrico al espacio de nombres, búfer de memoria del host y región de memoria persistente.
- En 2020, se ratificó la especificación del conjunto de comandos del espacio de nombres en zonas de NVMe. Esta especificación permite a NVMe aislar y desarrollar conjuntos de comandos para tecnologías emergentes, incluidos los espacios de nombres en zonas, el valor clave y el almacenamiento computacional.
- En junio de 2021, se lanzó NVMe 2.0. La especificación se reestructuró para permitir un desarrollo más rápido y sencillo de NVMe y para admitir un entorno NVMe más diverso.
Esta línea de tiempo muestra el desarrollo de NVMe desde 2011 hasta hoy.
Estándares y factores de forma NVMe
La necesidad de una interfaz y un protocolo de almacenamiento para aprovechar mejor el potencial de rendimiento de la memoria flash NAND en entornos empresariales fue la fuerza impulsora detrás del desarrollo de NVMe. Pero reinventar el estándar de conexión abrió las puertas a varios tipos diferentes de implementaciones de interfaz que podrían permanecer dentro de los límites de la nueva especificación al tiempo que ofrecen una variedad de opciones de implementación.
En poco tiempo, surgieron una serie de factores de forma flash que se ajustaban a las especificaciones de NVMe, incluidos los nuevos factores de forma para SSD denominados M.2 y U.2.
- El factor de forma AIC permite a los fabricantes crear sus propias tarjetas que encajan en el bus PCIe sin preocuparse por los diseños de las bahías 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.
- 2. El factor de forma M.2 se desarrolló para aprovechar el tamaño compacto de la memoria flash NAND y la baja descarga de calor. Como tal, los dispositivos M.2 NVMe no están diseñados para caber en los compartimentos tradicionales de bahías de unidades, sino para ser instalados en espacios mucho más pequeños. A menudo descritos como del tamaño de una barra de chicle, los SSD M.2 miden 22 mm de ancho y aproximadamente 80 mm de largo, aunque algunos productos pueden ser más largos o más cortos.
- 2. A diferencia del factor de forma M.2, las SSD U.2 fueron diseñadas para encajar en bahías de almacenamiento existentes originalmente diseñadas para dispositivos SATA o SAS estándar. Las SSD U.2 tienen un aspecto similar a los medios más antiguos, ya que suelen utilizar carcasas de 2,5 o 3,5 pulgadas que son familiares para las unidades de disco duro. La idea, por supuesto, era hacer lo más fácil posible implementar la tecnología NVMe con la menor reingeniería posible.
- Otro factor de forma NVMe menos implementado es el factor de forma SSD empresarial y de centro de datos. El objetivo de EDSFF es brindar mayor rendimiento y capacidades a los sistemas de almacenamiento de clase empresarial. Quizás el ejemplo más conocido de flash EDSFF son los dispositivos flash E1.L largo y E1.S corto de Intel, que se proporcionan en lo que originalmente se denominó factor de forma de "regla".
NVMe over Fabrics
NVM Express Inc. 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 extender los beneficios de alto rendimiento y baja latencia de NVMe a través de estructuras de red que conectan servidores y almacenamiento. sistemas. La especificación NVMe-oF 1.1, que se lanzó en 2019, ofrece una comunicación de estructura mejorada, una gestión de recursos de E/S de grano más fino y un control de flujo de un extremo a otro y compatibilidad con NVMe/TCP. Ambas especificaciones también ofrecen menor latencia, mejor administración y aprovisionamiento de flash y acceso al almacenamiento remoto.
Los transportes de tejido incluyen NVMe-oF mediante acceso remoto directo a memoria (RDMA) y NVMe-oF mapeado a FC. Un subgrupo técnico de NVM Express Inc. trabajó en NVMe-oF con RDMA, mientras que el comité T11 del Comité Internacional de Estándares de Tecnología de la Información (INCITS) desarrolló NVMe sobre FC (FC-NVMe).
Esta imagen muestra cómo funciona NVMe over Fabrics.
La especificación NVMe-oF es en gran medida la misma que la especificación NVMe. Una de las principales diferencias entre ellos 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 una computadora a través de PCIe. Por el contrario, NVMe over Fabrics emplea un sistema basado en mensajes para comunicarse entre la computadora host y el dispositivo de almacenamiento de destino.
El objetivo de diseño declarado para NVMe-oF era agregar no más de 10 microsegundos de latencia para la comunicación entre una computadora 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 usa el bus PCIe de una computadora local.