RAID-Software C�MO
Jakob �stergaard,
[email protected]
[email protected]
v. 0.90.3 - Alpha, 22 mayo 1999
Este C�MO describe c�mo usar un RAID software bajo Linux. Deber�a usar
los parches RAID disponibles en
ftp://ftp.fi.kernel.org/pub/linux/dae�
mons/raid/alpha. El C�MO original en ingl�s se puede encontrar en
http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/.
______________________________________________________________________
�ndice general
1. Introducci�n
1.1 Renuncia de responsabilidad
1.2 Requisitos
2. �Por qu� RAID?
2.1 Detalles t�cnicos
2.2 T�rminos
2.3 Niveles RAID
2.3.1 Discos de reserva
2.4 Espacio de intercambio (
3. Asuntos hardware
3.1 Configuraci�n IDE
3.2 Cambio de discos en caliente (
3.2.1 Intercambio en caliente de dispositivos IDE
3.2.2 Intercambio en caliente (
3.2.3 Intercambio en caliente con SCA
4. Configuraci�n de RAID
4.1 Configuraci�n general
4.2 Modo lineal
4.3 RAID-0
4.4 RAID-1
4.5 RAID-4
4.6 RAID-5
4.7 El superbloque persistente
4.8 Tama�os de segmento unitario
4.8.1 RAID-0
4.8.2 RAID-1
4.8.3 RAID-4
4.8.4 RAID-5
4.9 Opciones de
4.10 Autodetecci�n
4.11 Arrancar desde RAID
4.11.1 M�todo 1
4.11.2 M�todo 2
4.12 Dificultades
5. Comprobaci�n
5.1 Simulaci�n de un fallo de disco
5.2 Simulaci�n de corrupci�n de datos
6. Rendimiento
6.1 RAID-0
6.2 RAID-0 con TCQ
6.3 RAID-5
6.4 RAID-10
7. Agradecimientos
8. Anexo: El INSFLUG
______________________________________________________________________
1. Introducci�n
Este C�MO ha sido escrito por Jakob �stergaard bas�ndose en un gran
n�mero de mensajes de correo entre el autor, Ingo Molnar
(
[email protected]) -- uno de los desarrolladores de RAID --,
la lista de correo linux-raid (
[email protected]) y diversas
personas.
La raz�n por la que se ha escrito este C�MO, a pesar de existir ya un
RAID-Software C�MO es que el anterior describe el estilo antiguo de
RAID por software, presente en los n�cleos existentes. Este C�MO
describe el uso del �nuevo estilo� de RAID que se ha desarrollado m�s
recientemente. �ste nuevo estilo de RAID tiene muchas caracter�sticas
no presentes en el anterior.
Parte de la informaci�n de este C�MO le puede parecer trivial si es un
entendido en RAID. S�ltese esas partes.
1.1. Renuncia de responsabilidad
La declinaci�n obligatoria de responsabilidades:
Aunque el c�digo RAID tratado aqu� me ha parecido ser estable, y para
muchas otras personas, puede no funcionar para Usted. Si pierde todos
sus datos, su trabajo, es golpeado por un cami�n o cualquier otra
cosa, no ser� culpa m�a ni de los desarrolladores. �Conci�ncese de que
usa el software RAID y esta informaci�n por su cuenta y riesgo!. No
hay ning�n tipo de garant�a de que ning�n software ni esta informaci�n
sean correctos en modo alguno, ni adecuados para cualquier tipo de uso
en particular. Haga copia de seguridad de sus datos antes de
experimentar con esto. M�s vale prevenir que lamentarse.
1.2. Requisitos
Este C�MO asume que est� usando alguna de las �ltimas versiones 2.2.x
o 2.0.x del n�cleo con un parche raid0145 acorde y la versi�n 0.90 del
paquete raidtools. Ambos se pueden encontrar en
ftp://ftp.fi.kernel.org/pub/linux/daemons/raid/alpha. El parche RAID,
el paquete raidtools y el n�cleo deben concordar tanto como sea
posible. En ocasiones puede ser necesario usar un n�cleo antiguo si no
hay parches raid disponibles para el �ltimo.
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.
2.3.1. 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 paginaci�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 paginar 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 paginando
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.
3. Asuntos hardware
Esta secci�n mencionar� algunos de los asuntos hardware involucrados
en el funcionamiento de un RAID software.
3.1. Configuraci�n IDE
En efecto, es posible hacer funcionar un RAID sobre discos IDE.
Tambi�n se puede obtener un rendimiento excelente. De hecho, el precio
actual de los discos y las controladoras IDE hacen de IDE algo a tener
en cuenta cuando se montan nuevos sistemas RAID.
� Estabilidad f�sica: tradicionalmente, los discos IDE han sido de
peor calidad mec�nica que los discos SCSI. Incluso hoy en d�a, la
garant�a de los discos IDE es t�picamente de un a�o, mientras que,
a menudo, es de 3 a 5 a�os en los discos SCSI. Aunque no es justo
decir que los discos IDE son por definici�n de menor calidad, uno
deber�a ser consciente de que los discos IDE de algunas marcas
pueden fallar con m�s frecuencia que los discos SCSI similares.
Sin embargo, otras marcas usan exactamente la misma estructura
mec�nica tanto para los discos SCSI como para los discos IDE. Todo
se reduce a: todos los discos fallan, tarde o temprano, y uno
deber�a estar preparado para ello.
� Integridad de los datos: al principio, IDE no ten�a forma de
asegurar que los datos enviados a trav�s del bus IDE eran los
mismos que los datos escritos realmente en el disco. Esto se debi�
a la falta total de paridad, sumas de verificaci�n (checksums),
etc. Ahora, con el est�ndar UltraDMA, los dispositivos IDE realizan
una suma de verificaci�n sobre los datos que reciben y por eso es
altamente improbable que los datos se corrompan.
� Rendimiento: no voy a escribir aqu� sobre el rendimiento de IDE de
forma detallada. Una historia realmente breve ser�a:
� Los dispositivos IDE son r�pidos (12 MB/s y m�s)
� IDE tiene una mayor sobrecarga de CPU que SCSI (pero, �a qui�n le
preocupa?)
� S�lo usa un disco IDE por bus, los discos esclavos deterioran el
rendimiento.
� Resistencia a los fallos: la controladora IDE normalmente sobrevive
a un dispositivo IDE que ha fallado. La capa RAID marcar� el disco
como defectuoso y, si est� trabajando con un RAID de nivel 1 o
superior, la m�quina deber�a trabajar igual de bien hasta que la
desconecte para su mantenimiento.
Es muy importante que s�lo use un disco IDE por bus IDE. Dos discos
no s�lo arruinar�an el rendimiento sino que, tambi�n, el fallo de un
disco a menudo garantiza el fallo del bus y, por tanto, el fallo de
todos los discos de ese bus. En una configuraci�n RAID tolerante a
fallos (RAID de niveles 1, 4, 5) el fallo de un disco se puede
manejar, pero el fallo de dos discos (los dos discos del bus que ha
fallado debido a uno de ellos) dejar� el array inutilizable. Tambi�n,
el dispositivo esclavo o la controladora IDE de un bus pueden
confundirse de manera horrible cuando el dispositivo maestro del bus
falla. Un bus, un disco, esa es la regla.
Existen controladoras IDE PCI baratas. A menudo puede obtener 2 o 4
buses por unos 80 d�lares. Considerando el precio mucho m�s bajo de
los discos IDE respecto a los discos SCSI, dir�a que un array de
discos IDE podr�a ser una soluci�n realmente buena si uno puede vivir
con los relativamente pocos discos (unos 8 probablemente) que se
pueden conectar a un sistema t�pico (a menos que, naturalmente, tenga
muchas ranuras PCI para dichas controladoras IDE).
3.2. Cambio de discos en caliente ( Hot-Swap )
�ste ha sido un tema de actualidad en la lista linux-kernel durante
alg�n tiempo. Aunque el intercambio en caliente de los dispositivos
est� soportado hasta cierto punto, todav�a no es algo que se pueda
hacer f�cilmente.
3.2.1. Intercambio en caliente de dispositivos IDE
�No lo haga! IDE no soporta en modo alguno el intercambio en caliente.
Seguro, puede funcionar para usted si compila el soporte IDE como
m�dulo (s�lo posible en la serie 2.2.x del n�cleo) y lo vuelve a
cargar despu�s de que haya reemplazado el dispositivo. Pero tambi�n
puede terminar perfectamente con una controladora IDE frita y
observar� que el per�odo de dicho sistema fuera de servicio ser� mucho
mayor que habiendo reemplazado el dispositivo con el sistema apagado.
El principal problema, aparte de los aspectos el�ctricos que pueden
destruir su hardware, es que se debe reexplorar el bus IDE despu�s de
que se hayan intercambiado los discos. El manejador IDE actual no
puede hacer eso. Si el nuevo disco es 100% id�ntico al antiguo
(geometr�a, etc.) puede que funcione incluso sin volver a explorar el
bus pero, cr�ame, aqu� est� caminando por el filo de la navaja.
3.2.2. Intercambio en caliente ( Hot-Swap ) de dispositivos SCSI
El hardware SCSI normal tampoco es capaz de soportar intercambios en
caliente. Sin embargo, puede que funcione. Si su manejador SCSI
soporta la reexploraci�n del bus y la conexi�n y desconexi�n de
dispositivos, puede ser capaz de intercambiar dispositivos en
caliente. Sin embargo, en un bus SCSI normal probablemente no deber�a
desenchufar dispositivos mientras su sistema est� todav�a encendido.
Pero, le repito, puede que funcione simplemente (y tambi�n puede
terminar con su hardware frito).
La capa SCSI deber�a sobrevivir si un disco muere, pero no todos los
manejadores SCSI soportan esto todav�a. Si su manejador SCSI muere
cuando un disco cae, su sistema caer� con �l y la conexi�n en caliente
no ser� verdaderamente interesante entonces.
3.2.3. Intercambio en caliente con SCA
Con SCA deber�a ser posible conectar dispositivos en caliente. Sin
embargo, no poseo el hardware para probar esto y no he o�do de nadie
que lo haya probado, por lo que verdaderamente no puedo dar ninguna
receta de c�mo hacer esto.
De todos modos, si quiere jugar con esto, deber�a conocer los aspectos
internos de SCSI y de RAID. Por tanto, no voy a escribir aqu� nada que
no pueda comprobar que funciona. En cambio, s� puedo proporcionarle
algunas pistas:
� Busque la cadena remove-single-device en linux/drivers/scsi/scsi.c
� Eche un vistazo a raidhotremove y raidhotadd
No todos los manejadores SCSI soportan la conexi�n y desconexi�n de
dispositivos. En la serie 2.2 del n�cleo, al menos los manejadores de
la controladoras Adaptec 2940 y Symbios NCR53c8xx parecen soportarlo,
mientras que otras puede que s� o puede que no. Agradecer�a que
alguien me pasara m�s informaci�n sobre esto...
4. Configuraci�n de RAID
4.1. Configuraci�n general
Esto es lo que necesita para cualquiera de los niveles RAID:
� Un n�cleo. Obtenga la versi�n 2.0.36 o un n�cleo 2.2.x reciente.
� Los parches RAID. Normalmente existe un parche disponible para los
n�cleos recientes.
� El paquete de herramientas RAID (raidtools).
� Paciencia, una pizza y su bebida con cafe�na favorita.
Todo este software se puede encontrar en
ftp://ftp.fi.kernel.org/pub/linux;. Las herramientas RAID y los
parches est�n en el subdirectorio daemons/raid/alpha. Los n�cleos se
encuentran en el subdirectorio kernel.
Parchee el n�cleo, config�relo para incluir el soporte del nivel RAID
que quiera usar. Comp�lelo e inst�lelo.
A continuaci�n desempaquete, configure, compile e instale las
herramientas RAID.
Hasta ahora todo va bien. Si rearranca ahora, deber�a tener el fichero
/proc/mdstat. Recu�rdelo, ese fichero es su amigo. Vea lo que contiene
haciendo cat /proc/mdstat. Le debe decir que tiene registrada la
personalidad RAID (es decir, el modo RAID) correcta y que actualmente
no hay dispositivos RAID activos.
Cree las particiones que quiere incluir en su grupo RAID.
Ahora, vayamos a un modo espec�fico.
4.2. Modo lineal
De acuerdo, as� que tiene dos o m�s particiones que no son
necesariamente del mismo tama�o (pero que, naturalmente, pueden serlo)
que quiere adjuntar unas con otras.
Prepare el fichero /etc/raidtab para describir su configuraci�n. He
preparado un /etc/raidtab para dos discos en modo lineal y el fichero
se parece a esto:
raiddev /dev/md0
raid-level linear
nr-raid-disks 2
persistent-superblock 1
device /dev/sdb6
raid-disk 0
device /dev/sdc5
raid-disk 1
Aqu� no se soportan discos de reserva. Si un disco muere, el array
muere con �l. No hay informaci�n que poner en un disco de reserva.
Creemos el array. Ejecute la orden:
mkraid /dev/md0
Esto inicializar� su array, escribir� superbloques persistentes y
arrancar� el array.
�chele un vistazo a /proc/mdstat. Debe ver que el array est�
funcionando.
Ahora, puede crear un sistema de ficheros, justo como har�a con
cualquier otro dispositivo, montarlo, incluirlo en su /etc/fstab, etc.
4.3. RAID-0
Tiene dos o m�s dispositivos, de aproximadamente el mismo tama�o, y
quiere combinar sus capacidades de almacenamiento y rendimiento
accedi�ndolos en paralelo.
Prepare el fichero /etc/raidtab para describir su configuraci�n. Un
raidtab de ejemplo se parece a esto:
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sdb6
raid-disk 0
device /dev/sdc5
raid-disk 1
Como en el modo lineal, los discos de reserva tampoco se soportan
aqu�. Un RAID-0 no tiene redundancia, por lo que cuando un disco
muere, el array le acompa�a.
Una vez m�s, ejecute simplemente
mkraid /dev/md0
para inicializar el array. Esto debe inicializar los superbloques y
poner en funcionamiento el dispositivo RAID. �che un vistazo a
/proc/mdstat para ver qu� sucede. Deber�a ver que su dispositivo ahora
est� en funcionamiento.
/dev/md0 est� listo para ser formateado, montado, usado y maltratado.
4.4. RAID-1
Tiene dos dispositivos de aproximadamente el mismo tama�o y quiere que
cada uno de los dos sea un duplicado del otro. Finalmente, tiene m�s
dispositivos que quiere guardar como discos de reserva preparados, que
autom�ticamente formar�n parte del duplicado si uno de los
dispositivos activos se rompe.
Configure as� el fichero /etc/raidtab:
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
nr-spare-disks 0
chunk-size 4
persistent-superblock 1
device /dev/sdb6
raid-disk 0
device /dev/sdc5
raid-disk 1
Si tiene discos de reserva, puede a�adirlos al final de la
especificaci�n de dispositivos como
device /dev/sdd5
spare-disk 0
Recuerde configurar la entrada nr-spare-disks adecuadamente.
De acuerdo, ahora estamos listos para comenzar la inicializaci�n del
RAID. Se debe construir el duplicado, es decir, los contenidos (de
todos modos, sin importancia ahora, ya que el dispositivo todav�a est�
sin formatear) de los dos dispositivos se deben sincronizar.
D� la orden
mkraid /dev/md0
para comenzar la inicializaci�n del duplicado.
Compruebe el fichero /proc/mdstat. Debe decirle que se ha puesto en
funcionamiento el dispositivo /dev/md0, que est� siendo reconstruido
el duplicado y una cuenta del tiempo estimado para la terminaci�n de
la reconstrucci�n.
La reconstrucci�n se realiza usando el ancho de banda libre de E/S. De
esta manera, su sistema debe ser capaz todav�a de responder en gran
medida, aunque los LEDs de sus discos deben parpadear lozanamente.
El proceso de reconstrucci�n es transparente, por lo que realmente
puede usar el dispositivo aunque la duplicaci�n est� actualmente en
curso.
Intente formatear el dispositivo mientras la reconstrucci�n se est�
realizando. Funcionar�. Tambi�n puede montarlo y usarlo mientras la
reconstrucci�n se est� realizando. Naturalmente, si el disco
equivocado se rompe mientras se est� realizando la reconstrucci�n, no
hay soluci�n.
4.5. RAID-4
�Nota! No he comprobado esta configuraci�n por m� mismo. La
configuraci�n de m�s abajo es mi mejor suposici�n, no algo que
realmente haya tenido funcionando.
Tiene tres o m�s dispositivos de aproximadamente el mismo tama�o, un
dispositivo es significativamente m�s r�pido que los otros
dispositivos y quiere combinarlos todos en un �nico dispositivo m�s
grande, conservando todav�a alguna informaci�n de redundancia.
Finalmente, tiene varios dispositivos que desea usar como discos de
reserva.
Configure el fichero /etc/raidtab as�:
raiddev /dev/md0
raid-level 4
nr-raid-disks 4
nr-spare-disks 0
persistent-superblock 1
chunk-size 32
device /dev/sdb1
raid-disk 0
device /dev/sdc1
raid-disk 1
device /dev/sdd1
raid-disk 2
device /dev/sde1
raid-disk 3
Si tuvi�ramos discos de reserva, se insertar�an de forma parecida,
siguiendo las especificaciones de discos RAID;
device /dev/sdf1
spare-disk 0
como de costumbre.
Su array se puede inicializar con la orden
mkraid /dev/md0
como es habitual.
Deber�a ver la secci�n ``'' de opciones especiales de mke2fs antes de
formatear el dispositivo.
4.6. RAID-5
Tiene tres o m�s dispositivos de aproximadamente el mismo tama�o,
quiere combinarlos en un dispositivo mayor, pero conservando todav�a
cierto grado de redundancia para la seguridad de datos. Finalmente,
tiene varios dispositivos para usar como discos de reserva, que no
tomar�n parte en el array antes de que otro dispositivo falle.
Si usa N dispositivos donde el tama�o del m�s peque�o es S, el tama�o
de todo el array ser� (N-1)*S. El espacio que falta se usa para
informaci�n de paridad (redundancia). De esta manera, si cualquier
disco falla, todos los datos permanecer�n intactos. Pero si dos discos
fallan, todos los datos se perder�n.
Configure el fichero /etc/raidtab as�:
raiddev /dev/md0
raid-level 5
nr-raid-disks 7
nr-spare-disks 0
persistent-superblock 1
parity-algorithm left-symmetric
chunk-size 32
device /dev/sda3
raid-disk 0
device /dev/sdb1
raid-disk 1
device /dev/sdc1
raid-disk 2
device /dev/sdd1
raid-disk 3
device /dev/sde1
raid-disk 4
device /dev/sdf1
raid-disk 5
device /dev/sdg1
raid-disk 6
Si tuvi�ramos discos de reserva, se insertar�an de forma parecida,
siguiendo las especificaciones de discos RAID;
device /dev/sdh1
spare-disk 0
Y as� sucesivamente.
Un tama�o de segmento de 32KB es un buen valor por defecto para muchos
sistemas de ficheros de prop�sito general de estas proporciones. El
array sobre el que se utiliza el raidtab anterior es un dispositivo de
7 por 6 GB = 36 GB (recuerde que (N-1)*S = (7-1)*6 = 36). Contiene un
sistema de ficheros ext2 con un tama�o de bloque de 4KB. Podr�a
incrementar tanto el tama�o del segmento unitario del array como el
tama�o de bloque del sistema de ficheros si su sistema de ficheros
fuera o bien mucho mayor o bien si simplemente contuviera ficheros muy
grandes.
Vale, ya hemos hablado bastante. Configure el fichero /etc/raidtab y
veamos si funciona. Ejecute la orden
mkraid /dev/md0
y observe qu� ocurre. Es de esperar que sus discos comiencen a
trabajar como locos debido a que empiezan la reconstrucci�n de su
array. �chele un vistazo a /proc/mdstat para ver qu� est� sucediendo.
Si el dispositivo se ha creado correctamente, el proceso de
reconstrucci�n comenzar� ahora. Su array no ser� consistente hasta que
esta fase de reconstrucci�n haya terminado. No obstante, el array es
totalmente funcional (excepto, por supuesto, para el manejo de fallos
de dispositivos) y puede formatearlo y usarlo incluso mientras se est�
reconstruyendo.
Consulte la secci�n ``'' de opciones especiales de mke2fs antes de
formatear el array.
Bueno, ahora que ya tiene su dispositivo RAID funcionando, siempre
puede pararlo o rearrancarlo usando las �rdenes
raidstop /dev/md0
y
raidstart /dev/md0,
respectivamente.
En lugar de colocar �stos en ficheros de inicio y rearrancar un n�mero
astron�mico de veces hasta hacer que funcione, siga leyendo y haga
funcionar la autodetecci�n.
4.7. El superbloque persistente
Si volvi�ramos a aquellos maravillosos d�as (The Good Old Days (TM)),
las herramientas RAID (raidtools) leer�an su fichero /etc/raidtab y a
continuaci�n inicializar�an el array. Sin embargo, esto requerir�a que
el sistema de ficheros sobre el que reside /etc/raidtab estuviera
montado. Esto es imposible si quiere arrancar a partir de un RAID.
Tambi�n, la anterior aproximaci�n produc�a complicaciones al montar
sistemas de ficheros sobre dispositivos RAID. �stos no se pod�an
colocar en el fichero /etc/fstab como era usual, sino que ten�an que
ser montados en los guiones (scripts) de inicio.
Los superbloques persistentes solucionan estos problemas. Cuando un
array se inicializa con la opci�n persistent-superblock en el fichero
/etc/raidtab, se escribe un superbloque especial al principio de todos
los discos participantes en el array. Esto permite al n�cleo leer la
configuraci�n de los dispositivos RAID directamente de los discos
involucrados, en lugar de leerla de alg�n fichero de configuraci�n que
puede no estar disponible en todo momento.
Sin embargo, todav�a deber�a mantener un fichero /etc/raidtab
consistente, ya que puede necesitar este fichero para una
reconstrucci�n posterior del array.
Los superbloques persistentes son obligatorios si desea la
autodetecci�n de sus dispositivos RAID durante el arranque del
sistema. Esto se describe en la secci�n ``''.
4.8. Tama�os de segmento unitario
El tama�o de segmento unitario merece una explicaci�n. Nunca puede
escribir de forma totalmente paralela a un grupo de discos. Si tuviera
dos discos y quisiera escribir un byte, tendr�a que escribir cuatro
bits en cada disco; realmente, todos los segundos bits ir�an al disco
0 y los otros al disco 1. Sencillamente, el hardware no soporta eso.
En su lugar, elegimos alg�n tama�o de de segmento unitario que
definimos como la masa at�mica m�s peque�a de datos que puede ser
escrita en los dispositivos. Una escritura de 16 KB con un tama�o de
segmento unitario de 4 KB provocar�a que el primer y tercer segmento
unitario de 4KB se escriban en el primer disco, y el segundo y el
cuarto en el segundo, en el caso de un RAID-0 de dos discos. De esta
manera, para grandes escrituras, podr�a observar menor sobrecarga
teniendo segmentos lo suficientemente grandes, mientras que los arrays
que contuvieran principalmente ficheros peque�os se podr�an beneficiar
m�s de un tama�o de segmento unitario m�s peque�o.
Los tama�os de segmento unitario se pueden especificar para todos los
niveles de RAID excepto para el modo lineal.
Para un rendimiento �ptimo, deber�a experimentar con el valor, as�
como con el tama�o de bloque del sistema de ficheros que pusiera en el
array.
El argumento de la opci�n chunk-size en /etc/raidtab especifica el
tama�o de segmento unitario en kilobytes. Por tanto, 4 significa 4 KB.
4.8.1. RAID-0
Los datos se escriben casi en paralelo en todos los discos del array.
Realmente, se escriben chunk-size bytes en cada disco, de forma
consecutiva.
Si especifica un tama�o de segmento unitario de 4 KB y escribe 16 KB a
un array de 3 discos, el sistema RAID escribir� 4 KB a los discos 0, 1
y 2, en paralelo, y a continuaci�n los 4 KB restantes al disco 0.
Un tama�o de segmento unitario de 32 KB es un punto de partida
razonable para la mayor�a de los arrays. Pero el valor �ptimo depende
much�simo del n�mero de discos implicados, del contenido del sistema
de ficheros que aloja y de muchos otros factores. Experimente con �l
para obtener el mejor rendimiento.
4.8.2. RAID-1
Para las escrituras, el tama�o de segmento unitario no afecta al
array, ya que se deben escribir todos los datos a todos los discos sin
importar qu�. Para las lecturas, sin embargo, el tama�o de segmento
unitario indica cu�ntos datos leer consecutivamente de los discos
participantes. Ya que todos los discos activos del array contienen la
misma informaci�n, las lecturas se pueden hacer en paralelo al estilo
de un RAID-0.
4.8.3. RAID-4
Cuando se realiza una escritura en un array RAID-4, tambi�n se debe
actualizar la informaci�n de paridad en el disco de paridad. El tama�o
de segmento unitario es el tama�o de los bloques de paridad. Si se
escribe un byte a un array RAID-4, entonces se leer�n chunk-size bytes
de los N-1 discos, se calcular� la informaci�n de paridad y se
escribir�n chunk-size bytes al disco de paridad.
El tama�o de segmento unitario afecta al rendimiento de las lecturas
de la misma manera que en un RAID-0, ya que las lecturas de un RAID-4
se realizan de la misma forma.
4.8.4. RAID-5
En RAID-5 el tama�o de segmento unitario tiene exactamente el mismo
significado que en un RAID-4.
Un tama�o de segmento unitario razonable para un RAID-5 es 128 KB
pero, como siempre, puede desear experimentar con �ste.
Tambi�n consulte la secci�n ``'' de opciones especiales de mke2fs.
Esto afecta al rendimiento de un RAID-5.
4.9. Opciones de mke2fs
Hay disponible una opci�n especial cuando se formatean dispositivos
RAID-4 y RAID-5 con mke2fs. La opci�n -R stride=nn permitir� a mke2fs
situar mejor diferentes estructuras de datos espec�ficas de ext2 en un
dispositivo RAID de forma inteligente.
Si el tama�o de segmento unitario es 32 KB significa que 32 KB de
datos consecutivos residir�n en un �nico disco. Si queremos construir
un sistema de ficheros ext2 con un tama�o de bloque de 4KB, nos damos
cuenta de que habr� 8 bloques del sistema de ficheros en una segmento
unitario del array. Podemos pasar esta informaci�n a la utilidad
mke2fs cuando se cree el sistema de ficheros:
mke2fs -b 4096 -R stride=8 /dev/md0
El rendimiento de un RAID-{4,5} se ve fuertemente influido por esta
opci�n. No estoy seguro de c�mo la opci�n stride afectar� a otros
niveles RAID. Si alguien tiene informaci�n sobre esto, por favor, que
la env�e a mi direcci�n email.
4.10. Autodetecci�n
La autodetecci�n permite a los dispositivos RAID ser autom�ticamente
reconocidos por el n�cleo durante el arranque, justo despu�s de que se
realice la detecci�n ordinaria de particiones.
Esto requiere varias cosas:
1. Necesita todo el soporte necesario para autodetecci�n (SCSI, IDE,
RAID, etc) en el n�cleo (no como m�dulo) o bien crear una imagen
initrd, lo cual de todos modos es absurdo, dado lo improbable de
que descargue dicho soporte en un sistema activo.
Compruebe esto.
2. Debe haber creado los dispositivos RAID usando superbloques
persistentes.
3. El tipo de partici�n de los dispositivos usados en el RAID se debe
establecer a 0xFD (use fdisk y establezca el tipo a fd)
NOTA: aseg�rese de que su RAID NO EST� FUNCIONANDO antes de cambiar
los tipos de las particiones. Use raidstop /dev/md0 para parar el
dispositivo.
Si sigue los pasos 1, 2 y 3 de arriba, la autodetecci�n deber�a
activarse. Pruebe rearrancar. Cuando el sistema se levante, vea el
contenido de /proc/mdstat; deber�a decirle que su RAID est�
funcionando.
Durante el arranque, podr�a ver mensajes similares a �stos:
Oct 22 00:51:59 malthe kernel: SCSI device sdg: hdwr sector= 512
bytes. Sectors= 12657717 [6180 MB] [6.2 GB]
Oct 22 00:51:59 malthe kernel: Partition check:
Oct 22 00:51:59 malthe kernel: sda: sda1 sda2 sda3 sda4
Oct 22 00:51:59 malthe kernel: sdb: sdb1 sdb2
Oct 22 00:51:59 malthe kernel: sdc: sdc1 sdc2
Oct 22 00:51:59 malthe kernel: sdd: sdd1 sdd2
Oct 22 00:51:59 malthe kernel: sde: sde1 sde2
Oct 22 00:51:59 malthe kernel: sdf: sdf1 sdf2
Oct 22 00:51:59 malthe kernel: sdg: sdg1 sdg2
Oct 22 00:51:59 malthe kernel: autodetecting RAID arrays
Oct 22 00:51:59 malthe kernel: (read) sdb1's sb offset: 6199872
Oct 22 00:51:59 malthe kernel: bind<sdb1,1>
Oct 22 00:51:59 malthe kernel: (read) sdc1's sb offset: 6199872
Oct 22 00:51:59 malthe kernel: bind<sdc1,2>
Oct 22 00:51:59 malthe kernel: (read) sdd1's sb offset: 6199872
Oct 22 00:51:59 malthe kernel: bind<sdd1,3>
Oct 22 00:51:59 malthe kernel: (read) sde1's sb offset: 6199872
Oct 22 00:51:59 malthe kernel: bind<sde1,4>
Oct 22 00:51:59 malthe kernel: (read) sdf1's sb offset: 6205376
Oct 22 00:51:59 malthe kernel: bind<sdf1,5>
Oct 22 00:51:59 malthe kernel: (read) sdg1's sb offset: 6205376
Oct 22 00:51:59 malthe kernel: bind<sdg1,6>
Oct 22 00:51:59 malthe kernel: autorunning md0
Oct 22 00:51:59 malthe kernel: running: <sdg1><sdf1><sde1><sdd1><sdc1><sdb1>
Oct 22 00:51:59 malthe kernel: now!
Oct 22 00:51:59 malthe kernel: md: md0: raid array is not clean --
starting background reconstruction
Esta es la salida de la autodetecci�n de un array RAID-5 que no fue
limpiamente desactivado (es decir, la m�quina se cay�). La
reconstrucci�n se inicia autom�ticamente. Montar este dispositivo es
perfectamente seguro, ya que la reconstrucci�n es transparente y todos
los datos son consistentes (s�lo es la informaci�n de paridad la que
es inconsistente - aunque la misma no se necesita hasta que un
dispositivo falle).
Los dispositivos autoarrancados tambi�n son autom�ticamente parados
durante el cierre del sistema. No se preocupe de los guiones de
inicio. Simplemente, use los dispositivos /dev/md como cualquier otro
dispositivo /dev/sdX o /dev/hdX.
S�, verdaderamente es as� de f�cil.
Quiz�s desee buscar cualquier orden raidstart/raidstop en sus guiones
de inicio/parada /etc/rc.d/rc.sysinit y /etc/rc.d/init.d/halt (guiones
de inicio est�ndares de RedHat). Se usan para el antiguo estilo de
RAID y no tienen utilidad en el nuevo estilo de RAID con
autodetecci�n. Elimine las l�neas y todo ir� perfectamente bien.
4.11. Arrancar desde RAID
Existen varias formas de configurar un sistema que monta su sistema de
ficheros ra�z sobre un dispositivo RAID. Desafortunadamente, ninguna
de las distribuciones de Linux con las que yo he probado (RedHat y
Debian) soportan un dispositivo RAID como dispositivo del sistema de
ficheros ra�z durante el proceso de instalaci�n. Por tanto, le va a
doler un poco si quiere esto pero, de hecho, es posible.
Actualmente, LILO no maneja dispositivos RAID y por ello, no se puede
cargar el n�cleo desde un dispositivo RAID en el instante del
arranque. Su sistema de ficheros /boot tendr� que residir en un
dispositivo que no sea RAID. Un modo de asegurar que su sistema
arranca, pase lo que pase, es crear particiones /boot similares en
todas las unidades de su RAID, de esa forma la BIOS siempre puede
cargar datos desde, por ejemplo, la primera unidad disponible. Esto
necesita que no arranque con un disco defectuoso en su sistema.
Otra forma de asegurar que su sistema siempre arranca es crear un
disquete de arranque cuando toda la configuraci�n se haya terminado.
Si muere el disco en el que reside el sistema de ficheros /boot,
siempre puede arrancar desde el disquete.
4.11.1. M�todo 1
Este m�todo asume que posee un disco de reserva en el que puede
instalar el sistema y que no es parte del RAID que configurar� m�s
adelante.
� Primero, instale un sistema normal en su disco extra.
� Obtenga el n�cleo que piensa ejecutar, obtenga los parches y las
herramientas RAID y haga que su sistema arranque con el nuevo
n�cleo con soporte RAID. Aseg�rese de que el soporte RAID est�
dentro del n�cleo y que no se carga como m�dulo.
� Ahora debe configurar y crear el RAID que tiene pensado usar para
el sistema de ficheros ra�z. �ste es un procedimiento est�ndar como
ya se describi� en ``''.
� Simplemente para asegurarse de que todo est� bien, trate de
rearrancar el sistema para ver si el nuevo RAID aparece durante el
arranque. Deber�a aparecer.
� Coloque un sistema de ficheros sobre el nuevo array (usando
mke2fs), y m�ntelo en /mnt/newroot.
� Ahora, copie el contenido de su sistema de ficheros ra�z actual (el
disco extra) al nuevo sistema de ficheros ra�z (el array). Hay
muchas formas de hacer esto. Una de ellas es
cd /
find . -xdev | cpio -pm /mnt/newroot
� Debe modificar el fichero /mnt/newroot/etc/fstab para usar el
dispositivo correcto (el dispositivo ra�z /dev/md?) para el sistema
de ficheros ra�z.
� Ahora, desmonte el sistema de ficheros /boot actual y m�ntelo en su
lugar en /mnt/newroot/boot. Esto es necesario para que LILO
funcione correctamente en el siguiente paso.
� Actualice /mnt/newroot/etc/lilo.conf para que apunte a los
dispositivos correctos. El dispositivo de arranque debe ser todav�a
un disco normal (no un dispositivo RAID) pero el dispositivo ra�z
debe apuntar a su nuevo RAID. Cuando est� hecho, ejecute lilo -r
/mnt/newroot Esta ejecuci�n de LILO deber�a terminar sin errores.
� Rearranque el sistema y observe que todo aparece como se esperaba
:)
Si est� haciendo esto con discos IDE, aseg�rese de indicarle a su BIOS
que todos los discos son del tipo �auto-detect�, as� la BIOS permitir�
a su m�quina arrancar incluso cuando un disco haya fallado.
4.11.2. M�todo 2
Este m�todo necesita que parchee su paquete raidtools para poder
incluir la directiva failed-disk en /etc/raidtab. Busque en los
archivos de la lista de correo Linux-raid los mensajes enviados por
Martin Bene, alrededor del 23 de abril de 1999, donde se envi� el
parche failed-disk. Se espera que esta funcionalidad est� pronto en
el paquete raidtools (para cuando est� leyendo esto puede que incluso
no necesite parchear las raidtools).
S�lo puede utilizar este m�todo en RAIDs de niveles 1 o superiores.
La idea es instalar un sistema sobre un disco que es adrede marcado
como estropeado en el RAID, copiar a continuaci�n el sistema en el
RAID que estar� funcionando en modo degrado y finalmente hacer que el
RAID use el ya no necesario disco de instalaci�n, aniquilando la
anterior instalaci�n pero haciendo que el RAID funcione en modo no
degradado.
� Primero, instale un sistema normal sobre un disco (que m�s tarde
formar� parte de su RAID). �Es importante que este disco (o
partici�n) no sea el m�s peque�o. Si lo es, no ser� posible
a�adirlo al RAID m�s tarde!
� A continuaci�n, obtenga el n�cleo, los parches, las herramientas,
etc., etc. Ya conoce el ejercicio. Haga que su sistema arranque con
un nuevo n�cleo que tenga el soporte RAID que necesita compilado
dentro del n�cleo.
� Ahora, configure el RAID con su dispositivo ra�z actual como el
failed-disk (disco estropeado) en el fichero raidtab. No coloque el
failed-disk como el primer disco en el fichero raidtab, eso le dar�
problemas para poner en marcha el RAID. Cree el RAID y coloque un
sistema de ficheros en �l.
� Pruebe a rearrancar y vea si el RAID aparece como deber�a hacerlo.
� Copie los ficheros del sistema y reconfigure el sistema para usar
el RAID como dispositivo ra�z, como se ha descrito en la secci�n
``'' anterior.
� Cuando su sistema arranque con �xito desde el RAID, puede modificar
el fichero raidtab para incluir el failed-disk anterior como un
disco raid-disk normal. Ahora, ejecute raidhotadd para a�adir el
disco a su sistema RAID.
� Ahora deber�a tener un sistema capaz de arrancar desde un RAID no
degradado.
4.12. Dificultades
Nunca NUNCA nunca reparticione discos que son parte de un RAID que
est� funcionando. Si debe alterar la tabla de particiones de un disco
que es parte de un RAID, pare primero el array y reparticione despu�s.
Es f�cil poner demasiados discos en un bus. Un bus Fast-Wide SCSI
normal puede sostener 10 MB/s que es menos de lo que muchos discos
pueden obtener por s� solos hoy en d�a. Por supuesto, colocar seis de
tales discos en un bus no le proporcionar� el aumento de rendimiento
esperado.
La mayor�a de los controladores SCSI s�lo le proporcionar�n un
rendimiento extra si los buses SCSI son llevados pr�cticamente al
m�ximo por los discos conectados a ellos. No observar� una mejora de
rendimiento por usar dos controladoras 2940 con dos discos SCSI viejos
en lugar de simplemente hacer funcionar los dos discos sobre una sola
tarjeta.
Si olvida la opci�n persistent-superblock puede que su array no
arranque por las buenas despu�s de que haya sido parado. Simplemente,
recree el array con la opci�n colocada correctamente en el fichero
/etc/raidtab.
Si un RAID-5 no logra reconstruirse despu�s de que un disco haya sido
eliminado y reinsertado, puede deberse al orden de los dispositivos en
el fichero /etc/raidtab. Intente mover el primer par device -- raid-
disk al final de la descripci�n del array en el fichero raidtab.
5. Comprobaci�n
Si piensa usar un RAID para obtener tolerancia a fallos, tambi�n puede
que quiera comprobar su configuraci�n para ver si realmente funciona.
Ahora bien, �c�mo se simula un fallo de disco?.
El resumen es que no puede, salvo quiz�s atravesando mediante un hacha
incandescente la unidad sobre la que quiere simular el fallo. Nunca
puede saber qu� ocurrir� si un disco muere. Puede que se apodere
el�ctricamente del bus al que est� conectado, haciendo que todas las
unidades de ese bus sean inaccesibles, aunque nunca he o�do que eso
haya ocurrido. La unidad tambi�n puede simplemente informar de un
fallo de lectura/escritura a la capa SCSI/IDE que a su vez har� que la
capa RAID maneje esta situaci�n de forma elegante. Afortunadamente,
esta es la forma en la que normalmente ocurren las cosas.
5.1. Simulaci�n de un fallo de disco
Si quiere simular un fallo de disco desconecte la unidad. Debe hacer
esto con el sistema apagado. Si est� interesado en comprobar si sus
datos pueden sobrevivir con un disco menos de los habituales, no hay
motivo para ser un vaquero de las conexiones en caliente aqu�. Apague
el sistema, desconecte el disco y enci�ndalo de nuevo.
Mire en el registro del sistema (generado por syslogd) y en
/proc/mdstat para ver qu� es lo que est� haciendo el RAID. �Ha
funcionado?.
Recuerde que debe utilizar un RAID-{1,4,5} para que su array sea capaz
de sobrevivir a un fallo de disco. Un modo lineal o un RAID-0 fallar�n
totalmente cuando se pierda un dispositivo.
Cuando haya reconectado el disco de nuevo (recuerde, con el sistema
apagado, naturalmente) podr� a�adir el nuevo dispositivo al RAID otra
vez, con la orden raidhotadd.
5.2. Simulaci�n de corrupci�n de datos
Un RAID (ya sea hardware o software) asume que si una escritura en un
disco no devuelve un error, entonces la escritura ha tenido �xito. Por
tanto. si su disco corrompe datos sin devolver un error, sus datos se
corromper�n. Naturalmente, esto es muy improbable que ocurra, pero es
posible, y producir�a un sistema de ficheros corrupto.
Un RAID no puede y no est� pensado para proteger contra la corrupci�n
de datos del medio de almacenamiento f�sico. Por tanto, tampoco tiene
ning�n sentido corromper a prop�sito los datos de un disco (usando dd,
por ejemplo) para ver c�mo manejar� el sistema RAID esa situaci�n. Es
m�s probable (a menos que corrompa el superbloque del RAID) que la
capa RAID no descubra nunca la corrupci�n, sino que su sistema de
ficheros en el dispositivo RAID se corrompa.
As� es como se supone que funcionan las cosas. Un RAID no es una
garant�a absoluta para la integridad de datos, simplemente le permite
conservar sus datos si un disco muere (naturalmente, con RAIDs de
niveles iguales o superiores a 1).
6. Rendimiento
Esta secci�n contiene varias pruebas de evaluaci�n de prestaciones
(benchmarks) de un sistema real usando un RAID software.
Las evaluaciones se han realizado con el programa bonnie y todas las
veces con ficheros dos o m�s veces m�s grandes que el tama�o de la RAM
f�sica de la m�quina.
Estas evaluaciones s�lo miden el ancho de banda de entrada y de salida
sobre un �nico gran fichero. Esto es algo interesante de saber si uno
est� interesado en el m�ximo rendimiento de E/S para grandes
lecturas/escrituras. Sin embargo, tales n�meros nos dicen poco sobre
cu�l ser�a el rendimiento si el array se usara para un almac�n
temporal de noticias, un servidor web, etc. etc. Tenga siempre en
cuenta que los n�meros de las evaluaciones son el resultado de
ejecutar un programa sint�tico. Pocos programas del mundo real hacen
lo que bonnie hace y, aunque es interesante mirar estos n�meros de
E/S, no son indicadores en �ltima instancia del rendimiento de los
dispositivos del mundo real.
Por ahora, s�lo poseo resultados de mi propia m�quina. La
configuraci�n es:
� Dual Pentium Pro 150 MHz
� 256 MB RAM (60 MHz EDO)
� Tres IBM UltraStar 9ES 4.5 GB U2W SCSI
� Adaptec 2940U2W
� Un IBM UltraStar 9ES 4.5 GB UW SCSI
� Adaptec 2940 UW
� N�cleo 2.2.7 con los parches RAID
Los tres discos U2W cuelgan de la controladora U2W y el disco UW
cuelga de la controladora UW.
Parece imposible sacar mucho m�s de 30 MB/s a trav�s de los buses SCSI
de este sistema, usando un RAID o no. Mi suposici�n es que, debido a
que el sistema es bastante antiguo, el ancho de banda de la memoria lo
fastidia y, por tanto, limita lo que se puede enviar a trav�s de las
controladoras SCSI.
6.1. RAID-0
Lectura significa entrada de bloques secuencial y Escritura significa
salida de bloques secuencial. El tama�o de fichero fue de 1GB en todas
las pruebas. Las pruebas se realizaron en modo monousuario. Se
configur� el controlador (driver) SCSI para que no utilizara tagged
command queuing, TCQ).
| | | | |
|Tama�o de segmento unitario | Tama�o de bloque | Lectura KB/s | Escritura KB/s |
| | | | |
|4k | 1k | 19712 | 18035 |
|4k | 4k | 34048 | 27061 |
|8k | 1k | 19301 | 18091 |
|8k | 4k | 33920 | 27118 |
|16k | 1k | 19330 | 18179 |
|16k | 2k | 28161 | 23682 |
|16k | 4k | 33990 | 27229 |
|32k | 1k | 19251 | 18194 |
|32k | 4k | 34071 | 26976 |
A partir de esto vemos que el tama�o de segmento unitario del RAID no
importa mucho. Sin embargo, el tama�o de bloque del sistema de
ficheros ext2 deber�a ser tan grande como fuera posible, lo cual
significa 4KB (es decir, el tama�o de p�gina) en una IA-32 (N.T.:
arquitectura Intel de 32 bits).
6.2. RAID-0 con TCQ
Esta vez, el manejador SCSI se configur� para usar TCQ, con una
longitud de cola de 8. Por lo dem�s, todo es lo mismo de antes.
| | | | |
|Tama�o de segmento unitario | Tama�o de bloque | Lectura KB/s | Escritura KB/s |
| | | | |
|32k | 4k | 33617 | 27215 |
No se realizaron m�s pruebas. Activar el TCQ pareci� incrementar
ligeramente el rendimiento de las escrituras, pero verdaderamente no
hubo mucha diferencia en absoluto.
6.3. RAID-5
El array se configur� para funcionar en el modo RAID-5 y se hicieron
pruebas similares.
| | | | |
|Tama�o de segmento unitario | Tama�o de bloque | Lectura KB/s | Escritura KB/s |
| | | | |
|8k | 1k | 11090 | 6874 |
|8k | 4k | 13474 | 12229 |
|32k | 1k | 11442 | 8291 |
|32k | 2k | 16089 | 10926 |
|32k | 4k | 18724 | 12627 |
Ahora, tanto el tama�o de segmento unitario como el tama�o de bloque
parecen realmente significativos.
6.4. RAID-10
Un RAID-10 significa bandas duplicadas o un array RAID-1 de dos arrays
RAID-0. El tama�o de segmento unitario es tanto el tama�o de las
porciones del array RAID-1 como del array RAID-0. No realic� pruebas
en las que esos tama�os de segmento unitario fueran diferentes, aunque
esa deber�a ser una configuraci�n perfectamente v�lida.
| | | | |
|Tama�o de segmento unitario | Tama�o de bloque | Lectura KB/s | Escritura KB/s |
| | | | |
|32k | 1k | 13753 | 11580 |
|32k | 4k | 23432 | 22249 |
No se realizaron m�s pruebas. El tama�o de fichero fue de 900MB debido
a que las cuatro particiones involucradas eran de 500 MB cada una, lo
cual no deja espacio para un fichero de 1GB en esta configuraci�n
(RAID-1 sobre dos arrays de 1000MB).
7. Agradecimientos
Las siguientes personas han contribuido a la creaci�n de este
documento:
� Ingo Molnar
� Jim Warren
� Louis Mandelstam
� Allan Noah
� Yasunori Taniike
� La gente de la lista de correo Linux-RAID
� El que se me olvida, lo siento :)
Por favor, env�e correcciones, sugerencias, etc. al autor. Es la �nica
forma en que este C�MO puede mejorar.
Env�e correcciones, sugerencias, etc. sobre esta traducci�n al espa�ol
a Juan Piernas C�novas (
[email protected]).
8. Anexo: El INSFLUG
El INSFLUG forma parte del grupo internacional Linux Documentation
Project, encarg�ndose de las traducciones al castellano de los Howtos
(Comos), as� como la producci�n de documentos originales en aquellos
casos en los que no existe an�logo en ingl�s.
En el INSFLUG se orienta preferentemente a la traducci�n de documentos
breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs.
:) ), etc.
Dir�jase a la sede del INSFLUG para m�s informaci�n al respecto.
En la sede del INSFLUG encontrar� siempre las �ltimas versiones de las
traducciones �oficiales�: www.insflug.org. Aseg�rese de comprobar
cu�l es la �ltima versi�n disponible en el Insflug antes de bajar un
documento de un servidor r�plica.
Adem�s, cuenta con un sistema interactivo de gesti�n de fe de erratas
y sugerencias en l�nea, motor de b�squeda espec�fico, y m�s servicios
que estamos trabajando incesantemente para a�adir.
Se proporcionar� tambi�n una lista de los servidores r�plica (mirror)
del Insflug m�s cercanos a Vd., e informaci�n relativa a otros
recursos en castellano.
en
http://www.insflug.org/insflug/creditos.php3 cuenta con una
detallada relaci�n de las personas que hacen posible tanto esto como
las traducciones.
Dir�jase a
http://www.insflug.org/colaboracion/index.php3 si desea
unirse a nosotros.
Francisco Jos� Montilla,
[email protected].