Apéndice D. RAID (Redundant Array of Independent Disks)

¿Qué es el RAID?

La idea básica del RAID es la de combinar discos de modestas dimensiones y de coste reducido en una serie de discos que superen en prestaciones las de un único disco grande y costoso. Este conjunto de discos es considerado por el ordenador como un solo disco.

RAID es un método en el que la información se divide en varios discos, usando técnicas como disk striping (RAID Level 0) y doble escritura en disco (RAID level 1) y disk striping con paridad (RAID nivel 5) para añadir redundancia, baja latencia y/o alta velocidad de lectura y/o escritura, maximizando también la recuperabilidad de los datos en caso de fallo del sistema.

El concepto básico del RAID es que los datos pueden ser distribuidos entre los discos del grupo de manera consistente. Para hacer esto, los datos deben ser primero divididos en "chunks" (a menudo de 32k o 64k, aunque también se pueden usar otros tamaños). Cada chunk es escrito en los discos por turno. Cuando los datos son leidos, el proceso sucede al contrario, dando la impresión de que muchos discos son combinados en uno solo.

¿Quién debería usar RAID?

Aquéllos que necesiten controlar grandes cantidades de datos (como los administradores de sistemas), se benificiarían del uso de la tecnología RAID. Los motivos para utilizar RAID son:

  • Aumento de la velocidad

  • Aumento de la capacidad de archivo mediante el uso de un disco virtual

  • Gran eficacia en recuperarse de un fallo del sistema

RAID: Hardware vs. Software

Existen dos posibilidades de realizar un sistema basado en la tecnología RAID: RAID Hardware o Software.

Hardware RAID

Las soluciones hardware gestionan el subsistema RAID independientemente del host, presentándole a este un solo disco.

Un ejemplo de hardware RAID podría ser el conectado al controlador SCSI que presenta al sistema un único disco SCSI. Un sistema RAID externo se encarga de la gestión del RAID con el controlador localizado en el subsistema externo de los discos. Todo el subsistema está conectado a un host a través de un controlador SCSI normal y se le presenta al host como un solo disco.

Existen también controladores RAID en forma de tarjetas que se comportan como un controlador SCSI con el sistema operativo, pero gestionan todas las comunicaciones reales entre los discos de manera autónoma. En estos casos, basta con conectar los discos a un controlador RAID como lo haría con un controlador SCSI, pero después podrá configurarlo como un controlador RAID sin que el sistema operativo aprecie la diferencia.

Software RAID

El Software RAID Software implementa los diferentes niveles de RAID en el código del kernel que tienen que ver con la gestión del disco (block device). Ofrece además la solución menos costosa, ya que las tarjetas caras de controladores de disco o chasis hot swap [1] no son requeridas. El software RAID funciona con discos IDE menos costosos así como con discos SCSI. Con las rápidas CPU de hoy en día, las prestaciones del software RAID software pueden competir con las del hardware RAID.

El controlador MD del kernel de Linux es un ejemplo de que la solución RAID es completamente independiente del hardware. Las prestaciones de un RAID basado en el software dependen de las prestaciones y de la carga del CPU.

Remítase a la Official Red Hat Linux Customization Guide, para ulterior información sobre la configuración del software RAID en el programa de instalación de Red Hat Linux.

Para aquéllos que estén interesados en saber lo que el software RAID ofrece, aquí tiene una breve lista de algunas de sus características más importantes.

  • Proceso de reconstrucción entrelazado.

  • Configuración basada completamente en el kernel.

  • La portabilidad de RAID entre ordenadores Linux sin reconstruir.

  • Reconstrucción del array en segundo plano usando recursos no utilizados del sistema.

  • Soporte para discos hot-swappable.

  • Reconocimiento automático de la CPU para disfrutar de algunas de sus ventajas.

Niveles de RAID Levels y soporte lineal

