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].