viernes, 26 de octubre de 2012

RAID 
Autores: Francisco Alexander Flores / José Damián Palacios Pacheco


En una época en la que estamos acostumbrados a discos con gran capacidad de almacenamiento, velocidades de transferencia altas, conexiones USB etc.… olvidamos lo que era la informática hasta hace unos pocos años, hasta hace poco tiempo un ordenador tenía pocas opciones para comunicarse con dispositivos externos, ya sea de almacenamiento o de captura de datos, así como también la capacidad de almacenamiento era pobre. A raíz de estos problemas nace lo que se conoce como RAID.

Para comprender bien la finalidad de algunos RAID se deben de tener en cuenta dos datos. El primero es que RAID no se concibió como un sistema para uso en ordenadores domésticos sino para un entorno profesional y sobre todo para servidores. El segundo y no menos importante es la fecha en la que se concibió y el material que en esa época había disponible por poner un ejemplo en 1988 si se necesitaban 2GB de capacidad la única forma de hacerlo era recurrir a un RAID de tipo 0 con varios discos, al menos 6 discos a decir verdad.

Ahora bien RAID significa Redundant Array of Inexpensive Disks, ahora conocido como Redundant Array of Independent Disks este fue diseñado en 1986 aunque la idea surgió en 1978 y su publicación oficial fue presentada en 1988 en el ensayo de David A. Patterson, Garth A. Gibson y Randy H. Katz, en un ensayo titulado como Un Caso Para Conjuntos de Discos Redundantes Económicos. Es de recordar también que en ese año la capacidad de un disco duro rondaba los 320MB, ya que fue hasta 1992 que aparecieron los primeros discos duros con 1GB, con excepción de algunos discos duros especiales de IBM para grandes sistemas de 10.8 pulgadas con una capacidad de 2.8GB pero con un precio extremadamente alto.

Por estos motivos en esa época cualquier empresa que necesitara una gran capacidad de almacenamiento de datos tenía que recurrir por fuerza a sistemas RAID. En la Actualidad cuando hablamos de RAID lo entendemos como un sistema de seguridad y de integridad en los sistemas en especial al hablar de servidores, siempre con la excepción del RAID 0 cuya única finalidad es la de aumentar la capacidad de almacenamiento.

Hay 2 formas de implementar un sistema RAID, se puede hacer por software o por hardware, un sistema RAID por software es mucho más barato que uno por hardware, pero se obtiene un menor rendimiento y un alto consumo de CPU tan solo para la gestión del mismo. En cuando RAID por hardware es evidente que es mucho más costoso pero se obtiene una mejora significativa en el rendimiento.

Ahora bien, conforme el avance del tiempo y sobretodo el avance de la tecnología hay diferentes tipos de RAID los cuales podemos definir de la siguiente manera:

RAID 0

Más conocido como conjunto dividido es el más básico de los RAID aunque en la actualidad no se puede considerar como tal. No tiene control de paridad ni tolerancia a fallos lo que lo descarta como sistema de copia de seguridad.
Este sistema multiplica la capacidad del menor de los discos por el número de discos instalados, creando una capacidad de almacenamiento equivalente al resultado de esta operación, viéndose esta como una sola unidad.A la hora de utilizar estos discos se dividen los datos en bloques y se escribe un bloque en cada disco lo que agiliza bastante el trabajo de lectura/escritura de los discos. Dándose el mayor incremento de ganancia en velocidad cuando está instalado con varias controladoras RAID y un solo disco por controladora. Estas eran unas ventajas realmente
importantes en los inicios de esta tecnología. La principal desventaja de este sistema era que si en un disco se producía un error provocaba una falla en todo el sistema y además al depender un solo dato de dos o más discos se multiplican las posibilidades de fallos y errores.

JOBD
Basicamente este es igual que el RAID 0, y significa Just a Buch of Drives no es un RAID en el puro sentido este crea una partición a partir de varias particiones en diferentes discos, produciendo al final una sola partición cuya tamaño es la suma de todas las particiones al igual que el RAID 0, pero con la diferencia los datos no se dividen entre los diferentes discos si no que se guardan exactamente igual como que si se tratase de un solo disco normal. La principal ventaja de este arreglo vs. RAID 0 es que si uno de los discos fallaba, solo se perdía la información que contenga este mientras los demás siguen funcionando, mientras que en RAID 0 significa la pérdida total de los datos. Su principal desventaja es que no aporta nada al rendimiento dado que se comporta como un disco normal.

Tanto RAID 0 como JOBD se pueden hacer con uno o varios discos, siendo una solución interesante cuando se dispone de varios discos con poca capacidad y se desea tener un solo disco con capacidad alta.

RAID 1
Llamado también como conjunto espejo, es el primer nivel de RAID autentico. Este crea una copia exacta (o espejo) de un conjunto de datos en dos o más discos. Este tipo de RAID resulta útil cuando el rendimiento en lectura es mas importante que la capacidad. Un conjunto RAID 1 sólo puede ser tan grande como el más pequeño de sus discos. Un RAID 1 clásico consiste en 2 discos en espejo, lo que incrementa exponencialmente la fiabilidad respecto a un solo disco, pues para que el sistema completo falle es necesario que fallen todos sus discos.

