miércoles, 13 de febrero de 2008

RAID 5 Parte I: Visión general

Un RAID (Redundant Array of Independent Disks) es una forma de distribuir un conjunto de discos duros para obtener una mejora de una de sus características (acceso, tolerancia a fallos o capacidad)
Hay varios niveles, los más populares son el RAID 0, RAID 1 el RAID 1+0 y últimamente el RAID 5 y el JBOD.
Veamos en que características tiene cada uno:

El RAID 0:
Consiste en unir varios discos físicos de forma que el SO los reconozca como un único disco lógico.
La ventaja de este RAID es que proporciona una velocidad de acceso más elevada, al escribirse parte del archivo en un disco y parte en otro. Para mi otra ventaja que tiene es que si tienes una carpeta temática de mayor tamaño que el un disco, con el RAID no tendrás que dividirla en dos partes en distintas particiones.
El inconveniente es que si te rompe uno de los discos duros que componen el raid se pierde la información de todos, no solo del que te cascó.


El RAID 1:
Sería todo lo contrarío al 0, si el primero lo único que importaba era la capacidad en este prima la seguridad de los datos. En este RAID la información de un disco se duplica en otro, cuando se escribe un dato en un disco también se escribe en el segundo.
Las ventajas del RAID son que si el disco falla no se pierden los datos y que proporciona una mejora de velocidad en lectura simultanea (al leer dos datos, el primero se obtiene de un disco y el segundo del otro).
El inconveniente es su alto coste, tienes que duplicar tu inversión en discos duros para conseguir la misma capacidad.

RAID 1+0:
Es la unión de los dos RAID anteriores para poder lograr una mayor capacidad con datos respaldados. Une varios pares de discos con RAID 1 en un RAID 0.
Es mejor que el 0+1 en la recuperación de los datos.

El JBOD:
Aunque no es un RAID numerado es una forma popular de unir varios discos para lograr una mayor capacidad.
El resultado es parecido al RAID 0 pero en vez de combinarlos para distribuir los archivos entre los discos que lo componen, lo que hace el JBOD es concatenar el tamaño de los discos secuencialmente.
La ventaja del JBOD es que cuando rompe un disco los datos del resto no se ven afectados.
La desventaja es que pierdes el aumento de rendimiento del RAID 0.

RAID 5
Dejé por último el RAID 5. Es en el que me voy a centrar y para mi el más adecuado para un número de discos elevado.
Al hacer un RAID 5 sobre N discos duros conseguirás la capacidad de la suma de la de N-1 discos, los gigas "perdidos" se usan como bloques de respaldo. Con esto se consigue un RAID similar al 0 pero en el que si falla un disco no pasa nada, los datos siguen siendo accesibles.

En el espacio de respaldo no se guarda un archivo completo sino que en él se almacena un bloque de paridad, es el resultado de aplicar una función sobre el número de bloques los otros discos, para que quede mas claro os lo explico con un ejemplo:
Supongamos que tenemos 6 discos y que un archivo se compone de números y se guarda un número en cada disco
El archivo con los números 9-410-2 quedaría mas o menos así:
Disco nº: 1 | 2 | 3 | 4 | 5 | 6
archivo_: 9 | -4 | 1 | 0 | -2 | Algoritmo[9+(-4)+1+0+(-2)]=4

En el disco 6 se almacena el resultado de el algoritmo con las entradas del archivo. solo ocupa una posición mas, no las 5 que ocupa en realidad el archivo, por eso los gigas de respaldo son inaccesibles, porque no son archivos sino que son el resultado de unas operaciones.

ahora supongamos que falla el disco 2

Disco nº: 1 | 2 | 3 | 4 | 5 | 6
archivo_: 9 | ? | 1 | 0 | -2 | 4 = [9+(?)+1+0+(-2)]

Cuando te falla el disco el dato que había en él se recupera de forma parecida a una ecuación.
Si el algoritmo fuera poner en el 6 disco la suma de los bits de los archivos
en él se almacenaría un 4. si falla el segundo disco habría que resolver la ecuación:
4 = [9+(x)+1+0+(-2)] => x=-4; en el segundo disco había un -4.

Es un poquito más complicado pero el concepto es este.
Para evitar cuellos de botella el bloque de recuperación no se almacena siempre en el último disco sino que se va distribuyendo entre todos.

El mejor rendimiento con este RAID se consigue con 7 discos o más pero se puede crear a partir de 3 discos.

Es una solución intermedia entre el RAID 0 y 1 ya que logras una partición de una gran capacidad como en el RAID 0 pero sin perder todos los datos en caso de que fallé un disco gracias al disco de paridad (ojo, si fallaran dos al mismo tiempo si que se perdería todo) y con un coste muchísimo menor al RAID 1 (al no tener que duplicar por completo los archivos de cada disco).

Es recomendable no comprar todos los discos del mismo lote de fabricación puesto que tienen más probabilidades de que sufran un fallo en el mismo periodo de tiempo.

Bueno, por hoy ya es bastante, en la segunda parte os explicaré las distintas formas de crear un RAID 5

2 comentarios:

Anónimo dijo...

perdon, no se si entendi bien, pero por ejemplo si tengo 10 discos de 72 gigas c/u, yo tendria la capacidad maxima de almacenamiento de 720-72=648?.

Gracias.

Anónimo dijo...

Mas que la capacidad total, fijate en la seguridad del tipo de raid...

Los mejores son raid 5 o raid 10.

No aconsejo usar raid 0 para manejo de archivos importantes (si pierdes acceso a la informacion por culpa de una falla fisica, deberas recurrir a alguna empresa de recuperaciones como Onretrieval...) por lo riesgoso de ese arreglo.

saludos.