DEV Community

Cover image for ¿Son las configuraciones RAID clásicas compatibles con las unidades SSD?
Julián Mulet
Julián Mulet

Posted on • Edited on

¿Son las configuraciones RAID clásicas compatibles con las unidades SSD?

Cover image attribution: Dmitry Nosachev, CC BY-SA 4.0, via Wikimedia Commons.

Introducción

Las unidades de almacenamiento HDD en entornos profesionales son gestionadas en configuraciones RAID por motivos de alta disponibilidad y rendimiento.

¿Sigue siendo válida esta técnica si usamos unidades SSD? Vamos a verlo.

RAID: Redundant Array of Independent Disks

Un sistema RAID forma una matriz distribuyendo los datos entre los distintos discos.

Podemos elegir entre varias configuraciones RAID en cuyos extremos están el RAID 0 y el RAID 1.

El RAID 0 no ofrece protección por lo que estaríamos realmente ante un no RAID.

Funciona sumando la capacidad de los discos y accediendo de forma simultánea a ellos. Obviamente ofrece mayor rendimiento pero la unidad fallará si falla cualquier disco.

Diagrama de distribución de datos en RAID 0

¿Y el RAID 1? pues es justo lo contrario, en todos los discos se escribe la misma información y mientras quede un disco operativo la unidad seguirá operativa.

Diagrama de distribución de datos en RAID 1

Pero ¿realmente la diferencia en fiabilidad es tan importante? ¿No es el hardware suficientemente fiable? Vamos a verlo en probabilidad de pérdida de datos:

RAID Level Año 1 Año 2 Año 3
RAID 0 2,8 % 5,7 % 8,4 %
RAID 1 0,00004 % 0,00009 % 0,00013 %

NOTA: estas cifras están extraídas de esta web que usa el modelo MTTDL tomando de referencia discos profesionales de categoria Enterprise.

Como vemos la diferencia entre un RAID 0 y un RAID 1 es inmensa y la probabilidad de fallo de un RAID 0 en el tercer año es de un 8%, cifra inaceptable.

Pero si estamos analizando el entorno profesional ¿Por qué estamos hablando de RAID 0?

Simple: los fabricantes de unidades SSD cada vez que aumentan la capacidad y el rendimiento lo hacen utilizando el concepto de RAID 0, pero... ¿en serio? 😳

Bueno, aunque el concepto es similar hay diferencia.

Los SSD están construidos sumando unidades individuales de memoria flash y, dentro de una misma generación, un disco de 2TB tiene literalmente el doble de unidades que un disco de 1TB a las que la controladora accede de forma simultánea.

Más allá de esta similitud, un disco SSD se fabrica como una única unidad con una vida útil garantizada por el fabricante por lo que podemos estar tranquilos sin preocuparnos por la arquitectura subyacente.

La controladora RAID

Una controladora hardware RAID con discos HDD aporta varias ventajas.

Por un lado, descarga al procesador porque se encarga de la gestión de la matriz RAID sin que tenga que intervenir el sistema operativo y, por otro lado, añade protección contra pérdida de datos porque la caché de escritura está protegida por una batería.

Unidades SSD, algo no encaja

Los bloques de memoria flash de las unidades SSD admiten un número máximo de ciclos de escritura a partir del cual el bloque puede quedar dañado.

Teniendo en cuenta esta limitación, la controladora de la unidad SSD está programada para distribuir estos ciclos de escritura de forma uniforme entre todos los bloques para alargar su vida útil.

Permite incluso redistribuir los datos más mutables moviéndolos frecuentemente a otros bloques por lo que es imposible garantizar la ubicación de un dato dentro de la unidad SSD.

Detalle del proceso de redistribución de escrituras en unidades SSD

Si la controladora RAID espera que la distribución de los datos sea de forma uniforme, en base al esquema de la matriz RAID, y la controladora de la unidad SSD lo hace de forma aleatoria y ambas lo hacen para alargar su vida útil ¿a quién hacemos caso? sin duda a la controladora SSD.

Cuando se realizan operaciones de borrado el OS informa, enviando comandos TRIM, a la controladora SSD de los bloques que pueden ser borrados y estos se marcan como libres dejándolos de indexar temporalmente. El problema es que la controladora RAID impide que estos comandos lleguen a la unidad SSD. De igual forma el SO tampoco puede acceder a los parámetros SMART.

Es crítico evitar estos problemas y se remedia configurando la controladora RAID para funcionar en modo directo o JBOD anulando de facto su funcionalidad.

Entonces ¿qué ocurre con la protección de la caché de escritura ofrecida por la controladora? Los fabricantes de unidades SSD tienen en cuenta este detalle y añaden una batería interna.

La gestión de unidades SSD, un mundo nuevo

¿Quiere decir esto que no existen controladoras RAID para SSD? la respuesta es que si y a la vez que no, porque curiosamente, las nuevas controladoras RAID SSD, sólo ofrecen los modos RAID 0 y RAID 1 para permitir que las unidades estén conectadas de forma directa al OS.

En todo caso las nuevas unidades NVMe ofrecen tasas de lectura por encima de los 3000 MB/s dejando obsoletas a las controladoras simplemente porque no hay ancho de banda para conectar varias unidades en un único bus PCIe.

¿Existe una mejor arquitectura para gestionar estas unidades?.

La respuesta vendría de la mano de los nuevos servidores de almacenamiento Direct-Attach. Estos servidores conectan el bus PCIe de cada unidad NVMe directamente al bus PCIe de las distintas CPUs. De esa forma se aprovecha todo el potencial del servidor.

Supermicro Direct-Attach System Diagram

Esquema de un servidor Direct-Attach, fuente ServeTheHome.

Fin de este análisis, no soy un experto así que cualquier dato que consideres se puede ser mejorado te invito a que comentes y compartas 😁

Top comments (0)