RAID

Contenido

·         1 Introducción

o    1.1 Diferencia entre discos físicos y discos lógicos

o    1.2 Lectura y escritura de datos

o    1.3 ¿Qué es el RAID?

o    1.4 ¿Por qué utilizar RAID?

o    1.5 Historia

·         2 Conceptos básicos utilizados por los sistemas RAID

o    2.1 El caché

o    2.2 Mirroring: Más de una copia de los datos

o    2.3 Striping: Parte de los datos están en otro disco

o    2.4 Corrección de errores y fallos

o    2.5 Repuestos en caliente: utilizar más discos de los necesarios

o    2.6 Tamaño de la franja y del trozo: repartir los datos en varios discos

o    2.7 Juntar discos: JBOD, concatenación o spanning

o    2.8 Clonación de unidades

o    2.9 Diferentes configuraciones

·         3 Conceptos básicos: niveles RAID simples

o    3.1 Niveles RAID de uso común

§  3.1.1 RAID 0 "striping"

§  3.1.2 RAID 1 "mirroring"

§  3.1.3 RAID 5 "striping con paridad distribuida"

§  3.1.4 Fotos

o    3.2 Niveles RAID menos utilizados

§  3.2.1 RAID 2

§  3.2.2 RAID 3 "striping con paridad dedicada"

§  3.2.3 RAID 4 "striping con paridad dedicada"

§  3.2.4 RAID 6

§  3.2.5 Imágenes

o    3.3 Niveles RAID no estándar

§  3.3.1 Doble paridad / Paridad diagonal

§  3.3.2 RAID-DP

§  3.3.3 RAID 1.5

§  3.3.4 RAID 5E, RAID 5EE y RAID 6E

§  3.3.5 RAID 7

§  3.3.6 Intel Matrix RAID

§  3.3.7 Controlador RAID MD de Linux

§  3.3.8 RAID Z

§  3.3.9 Imágenes

·         4 Unión de niveles RAID

·         5 Creación de un RAID

o    5.1 RAID por software

o    5.2 RAID por hardware

o    5.3 RAID asistido por hardware

·         6 Diferentes términos relacionados con los fallos de hardware

o    6.1 Índice de fracasos

o    6.2 Tiempo medio hasta la pérdida de datos

o    6.3 Tiempo medio de recuperación

o    6.4 Tasa de error binario no recuperable

·         7 Problemas con el RAID

o    7.1 Añadir discos en un momento posterior

o    7.2 Fallos vinculados

o    7.3 Atomicidad

o    7.4 Datos no recuperables

o    7.5 Fiabilidad de la caché de escritura

o    7.6 Compatibilidad de los equipos

·         8 Lo que el RAID puede y no puede hacer

o    8.1 Qué puede hacer el RAID

o    8.2 Lo que el RAID no puede hacer

·         9 Ejemplo

·         10 Referencias

·         11 Otros sitios web

RAID es un acrónimo que significa Redundant Array of Inexpensive Disks o Redundant Array of Independent Disks. RAID es un término utilizado en informática. Con RAID, varios discos duros se convierten en un solo disco lógico. Hay diferentes maneras de hacerlo. Cada uno de los métodos que reúne los discos duros tiene algunas ventajas e inconvenientes respecto a la utilización de las unidades como discos individuales, independientes entre sí. Las principales razones por las que se utiliza RAID son:

  • Para que la pérdida de datos se produzca con menos frecuencia. Esto se consigue teniendo varias copias de los datos.
  • Para obtener más espacio de almacenamiento al tener muchos discos más pequeños.
  • Para obtener más flexibilidad (se pueden cambiar o añadir discos mientras el sistema sigue funcionando)
  • Para obtener los datos más rápidamente.

No es posible alcanzar todos estos objetivos al mismo tiempo, por lo que hay que elegir.

También hay cosas malas:

  • Algunas opciones pueden proteger contra la pérdida de datos debido a que uno (o varios) discos han fallado. Sin embargo, no protegen contra el borrado o la sobreescritura de los datos.
  • En algunas configuraciones, RAID puede tolerar que uno o varios discos fallen. Una vez sustituidos los discos que han fallado, hay que reconstruir los datos. Dependiendo de la configuración y del tamaño de los discos, esta reconstrucción puede llevar mucho tiempo.
  • Ciertos tipos de errores harán imposible la lectura de los datos

La mayoría de los trabajos sobre RAID se basan en un documento escrito en 1988.

Las empresas han utilizado sistemas RAID para almacenar sus datos desde que se creó esta tecnología. Los sistemas RAID pueden fabricarse de diferentes maneras. Desde su descubrimiento, el coste de construir un sistema RAID ha bajado mucho. Por esta razón, incluso algunos ordenadores y aparatos que se utilizan en casa tienen algunas funciones RAID. Estos sistemas pueden utilizarse para almacenar música o películas, por ejemplo.

Introducción

Diferencia entre discos físicos y discos lógicos

Un disco duro es una parte de un ordenador. Los discos duros normales utilizan el magnetismo para almacenar información. Cuando se utilizan los discos duros, están disponibles para el sistema operativo. En Microsoft Windows, cada disco duro recibe una letra de unidad (que empieza por C:, A: o B: se reservan para las unidades de disquete). Los sistemas operativos tipo Unix y Linux tienen un árbol de directorios con una sola raíz. Esto significa que la gente que utiliza los ordenadores a veces no sabe dónde se almacena la información (para ser justos, muchos usuarios de Windows tampoco saben dónde se almacenan sus datos).

En informática, los discos duros (que son hardware y se pueden tocar) se llaman a veces unidades físicas o discos físicos. Lo que el sistema operativo muestra al usuario se llama a veces disco lógico. Una unidad física puede dividirse en diferentes secciones, llamadas particiones de disco. Normalmente, cada partición de disco contiene un sistema de archivos. El sistema operativo mostrará cada partición como un disco lógico.

