Ayudar a los centros de datos a ofrecer un mayor rendimiento con menos hardware | Noticias del MIT

Para mejorar la eficiencia del centro de datos, a menudo se agrupan varios dispositivos de almacenamiento en una red para que muchas aplicaciones puedan compartirlos. Pero incluso con la agrupación, una capacidad significativa de los dispositivos sigue estando infrautilizada debido a la variabilidad del rendimiento entre los dispositivos.

Los investigadores del MIT han desarrollado un sistema que aumenta el rendimiento de los dispositivos de almacenamiento al manejar tres fuentes principales de variabilidad simultáneamente. Su enfoque ofrece importantes mejoras de velocidad con respecto a los métodos tradicionales que abordan sólo una fuente de variabilidad a la vez.

El sistema utiliza una arquitectura de dos niveles, con un controlador central que toma decisiones generales sobre qué tareas realiza cada dispositivo de almacenamiento, y controladores locales para cada máquina que redireccionan rápidamente los datos si ese dispositivo tiene problemas.

El método, que puede adaptarse en tiempo real a cargas de trabajo cambiantes, no requiere hardware especializado. Cuando los investigadores probaron este sistema en tareas realistas como el entrenamiento de modelos de IA y la compresión de imágenes, casi duplicó el rendimiento ofrecido por los enfoques tradicionales. Al equilibrar inteligentemente las cargas de trabajo de múltiples dispositivos de almacenamiento, el sistema puede aumentar la eficiencia general del centro de datos.

“Existe una tendencia a querer destinar más recursos a un problema para resolverlo, pero eso no es sostenible en muchos sentidos. Queremos ser capaces de maximizar la longevidad de estos recursos muy caros y con gran cantidad de carbono”, afirma Gohar Chaudhry, estudiante de posgrado en ingeniería eléctrica e informática (EECS) y autor principal de un artículo sobre esta técnica. “Con nuestra solución de software adaptable, aún puedes aprovechar mucho el rendimiento de tus dispositivos existentes antes de tener que desecharlos y comprar otros nuevos”.

A Chaudhry se unen en el artículo Ankit Bhardwaj, profesor asistente de la Universidad de Tufts; Doctorado en Zhenyuan Ruan ’24; y el autor principal Adam Belay, profesor asociado de EECS y miembro del Laboratorio de Ciencias de la Computación e Inteligencia Artificial del MIT. La investigación se presentará en el Simposio USENIX sobre diseño e implementación de sistemas en red.

Aprovechar el rendimiento sin explotar

Las unidades de estado sólido (SSD) son dispositivos de almacenamiento digital de alto rendimiento que permiten que las aplicaciones lean y escriban datos. Por ejemplo, un SSD puede almacenar grandes conjuntos de datos y enviarlos rápidamente a un procesador para el entrenamiento de modelos de aprendizaje automático.

Agrupar varios SSD para que muchas aplicaciones puedan compartirlos mejora la eficiencia, ya que no todas las aplicaciones necesitan utilizar toda la capacidad de un SSD en un momento dado. Pero no todos los SSD funcionan igual y el dispositivo más lento puede limitar el rendimiento general del grupo.

Estas ineficiencias surgen de la variabilidad en el hardware SSD y las tareas que realizan.

Para utilizar este rendimiento SSD sin explotar, los investigadores desarrollaron Sandook, un sistema basado en software que aborda simultáneamente tres formas principales de variabilidad que obstaculizan el rendimiento. “Sandook” es una palabra urdu que significa “caja”, para significar “almacenamiento”.

Un tipo de variabilidad es causado por diferencias en la antigüedad, la cantidad de desgaste y la capacidad de los SSD que pueden haberse comprado en diferentes momentos a varios proveedores.

El segundo tipo de variabilidad se debe a la falta de coincidencia entre las operaciones de lectura y escritura que ocurren en el mismo SSD. Para escribir datos nuevos en el dispositivo, el SSD debe borrar algunos datos existentes. Este proceso puede ralentizar las lecturas o recuperaciones de datos que ocurren al mismo tiempo.