De manera adicional como los datos están en 2 o más discos con hardware independiente el rendimiento de lectura se incrementa aproximadamente como múltiplo lineal del número de copias; es decir un RAID 1 puede estar leyendo simultáneamente dos datos diferentes en 2 discos diferentes, por lo que su rendimiento se duplica. Para maximizar los beneficios del rendimiento en el RAID 1 es recomendable el uso de controladoras de disco independientes.

Como en el RAID 0 el tiempo de lectura se reduce ya que los sectores a buscar se dividen entre los diferentes discos bajando el tiempo de búsqueda y subiendo la tasa de transferencia con el único límite de velocidad impuesto por la controladora del disco. Una de las más grandes ventajas del RAID 1 son las capacidades de administración que proporciona, por ejemplo en los entornos 24/7 es posible dividir el espejo marcando uno de los discos como inactivos, realizando un backup o copia de este y luego reconstruir el espejo.

RAID 2
Es el único nivel de RAID que no se usa hasta el momento. Divide los datos a nivel de bits en lugar de bloques, usando el código de hamming (que permite detectar errores en uno o dos bits y corregirlos) en lugar de la paridad (que permite detectar errores en un bit sin corregirlo) para la corrección de errores. Permite unas tasas de transferencia realmente altas pero en teoría en un sistema moderno necesitaría 39 discos para funcionar 32 para almacenar los datos (bits individuales que forma cada palabra) más 7 para la corrección de errores. Para que un RAID 2 pueda funcionar además los discos son sincronizados por la controladora para trabajar al unísono.

RAID 3
Un RAID 3 usa división a nivel de bytes con un disco de paridad dedicado. El RAID 3 se usa rara vez en la práctica. Uno de sus efectos secundarios es que normalmente no puede atender varias peticiones
simultáneas, debido a que por definición cualquier simple bloque de datos se dividirá por todos los miembros del conjunto, residiendo la misma dirección dentro de cada uno de ellos. Así, cualquier operación de lectura o escritura exige activar todos los discos del conjunto, suele ser un poco lento porque se producen cuellos de botella. Son discos paralelos pero no son independientes (no se puede leer y escribir al mismo tiempo).

Uno de los efectos que esto supone es que no puede atender más de una petición de información a la vez, ya que un bloque se divide entre todos los discos en la misma dirección, teniendo que activar todos los discos para escribir o leer esta información, no pudiendo atender a otra petición hasta que no termine con la anterior.

RAID 4
Un RAID 4, también conocido como IDA (acceso independiente con discos dedicados a la paridad) usa división a nivel de bloques con un disco de paridad dedicado. Necesita un mínimo de 3 discos físicos. El RAID 4 es parecido al RAID 3 excepto porque divide a nivel de bloques en lugar de a nivel de bytes. Esto permite que cada miembro del conjunto funcione independientemente cuando se solicita un único bloque. Si la controladora de disco lo permite, un conjunto RAID 4 puede servir varias peticiones de lectura simultáneamente. En principio también sería posible servir varias peticiones de escritura simultáneamente, pero al estar toda la información de paridad en un solo disco, éste se convertiría en el cuello de botella del conjunto.

RAID 5

Un RAID 5 es una división de datos a nivel de bloques distribuyendo la información de paridad entre todos los discos miembros del conjunto. El RAID 5

ha logrado popularidad gracias a su bajo coste de redundancia. Generalmente, el RAID 5 se implementa con soporte hardware para el cálculo de la paridad. RAID 5 necesitará un mínimo de 3 discos para ser implementado.

Cada vez que un bloque de datos se escribe en un RAID 5, se genera un bloque de paridad dentro de la misma división (stripe). Un bloque se compone a menudo de muchos sectores consecutivos de disco. Una serie de bloques (un bloque de cada uno de los discos del conjunto) recibe el nombre colectivo de división (stripe). Si otro bloque, o alguna porción de un bloque, es escrita en esa misma división, el bloque de paridad (o una parte del mismo) es recalculada y vuelta a escribir. El disco utilizado por el bloque de paridad está escalonado de una división a la siguiente, de ahí el término «bloques de paridad distribuidos». Las escrituras en un RAID 5 son costosas en términos de operaciones de disco y tráfico entre los discos y la controladora.

Los bloques de paridad no se leen en las operaciones de lectura de datos, ya que esto sería una sobrecarga innecesaria y disminuiría el rendimiento. Sin embargo, los bloques de paridad se leen cuando la lectura de un sector de datos provoca un error de CRC. En este caso, el sector en la misma posición relativa dentro de cada uno de los bloques de datos restantes en la división y dentro del bloque de paridad en la división se utilizan para reconstruir el sector erróneo.

El número máximo de discos en un grupo de redundancia RAID 5 es teóricamente ilimitado, pero en la práctica es común limitar el número de unidades. Los inconvenientes de usar grupos de redundancia mayores son una mayor probabilidad de fallo simultáneo de dos discos, un mayor tiempo de reconstrucción y una mayor probabilidad de hallar un sector irrecuperable durante una reconstrucción. A medida que el número de discos en un conjunto RAID 5 crece, el MTBF (tiempo medio entre fallos) puede ser más bajo que el de un único disco. Esto sucede cuando la probabilidad de que falle un segundo disco en los N-1 discos restantes de un conjunto en el que ha fallado un disco en el tiempo necesario para detectar, reemplazar y recrear dicho disco es mayor que la probabilidad de fallo de un único disco. Una alternativa que proporciona una protección de paridad dual, permitiendo así mayor número de discos por grupo, es el RAID 6.



No hay comentarios:

Publicar un comentario