Por lo tanto, para el usuario, tanto la configuración con muchos discos físicos como la configuración con muchos discos lógicos tendrán el mismo aspecto. El usuario no puede decidir si un "disco lógico" es lo mismo que un disco físico, o si simplemente es una parte del disco. Las redes de área de almacenamiento (SAN) cambian completamente esta visión. Todo lo que se ve de una SAN es un número de discos lógicos.

Lectura y escritura de datos

En el ordenador, los datos se organizan en forma de bits y bytes. En la mayoría de los sistemas, 8 bits forman un byte. La memoria del ordenador utiliza la electricidad para almacenar los datos, los discos duros utilizan el magnetismo. Por tanto, cuando se escriben datos en un disco, la señal eléctrica se convierte en magnética. Cuando se leen los datos del disco, la conversión se hace en el otro sentido: Se hace una señal eléctrica a partir de la polaridad de un campo magnético.

¿Qué es el RAID?

Una matriz RAID une dos o más discos duros para que formen un disco lógico. Hay diferentes razones por las que se hace esto. Las más comunes son:

  • Detener la pérdida de datos, cuando uno o más discos de la matriz fallan.
  • Conseguir transferencias de datos más rápidas.
  • Conseguir la posibilidad de cambiar de disco mientras el sistema sigue funcionando.
  • Unir varios discos para obtener más capacidad de almacenamiento; a veces se utilizan muchos discos baratos, en lugar de uno más caro.

El RAID se realiza mediante el uso de hardware o software especial en el ordenador. Los discos duros unidos parecerán entonces un solo disco duro para el usuario. La mayoría de los niveles RAID aumentan la redundancia. Esto significa que almacenan los datos con más frecuencia, o que almacenan información sobre cómo reconstruir los datos. Esto permite que varios discos fallen sin que se pierdan los datos. Cuando se sustituye el disco que ha fallado, los datos que debería contener se copian o reconstruyen a partir de los demás discos del sistema. Esto puede llevar mucho tiempo. El tiempo que tarda depende de diferentes factores, como el tamaño del array.

¿Por qué utilizar RAID?

Una de las razones por las que muchas empresas utilizan RAID es que los datos de la matriz pueden utilizarse de forma sencilla. Los que utilizan los datos no tienen por qué ser conscientes de que están utilizando RAID. Cuando se produce un fallo y la matriz se está recuperando, el acceso a los datos será más lento. Acceder a los datos durante este tiempo también ralentizará el proceso de recuperación, pero sigue siendo mucho más rápido que no poder trabajar con los datos en absoluto. Sin embargo, dependiendo del nivel de RAID, los discos pueden no fallar mientras se prepara el nuevo disco para su uso. Si un disco falla en ese momento, se perderán todos los datos de la matriz.

Las diferentes formas de unir los discos se denominan niveles RAID. Un número mayor para el nivel no es necesariamente mejor. Los diferentes niveles RAID tienen diferentes propósitos. Algunos niveles RAID necesitan discos y controladores especiales.

Historia

En 1978, un hombre llamado Norman Ken Ouchi, que trabajaba en IBM, hizo una sugerencia en la que describía los planes de lo que más tarde se convertiría en RAID 5. Los planes también describían algo similar al RAID 1, así como la protección de una parte del RAID 4.

Los trabajadores de la Universidad de Berkeley ayudaron a planificar la investigación en 1987. Intentaban hacer posible que la tecnología RAID reconociera dos discos duros en lugar de uno. Descubrieron que cuando la tecnología RAID tenía dos discos duros, tenía mucho mejor almacenamiento que con un solo disco duro. Sin embargo, se estrellaba mucho más a menudo.

En 1988, David Patterson, Garth Gibson y Randy Katz escribieron sobre los diferentes tipos de RAID (del 1 al 5) en su artículo titulado "A Case for Redundant Arrays of Inexpensive Disks (RAID)". Este artículo fue el primero en llamar a la nueva tecnología RAID y el nombre se hizo oficial.

Primer plano de 4 discos que forman una matriz RAID, integrados en un sistema de sobremesa. Los pestillos azules permiten intercambiar los discos mientras el sistema sigue funcionando.Zoom
Primer plano de 4 discos que forman una matriz RAID, integrados en un sistema de sobremesa. Los pestillos azules permiten intercambiar los discos mientras el sistema sigue funcionando.

Se ha retirado un disco duro de la matriz.Zoom
Se ha retirado un disco duro de la matriz.

Conceptos básicos utilizados por los sistemas RAID

RAID utiliza algunas ideas básicas, que se describieron en el artículo "RAID: High-Performance, Reliable Secondary Storage" de Peter Chen y otros, publicado en 1994.

Caché

El caché es una tecnología que también tiene sus usos en los sistemas RAID. Hay diferentes tipos de cachés que se utilizan en los sistemas RAID:

En los sistemas modernos, una solicitud de escritura se muestra como realizada cuando los datos se han escrito en la caché. Esto no significa que los datos se hayan escrito en el disco. Las peticiones de la caché no se gestionan necesariamente en el mismo orden en que se escribieron en la caché. Esto hace posible que, si el sistema falla, a veces algunos datos no se hayan escrito en el disco correspondiente. Por esta razón, muchos sistemas tienen una caché respaldada por una batería.

Espejo: Más de una copia de los datos

Cuando se habla de un espejo, se trata de una idea muy simple. En lugar de que los datos estén en un solo lugar, hay varias copias de los datos. Estas copias suelen estar en diferentes discos duros (o particiones de disco). Si hay dos copias, una de ellas puede fallar sin que los datos se vean afectados (ya que siguen estando en la otra copia). El mirroring también puede dar un impulso a la hora de leer los datos. Siempre se tomarán del disco más rápido que responda. Sin embargo, la escritura de datos es más lenta, porque todos los discos deben actualizarse.

Striping: Parte de los datos están en otro disco

