viernes, 25 de noviembre de 2011

RAID - ¿Qué significa?

La sigla “RAID” (Redundant Array of Inexpensive Disks, algo así como Arreglo Redundante de Discos Económicos) designa una serie de normas que permiten utilizar un agrupamiento de discos como si fuera uno solo de mayor capacidad y rendimiento, pero (casi siempre) tolerante a fallos. Es decir, en caso de que uno de ellos deje de funcionar, dependiendo del nivel de RAID que tengamos implementado, el sistema podrá seguir funcionando, o al debería recuperarse sin perdidas de datos.

Si bien oficialmente se han definido siete niveles de RAID, solo los niveles 0, 1, 0+1 y 5 son populares. Veamos brevemente en que consiste cada uno.

RAID 0: Conocido como “Disk Striping” brinda un aumento de la velocidad de escritura y lectura de los datos, pero sin tolerancia a fallos. Básicamente, consiste en dividir cada byte del dato a grabar en partes y grabarlas en diferentes discos. Esto brinda una velocidad mayor (a medida que aumenta el número de discos, mas alta es la velocidad) de acceso. Esto representa una gran ventaja en operaciones secuenciales con ficheros de gran tamaño. Por lo tanto, este nivel es aconsejable en aplicaciones de tratamiento de imágenes, audio, etc., es decir, es una buena solución para cualquier aplicación que necesite un almacenamiento a gran velocidad pero que no requiera tolerancia a fallos. Se necesita un mínimo de dos unidades de disco para implementar una solución RAID 0.

Imaginen que debemos escribir “00110101” en un disco convencional, y que la escritura de cada byte toma 1 milisegundo. Si lo guardamos en un arreglo RAID 0 de 4 discos, el primero de ellos guardara “00”, el segundo “11”, el tercero “01” y el cuarto “01”. Si todos los discos tienen la misma velocidad de acceso, el tiempo será de la cuarta parte que el original.

RAID 1: “Mirroring” (“Espejado”). Este método es más rápido que un disco y más seguro. Se utilizan discos adicionales sobre los que se graban duplicados de cada byte escrito en el disco original. En caso de daños, la controladora de discos duros sigue trabajando con los discos no dañados sin detener el sistema. Los datos se pueden leer desde la unidad o matriz duplicada sin que se produzcan interrupciones. Se necesita un mínimo de dos unidades para implementar una solución RAID 1.

- RAID 0+1/ RAID 0/1 ó RAID 10: Esta es una combinación de los dos casos anteriores: se fraccionan los datos para mejorar el rendimiento, pero también se utilizan conjuntos de discos duplicados para conseguir redundancia de datos. Al ser una variedad de RAID híbrida, RAID 0+1 combina las ventajas de rendimiento de RAID 0 con la redundancia que aporta RAID 1. Sin embargo, la principal desventaja es que requiere un mínimo de cuatro unidades y sólo dos de ellas se utilizan para el almacenamiento de datos. Este nivel de RAID es el más rápido, el más seguro, pero tiene la contra de ser el más costoso de implementar.

RAID 2: Este método utiliza una técnica llamada ECC (Error Correction Code, o Código de Corrección de Errores) que es el mismo utilizado en las memorias RAM. Se basa en la utilización del método de Hamming, que brinda redundancia dentro de los datos grabados en un mismo disco. RAID 2 no ha sido casi implementado en productos comerciales, básicamente debido a que requiere características especiales en los discos y no usa discos estándares.

RAID 3: Este método, similar al RAID 1 divide la información a guardar en varios discos, y utiliza otro para guardar un bit “de paridad”. La recuperación de datos se consigue calculando el OR exclusivo (XOR) de la información registrada en los otros discos. Se necesita un mínimo de tres unidades para implementar una solución RAID 3.

RAID 4: Muy similar al RAID 3, también se basa en la utilización de un disco extra para almacenar un bit de paridad, pero con la ventaja de que se puede acceder a los discos de forma individual.

RAID 5: Este nivel RAID ofrece tolerancia al fallo, y además optimiza la capacidad del sistema permitiendo una utilización de cerca del 80% de la capacidad del conjunto de discos. Esto lo consiguemediante el cálculo de información de paridad y su almacenamiento alternativo por bloques en todos los discos del conjunto. La información del usuario se graba por bloques y de forma alternativa en todos ellos. De esta manera, si cualquiera de las unidades de disco falla, se puede recuperar la información en tiempo real, sobre la marcha, mediante una simple operación de lógica de O exclusivo, sin que el servidor deje de funcionar. Este nivel, al igual que el RAID 4 puede utilizarse si se disponen de tres o más unidades de disco en la configuración, aunque su resultado óptimo de capacidad se obtiene con siete o más unidades. RAID 5 es la solución más económica por MB, aunque con una inversión inicial fuerte.

RAID 6: Es muy similar al RAID 5, pero incluyendo un segundo esquema de paridad distribuido por los distintos discos, ofreciendo tolerancia extremadamente alta a los fallos y a las caídas de disco, dado que se tienen dos niveles de redundancia. Su coste es mayor al de otros niveles RAID, ya que las controladoras requeridas que soporten esta doble paridad son más complejas y caras que las de otros niveles RAID. Así pues, comercialmente casi no se implementa.