La tercera fuente de variabilidad es la recolección de basura, un proceso de recopilación y eliminación de datos obsoletos para liberar espacio. Este proceso, que ralentiza las operaciones SSD, se activa a intervalos aleatorios que el operador del centro de datos no puede controlar.

“No puedo asumir que todos los SSD se comportarán de manera idéntica durante todo mi ciclo de implementación. Incluso si les doy a todos la misma carga de trabajo, algunos de ellos se quedarán rezagados, lo que perjudica el rendimiento neto que puedo lograr”, explica Chaudhry.

Planificar globalmente, reaccionar localmente

Para manejar las tres fuentes de variabilidad, Sandook utiliza una estructura de dos niveles. Un programador global optimiza la distribución de tareas para el grupo general, mientras que los programadores más rápidos en cada SSD reaccionan a eventos urgentes y alejan las operaciones de los dispositivos congestionados.

El sistema supera los retrasos causados ​​por la interferencia de lectura y escritura al rotar qué SSD puede usar una aplicación para lectura y escritura. Esto reduce la posibilidad de que las lecturas y escrituras ocurran simultáneamente en la misma máquina.

Sandook también perfila el rendimiento típico de cada SSD. Utiliza esta información para detectar cuándo es probable que la recolección de basura ralentice las operaciones. Una vez detectado, Sandook reduce la carga de trabajo en ese SSD desviando algunas tareas hasta que finaliza la recolección de basura.

“Si ese SSD realiza recolección de basura y ya no puede manejar la misma carga de trabajo, quiero darle una carga de trabajo menor y aumentar lentamente las cosas. Queremos encontrar el punto óptimo en el que todavía esté haciendo algo de trabajo y aprovechar ese rendimiento”, dice Chaudhry.

Los perfiles SSD también permiten que el controlador global de Sandook asigne cargas de trabajo de manera ponderada que considere las características y la capacidad de cada dispositivo.

Debido a que el controlador global ve el panorama general y los controladores locales reaccionan sobre la marcha, Sandook puede gestionar simultáneamente formas de variabilidad que ocurren en diferentes escalas de tiempo. Por ejemplo, los retrasos en la recolección de basura ocurren repentinamente, mientras que la latencia causada por el desgaste se acumula a lo largo de muchos meses.

Los investigadores probaron Sandook en un grupo de 10 SSD y evaluaron el sistema en cuatro tareas: ejecutar una base de datos, entrenar un modelo de aprendizaje automático, comprimir imágenes y almacenar datos del usuario. Sandook aumentó el rendimiento de cada aplicación entre un 12 y un 94 por ciento en comparación con los métodos estáticos y mejoró la utilización general de la capacidad SSD en un 23 por ciento.

El sistema permitió que los SSD alcanzaran el 95 por ciento de su rendimiento máximo teórico, sin necesidad de hardware especializado o actualizaciones específicas de aplicaciones.

“Nuestra solución dinámica puede desbloquear más rendimiento para todos los SSD y realmente llevarlos al límite. Cada bit de capacidad que puedas ahorrar realmente cuenta a esta escala”, afirma Chaudhry.

En el futuro, los investigadores quieren incorporar nuevos protocolos disponibles en los últimos SSD que brinden a los operadores más control sobre la ubicación de los datos. También quieren aprovechar la previsibilidad de las cargas de trabajo de IA para aumentar la eficiencia de las operaciones SSD.

“El almacenamiento flash es una tecnología poderosa que sustenta las aplicaciones modernas de los centros de datos, pero compartir este recurso entre cargas de trabajo con demandas de rendimiento muy variables sigue siendo un desafío excepcional. Este trabajo avanza significativamente con una solución elegante y práctica lista para su implementación, acercando el almacenamiento flash a su máximo potencial en las nubes de producción”, afirma Josh Fried, ingeniero de software de Google y profesor asistente entrante en la Universidad de Pensilvania, que no participó en este trabajo.

Esta investigación fue financiada, en parte, por la Fundación Nacional de Ciencias, la Agencia de Proyectos de Investigación Avanzada de Defensa de EE. UU. y la Corporación de Investigación de Semiconductores.