Saltar al contenido
ᐅ HielosMendez – Información digital que te dejara helado 🧊🥶

Investigadores: los SSD luchan en las máquinas virtuales gracias a la recolección de basura

Condiciones de uso.

La llegada de las unidades de estado sólido ha revolucionado el negocio del almacenamiento en prácticamente todos los niveles. Ya sea que esté ejecutando una computadora portátil modesta o un servidor corporativo, el uso de un SSD en lugar de un disco giratorio convencional puede mejorar el consumo de energía y aumentar enormemente el rendimiento. Un área en la que los SSD tienen una ventaja particular sobre sus hermanos magnéticos es atender múltiples solicitudes de E / S simultáneas o alojar varias máquinas virtuales simultáneamente, pero una nueva investigación muestra que los SSD de los consumidores luchan por cumplir con estas tareas a largo plazo gracias a los algoritmos de recolección de basura.

Primero, hablemos del problema general. Es fácil ver por qué ejecutar varias máquinas virtuales en un solo disco duro convencional conduce rápidamente a una degradación del rendimiento: cada máquina virtual compite por el acceso a un solo disco giratorio. Las matrices RAID pueden mitigar este problema hasta cierto punto, pero el uso de varios discos introduce sus propias variables. Los SSD, con sus interfaces de alta velocidad y la capacidad de acceder a datos cientos de veces más rápido que un disco giratorio, deberían ser la opción perfecta para este tipo de carga de trabajo. Lo que encontraron los investigadores sin embargo, es que las rutinas de recolección de basura que se ejecutan en los SSD modernos en realidad los hacen inadecuados para estas cargas de trabajo.

En realidad, hay dos problemas en juego aquí. Primero, como ocurre con la mayoría de las cargas de trabajo, a medida que un SSD envejece, el rendimiento se degrada. La Figura 2 a continuación se extrae del informe inicial, examina el rendimiento en tres instancias de máquina virtual (cada una centrada en un tipo diferente de carga de trabajo). Ejecutar los tres juntos al mismo tiempo (simultáneos) reduce el rendimiento en ambos casos, pero el impacto en el rendimiento de ejecutarlos de esta manera después de envejecer las unidades al realizar una serie de escrituras aleatorias (en tamaños de 4K a 32K) cae dramáticamente.

VM-Fig2

Aquí es donde la recolección de basura y otros algoritmos están diseñados específicamente para restaurar el rendimiento, pero los investigadores informan que la recolección de basura tiene problemas precisamente debido a la desconexión entre lo que el SSD ve como bloques inactivos listos para la recolección y las necesidades de la máquina virtual host que se ejecuta en parte superior del sistema operativo host, que finalmente se ejecuta en el SSD. Debido a que los datos de sesiones de VM simultáneas se pueden mezclar internamente, es decir, la información de varias VM puede ubicarse una al lado de la otra dentro del mismo bloque de memoria flash NAND, la recolección de basura puede afectar todas las sesiones de VM simultáneamente. El siguiente gráfico ilustra cómo se distribuyeron los datos dentro de la estructura SSD y la cantidad de páginas que fueron afectadas por la recolección de basura en curso (lo que afecta el rendimiento de la unidad):

Recolección de basura

Los autores del artículo concluyen que garantizar un número determinado de IOPS cuando se alojan varias máquinas virtuales en un solo SSD de consumidor es efectivamente imposible. Si bien no prueban múltiples SSD o algunas de las ofertas comerciales de alta gama disponibles de Intel u otros proveedores, nada sobre la arquitectura de esas unidades sugiere que no se verían afectadas. El nivel absoluto de rendimiento puede ser mucho mayor, pero la misma tendencia a mezclar E / S de diferentes sesiones de VM en el nivel de la unidad afectará los resultados.

Mejores controladores SSD impulsarán el rendimiento en el futuro

Una de las diferencias más profundas entre SSD y HDD tiene poco que ver con el medio de almacenamiento en sí. Los controladores de disco duro no lo son , exactamente, pero tampoco rastrean tantas variables como lo hacen los controladores SSD. Un controlador SSD moderno administra de 8 a 16 canales paralelos a NAND y toma decisiones sobre la recolección de basura, la nivelación del desgaste y la recuperación de errores. Maximizar el rendimiento de la interfaz interna significa hacer malabarismos con una serie de variables en tiempo real.

NANDController

Un controlador de flash NAND típico

Hemos hablado antes sobre las barreras a largo plazo para el escalado de flash NAND. A diferencia de los microprocesadores, que han tendido a aumentar el rendimiento en los nodos de proceso inferiores, reducir la memoria flash NAND a geometrías más pequeñas no lo hace más rápido; en todo caso, tiende a hacerlo un poco más lento. Menos electrones atrapados por celda significa que algunos de los mecanismos compensatorios ralentizan un poco las cosas, al igual que una mayor verificación de errores.

Los aumentos de rendimiento que hemos visto en los SSD, dejando de lado logros como el 3D NAND de Samsung, provienen de controladores SSD mejorados, el uso de bloques SLC para acelerar las transferencias de datos y un mayor ancho de banda de la unidad. Lo que los investigadores en este documento recomiendan para las VM es una implementación de controlador en la que se reservan bloques específicos y dedicados de flash NAND dentro de la misma unidad física para cada VM individual. En teoría, un controlador de disco futuro podría ofrecer ese tipo de capacidad detallada, aunque probablemente estaría reservado para hardware comercial por razones obvias.

Este tipo de mejora, aunque se centra en la empresa, es de donde probablemente vendrán las aceleraciones del rendimiento en el almacenamiento NAND en los próximos años. Aumentar el ancho de banda de la unidad funciona hasta cierto punto, pero más allá de eso, los mejores controladores tendrán que ofrecer un mejor rendimiento, al menos hasta que las nuevas tecnologías de memoria estén en línea.