Con el striping, los datos se dividen en diferentes partes. Estas partes van a parar a diferentes discos (o particiones de disco). Esto significa que la escritura de datos es más rápida, ya que puede hacerse en paralelo. Esto no significa que no haya fallos, ya que cada bloque de datos sólo se encuentra en un disco.

Corrección de errores y fallos

Es posible calcular diferentes tipos de sumas de comprobación. Algunos métodos de cálculo de sumas de comprobación permiten encontrar un error. La mayoría de los niveles RAID que utilizan redundancia pueden hacerlo. Algunos métodos son más difíciles de hacer, pero permiten no sólo detectar el error, sino solucionarlo.

Repuestos en caliente: utilizar más discos de los necesarios

Muchas de las formas de tener RAID soportan algo que se llama hot spare. Un hot spare es un disco vacío que no se utiliza en el funcionamiento normal. Cuando un disco falla, los datos pueden copiarse directamente en el disco hot spare. De este modo, el disco que ha fallado debe ser sustituido por una nueva unidad vacía para convertirse en el hot spare.

Tamaño de franja y tamaño de trozo: distribución de los datos en varios discos

El RAID funciona repartiendo los datos entre varios discos. Dos de los términos que se utilizan a menudo en este contexto son el tamaño de la franja y el tamaño del trozo.

El tamaño del trozo es el bloque de datos más pequeño que se escribe en un solo disco de la matriz. El tamaño de la franja es el tamaño de un bloque de datos que se repartirá entre todos los discos. Así, con cuatro discos y un tamaño de franja de 64 kilobytes (kB), se escribirán 16 kB en cada disco. El tamaño del chunk en este ejemplo es, por tanto, de 16 kB. Si el tamaño de la franja es mayor, la velocidad de transferencia de datos será mayor, pero también lo será la latencia máxima. En este caso, se trata del tiempo necesario para obtener un bloque de datos.

Juntando discos: JBOD, concatenación o spanning

Muchos controladores (y también el software) pueden juntar discos de la siguiente manera: Toman el primer disco, hasta que se acaba, luego toman el segundo, y así sucesivamente. De esta manera, varios discos más pequeños parecen uno más grande. Esto no es realmente RAID, ya que no hay redundancia. Además, el spanning puede combinar discos donde el RAID 0 no puede hacer nada. Por lo general, esto se denomina sólo un grupo de discos (JBOD).

Es como un pariente lejano del RAID, ya que la unidad lógica está formada por diferentes unidades físicas. La concatenación se utiliza a veces para convertir varias unidades pequeñas en una unidad útil más grande. Esto no puede hacerse con RAID 0. Por ejemplo, JBOD podría combinar unidades de 3 GB, 15 GB, 5,5 GB y 12 GB en una unidad lógica de 35,5 GB, que suele ser más útil que las unidades por separado.

En el diagrama de la derecha, los datos se concatenan desde el final del disco 0 (bloque A63) hasta el principio del disco 1 (bloque A64); el final del disco 1 (bloque A91) hasta el principio del disco 2 (bloque A92). Si se utilizara el RAID 0, el disco 0 y el disco 2 se truncarían a 28 bloques, el tamaño del disco más pequeño de la matriz (disco 1) para un tamaño total de 84 bloques.

Algunos controladores RAID utilizan el término JBOD para referirse al trabajo en unidades sin características RAID. Cada unidad aparece por separado en el sistema operativo. Este JBOD no es lo mismo que la concatenación.

Muchos sistemas Linux utilizan los términos "modo lineal" o "modo apéndice". La implementación de Mac OS X 10.4 -llamada "Conjunto de discos concatenados"- no deja al usuario con ningún dato utilizable en las unidades restantes si una unidad falla en un conjunto de discos concatenados, aunque los discos funcionan por lo demás como se ha descrito anteriormente.

La concatenación es uno de los usos del gestor de volúmenes lógicos en Linux. Se puede utilizar para crear unidades virtuales.

Clon de la unidad

La mayoría de los discos duros modernos cuentan con un estándar llamado Tecnología de Autocontrol, Análisis e Informes (S.M.A.R.T). SMART permite supervisar ciertas cosas en una unidad de disco duro. Algunas controladoras permiten sustituir un disco duro incluso antes de que falle, por ejemplo, porque S. M.A.R.T u otra prueba de disco informa de demasiados errores corregibles. Para ello, el controlador copiará todos los datos en una unidad de repuesto en caliente. Después de esto, el disco puede ser reemplazado por otro (que simplemente se convertirá en el nuevo hot spare).

Diferentes configuraciones

La configuración de los discos y el uso de las técnicas anteriores afectan al rendimiento y la fiabilidad del sistema. Cuando se utilizan más discos, es más probable que uno de ellos falle. Por ello, hay que construir mecanismos para poder encontrar y solucionar los errores. Esto hace que todo el sistema sea más fiable, ya que es capaz de sobrevivir y reparar el fallo.

 

JBOD con 3 discos de diferentes tamañosZoom
JBOD con 3 discos de diferentes tamaños

Conceptos básicos: niveles RAID simples

Niveles RAID de uso común

RAID 0 "striping"

El RAID 0 no es realmente un RAID porque no es redundante. Con el RAID 0, los discos simplemente se juntan para formar un disco grande. Esto se llama "striping". Cuando un disco falla, todo el conjunto falla. Por lo tanto, el RAID 0 rara vez se utiliza para datos importantes, pero la lectura y escritura de datos del disco puede ser más rápida con el striping porque cada disco lee parte del archivo al mismo tiempo.

Con el RAID 0, los bloques de disco que se suceden suelen colocarse en discos diferentes. Por esta razón, todos los discos utilizados por un RAID 0 deben ser del mismo tamaño.

El RAID 0 se utiliza a menudo para el Swapspace en Linux o sistemas operativos tipo Unix.

RAID 1 "mirroring"