RAID soporta varias configuraciones, incluyendo los niveles 0, 1, 4, 5 y el soporte lineal. Estos tipos de RAID se definen de la siguiente manera:

  • Nivel 0 — El RAID nivel 0, a menudo llamado "striping," es una técnica orientada a las prestaciones de conversión de datos "striped". Esto quiere decir que los datos que son escritos en el array, son divididos en líneas y escritos en discos miembros del array. Esto permite altas prestaciones de I/O con un bajo coste pero no proporciona redundancia. La capacidad de memorizar del array es igual a la capacidad total de los discos miembros en un hardware RAID o a la capacidad total de las particiones miembros en un software RAID.

  • Nivel 1 — El RAID nivel 1, o "mirroring," se viene utilizando desde hace mucho más tiempo con cualquier otra forma de RAID. El nivel 1 proporciona redundancia escribiendo datos idénticos en cada disco miembros del array, dejando una copia "idéntica" en cada uno de los discos. El mirroring es muy popular a causa de su simplicidad y el alto nivel de disponibilidad de datos que tiene. El nivel 1 opera con dos o más discos que pueden utilizar una modalidad de acceso paralelo para transferir de manera rápida datos de lectura, pero más comunmente opera de manera independiente para ocuparse de valores altos de transacciones I/O. El nivel 1 proporciona una alta fiabilidad y mejora las prestaciones de las aplicaciones de lectura de datos pero con un coste relativamente elevado. [2]. La capacidad de archivo del nivel l del array es igual a la capacidad de un disco duro espejo en una hardware RAID o la de las particiones espepo en un software RAID.

  • Nivel 4 — El RAID nivel 4 utiliza la paridad [3] concentrado en un solo disco para la protección de los datos. Está más orientado a la transacción de I/O que para la transferencia de grandes ficheros. Ya que el disco dedicado a la paridad representa un inherente cuello de botella, el nivel 4 se utiliza raramente sin usar la tecnología write-back caching. A pesar de que el RAID de nivel 4 es una opción en algunos esquemas de reparticionamiento RAID, no es una opción permitida en la instalación RAID Red Hat Linux[4]. La capacidad de archivo del hardware RAID nivel 4 equivale a la de los discos miembros menos la capacidad de un disco miembros. La capacidad de archivo del software RAID nivel 4 equivale a la capacidad de las particiones miembros, menos el tamaño de una de las particiones si éstas son del mismo tamaño.

  • Nivel 5 — Es el tipo más común de RAID. Distribuyendo la paridad entre algunos o todos los discos miembros, el RAID nivel 5 elimina el cuello de botella inherente al nivel 4. El único cuello de botella es el proceso del cálculo de la paridad. Con las modernas CPU y el software RAID, esto no representa un gran cuello de botella. Como con el nivel 4, los resultados son prestaciones muy elevadas, con las lecturas que sustancialmente son más rápidas que las escrituras. El nivel 5 se utiliza a menudo con el write-back caching para reducir la asimetría. La capacidad de archivo del hardware RAID nivel 4 equivale a la de los discos miembros menos la capacidad de un disco miembro. La capacidad de archivo del software RAID nivel 4 equivale a la capacidad de las particiones miembro, menos el tamaño de una de las particiones si éstas son del mismo tamaño.

  • RAID lineal — El RAID lineal es una simple agrupación de discos de manera que se crea un disco virtual más grande. En el RAID lineal, los chunk están dispuestos secuencialmente y se pasa de un disco miembro al disco siguiente, tan solo una vez que el primer disco ha sido completado en su totalidad. Este agrupamiento no tiene ninguna ventaja en cuanto a prestaciones, pues es improbable que alguna operación de I/O sea divida entre los discos miembros. El RAID lineal no ofrece redundancia y de hecho la fiabilidad disminuye -- si uno de los discos se daña, el RAID en su totalidad no puede ser utilizado. La capacidad es el total de todos los discos miembros.

Notas

[1]

Un chasis hot-swap le permite eliminar un disco rígido sin tener que apagar el ordenador.

[2]

El RAID nivel 1 tiene un alto coste ya que escribe la misma información en todos los discos del array, malgastando de este modo el espacio del disco. Por ejemplo: Ha configurado el RAID nivel 1 de manera que su partición "/" (root) se expanda a traves de dos discos de 40G. Tiene un total de 80G pero sólo puede acceder a 40 de los 80G. Los otros 40G se comportan como un espejo de los primeros 40G.

[3]

La información sobre la paridad es calculada en base al contenido del resto de los discos miembros del array. Esta información puede ser utilizada para la reconstrucción de datos cuando uno de los discos del array se daña. Los datos reconstruidos pueden, por tanto, ser utilizados para satisfacer las peticiones de I/O del disco corregido y para volver a escribir ese disco después de haber sido reparado o sustituido.

[4]

El RAID nivel 4 requiere el mismo espacio que requiere el nivel 5, pero el nivel 5 tiene muchas ventajas con respecto al nivel 4. Por este motivo, el nivel 4 no está soportado.