Logo de AulaDigital

Software RAID Como 2

RAID-Software CÓMO: �Por qué RAID? Página siguiente Página anterior Índice general

2. �Por qué RAID?

Puede haber muchas buenas razones para usar RAID. Unas pocas son: la posibilidad de combinar varios discos físicos en un único dispositivo �virtual� más grande, o mejoras en el rendimiento y redundancia.

2.1 Detalles técnicos

El RAID de Linux puede funcionar sobre la mayoría de los dispositivos de bloque. No importa si usa dispositivos IDE, SCSI o una mezcla de ambos. Incluso algunas personas han usado dispositivo de bloque en red (Network Block Device, NBD) con diferentes grados de éxito.

Asegúrese de que el bus (o buses) de los discos son lo suficientemente rápidos. No debería tener 14 discos UW-SCSI en un único bus UW, si cada disco puede dar 10MB/s y el bus sólo puede sostener 40MB/s. Además, sólo debería tener un dispositivo por bus IDE. El uso de discos como maestro/esclavo es funesto para el rendimiento. IDE es realmente ineficiente accediendo a más de un disco por bus. Naturalmente, todas las placas madre modernas tienen dos buses IDE, por lo que puede configurar dos discos en RAID sin comprar más tarjetas controladoras.

La capa RAID no tiene absolutamente nada que ver con la capa del sistema de ficheros. Puede poner cualquier sistema de ficheros sobre un dispositivo RAID, tal y como haría con cualquier otro dispositivo de bloques.

2.2 Términos

La palabra RAID se refiere a RAID por software de Linux. Este CÓMO no trata ningún aspecto de RAID por hardware.

Cuando se describen configuraciones, es útil referirse al número de discos y sus tamaños. En todos los casos se usa la letra N para denotar el número de discos activos en el array (sin contar los discos de reserva). La letra S es el tamaño del disco más pequeño en el array, a menos que se diga otra cosa. La letra P representa el rendimiento de un disco en el array, en MB/s. Cuando se use, supondremos que los discos son igual de rápidos, lo cual no siempre puede ser cierto.

Note que se asume que las palabras dispositivo y disco significan lo mismo. Normalmente, los dispositivos usados para construir un dispositivo RAID son particiones de discos, no necesariamente discos enteros. Pero, normalmente, combinar varias particiones de un mismo disco no tiene sentido, por lo que las palabras dispositivo y disco simplemente significan particiones de discos diferentes.

2.3 Niveles RAID

Lo siguiente es una breve descripción de lo que soportan los parches RAID de Linux. Parte de esta información es información RAID absolutamente básica, aunque he añadido unas pocas reseñas de lo que hay de especial en la implementación de Linux de los niveles. Simplemente, sáltese esta sección si conoce RAID. Regrese después cuando tenga problemas :)

Los actuales parches RAID para Linux soportan los siguientes niveles:

  • Modo Lineal (Linear mode)
    • Dos o más discos se combinan en un único dispositivo físico. Los discos se �adjuntan� unos a otros de tal manera que las escrituras en el dispositivo RAID primero llenarán el disco 0, a continuación el disco 1 y así sucesivamente. Los discos no tienen porqué ser del mismo tamaño. De hecho, los tamaños no importan para nada aquí :)
    • No existe redundancia en este nivel. Si un disco falla perderá toda su información con toda probabilidad. Sin embargo, puede tener suerte y recuperar algunos datos, ya que el sistema de ficheros simplemente habrá perdido un gran puñado de datos consecutivos.
    • El rendimiento de las lecturas y las escrituras no se incrementará para lecturas/escrituras individuales. Pero si varios usuarios usan el dispositivo, puede tener la suerte de que un usuario use efectivamente el primer disco y el otro usuario acceda a ficheros que por casualidad residan en el segundo disco. Si esto ocurre, verá un aumento en el rendimiento.
  • RAID-0
    • También llamado modo striping o de distribución por bandas. Como el modo lineal salvo que las lecturas y escrituras se realizan en paralelo en los dispositivos. Éstos deben tener aproximadamente el mismo tamaño. Puesto que todos los accesos se realizan en paralelo, los discos se llenan por igual. Si un dispositivo es mucho mayor que los otros demás, el espacio extra se utilizará en el dispositivo RAID durante las escrituras en el extremo superior, aunque sólo se accederá a este disco más grande. Naturalmente, esto perjudica el rendimiento.
    • Como en el modo lineal, tampoco hay redundancia en este nivel. A diferencia del modo lineal, no será capaz de recuperar ningún dato si un disco falla. Si elimina un disco de un grupo RAID-0, el dispositivo RAID no perderá simplemente un bloque consecutivo de datos, sino que se llenará con pequeños agujeros por todo el dispositivo. Probablemente, e2fsck no sea capaz de recuperar gran cosa.
    • El rendimiento de las lecturas y las escrituras se incrementará, ya que las lecturas y las escrituras se realizan en paralelo sobre los dispositivos. Normalmente, ésta es la razón principal para usar RAID-0. Si los buses a los discos son suficientemente rápidos, puede obtener casi N*P MB/seg.
  • RAID-1
    • Este es el primer modo que realmente tiene redundancia. RAID-1 se puede usar en dos o más discos con cero o más discos de reserva. Este modo mantiene en un disco un duplicado exacto de la información del otro(s) disco(s). Por supuesto, los discos deben ser del mismo tamaño. Si un disco es mayor que otro, su dispositivo RAID será del tamaño del disco más pequeño.
    • Si se eliminan (o fallan) hasta N-1 discos, los datos permanecerán intactos. Si existen discos de reserva disponibles y el sistema (es decir, las controladoras SCSI o los chipsets IDE, etc.) sobreviven al desastre, comenzará inmediatamente la reconstrucción de un duplicado en uno de los discos de reserva, después de la detección del fallo del disco.
    • Normalmente, el rendimiento de las lecturas aumenta hasta casi N*P, mientras que el rendimiento de las escrituras es el mismo que el de un único dispositivo o, tal vez, incluso menos. Las lecturas se pueden hacer en paralelo pero, cuando se escribe, la CPU debe transferir N veces la cantidad de datos que normalmente transferiría (recuerde, se deben enviar N copias idénticas de todos los datos a los discos).
  • RAID-4
    • Este nivel de RAID no se usa con mucha frecuencia. Se puede usar sobre 3 o más discos. En lugar de duplicar completamente la información, guarda información de paridad en un único disco y escribe datos a los otros discos de forma parecida a un RAID-0. Ya que uno de los discos se reserva para información de paridad, el tamaño del array será (N-1)*S, donde S es el tamaño del disco más pequeño del array. Como en un RAID-1, los discos deben ser del mismo tamaño, o de lo contrario tendrá que aceptar que el valor de S en la fórmula (N-1)*S anterior será el tamaño del disco más pequeño del array.
    • Si un disco falla, y no es el de paridad, se puede usar la información de paridad para reconstruir todos los datos. Si dos discos fallan, se perderá toda la información. .
    • La razón por la que este nivel no se usa con mucha frecuencia es que la información de paridad se guarda en un único disco. Esta información se debe actualizar cada vez que se escribe en uno de los otros discos. Por eso, el disco de paridad se convertirá en un cuello de botella si no es mucho más rápido que los otros discos. Sin embargo, si por pura casualidad tuviera muchos discos lentos y un disco muy rápido, este nivel de RAID podría resultarle muy útil.
  • RAID-5
    • Este es quizás el modo RAID más útil cuando uno desea combinar un mayor número de discos físicos y todavía conservar alguna redundancia. RAID-5 se puede usar sobre 3 o más discos, con cero o más discos de reserva. El tamaño del dispositivo RAID-5 resultante será (N-1)*S, tal y como sucede con RAID-4. La gran diferencia entre RAID-5 y RAID-4 es que la información de paridad se distribuye uniformemente entre los discos participantes, evitando el problema del cuello de botella del RAID-4.
    • Si uno de los discos falla, todos los datos permanecerán intactos, gracias a la información de paridad. Si existen discos de reserva disponibles, la reconstrucción comenzará inmediatamente después del fallo del dispositivo. Si dos discos fallan simultáneamente, todos los datos se perderán. RAID-5 puede sobrevivir a un fallo de disco, pero no a dos o más.
    • Normalmente, el rendimiento de las lecturas y las escrituras se incrementará, pero es difícil predecir en qué medida.

