El disco duro es uno de los componentes clave de cualquier ordenador; sin él no podríamos almacenar nuestros datos y tendríamos que estar dependiendo de sistemas de almacenamiento extraíble o, recordando tiempos pasados, discos de arranque con los que ejecutar el sistema operativo de nuestro ordenador personal.

Gracias a los LiveCD que ofrecen muchas distribuciones Linux es cierto que podemos ejecutar un sistema operativo sin tener que instalarlo en un disco duro; de hecho, sistemas como Raspberry Pi se sustentan sobre tarjetas SD y también encontramos otros sistemas que combinan un LiveCD y una memoria USB para almacenar la configuración o datos que no se pueden perder. Dejando a un lado estos escenarios, lo más normal es que los usuarios nos apoyemos sobre un disco duro (o sobre varios) e instalemos en él el sistema operativo con el que vamos a trabajar (o incluso varios sistemas operativos) y también guardemos ahí nuestros datos y aplicaciones.

De los discos duros hemos hablado alguna que otra vez en Bitelia, hemos hablado de la fragmentación de datos (un problema que puede ralentizar nuestro equipo) y, por supuesto, también de las particiones y cómo crearlas tanto en Windows como en Linux. Sin embargo, creo que seguía quedando en el tintero un aspecto previo a la creación de particiones en un disco duro o la instalación de un sistema operativo: la redundancia y la salvaguarda de la información.

¿Qué es un RAID?

Tras el acrónimo RAID se esconde Redundant Array of Independent Disks, es decir, “conjunto redundante de discos independientes”. Aunque nos pueda sonar al nombre de un “partido político”, tras estas siglas lo que se esconde es un sistema que nos permite implementar un volumen de almacenamiento de datos que, a su vez, está formado por múltiples discos duros con el objetivo de conseguir más espacio o bien proteger la información y conseguir mayor tolerancia a fallos de disco (evitando pérdida de información si el disco duro sufre una avería).

Lo interesante del RAID es que la combinación de discos duros, a efectos prácticos del usuario, se traduce en un “único almacén” mucho más robusto que un disco duro por sí solo; por tanto, usar un RAID siempre puede ser interesante en aplicaciones de alta disponibilidad o para proteger información que consideremos crítica.

RAID Array
zdw en Flickr

Por ejemplo, en servidores solemos usar RAID para montar un espejo entre discos duros y, de esta forma, replicar la información en dos discos duros idénticos y, si uno se estropea, no sufrir una caída del servicio. También es habitual usar RAID en un NAS y sacrificar un poco del espacio útil para ganar en redundancia y poder reconstruir el volumen de información si un disco sufre una avería e, incluso, se deja algún disco en modo hot spare para que comience a usarse si uno de los discos falla.

A nivel empresarial, el RAID es muy utilizado y conocido; sin embargo, para muchos usuarios es casi un misterio que, quizás, les suene por las especificaciones de su placa base. En mi opinión, es importante conocer qué es un RAID y para qué sirve porque, por ejemplo, puede ser útil tener en casa algún volumen de almacenamiento con RAID para almacenar información sensible (fotos, documentos personales…) que queramos que esté especialmente protegida y, de hecho, muchos de los NAS comerciales que se venden en la actualidad incluyen este tipo de opciones.

¿Qué tipos de RAID existen?

Partiendo de la base que un RAID es un conjunto de discos duros que funcionan de “manera coordinada”, vamos a repasar los modos de RAID más habituales que podemos encontrar:

  • RAID 0 no es, precisamente, una configuración RAID orientada a la redundancia y la tolerancia a fallos; conocido como striping, en esta configuración lo que se hace es distribuir de manera equitativa los datos entre dos discos duros. Dicho de otra forma, el sistema irá repartiendo los datos entre dos discos duros para aumentar la velocidad de acceso a los datos. Obviamente, al no existir redundancia, si uno de los discos se avería tendremos que recurrir a una copia de seguridad externa.

  • RAID 1 es una de las mejores configuraciones en cuanto a redundancia y tolerancia a fallos. También conocida como “espejo” o “mirroring“, en esta configuración RAID lo que se hace es duplicar la información en dos discos; es decir, nuestro sistema verá un único volumen de almacenamiento que, en realidad, está formado por dos discos iguales en los que se escriben los mismos datos. De esta forma, si un disco se estropea, el sistema seguirá funcionando y trabajando con el disco que aún funciona. Además, el rendimiento en lectura también aumenta porque, por ejemplo, es posible leer 2 datos a la vez (uno de cada disco).

