Poco a poco el abandono del disco es un hecho y el uso de unidades de estado sólido está creciendo cada vez más. Sin embargo, este cambio no solo se está dando en el mundo de los ordenadores domésticos, sino también en servidores. En todo ello tiene mucho que ver el protocolo NVMe-oF. ¿Qué significan estas siglas y por qué puede marcar el futuro del almacenamiento en PC?
La transición progresiva hacía el empleo de las unidades SSD NVMe para el almacenamiento en todos los sectores de la informática sigue su paso firme, de manera determinista y sin frenos. Esto incluye a los sistemas de red, los cuales intercomunican a día de hoy varios ordenadores entre sí, ya sea una red local o en un centro de datos.
La mayoría de las unidades de almacenamiento son del tipo DAS o Direct Access Storage en el que solamente el PC que tiene instalada dicha unidad puede acceder al contenido del mismo y, por tanto, en un entorno de red es necesario desarrollar protocolos que por ejemplo en un entorno de centro de datos o un superordenador compuesto por decenas o cientos de unidades permitan el acceso a toda la infraestructura de almacenamiento.
¿Cómo es la comunicación en un centro de datos?
Antes de entrar a cómo funciona el NVMe-oF y en que consiste. Hemos de tener en cuenta que las tecnologías utilizadas en un centro de datos o una red local para intercomunicar su almacenamiento interno recibe el nombre de SAN que son las siglas de Storage Area Network o almacenamiento de red local. Para ello se usan tres tecnologías distintas a día de hoy, todas ellas basadas en el veterano SCSI.
- Fibre Channel Protocol (FCP): se trata de un protocolo que transporta comandos SCSI a través de una red de fibra óptica, aunque también lo puede hacer en líneas de cobre. Sus velocidades pueden ir desde 1 a 128 GB/s.
- iSCSI: qué combina el protocolo TCP/IP de internet y los comandos SCSI. Este se basa en tarjetas de red convencionales y está diseñado para redes de muy bajo ancho de banda al estar limitado a las capacidades del Ethernet de las mismas. Por lo que velocidades de 1 GB/s son comunes, aunque últimamente se están empezando a ver las de 10 GB/s.
- Serial Attached SCSI: la más utilizada de todas y basada en cables SAS que permiten conectar hasta 128 unidades de almacenamiento a través de adaptadores bus huésped o HBA. La velocidad de estos pueden ser de 3 GB/s, 6 GB/s, 12 GB/s e incluso 22.5 GB/s.
Sin embargo, todas estas tecnologías están pensadas para comunicarse con unidades de disco convencionales. Y hemos de partir de la base que el acceso a un disco duro es distinto que el de una unidad basada en memoria flash. Lo que hace que el uso de dichos protocolos no sea el más adecuado.
¿Qué es el NVMe-oF?
Pues son las siglas de NVMe over Fabric y es que dicho protocolo no se planeó solo para comunicarse con unidades de memoria flash o no volátil, sino también para la intercomunicación de los diferentes elementos en un sistema a través de infraestructuras de intercomunicación. Hemos de entender que nos referimos a una estructura de comunicación entre dos elementos. Los cuales pueden ser dos procesadores, una RAM y un procesador, un acelerador y una memoria ROM, etcétera. No olvidemos que las topologías utilizadas para este caso hacen uso de las mismas estructuras que en telecomunicaciones, pero a muy pequeña escala.
Sin embargo, esta se va a usar para comunicar unidades SSD NVMe a través de la red. Ya sea para comunicar elementos diferentes a la CPU dentro de un mismo PC o en su defecto a través de una tarjeta de red. Por lo que estamos hablando de centros de datos de gran tamaño. ¿La ventaja de emplear NVMe-oF? Pues en comparación con los protocolos SATA y SAS usados en discos duros, estos son capaces de soportar una cola de hasta 65.000 peticiones de punta a punta y hasta 65.000 comandos distintos por petición, frente a una sola de 1 sola petición y menos de 256 comandos. Lo cual es clave en entornos con cada vez más núcleos haciendo peticiones de datos al almacenamiento que podrían saturar la red.
Tipos de NVMe-OF
En la actualidad existen dos variantes, los cuales son las siguientes:
- NVMe-of con canal de fibra óptica: el cual se diseñó para integrarse en los centros de datos y servidores ya existentes al soportar protocolos antiguos cómo el SCSI. Lo que facilitará la transición al empleo de unidades flash en centros de datos y servidores ya existentes.
- NVMe vía Ethernet: el cual sirve para que dos ordenadores intercambien datos a través de un acceso directo a memoria de forma remota (RDMA) y, por tanto, se refiere a que dos ordenadores puedan intercambiar el contenido de sus memorias flash en los SSD NVMe sin que intervenga la CPU de ninguno de los dos sistemas en el proceso. En este caso la comunicación no hace uso de los llamados paquetes SCSI.
No olvidemos que las memorias NAND Flash también son llamadas RAM no volátil por el hecho de su naturaleza a la hora de acceder a ellas es la misma que la de la RAM, solo que no pierden la información al dejar de recibir carga eléctrica. Esto permite el despliegue de tecnologías utilizadas para intercomunicar dos memorias RAM separadas para hacerlo con las diferentes memorias flash.
¿De qué velocidades estamos hablando?
No olvidemos que las unidades SSD NVMe usan las interfaces PCI Express, por lo que será la versión de este basado en fibra óptica uno de los posibles candidatos para conectar los diferentes SSD NVMe dentro de la infraestructura de un centro de datos o una red local. Sin embargo, Ethernet seguirá dominando cómo el protocolo de comunicación estándar para redes durante un largo tiempo. No hay duda que las interfaces de red a velocidades de 50, 100 e incluso 200 Gigabits por segundo han estado en desarrollo y pronto se desplegarán en los centros de datos.
El futuro del NVMe-oF también está en el PC
El RDMA integrado en NVMe-oF no es una tecnología novel, ya que lleva años siendo implementada en mercados de nicho, debido a que los controladores de red integrados o NIC con RDMA eran muy altos en coste y necesitaban de técnicos muy especializados para su mantenimiento su implementación era costosa. No obstante va a ser clave en el futuro incluso en los PC de sobremesa. El motivo de ello es que la infraestructuras internas de los procesadores están evolucionando a lo que llamamos NoC. En ellas cada elemento del procesador tiene una pequeña tarjeta de red integrada y una dirección IP con la que comunicarse con el resto de elementos a través de lo que podríamos llamar un procesador de red integrado en el procesador.
No es ningún secreto para cualquier persona con conocimientos en la materia que de la misma manera que los controladores de red se vieron integrados dentro de las CPU el siguiente paso es hacerlo con los controladores flash que se encuentran en los SSD NVMe. Es más, la ventaja de implementar el NVMe-oF a nivel interno permite que la CPU no tenga realizar una serie de procesos para el acceso a los datos desde una unidad a otra dentro de un ordenador.
Es decir, en un futuro, los mismos protocolos que se utilizarán a nivel de centros de datos y grandes servidores los veremos en nuestro PC con tal no solo de intercomunicarse con las unidades SSD NVMe dentro de los mismos, sino para que cada elemento se pueda comunicar de forma diferenciada a la CPU. Solo dejaremos caer que protocolos como los empleados en DirectStorage que le dan acceso al SSD desde la GPU sin tener que pasar por el procesador se basan en NVMe-oF.