DEV Community

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

Posted on • Updated 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

Tradicionalmente los sistemas de almacenamiento en entornos profesionales, por motivos de alta disponibilidad y rendimiento, son gestionados en configuraciones RAID.

En este post me hago las siguiente preguntas:

¿Sigue siendo válida esta técnica con el nuevo tipo de almacenamiento SSD?

¿Por qué y a qué se debe esta distinción? Vamos a intentar poner un poco de luz a este importante detalle.

RAID: Redundant Array of Independent Disks

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

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 todas las unidades. Esto hace que ofrezca mayor rendimiento a costa de menor fiabilidad ya que la unidad RAID fallará en el momento que falle cualquiera de sus discos.

Diagrama de distribución de datos en RAID 0

¿Y el RAID 1? pues ofrece justo lo contrario, en todos los discos se escribe la misma información de modo que un fallo en un disco no afecta al servicio.

Diagrama de distribución de datos en RAID 1

Pero ¿realmente la diferencia en fiabilidad es tan importante como para justificar la pérdida de capacidad de un RAID 1? ¿No es el hardware suficientemente fiable como para que sea innecesaria esta protección? Vamos a verlo en estimaciones fiables de 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 en la tabla, la diferencia de probabilidad de pérdida de datos entre un RAID 0 y un RAID 1 es inmensa y que, incluso contando con el mejor hardware, la probabilidad de fallo de un RAID 0 en el tercer año es de un 8%, cifra completamente inaceptable para servicios de alta disponibilidad.

Pero ¿Qué minions tiene que ver el RAID 0 en el entorno profesional de los servidores? ¿Por qué estamos hablando de ello?

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? 😳

Dejando los alarmismos aparte, aunque el concepto es similar hay una gran diferencia.

Es cierto que los SSD están construidos sumando bloques individuales de memoria flash y que, dentro de una misma generación, un disco de 2TB tiene literalmente el doble de bloques que un disco de 1TB a los que, de forma similar a un RAID 0, su controladora accede de forma simultánea.

Más allá de esta similitud, un disco SSD utiliza técnicas de construcción mucho más robustas y fiables por lo que podemos estar tranquilos sin preocuparnos por la arquitectura subyacente.

La controladora RAID

Tradicionalmente una controladora hardware RAID aporta varias ventajas en la gestión del almacenamiento. Vamos a verlas.

Por un lado, descarga al procesador porque se encarga de la gestión de la matriz RAID, del control de parámetros SMART y del acceso a los discos sin que tenga que intervenir el sistema operativo.

Por otro lado, añade protección contra pérdida de datos porque la caché de escritura se almacena en la memoria RAM de la controladora RAID que está protegida, mediante una batería, contra cortes de suministro eléctrico.

Desde el punto de vista del sistema operativo la controladora le ofrece una unidad de almacenamiento muy optimizada cuando gestiona unidades HDD.

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.

Esta técnica permite incluso redistribuir los datos más mutables cambiandolos 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 para alargar su vida útil, tenemos la situación de que hay dos entidades realizando una tarea similar en base a criterios distintos. Esto ya empieza a oler un poco raro.

Veamos otro punto. Cuando se realizan operaciones de borrado, el sistema operativo informa a la controladora SSD de qué bloques y páginas pueden ser borrados enviando comandos TRIM.

Esto evita que los bloques sean reescritos porque simplemente quedan marcados como libres alargando su vida útil y descargando a la controladora SSD que deja de indexarlos temporalmente. El problema es que la controladora RAID enmascara a la unidad SSD y se desactiva esta funcionalidad.

En la misma línea, ocurre que el fallo de una unidad SSD se ha vuelto más predecible debido a que está muy relacionado con los ciclos de escritura acumulados.

Por ello los fabricantes han añadido nuevos parámetros SMART relacionados con su lifespan que nos indican el porcentaje de vida restante y, también en este caso, la controladora RAID impide que el OS pueda acceder a esta información.

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, si anulamos las funciones de la controladora RAID ¿qué ocurre con la protección de la caché de escritura? Los fabricantes de unidades SSD profesionales tienen en cuenta este detalle y añaden una batería interna que ofrece la misma protección.

La gestión de unidades SSD, un mundo nuevo

¿Quiere decir esto que ya 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.

Ahora surge otra pregunta ¿es esta la mejor solución?.

Veámoslo. Las nuevas unidades NVMe ofrecen tasas de lectura secuencial en torno a los 3000 MB/s y las nuevas controladoras concentran el flujo de datos de todas sus unidades SSD en un sólo bus PCIe que a su vez está conectado a una única CPU ¿no es probable que nuestro servidor alcance rápidamente el límite del hardware? ¿existe una mejor arquitectura para abordar este cambio tecnológico?.

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 😁

Discussion (0)