Ejemplo de RAID 10
Daniel en Flickr
  • RAID 5 es una configuración bastante usual, por ejemplo, en un NAS; conocido como distribuido con paridad, en esta configuración se realiza una división por bloques de información y se distribuyen entre los discos que forman el conjunto. Además, se genera un bloque de paridad que, a modo de redundancia, nos permite reconstruir la información de volumen completo si, por ejemplo, uno de los discos se averiase. En este tipo de configuraciones, como mínimo debemos contar con 3 discos duros y, como nos podemos imaginar, solamente se tolera el fallo en uno de los discos.

  • RAID 6, conocida como distribuida con doble paridad es similar al RAID 5 en cuanto a distribución de los bloques de información pero, en lo que respecta a la redundancia, en esta configuración se generan 2 bloques de paridad que también se distribuyen entre los discos. En este tipo de escenarios, la configuración es capaz de soportar hasta 2 fallos de disco en el conjunto o, por ejemplo, un fallo de disco mientras se está reconstruyendo el volumen (tras un fallo anterior) aunque, eso sí, como mínimo necesitaremos 4 discos.

  • RAID 0+1 es una combinación de dos configuraciones simultáneas RAID 0 y RAID 1; concretamente, necesitaremos 4 discos duros que se tomarán por parejas para que cada una de éstas forme un RAID 0 (división de la información) y, con las dos parejas, se monte un RAID 1 (un espejo). Dicho de otra forma, con esta configuración tendremos un RAID 0 redundado en espejo.

  • RAID 1+0 (o también conocido como RAID 10) es la configuración “contraria” al RAID 0+1; en este caso en vez de realizar un espejo del RAID 0 (los discos en striping), lo que hacemos es aplicar el espejo a cada disco en striping. Reconozco que suena muy extraño lo que acabo de comentar pero es fácil de entender; si en un RAID 0 repartimos los bloques de información entre dos discos, en el RAID 1+0 lo que hacemos es similar pero cada uno de estos discos, a su vez, está en espejo con otro. Por tanto, es una configuración de 4 discos en la que montamos un par de espejos y, por encima, repartimos la información entre dichos espejos.

Otras configuraciones que podemos encontrar son las de RAID 50 y RAID 60, son combinaciones de RAID 5 con RAID 0 y de RAID 6 y RAID 0 respectivamente. Si tomamos como referencia el funcionamiento del RAID 10, el esquema de funcionamiento de RAID 50 y RAID 60 es fácil de entender. En el caso del RAID 50 lo que hacemos es montar un RAID 0 sobre 2 agrupaciones de discos que, a su vez, están en RAID 5; por tanto, necesitaremos como mínimo 3 discos (uno para cada agrupación RAID 5) y conseguiremos un volumen muy robusto aunque algo caro. En el RAID 60 el esquema es similar, un RAID 0 de dos agrupaciones de discos que, a su vez, están en RAID 6; por tanto un esquema extremadamente robusto que requiere de 8 discos duros.

Error de RAID en servidor
Bob Mical en Flickr

¿Y qué configuración debemos usar? La elección de una configuración u otra dependerá del tipo de información que queramos proteger y, obviamente, el número de discos duros que tengamos. Es importante tener en cuenta que cuando vamos a trabajar con un RAID es importante que todos los discos que usemos sean del mismo tamaño porque, si no es así, terminan “normalizándose” con el valor del más bajo.

Si alguien tiene curiosidad y quiere probar cómo quedarían las distintas configuraciones de RAID, existen múltiples “calculadores online” como, por ejemplo, el que ofrece ICC (que además tiene muy buenas representaciones gráficas de cómo funciona cada configuración).

RAID: hardware y software

Si alguna vez has echado un vistazo por las opciones de la BIOS de tu placa base o las especificaciones de la misma, es posible que hayas encontrado alguna opción o información relativa a al RAID. Son muchas las placas base que permiten montar un array de discos duros siguiendo alguno de los tipos de RAID que existen y, desde la controladora de discos, presentar a nuestro disco duro un “único disco tolerante a fallos”.

Cuando el RAID es realizado desde hardware, nuestro sistema operativo solamente detectará un disco duro o, mejor dicho, un “único volumen” y será la controladora de disco la que se ocupe de redundar la información o trabajar con la paridad para aumentar la tolerancia a fallos en caso de avería de un disco.

Crear RAID desde BIOS
小汪 en Flickr

Si tu placa base no soporta el RAID tampoco es problema ya que es posible delegar estas tareas en el propio sistema operativo (obviamente es una tarea más que tendrá que asumir). En Windows es algo que podemos hacer desde el “Administrador de discos” y, por ejemplo, podremos crear un “Espejo” (RAID 1) o “Reflejo de datos” para que Windows escriba la información siempre por duplicado y ésta esté redundada en caso de que uno de los discos duros fallen.

En Linux también existe esta utilidad y muchas distribuciones incluyen este tipo de soporte vía software. Quizás, una de las utilidades más conocidas sea Mdadm aunque también es algo que podemos encontrar, por ejemplo, en el proceso de instalación de muchas distribuciones.