Con el RAID 1, se juntan dos discos. Ambos contienen los mismos datos, uno de ellos "refleja" al otro. Se trata de una configuración fácil y rápida, ya sea implementada con un controlador de hardware o por software.

RAID 5 "striping con paridad distribuida"

El nivel RAID 5 es el que probablemente se utiliza la mayoría de las veces. Se necesitan al menos tres discos duros para construir una matriz de almacenamiento RAID 5. Cada bloque de datos se almacenará en tres lugares diferentes. Dos de estos lugares almacenarán el bloque tal cual, el tercero almacenará una suma de comprobación. Esta suma de comprobación es un caso especial de un código Reed-Solomon que sólo utiliza la suma de bits. Normalmente, se calcula mediante el método XOR. Como este método es simétrico, un bloque de datos perdido puede reconstruirse a partir del otro bloque de datos y de la suma de comprobación. Para cada bloque, un disco diferente contendrá el bloque de paridad que contiene la suma de comprobación. Esto se hace para aumentar la redundancia. Cualquier disco puede fallar. En general, habrá un disco que contenga las sumas de comprobación, por lo que la capacidad total utilizable será la de todos los discos excepto uno. El tamaño del disco lógico resultante será el de todos los discos juntos, excepto el que contiene la información de paridad.

Por supuesto, es más lento que el nivel RAID 1, ya que en cada escritura hay que leer todos los discos para calcular y actualizar la información de paridad. El rendimiento de lectura del RAID 5 es casi tan bueno como el del RAID 0 para el mismo número de discos. A excepción de los bloques de paridad, la distribución de los datos en los discos sigue el mismo patrón que en el RAID 0. La razón por la que el RAID 5 es ligeramente más lento es que los discos deben saltarse los bloques de paridad.

Un RAID 5 con un disco averiado seguirá funcionando. Está en modo degradado. Un RAID 5 degradado puede ser muy lento. Por esta razón se suele añadir un disco adicional. Esto se llama disco de reserva en caliente. Si un disco falla, los datos pueden reconstruirse directamente en el disco adicional. El RAID 5 también se puede hacer por software con bastante facilidad.

Debido principalmente a los problemas de rendimiento de las matrices RAID 5 que fallan, algunos expertos en bases de datos han formado un grupo llamado BAARF (Battle Against Any Raid Five).

Si el sistema falla mientras hay escrituras activas, la paridad de una franja puede ser inconsistente con los datos. Si esto no se repara antes de que falle un disco o un bloque, puede producirse una pérdida de datos. Se utilizará una paridad incorrecta para reconstruir el bloque que falta en esa franja. Este problema se conoce a veces como "agujero de escritura". Para reducir la posibilidad de que esto ocurra, se suelen utilizar cachés respaldadas por baterías y técnicas similares.

Fotos

·        

El RAID 0 simplemente coloca los diferentes bloques en los diferentes discos. No hay redundancia.

·        

Con Raid 1 cada bloque está en ambos discos

·        

El RAID 5 calcula sumas de comprobación especiales para los datos. Tanto los bloques con la suma de comprobación como los de los datos se distribuyen por todos los discos.

Niveles RAID menos utilizados

RAID 2

Se utilizaba con ordenadores muy grandes. Para utilizar el nivel 2 de RAID se necesitan discos especiales y costosos y un controlador especial. Los datos se distribuyen a nivel de bits (todos los demás niveles utilizan acciones a nivel de bytes). Se realizan cálculos especiales. Los datos se dividen en secuencias estáticas de bits. Se juntan 8 bits de datos y 2 de paridad. A continuación se calcula un código Hamming. A continuación, los fragmentos del código Hamming se distribuyen por los distintos discos.

RAID 2 es el único nivel RAID que puede reparar errores, los otros niveles RAID sólo pueden detectarlos. Cuando encuentran que la información necesaria no tiene sentido, simplemente la reconstruyen. Esto se hace con cálculos, utilizando la información de los otros discos. Si esa información falta o es errónea, no pueden hacer gran cosa. Como utiliza códigos Hamming, el RAID 2 puede averiguar qué parte de la información es errónea y corregir sólo esa parte.

El RAID 2 necesita al menos 10 discos para funcionar. Debido a su complejidad y a la necesidad de un hardware muy caro y especial, el RAID 2 ya no se utiliza mucho.

RAID 3 "striping con paridad dedicada"

El nivel Raid 3 es muy parecido al nivel RAID 0. Se añade un disco adicional para almacenar la información de paridad. Esto se hace mediante la adición por bits del valor de un bloque en los otros discos. La información de paridad se almacena en un disco separado (dedicado). Esto no es bueno, porque si el disco de paridad se estropea, la información de paridad se pierde.

El nivel 3 de RAID se suele hacer con al menos 3 discos. Una configuración de dos discos es idéntica a un RAID Nivel 0.

RAID 4 "striping con paridad dedicada"

Es muy similar al RAID 3, salvo que la información de paridad se calcula sobre bloques más grandes, y no sobre bytes individuales. Es como el RAID 5. Se necesitan al menos tres discos para una matriz RAID 4.

RAID 6

El nivel RAID 6 no era un nivel RAID original. Añade un bloque de paridad adicional a una matriz RAID 5. Necesita al menos cuatro discos (dos discos para la capacidad, dos discos para la redundancia). El RAID 5 puede verse como un caso especial de un código Reed-Solomon. Sin embargo, el RAID 5 es un caso especial, ya que sólo necesita la suma en el campo de Galois GF(2). Esto es fácil de hacer con XORs. El RAID 6 amplía estos cálculos. Ya no es un caso especial, y hay que hacer todos los cálculos. Con el RAID 6, se utiliza una suma de comprobación adicional (llamada polinomio), normalmente de GF (2 8). Con este enfoque es posible protegerse contra cualquier número de discos que fallen. El RAID 6 es para el caso de utilizar dos sumas de comprobación para protegerse contra la pérdida de dos discos.