Discos de reserva

Los discos de reserva son discos que no forman parte del grupo RAID hasta que uno de los discos activos falla. Cuando se detecta un fallo de disco, el dispositivo se marca como defectuoso y la reconstrucción se inicia inmediatamente sobre el primer disco de reserva disponible.

De esta manera, los discos de reserva proporcionan una buena seguridad extra, especialmente a sistemas RAID-5 que tal vez, sean difíciles de lograr (físicamente). Se puede permitir que el sistema funcione durante algún tiempo con un dispositivo defectuoso, ya que se conserva toda la redundancia mediante los discos de reserva.

No puede estar seguro de que su sistema sobrevivirá a una caída de disco. La capa RAID puede que maneje los fallos de dispositivos verdaderamente bien, pero las controladoras SCSI podrían fallar durante el manejo del error o el chipset IDE podría bloquearse, o muchas otras cosas.

2.4 Espacio de intercambio (swap) sobre RAID

No hay ninguna razón para usar RAID a fin de aumentar el rendimiento del sistema de Páginación de memoria (swap). El propio núcleo puede balancear el intercambio entre varios dispositivos si simplemente les da la misma prioridad en el fichero /etc/fstab.

Un buen fstab se parece a éste:

/dev/sda2       swap           swap    defaults,pri=1   0 0
/dev/sdb2       swap           swap    defaults,pri=1   0 0
/dev/sdc2       swap           swap    defaults,pri=1   0 0
/dev/sdd2       swap           swap    defaults,pri=1   0 0
/dev/sde2       swap           swap    defaults,pri=1   0 0
/dev/sdf2       swap           swap    defaults,pri=1   0 0
/dev/sdg2       swap           swap    defaults,pri=1   0 0

Esta configuración permite a la máquina Páginar en paralelo sobre siete dispositivos SCSI. No necesita RAID, ya que esa ha sido una característica del núcleo desde hace mucho tiempo.

Otra razón por la que podría interesar usar RAID para swap es la alta disponibilidad. Si configura un sistema para arrancar desde, por ejemplo, un dispositivo RAID-1, el sistema podría ser capaz de sobrevivir a un fallo de disco. Pero si el sistema ha estado Páginando sobre el ahora dispositivo defectuoso, puede estar seguro de que se vendrá abajo. El intercambio sobre un dispositivo RAID-1 solucionaría este problema.

Sin embargo, el intercambio sobre RAID-{1,4,5} NO está soportado. Puede configurarlo, pero fracasará. La razón es que la capa RAID algunas veces reserva memoria antes de realizar una escritura. Esto produce un bloqueo, quedando en un punto muerto, ya que el núcleo tendrá que reservar memoria antes de que pueda intercambiar, e intercambiar antes de que pueda reservar memoria.

Es triste pero cierto, al menos por ahora.


Página siguiente Página anterior Índice general