Antonio Castro RECONOCIMIENTOS Siempre estar� agradecido a todo el equipo de LinuxFocus que algunas veces desde una posici�n menos visible colaboran para dar un buen aspecto a un art�culo as� como a los traductores. En esta ocasi�n debo mencionar especialmente a otra persona. Este art�culo no hubiera sido posible sin el asesoramiento de Luis Colorado, quien correo tras correo me ha ido ayudando con sus conocimientos sobre sistemas RAID. Gracias Luis. Contenidos: Introduci�nn Elecci�n de discos para un RAID Caracter�sticas de los sistemas SCSI En qu� consisten los distintos RAID C�mo instalar un RAID0 |
Resumen:
RAID (Redundant Array of Inexpensive Disks) Consiste en una
serie de sistemas para organizar varios discos como si de
uno solo se tratara pero haciendo que trabajen en paralelo
para aumentar la velocidad de acceso o la seguridad frente a
fallos del hardware o ambas cosas.
Existen soluciones hardware normalmente muy costosas basadas generalmente en el uso de tarjetas controladoras.
Al final otras soluciones basadas en tarjetas, permiten gestionar una serie de discos id�nticos como RAID's gracias a un simple Z80 y un software que est� almacenado en la tarjeta. En estas condiciones no se puede afirmar que la eficiencia sea mejor que en Linux.
Las soluciones basadas en tarjetas son caras y obligan a usar discos id�nticos. Linux puede, con los drivers adecuados, usar algunas de estas tarjetas pero no resulta interesante ya que Linux permite utilizar una soluci�n software totalmente gratuita que es igual de eficiente que las costosas implementaciones hardware.
|
La soluci�n puramente software de Linux se implementa en el kernel y permide utilizar discos de distinto tipo. Se pueden mezclar incluso discos IDE con discos SCSI. Incluso discos de distinto tama�o pero en este caso habr�a que asociar particiones del mismo tama�o en todos los discos. La soluci�n m�s normal es tomar los discos enteros del mismo tama�o para hacer un RAID pero Linux permite mayor flexibilidad. Por ejemplo, en un disco se puede usar parte para el RAID y parte fuera del RAID. Esto no suele ser buena idea ya que el uso de otras particiones del disco que no est�n en el RAID perjudicar�a la velocidad de acceso de todo el sistema. Es decir que a pesar de que Linux permite usar cualquier tipo de disco lo mejor es usar discos con la misma capacidad y caracter�sticas parecidas. Otra cosa a tener en cuenta es que la tecnolog�a SCSI permite acceso concurrente a los distintos dispositivos conectados al bus.
Por el contrario el uso de dos discos IDE con la misma tarjeta significa que nunca se podr�n acceder simult�neamente ambos dispositivos. Es una l�stima que los discos SCSI sean mucho m�s caros que los discos IDE. La soluci�n puramente software disponible en Linux es igual de buena en eficiencia (puede que incluso mejor) que la soluci�n basada en tarjetas y por supuesto mucho mas barata, y flexible permitiendo aprovechar discos de equipos anticuados.
Mientras que en un bus SCSI un dispositivo puede estar volcando datos al bus, otro puede estar recogi�ndolos; a discos IDE primero se accede a un dispositivo y luego a otro.
Utilizar discos r�pidos para montar un RAID no suele estar justificado. Son mucho m�s caros. Los discos r�pidos suelen serlo debido a una mayor agilidad de las cabezas para posicionarse en la pista necesaria. Los cambios de pista es la operaci�n que m�s tiempo consume en un disco duro, pero a diferencia por ejemplo de MSDOS en Linux est�n optimizadas de manera que la informaci�n no se accede en el mismo orden que es solicitada sino que se comporta de manera similar a un ascensor inteligente que va memorizando las peticiones y las va atendiendo por el orden m�s conveniente. Tambi�n se usan otras estrategias que aumentan el rendimiento minimizando el numero de accesos a disco, como memorias cache. La velocidad de giro de los discos suele ser muy parecida pero puede haber diferencias en cuanto a densidad y n�mero de cabezas que afectar�an significativamente a la velocidad de transferencia. Este par�metro si que interesa tenerlo en cuenta. Por todo esto la recomendaci�n ser�a usar preferiblemente discos SCSI iguales o similares y baratos. La velocidad vendr� por el acceso concurrente a los mismos.
Hay que tener en cuenta que para el arranque del sistema es necesario un disco no RAID y de peque�o tama�o tama�o porque la partici�n que contenga el sistema de ficheros ra�z conviene que tenga pocas cosas.
A la hora de decidir qu� discos comprar surgen un mont�n de dudas por ello hablaremos un poco de las caracter�sticas.
Nombre | NumBits | NumDisp | MB/s | Conector | Max Longitud Cable |
---|---|---|---|---|---|
SCSI-1 | 8 | 7 | 5 | 50 pines BajaDens | 6 mts |
SCSI-2 (alias) Fast scsi, o Narrow scsi | 8 | 7 | 10 | 50 pines AltaDens | 3 mts |
SCSI-3 (alias) Ultra, o Fast20 | 8 | 7 | 20 | 50 pines AltaDens | 3 mts |
Ultra Wide (alias) Fast scsi-3 | 16 | 15 | 40 | 68 pines AltaDens | 1,5 mts |
Ultra2 | 16 | 15 | 80 | 68 pines AltaDens | 12 mts |
Un RAID se puede por tanto construir con varias particiones pero el resultado no es una partici�n l�gica sino un disco l�gico en el que sin embargo no podemos hacer particiones. El nombre de estos dispositivos es el de metadisco.
Al igual que en los discos IDE tenemos /dev/hd... para discos SCSI tenemos /dev/sd..., para los metadiscos una vez compilado el kernel con las opciones necesarias que m�s tarde comentaremos aparecer�n cuatro dispositivos $ ls -l /dev/md*
brw-rw---- 1 root disk 9, 0 may 28 1997 md0 brw-rw---- 1 root disk 9, 1 may 28 1997 md1 brw-rw---- 1 root disk 9, 2 may 28 1997 md2 brw-rw---- 1 root disk 9, 3 may 28 1997 md3
Lo primero que hay que intentar beneficiar es la velocidad del swap y para ello hay que utilizar un metadisco peque�o en el RAID, o repartir el swap de la manera tradicional entre todos los discos f�sicos. Si se ponen varias particiones de swap, cada una sobre un disco distinto, entonces el propio sistema de swap de Linux hace el reparto de la carga entre todas, por lo que es innecesario el RAID en este caso.
|
Existen otros tipos de RAID mixtos basados en el RAID 1 y alg�n otro tipo de RAID. Tambi�n existen algunas tentativas de hacer discos que utilicen compresi�n. Existe bastante pol�mica porque no est� clara su utilidad. Seguramente seguir�n otras propuestas en el futuro. Por el momento nos vamos a centrar en el RAID0 que desde el punto de vista de eficiencia es el m�s interesante, aunque no tiene redundancia para protecci�n contra errores. Cuando el RAID est� fomado por pocos discos (tres o cuatro) la redundancia tiene un costo excesivo (pierde un tercio o un cuarto de capacidad). La redundancia en un RAID nos protege contra errores de los discos, pero no de un borrado accidental de la informaci�n, por lo que tener un RAID redundante y no nos evita el tener que hacer copias de seguridad. Por contra, si se utiliza un n�mero elevado de discos superior a cinco por ejemplo el desperdicio de espacio es menor. Algunas tarjetas SCSI de 16 bits admiten hasta 15 dispositivos. En estos casos un RAID5 ser�a muy conveniente.
Si no se puede trabajar con discos id�nticos tenga en cuenta que los dispositivos RAID trabajan siempre con bloques de informaci�n id�nticos. Es posible que los discos lentos trabajen por ello algo m�s aunque la mejora de rendimiento est� asegurada. El aumento de rendimiento en un RAID correctamente configurado es muy espectacular. Casi se puede decir que se multiplica la velocidad por el n�mero de discos montados en el RAID.
A continuaci�n describimos c�mo instalar un RAID0. Si desea montar un RAID distinto de RAID0 en un kernel 2.0.xx, hay que conseguir un parche.
El RAID0 no tiene redundancia pero hay que pensar que para tener redundancia conviene tener un numero de discos elevado para no desperdiciar espacio en disco. Gastar todo un disco cuando tenemos tres es un despilfarro. Adem�s esto no cubre todos los casos de perdida de informaci�n sino s�lo los fallos por deterioro f�sico de un disco, lo cual no es muy frecuente. Por el contrario si tenemos 10 discos, gastar uno para el control de paridad no resulta demasiado desperdicio. En un RAID0 se perder� toda la informaci�n en caso de fallo de cualquiera de los discos que lo componen por lo cual una adecuada pol�tica de copias de seguridad resulta especialmente recomendable.
Lo primero ser� incluir los drivers en el kernel. Para Linux 2.0.xx RAID las opciones ser�n:
Multiple devices driver support (CONFIG_BLK_DEV_MD) [Y/n/?] Y Linear (append) mode (CONFIG_MD_LINEAR) [Y/m/n/?] Y RAID-0 (striping) mode (CONFIG_MD_STRIPED) [Y/m/n/?] Y
Despu�s de arrancar con el nuevo kernel aparecer� en /proc una entrada mdstat que contiene la informaci�n de los cuatro (cuatro es el valor por defecto) dispositivos nuevos creados como md0, md1, md2, md3. Como no hemos inicializado ninguno aparecer�n todos como inactivos y aun no los podemos usar.
Para gestionarlos existen unas utilidades. 'mdutils'-mdadd -mdrun -mdstop -mdop
Puede obtenerlas en:sweet-smoke.ufr-info-p7.ibp.fr /pub/Linux, pero suelen estar incluidas en todas las distribuciones.
Para versiones del n�cleo superiores a la 2.1.62 existe otro paquete distinto llamado 'RAIDtools' que permiten usar RAID0, RAID4 o RAID5.
En el ejemplo que sigue ilustramos como definir un metadisco RAID0 que usar� dos discos duros. Concretamente /dev/sdb1 y /dev/sdc1.
meta-device | RAID Mode | Disk Partition 1 | Disk Partition 1 |
---|---|---|---|
/dev/md0 | linear | /dev/sdb1 | /dev/sdc1 |
Se puede incluir mayor n�mero de particiones.
Una vez formateado el metadisco no se debe alterar este registro ya que podr�a perderse toda la informaci�n.
mdadd -a mdrun -a
Ahora deber�a aparecer inicializado el md0. Para formatearlo:
mke2fs /dev/md0
Y montarlo.
mkdir /mount/md0 mount /dev/md0 /mount/md0
Si todo ha funcionado correctamente, podemos incluir estas ordenes en los scripts de arranque para que la pr�xima vez que arranquemos el ordenador se monte autom�ticamente el RAID0. Para ello, a�adiremos una entrada en /etc/fstab para montar el metadisco durante el arranque pero tambi�n habr� que incluir 'mdadd -a' y 'mdrun -a' en un fichero que se ejecute antes de que se intente realizar el montado. Si nuestra distribuci�n es Debian, un buen lugar incluir estas ordenes es /etc/init.d/checkroot.sh justo antes de remontar en modo lectura/escritura el sistema de ficheros ra�z, esto es, justo antes de la l�nea: "mount -n -o remount,rw /"
Se describe a continuaci�n la configuraci�n que yo estoy usando. Tengo un disco IDE de 6.3 Gb, uno SCSI de 4.2Gb, y otro de 2Gb.
HD 6.3Gb IDE/ | /bigTemp + /incoming | swap | 2Gb(RAID) hda4 |
C: | D: | swap | 2Gb(RAID) sda4 |
swap | 2Gb(RAID) sdb2 |
#######</etc/fstab>################################################ # <file system> <mount point> <type> <options> <dump> <pass> /dev/hda1 / ext2 defaults 0 1 /dev/hda2 /mnt/hda2 ext2 defaults 0 2 /dev/md0 /mnt/md0 ext2 defaults 0 2 proc /proc proc defaults 0 2 /dev/hda3 none swap sw,pri=10 /dev/sdb1 none swap sw,pri=10 /dev/sda3 none swap sw,pri=10
#########</etc/mdtab>####################################### # <meta-device> <RAID-mode> <DskPart1> <DskPart1> <DskPart1> /dev/md0 RAID0,8k /dev/hda4 /dev/sda4 /dev/sdb2
En el disco de 6Gb est� la partici�n del sistema de ficheros ra�z en hda1 y luego una gran partici�n que se usa para descarga de Internet almacenamiento de im�genes de CD's etc. No representa tampoco mucha carga porque se usa poco. El disco de 4Gb tampoco tiene particiones que puedan estorbar gran cosa al RAID porque son particiones de msdos que apenas se usan desde Linux. El disco de 2G est� casi totalmente dedicado al RAID. Se reserva un peque�o espacio en cada uno de los discos que se utilizar� como swap.
Hay que procurar que todos los discos (particiones) que forman el RAID tengan m�s o menos el mismo tama�o pues diferencias de tama�o perjudican el rendimiento del RAID. Diferencias peque�as no son significativas. Se aprovecha todo el espacio as� que toda la informaci�n que puede ser entrelazada entre distintos discos quedar� entrelazada y la restante quedar� sin entrelazar.
Montar en un mismo RAID varios discos IDE es poco eficiente, pero un disco IDE junto con varios SCSI funciona bastante bien. Los discos IDE no permiten accesos concurrentes, pero s� los discos SCSI.
Texto original en Castellano.
Revisado por
Javier Molero.
P�ginas web mantenidas por Miguel �ngel Sep�lveda & Ismael Ripoll © Antonio Castro 1998 LinuxFocus 1998 |