Al igual que en el RAID 5, la paridad y los datos están en discos diferentes para cada bloque. Los dos bloques de paridad también se encuentran en discos diferentes.

Hay diferentes maneras de hacer RAID 6. Son diferentes en su rendimiento de escritura, y en la cantidad de cálculos que se necesitan. Ser capaz de hacer escrituras más rápidas normalmente significa que se necesitan más cálculos.

El RAID 6 es más lento que el RAID 5, pero permite que el RAID continúe si fallan dos discos cualquiera. El RAID 6 es cada vez más popular porque permite reconstruir una matriz después de un fallo de un solo disco, incluso si uno de los discos restantes tiene uno o más sectores defectuosos.

Fotos

·        

El RAID 3 es muy parecido al nivel RAID 0. Se añade un disco adicional que contendrá una suma de comprobación para cada bloque de datos.

·        

RAID 4 es similar a RAID nivel 3, pero calcula la paridad sobre bloques de datos más grandes

·        

El RAID 6 es similar al RAID 5, pero calcula dos sumas de comprobación diferentes. Esto permite que dos discos fallen, sin pérdida de datos.

Niveles RAID no estándar

Doble paridad / Paridad diagonal

El RAID 6 utiliza dos bloques de paridad. Estos se calculan de forma especial sobre un polinomio. El RAID de doble paridad (también llamado RAID de paridad diagonal) utiliza un polinomio diferente para cada uno de estos bloques de paridad. Recientemente, la asociación de la industria que definió el RAID dijo que el RAID de doble paridad es una forma diferente de RAID 6.

RAID-DP

RAID-DP es otra forma de tener doble paridad.

RAID 1.5

El RAID 1.5 (no confundir con el RAID 15, que es diferente) es una implementación de RAID propietaria. Al igual que el RAID 1, sólo utiliza dos discos, pero hace tanto striping como mirroring (similar al RAID 10). La mayoría de las cosas se hacen por hardware.

RAID 5E, RAID 5EE y RAID 6E

RAID 5E, RAID 5EE y RAID 6E (con la E añadida de Enhanced) se refieren generalmente a diferentes tipos de RAID 5 o RAID 6 con un hot spare. En estas implementaciones, la unidad de reserva en caliente no es una unidad física. Más bien, existe en forma de espacio libre en los discos. Esto aumenta el rendimiento, pero significa que una unidad de reserva en caliente no puede compartirse entre diferentes matrices. El esquema fue introducido por IBM ServeRAID alrededor de 2001.

RAID 7

Esta es una implementación propietaria. Añade caché a una matriz RAID 3 o RAID 4.

Matriz RAID de Intel

Algunas placas base de Intel disponen de un chip RAID con esta función. Utiliza dos o tres discos y los divide en partes iguales para formar una combinación de niveles RAID 0, RAID 1, RAID 5 o RAID 1+0.

Controlador RAID MD de Linux

Este es el nombre del controlador que permite hacer RAID por software con Linux. Además de los niveles normales de RAID 0-6, también tiene una implementación de RAID 10. Desde el Kernel 2.6.9, el RAID 10 es de un solo nivel. La implementación tiene algunas características no estándar.

RAID Z

Sun ha implementado un sistema de archivos llamado ZFS. Este sistema de archivos está optimizado para manejar grandes cantidades de datos. Incluye un gestor de volúmenes lógicos. También incluye una función llamada RAID-Z. Evita el problema llamado agujero de escritura de RAID 5 porque tiene una política de copia en escritura: No sobrescribe los datos directamente, sino que escribe los nuevos datos en una nueva ubicación del disco. Cuando la escritura tiene éxito, los datos antiguos se borran. Evita la necesidad de operaciones de lectura-modificación-escritura para las escrituras pequeñas, porque sólo escribe franjas completas. Los bloques pequeños se reflejan en lugar de estar protegidos por la paridad, lo que es posible porque el sistema de archivos conoce la forma en que está organizado el almacenamiento. Por lo tanto, puede asignar espacio extra si es necesario. También existe el RAID-Z2, que utiliza dos formas de paridad para conseguir resultados similares a los del RAID 6: la capacidad de sobrevivir hasta dos fallos de disco sin perder datos.

Fotos

·        

Diagrama de una configuración RAID DP (doble paridad).

·        

Una configuración Matrix RAID.

Unir niveles RAID

Con RAID se pueden juntar diferentes discos para obtener un disco lógico. El usuario sólo verá el disco lógico. Cada uno de los niveles RAID mencionados anteriormente tiene puntos buenos y malos. Pero RAID también puede funcionar con discos lógicos. De esta forma, uno de los niveles RAID mencionados puede utilizarse con un conjunto de discos lógicos. Mucha gente lo anota escribiendo los números juntos. A veces, escriben un '+' o un '&' en medio. Las combinaciones más comunes (usando dos niveles) son las siguientes:

  • RAID 0+1: Dos o más matrices RAID 0 se combinan en una matriz RAID 1; esto se denomina espejo de rayas
  • RAID 1+0: Igual que el RAID 0+1, pero con los niveles de RAID invertidos; franja de espejos. Esto hace que los fallos de disco sean más raros que en el RAID 0+1 anterior.
  • RAID 5+0: Agrupa varios RAID 5 con un RAID 0. Un disco de cada RAID 5 puede fallar, pero hace que ese RAID 5 sea el único punto de fallo; si otro disco de ese conjunto falla, se perderán todos los datos del conjunto.
  • RAID 5+1: Duplicar un conjunto de RAID 5: En una situación en la que el RAID está formado por seis discos, cualquiera de los tres puede fallar (sin que se pierdan los datos).
  • RAID 6+0: Agrupa varias matrices RAID 6 sobre una RAID 0; dos discos de cada RAID 6 pueden fallar sin pérdida de datos.

