Página siguiente
Página anterior
Índice general
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, mejoras en el rendimiento y redundancia.
El RAID de Linux puede funcionar sobre la mayoría de los dispositivos de
bloques. No importa si usa dispositivos IDE, SCSI o una mezcla de ambos.
Incluso algunas personas han usado el dispositivo de bloques de red (Network
Block Device, NBD) con más o menos é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 horrible para el rendimiento. IDE es realmente
malo 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, justo como con cualquier otro dispositivo de bloques.
La palabra ``RAID'' significa ``RAID software de Linux''. Este CÓMO no trata
ningún aspecto de RAID 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, que no siempre puede ser cierto.
Note que se supone 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 disco no tiene sentido, por
lo que las palabras dispositivo y disco simplemente significan ``particiones
de discos diferentes''.
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 por qué 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á todos
sus datos con toda probabilidad. Sin embargo, puede tener suerte y recuperar
algunos datos, ya que el sistema de ficheros simplemente habrán 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 ``stripe'' o distribución por bandas. Como el modo
lineal salvo que las lecturas y escrituras se realizan en paralelo en los
dispositivos. Los dispositivos 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 dispositivos, el
espacio extra todavía se utilizará en el dispositivo RAID durante las
escrituras en el extremo superior del dispositivo RAID, 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 será
capaz de recuperar gran cosa de dicho dispositivo.
- 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 en el 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, todos los datos todavía
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, se puede usar la información de paridad para
reconstruir todos los datos. Si dos discos fallan, se perderán todos los
datos.
- 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 ser 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, justo como en
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 todavía 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 dato 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 reservan proporcionan una buena seguridad
extra, especialmente, a sistemas RAID-5 que, tal vez, son 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 se podrían romper durante el manejo del error o
el chipset IDE podría bloquearse, o podrían ocurrir muchas otras cosas.
No hay ninguna razón para usar RAID por razones de rendimiento del intercambio. El
propio núcleo puede repartir el intercambio entre varios dispositivos si
simplemente les da la misma prioridad en el fichero 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 intercambiar 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 para usar RAID para intercambio 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 intercambiando 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 mortal 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