Fiabilidad de la tecnología flash

Tras lo expuesto en las anteriores entradas del blog queda patente que la tecnología de almacenamiento en estado sólido es complicada de gestionar, aunque como veremos en esta entrada, eso no significa que la tecnología no sea fiable y no esté lista para entornos empresariales.

Lo cierto es que, tras décadas de almacenamiento bajo disco rotacional uno se había hecho ya a la idea de que, aunque el disco tiene una componente mecánica que es la que más influye en el fallo, un disco de tipo empresarial era fiable ya que al menos su tipología de fallo estaba muy definida y controlada, e incluso un simple nivel de protección RAID-5 era más que suficiente. Aunque la realidad de los que trabajamos con la tecnología en el día a día es algo distinta a la percepción general que se pueda tener en la industria de la IT, lo cierto es que los discos rotacionales fallan bastante y su casuística de fallos es mas amplia de lo que uno cabría esperar (se le añaden efectos ambientales como la temperatura, o incluso las interferencias electromagnéticas, las vibraciones, etc). Hay estudios interesantes al respecto como por ejemplo este de google o este de aquí, que mas o menos viene a decir que hasta los 4 años de vida en producción empresarial el 80% de los discos sigue funcionando pero que ni ellos, ni Google, ni otros han tienen estudios empíricos con discos de mas de 5 o 6 años en producción aunque se espera que con 6 años de vida en producción solo sobreviva un 50% de los discos (por mi experiencia profesional a partir del 4º año los discos caen como las chinches con el DDT).
La realidad es que la tecnología de almacenamiento en estado sólido lleva acompañándonos ya algunos años especialmente en el sector del consumo: llevamos ya algunos años “desgastando” el flash de nuestros teléfonos inteligentes, de nuestras tabletas y otros dispositivos de última generación incluyendo en algunos casos ejemplos cotidianos del día a día (sin ir mas lejos tengo un portátil de la marca de la manzanita desde el año 2012 que fue de los primeros en incorporar un SSD de 64GB y hasta hora, entrados en el 2017, no me ha dado ningún problema).
Aún así, dado que la tecnología de almacenamiento en estado sólido está sujeta a un “desgaste” físico del componente y a un periodo de retención de la información finito (explicado en mis posts anteriores) ¿cómo puedo estar seguro de que es fiable para uso empresarial?
Los ciclos de P/E de las distintas tecnologías que se utilizan en la actualidad (cMLC y 3D-NAND/V-NAND) oscilan entre los 3.000 y 6.000 ciclos por celda, si tenemos en cuenta que las capacidades de los SSDs ya están por encima de los 500GB y hacemos unas cuentas rápidas, nos daremos cuenta que tendríamos que realizar una ingente cantidad de escrituras y sobre-escrituras diarias para conseguir “desgastar” el SSD al cabo de un par de años.
No obstante para determinar el periodo de vida de un SSD no solo debemos de tener en cuenta la capacidad del mismo y el ciclo máximo de P/E’s (lo que se llama resistencia al desgaste), también tenemos que considerar el factor de amplificación de escrituras (es decir, el overhead que tiene el propio SSD como consecuencia de su operativa de gestión interna como los procesos de GC o recolección de basura, de nivelado del desgaste o wear-leveling, etc.) que además está muy relacionado con el ratio de over-provisioning del propio SSD (conjunto de bloques reservados principalmente para hacer frente a fallos físicos del medio).

La siguiente tabla puede dar una idea de los ciclos máximos de P/E por tecnología, no obstante a día de hoy ya hay fabricantes tanto de medio flash como de unidades de estado sólido para uso empresarial que son capaces de ofrecer dispositivos basados en tecnologías MLC y TLC con apilamiento vertical (V-NAND) con ciclos máximos de P/E de más de 5.000 ciclos por celda.


Muchos fabricantes utilizan la siguiente fórmula para referir y calcular la fiabilidad de un SSD:

TBW (TBs max. escritos) = (capacidad_física X tasa_de_resistencia) / factor_de_amplificación
Resistencia = ciclos de P/E
DWPD (Drive Writes per Day) = TBW / días

Si miramos las especificaciones de cualquier fabricante, vemos que para un SSD que ronde los 500GB de capacidad el TBW ronda entre los 700TB y los 3.000 TB (depende de lo “enterprise” o de “consumo” que sea el disco). Por tanto tendríamos que someter a un SSD de unos 500GB de los que podríamos comprar en nuestra tienda de informática favorita a un proceso de escritura continúa diaria de unos 392GB (o unos 4,65MB/s sostenidos) durante 5 años consecutivos para conseguir “quemarlo”. Como vemos, para el uso en entorno de consumo es mas que suficiente.
En cambio, un SSD de tipo empresarial de unos 500GB aguantaría un desgaste de 1,64 TB diarios de escrituras (o una tasa sostenida de escrituras de unos 20MB/s) durante 5 años consecutivos.

NOTA: estos cálculos estarán obsoletos en el momento en que se lean, la realidad es que, año tras año, la tecnología de almacenamiento en estado sólido va mejorando sustancialmente la resistencia al desgaste del medio.

Para entornos empresariales con cargas de trabajo predominantes en escrituras puede que la fiabilidad del medio ande un poco justa y por eso es importante que la solución empresarial (array o cabina All-Flash) esté diseñada específicamente para trabajar con la tecnología e implemente los mecanismos software para paliar el efecto del desgaste prematuro del medio por escrituras masivas así como mecanismos de corrección de errores. La clave es que si no puedes modificar el factor de amplificación del medio al menos implementa una capa de virtualización de acceso, gestión y protección del medio que suavice o elimine este factor. Utilizar soluciones basadas en arrays de disco tradicionales, que utilizan niveles de protección RAID tradicionales, donde se ha sustituido el disco mecánico por el SSD no parece que sea una buena idea 😏

Aquellos que, como yo, crecisteis en los ’80 estaréis de acuerdo conmigo en que el flash que menos dura era este:
Por último ya hay estudios empíricos al respecto realizados por Google, Facebook y otros que dejan patente el uso empresarial del medio flash. Aquí dejo algunos enlaces interesantes:

Conclusiones interesantes del informe de Google:
En tecnología flash se producen otras situaciones de error igual o mas importantes aún que las producidas por el desgaste como, por ejemplo, los errores no transparentes como los uncorrectable-bit-errors (UBERS), o los transparentes o corregibles, que influyen de manera determinante en la fiabilidad de un SSD. De hecho parte de sus conclusiones es que los SSDs SLC (100.000 ciclos de P/E) no son mas fiables que los MLC (entre 3.000 y 10.000 ciclos de P/E).
En comparación con el disco rotacional el SSD tiene una tasa anual de reemplazo inferior, aunque es cierto que el SSD experimenta tasas superiores de errores no transparentes que el HDD (aunque esto es perfectamente subsanable por software).

Comentarios

Entradas populares de este blog

Apache Spark 2.4: hacia la analítica de datos unificada

¿Qué es NVMe y porqué es clave?