Con seis discos de 300 GB cada uno, una capacidad total de 1,8 TB, es posible hacer un RAID 5, con 1,5 TB de espacio útil. En esa matriz, un disco puede fallar sin pérdida de datos. Con el RAID 50, el espacio se reduce a 1,2 TB, pero un disco de cada RAID 5 puede fallar, además de que hay un aumento notable del rendimiento. El RAID 51 reduce el tamaño utilizable a 900 GB, pero permite que fallen tres discos cualesquiera.

·        

RAID 0+1: se combinan varias matrices RAID 0 con una RAID 1

·        

RAID 1+0: Más robusto que el RAID 0+1; admite fallos de varias unidades, siempre que no fallen las dos unidades que forman un espejo.

·        

RAID 5+1: Cualquiera de las tres unidades puede fallar, sin pérdida de datos.

Cómo hacer un RAID

Hay diferentes maneras de hacer un RAID. Puede hacerse con software o con hardware.

RAID por software

Un RAID se puede hacer con software de dos maneras diferentes. En el caso del RAID por software, los discos se conectan como discos duros normales. Es el ordenador el que hace funcionar el RAID. Esto significa que para cada acceso la CPU también tiene que hacer los cálculos para el RAID. Los cálculos para RAID 0 o RAID 1 son sencillos. Sin embargo, los cálculos para RAID 5, RAID 6, o uno de los niveles combinados de RAID pueden suponer mucho trabajo. En un RAID por software, arrancar automáticamente desde un array que ha fallado puede ser algo difícil de hacer. Por último, la forma en que se hace el RAID por software depende del sistema operativo utilizado; generalmente no es posible reconstruir una matriz RAID por software con un sistema operativo diferente. Los sistemas operativos suelen utilizar particiones de disco duro en lugar de discos duros enteros para hacer matrices RAID.

RAID por hardware

También se puede hacer un RAID con hardware. En este caso, se utiliza una controladora de disco especial; esta tarjeta controladora oculta al sistema operativo y al usuario el hecho de que está haciendo RAID. Los cálculos de la información de la suma de comprobación y otros cálculos relacionados con el RAID se realizan en un microchip especial de esa controladora. Esto hace que el RAID sea independiente del sistema operativo. El sistema operativo no verá el RAID, verá un solo disco. Los diferentes fabricantes hacen el RAID de diferentes maneras. Esto significa que un RAID construido con una controladora RAID por hardware no puede ser reconstruido por otra controladora RAID de un fabricante diferente. Las controladoras RAID por hardware suelen ser caras de comprar.

RAID asistido por hardware

Se trata de una mezcla entre RAID por hardware y RAID por software. El RAID asistido por hardware utiliza un chip controlador especial (como el RAID por hardware), pero este chip no puede realizar muchas operaciones. Sólo está activo cuando se inicia el sistema; en cuanto el sistema operativo está completamente cargado, esta configuración es como el RAID por software. Algunas placas base tienen funciones RAID para los discos conectados; la mayoría de las veces, estas funciones RAID se realizan como RAID asistido por hardware. Esto significa que se necesita un software especial para poder utilizar estas funciones RAID y poder recuperarse de un disco que falle.

Diferentes términos relacionados con los fallos de hardware

Hay diferentes términos que se utilizan cuando se habla de fallos de hardware:

Tasa de fracaso

La tasa de fallos es la frecuencia con la que falla un sistema. El tiempo medio hasta el fallo (MTTF) o el tiempo medio entre fallos (MTBF) de un sistema RAID es el mismo que el de sus componentes. Al fin y al cabo, un sistema RAID no puede proteger contra los fallos de sus discos duros individuales. Sin embargo, los tipos más complicados de RAID (todo lo que vaya más allá de la "striping" o la "concatenación") pueden ayudar a mantener los datos intactos incluso si falla un disco duro individual.

Tiempo medio hasta la pérdida de datos

El tiempo medio hasta la pérdida de datos (MTTDL) da el tiempo medio antes de que se produzca una pérdida de datos en un array determinado. El tiempo medio hasta la pérdida de datos de un determinado RAID puede ser mayor o menor que el de sus discos duros. Esto depende del tipo de RAID utilizado.

Tiempo medio de recuperación

Los arrays que tienen redundancia pueden recuperarse de algunos fallos. El tiempo medio de recuperación muestra el tiempo que transcurre hasta que un array con fallos vuelve a su estado normal. Esto añade tanto el tiempo para reemplazar un mecanismo de disco fallado como el tiempo para reconstruir el array (es decir, para replicar los datos para la redundancia).

Tasa de error binario irrecuperable

La tasa de errores de bits irrecuperables (UBE) indica el tiempo que una unidad de disco no podrá recuperar los datos después de utilizar códigos de comprobación de redundancia cíclica (CRC) y múltiples reintentos.

Problemas con el RAID

También hay ciertos problemas con las ideas o la tecnología detrás de RAID:

Añadir discos en un momento posterior

Algunos niveles RAID permiten ampliar la matriz simplemente añadiendo discos duros, en un momento posterior. La información, como los bloques de paridad, suele estar dispersa en varios discos. Si se añade un disco a la matriz, se hace necesaria una reorganización. Dicha reorganización es como una reconstrucción del array, puede llevar mucho tiempo. Cuando se hace, el espacio adicional puede no estar disponible todavía, porque tanto el sistema de archivos de la matriz, como el sistema operativo necesitan ser informados de ello. Algunos sistemas de ficheros no admiten ser ampliados después de haber sido creados. En este caso, hay que hacer una copia de seguridad de todos los datos, volver a crear la matriz con la nueva disposición y restaurar los datos en ella.

Otra opción para añadir almacenamiento es crear un nuevo array, y dejar que un gestor de volúmenes lógicos se encargue de la situación. Esto permite hacer crecer casi cualquier sistema RAID, incluso el RAID1 (que por sí mismo está limitado a dos discos).

Fallas vinculadas

El mecanismo de corrección de errores en RAID asume que los fallos de las unidades son independientes. Es posible calcular la frecuencia con la que puede fallar un equipo y organizar la matriz para que la pérdida de datos sea muy improbable.

Sin embargo, en la práctica, las unidades suelen comprarse juntas. Tienen más o menos la misma edad y se han utilizado de forma similar (lo que se denomina desgaste). Muchos accionamientos fallan por problemas mecánicos. Cuanto más antiguo es un accionamiento, más desgastadas están sus partes mecánicas. Las piezas mecánicas que son viejas tienen más probabilidades de fallar que las que son más jóvenes. Esto significa que los fallos de los accionamientos ya no son estadísticamente independientes. En la práctica, existe la posibilidad de que un segundo disco también falle antes de que el primero se haya recuperado. Esto significa que, en la práctica, la pérdida de datos puede producirse a un ritmo considerable.

Atomicidad

Otro problema que también se da con los sistemas RAID es que las aplicaciones esperan lo que se llama Atomicidad: O se escriben todos los datos o no se escribe ninguno. La escritura de los datos se conoce como transacción.

En las matrices RAID, los nuevos datos suelen escribirse en el lugar donde estaban los antiguos. Esto se conoce como actualización en el lugar. Jim Gray, un investigador de bases de datos, escribió un artículo en 1981 en el que describía este problema.

Muy pocos sistemas de almacenamiento permiten una semántica de escritura atómica. Cuando se escribe un objeto en el disco, un dispositivo de almacenamiento RAID suele escribir todas las copias del objeto en paralelo. Muy a menudo, sólo hay un procesador responsable de escribir los datos. En este caso, las escrituras de datos en las diferentes unidades se solaparán. Esto se conoce como escritura superpuesta o escritura escalonada. Por lo tanto, un error que se produzca durante el proceso de escritura puede dejar las copias redundantes en diferentes estados. Y lo que es peor, puede dejar las copias sin el estado anterior ni el nuevo. Sin embargo, el registro se basa en que los datos originales estén en el estado antiguo o en el nuevo. Esto permite hacer una copia de seguridad del cambio lógico, pero pocos sistemas de almacenamiento proporcionan una semántica de escritura atómica en un disco RAID.

El uso de una caché de escritura respaldada por baterías puede resolver este problema, pero sólo en un escenario de fallo de alimentación.

El soporte transaccional no está presente en todas las controladoras RAID de hardware. Por lo tanto, muchos sistemas operativos lo incluyen para proteger contra la pérdida de datos durante una escritura interrumpida. Novell Netware, a partir de la versión 3.x, incluyó un sistema de seguimiento de transacciones. Microsoft introdujo el seguimiento de transacciones a través de la función de registro en el diario en NTFS. El sistema de archivos WAFL de NetApp lo resuelve no actualizando nunca los datos en el lugar, al igual que ZFS.

Datos irrecuperables

Algunos sectores de un disco duro pueden resultar ilegibles debido a un error. Algunas implementaciones de RAID pueden hacer frente a esta situación moviendo los datos a otro lugar y marcando el sector en el disco como malo. Esto ocurre aproximadamente a 1 bit de cada 10 15en las unidades de disco de clase empresarial, y a 1 bit de cada 10 14en las unidades de disco ordinarias. Las capacidades de los discos aumentan constantemente. Esto puede significar que, a veces, no se pueda reconstruir un RAID, porque se encuentra un error de este tipo cuando se reconstruye la matriz después de un fallo de disco. Algunas tecnologías, como el RAID 6, intentan solucionar este problema, pero sufren una penalización de escritura muy alta, es decir, la escritura de datos se vuelve muy lenta.

Fiabilidad de la caché de escritura

El sistema de disco puede reconocer la operación de escritura tan pronto como los datos estén en la caché. No necesita esperar hasta que los datos se hayan escrito físicamente. Sin embargo, cualquier corte de energía puede significar una importante pérdida de datos en la cola de la caché.

Con el RAID por hardware, se puede utilizar una pila para proteger este caché. Esto suele resolver el problema. Cuando falla la alimentación, la controladora puede terminar de escribir la caché cuando vuelva la energía. Sin embargo, esta solución puede fallar: la batería puede haberse gastado, la alimentación puede haber estado apagada durante demasiado tiempo, los discos pueden ser trasladados a otra controladora, la propia controladora puede fallar. Algunos sistemas pueden hacer comprobaciones periódicas de la batería, pero éstas utilizan la propia batería y la dejan en un estado en el que no está completamente cargada.

Compatibilidad de los equipos

Los formatos de disco en diferentes controladores RAID no son necesariamente compatibles. Por lo tanto, puede que no sea posible leer una matriz RAID en un hardware diferente. En consecuencia, un fallo de hardware no relacionado con el disco puede requerir el uso de un hardware idéntico, o una copia de seguridad, para recuperar los datos.

Lo que el RAID puede y no puede hacer

Esta guía fue tomada de un hilo en un foro relacionado con RAID. Se hizo para ayudar a señalar las ventajas y desventajas de elegir RAID. Está dirigida a personas que quieren elegir RAID para aumentar el rendimiento o la redundancia. Contiene enlaces a otros hilos de su foro que contienen reseñas anecdóticas generadas por los usuarios sobre sus experiencias con RAID.

Qué puede hacer RAID

  • RAID puede proteger el tiempo de actividad. Los niveles RAID 1, 0+1/10, 5 y 6 (y sus variantes, como el 50 y el 51) compensan el fallo de un disco duro mecánico. Incluso después de que el disco haya fallado, los datos de la matriz pueden seguir utilizándose. En lugar de una restauración que requiere mucho tiempo a partir de una cinta, un DVD u otros medios de copia de seguridad lentos, el sistema RAID permite restaurar los datos en un disco de sustitución a partir de los demás miembros de la matriz. Durante este proceso de restauración, está disponible para los usuarios en un estado degradado. Esto es muy importante para las empresas, ya que el tiempo de inactividad supone rápidamente una pérdida de ingresos. Para los usuarios domésticos, puede proteger el tiempo de actividad de las grandes matrices de almacenamiento de medios, que requerirían una restauración muy lenta a partir de docenas de DVD o bastantes cintas en caso de que fallara un disco no protegido por la redundancia.
  • El RAID puede aumentar el rendimiento en determinadas aplicaciones. Los niveles RAID 0, 5 y 6 utilizan el striping. Esto permite que varios husos aumenten la velocidad de transferencia para las transferencias lineales. Las aplicaciones de tipo estación de trabajo suelen trabajar con archivos de gran tamaño. Se benefician enormemente de la separación de discos. Ejemplos de este tipo de aplicaciones son las que utilizan archivos de vídeo o audio. Este rendimiento también es útil en las copias de seguridad de disco a disco. El RAID 1, así como otros niveles de RAID basados en striping, pueden mejorar el rendimiento para patrones de acceso con muchos accesos aleatorios simultáneos, como los utilizados por una base de datos multiusuario.

Lo que no puede hacer RAID

  • RAID no puede proteger los datos de la matriz. Una matriz RAID tiene un solo sistema de archivos. Esto crea un único punto de fallo. Hay muchas cosas que pueden sucederle a este sistema de archivos además de un fallo físico del disco. RAID no puede defenderse de estas fuentes de pérdida de datos. RAID no impedirá que un virus destruya los datos. RAID no evitará la corrupción. RAID no salvará los datos cuando un usuario los modifique o los borre por accidente. El RAID no protege los datos de los fallos de hardware de cualquier componente, aparte de los discos físicos. RAID no protege los datos de desastres naturales o provocados por el hombre, como incendios e inundaciones. Para proteger los datos, hay que hacer una copia de seguridad en medios extraíbles, como un DVD, una cinta o un disco duro externo. La copia de seguridad debe guardarse en un lugar diferente. El RAID por sí solo no evitará que un desastre, cuando (no si) ocurre, se convierta en una pérdida de datos. Los desastres no pueden evitarse, pero las copias de seguridad permiten prevenir la pérdida de datos.
  • El RAID no puede simplificar la recuperación de desastres. Cuando se ejecuta un solo disco, éste puede ser utilizado por la mayoría de los sistemas operativos, ya que vienen con un controlador de dispositivo común. Sin embargo, la mayoría de los controladores RAID necesitan controladores especiales. Las herramientas de recuperación que funcionan con discos individuales en controladores genéricos necesitarán controladores especiales para acceder a los datos de las matrices RAID. Si estas herramientas de recuperación están mal codificadas y no permiten proporcionar controladores adicionales, entonces una matriz RAID será probablemente inaccesible para esa herramienta de recuperación.
  • RAID no puede proporcionar un aumento de rendimiento en todas las aplicaciones. Esta afirmación es especialmente cierta en el caso de los usuarios típicos de aplicaciones de escritorio y los jugadores. Para la mayoría de las aplicaciones de escritorio y los juegos, la estrategia de búfer y el rendimiento de búsqueda de los discos son más importantes que el rendimiento bruto. El aumento de la tasa de transferencia bruta sostenida muestra pocas ganancias para estos usuarios, ya que la mayoría de los archivos a los que acceden son normalmente muy pequeños de todos modos. La separación de discos mediante RAID 0 aumenta el rendimiento de la transferencia lineal, no el rendimiento del búfer y la búsqueda. Como resultado, la separación de discos mediante RAID 0 muestra poca o ninguna ganancia de rendimiento en la mayoría de las aplicaciones de escritorio y juegos, aunque hay excepciones. Para los usuarios de ordenadores de sobremesa y los jugadores que tienen como objetivo un alto rendimiento, es mejor comprar un solo disco más rápido, más grande y más caro que ejecutar dos unidades más lentas/pequeñas en RAID 0. Incluso si se utilizan los discos más grandes y modernos en RAID 0, es poco probable que el rendimiento aumente más de un 10%, y el rendimiento puede disminuir en algunos patrones de acceso, especialmente en los juegos.
  • Es difícil trasladar el RAID a un nuevo sistema. Con un solo disco, es relativamente fácil trasladar el disco a un nuevo sistema. Simplemente se puede conectar al nuevo sistema, si tiene la misma interfaz disponible. Sin embargo, esto no es tan fácil con una matriz RAID. Hay un cierto tipo de metadatos que dicen cómo está configurado el RAID. Una BIOS RAID debe ser capaz de leer estos metadatos para poder construir con éxito el array y hacerlo accesible a un sistema operativo. Dado que los fabricantes de controladores RAID utilizan diferentes formatos para sus metadatos (incluso controladores de diferentes familias del mismo fabricante pueden utilizar formatos de metadatos incompatibles) es casi imposible mover un array RAID a un controlador diferente. Cuando se traslada una matriz RAID a un nuevo sistema, se debe planificar el traslado de la controladora también. Con la popularidad de las controladoras RAID integradas en la placa base, esto es extremadamente difícil. Generalmente, es posible mover los miembros del array RAID y las controladoras juntas. El RAID por software en productos Linux y Windows Server también puede sortear esta limitación, pero el RAID por software tiene otras (principalmente relacionadas con el rendimiento).

Ejemplo

Los niveles RAID más utilizados son RAID 0, RAID 1 y RAID 5. Supongamos que hay una configuración de 3 discos, con 3 discos idénticos de 1 TB cada uno, y que la probabilidad de fallo de una unidad para un periodo de tiempo determinado es del 1%.

Nivel RAID

Capacidad útil

Probabilidad de fracaso

dado en porcentaje

Probabilidad de fracaso

1 de cada... casos fracasa

0

3 TB

2,9701%

34

1

1 TB

0,0001%

1 millón

5

2 TB

0,0298%

3356


AlegsaOnline.com - 2020 / 2023 - License CC3