Hola a todos. Esta vez, y sin que sirva de precedente, mando un mensaje a la lista dando algo en lugar de ir pidiendo.
He estado montando un sistema RAID 1 �ltimamente, y como ni es algo que sea precisamente intuitivo, he escrito unas l�neas contando como lo he hecho yo. Por supuesto, se admiten todo tipo de sugerencias, cr�ticas, comentarios... Espero que le sirva de ayuda a alguien. -- Un Saludo Han Solo The Rebel Alliance Conecto, luego existo. Desconecto, luego insisto. Soy usuario de infobirria+ P.D. La firma no es m�a, sino de uno que trabajaba, precisamente, en M$. Vivir para ver.
Receta r�pida para montar un sistema RAID 1 en Linux. Han Solo <[EMAIL PROTECTED]> 1.- Descargo y licencia. Lo habitual en estos casos, yo no garantizo nada, no me responsabilizo de lo que pueda estropearse si haces caso de este documento, no tiene porqu� funcionar en tu sistema y lo �nico que pudo decir es que a mi me ha funcionado. Este documento se distribuye bajo licencia GLP y todas esas cosas que ya sab�is; es decir, lo pod�is copiar, manipular, traducir... pero ser�a un detalle que me mandarar�is una copia. 2.- Consideraciones previas. RAID es una cosa muy delicada, NO ES PARA NOVATOS. El hecho de tener una sistema RAID 1 no libera de hacer copias de seguridad, sino todo lo contrario. La redundancia funciona bien contra fallos f�sicos del disco duro mientras est� funcionando, pero puedes perderlo todo si se va la luz (aunque en honor a la verdad, a m� me pas� esto el otro d�a y luego el sistema se recuper� bien). No queda muy claro la utilidad de montar un sistema RAID 1 con discos ide, ya que no permiten una acceso simult�neo como los SCSI. En cualquier caso, si os decid�s a montar un RAID 1 con discos ide, hacedlo en canales diferentes, con cables diferentes. No merece la pena montar todo el sistema en RAID. Primero porque lilo/loadlin no son capaces tal como vienen de arrancar desde un dispositivo RAID, y hay que andar parche�ndolos. Segundo porque si el RAID falla, no se podr� acceder a las herramientas para recuperarlo. Yo tengo montado un servidor y tengo en RAID los directorios /var y /home, que son los que tienen m�s accesos en lectura (bases de datos, p�ginas web, ficheros personales...) Directorios como /usr no conviene tenerlos en RAID, pero una buena pol�tica es tenerlos duplicados. As�, si un disco duro falla, se puede arrancar desde el otro. Si se hacen copias de un disco en el otro (como copias, no como RAID, v�a cron, por ejemplo, tendremos adem�s una copia de seguridad de todo el sistema. 2.- Elementos necesarios Yo he montado mi sistema RAID bajo una Debian Potato (versi�n "unstable" en el momento de describir esto), pero todo lo dicho aqu� debe servir sin mayores problemas para otras versiones de Debian o de otras distribuciones de Linux. Las utilidades RAID tradicionales necesitan un kernel superior al 2.1.61 (creo), as� que es recomendable pasarse a la serie 2.2.x (no s�lo por el RAID). De todas formas, las raidutils est�n condenadas a desaparecer, en favor de las raidutils2, mas sencillas. Yo he configurado mi sistema RAID con est�s �ltimas, y no tiene mayor dificultad. Las raidutils2 necesitan ciertos parches para en kernel. En el momento de escribir esto el paquete Debian que tengo instalado es raidtools2_0.90.990824-2.deb y los parches kernel-patch_2.2.10-2.deb. Los parches son para el kernel 2.2.10, pero he comprobado que no vienen incluidos en el kernel 2.2.11. Supongo que con esos parches se pueden retocar kernels superiores, pero no le he probado. La instalaci�n de estos parches es imprescindible, ya que durante la instalaci�n del paquete copmproeba si est�n incluidos en el kernel, y si no los encuentra no se instala. Estos parches se pueden bajar de ftp://ftp.kernel.org/pub/linux/daemons/raid/alpha 3.- Configuraci�n Lo primero que tenemos que hacer es recompilar el kernel para tener "soporte" para RAID. Acord�os de parchear las fuentes. Yo he compilado todo lo referente al RAID dentro del kernel, pero supongo que no habr� problema en hacerlo como m�dulos (lo probar� uno de estos d�as). Una vez que hayamos decidido como vamos a organizar el raid, lo primero que tenemos que hacer es crear los dispositivos RAID. Estos dispositivos reciben el nombre de /dev/mdX, y son los que luego montaremos como si de particiones se tratara. Para definir estos dispositivos, debemos crear un fichero de configuraci�n. Por defecto las utilidades buscan este fichero en /etc/raidtab, pero puede estar en otro sitio. Yo tengo un enlace a /etc/raid/raid1.conf, que es un fichero con el siguiente contenido: # Sample raid-1 configuration # Primer dispositivo RAID, en principio para /var raiddev /dev/md0 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 4 device /dev/sda4 raid-disk 0 device /dev/sdb4 raid-disk 1 # Segundo dispositivo RAID, en principio para /home raiddev /dev/md1 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 4 device /dev/sda2 raid-disk 0 device /dev/sdb2 raid-disk 1 # Alea jacta est... De esta forma, quedan definidas qu� particiones formar�n parte de cada uno de los dos dispositivos raid, /dev/md0 y /dev/md1. La tabla de particiones es la siguiente: # fdisk /dev/sda The number of cylinders for this disk is set to 1106. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/sda: 255 heads, 63 sectors, 1106 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 319 2562336 83 Linux /dev/sda2 320 638 2562367+ 83 Linux /dev/sda3 639 654 128520 82 Linux swap /dev/sda4 655 1106 3630690 83 Linux La del disco sdb es id�ntica, salvo que sdb1 no es arrancable. Se pueden tener distintos ficheros de configuraci�n para distintos dispositivos RAID, o para distintos niveles, pero esto nos obligar� a decirle en cada comando qu� fichero de configuraci�n usar. Yo prefiero definir todos los dispositivos RAID en el mismo fichero de configuraci�n, pero como siempre, para gustos se inventaron los colores. Una ver que tenemos definido el fichero de configuraci�n, procedemos a crear los dispositivos RAID con la orden: # mkraid /dev/md0 # mkraid /dev/md1 o bien: # mkraid -c /etc/raid/raid1.conf /dev/md0 # mkraid -c /etc/raid/raid1.conf /dev/md1 Las particiones que formar�n parte de un dispositivo RAID deben estar desmontadas, a ser posible vac�as y mejor si ni siquiera tienen formato. mkraid es extremadamente cuidadoso, y si encuentra datos en las particiones que deben formar parte de un dispositivo RAID protestar� lastimosamente. Si tenemos datos en esas particiones pero no nos importa perderlos, podemos forzarlo a que los sobreescriba con # mkraid --force /dev/md0 Estos destruir� permanentemente todos los datos de las particiones implicadas. Tras crear los dispositivos hay que activarlos. Ahora me entra la duda si la activaci�n la hace autom�ticamente al crearlos dispositivos o hay que hacerla a mano. De todas formas la orden es: # raidstart /dev/md0 # raidstart /dev/md1 Para ver los dispositivos que est�n activos: ~# cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid5] [translucent] read_ahead 1024 sectors md1 : active raid1 sdb2[1] sda2[0] 2562240 blocks [2/2] [UU] md0 : active raid1 sdb4[1] sda4[0] 3630592 blocks [2/2] [UU] unused devices: <none> Una vez creados y activados los dispositivos, hay que formatearlos, pero esto no tiene ning�n secreto, se hace como en cualquier partici�n: # mk2efs /dev/md0 # mk2efs /dev/md1 Por �ltimo, solo queda montarlos, bien a mano, bien mediante el fichero /etc/fstab. En mi caso: # cat /etc/fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> /dev/sda1 / ext2 defaults,errors=remount-ro 0 1 /dev/sda3 none swap sw 0 0 /dev/sdb3 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto defaults,user,noauto 0 0 /dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0 /dev/md0 /var ext2 defaults 0 2 /dev/md1 /home ext2 defaults 0 2 4.- Mantenimiento No voy a extenderme mucho aqu� sobre el tema del mantenimiento de un sistema RAID, leeos la documentaci�n que es bastante clara en ese sentido. Lo m�s importante que hay que saber es que para cualquier operaci�n de mantenimiento del sistema, no s�lo hay que desmontar los dispositivos que estuvieran montados, sino que adem�s hay que desactivarlos con: ~# raidstop /dev/md0 5.- Reinicio del sistema. Si hab�is seguido lo dicho, la pr�xima vez que reinici�is el sistema los dispositivos raid se inicializar�n autom�ticamente. El propio kernel detecta los dispositivos RAID disponibles y los activa, y si es necesario los chequea. Os adjunto un extracto de los mensajes que da al iniciar: [...] md driver 0.90.0 MAX_MD_DEVS=256, MAX_REAL=12 translucent personality registered linear personality registered raid0 personality registered raid1 personality registered raid5 personality registered raid5: measuring checksumming speed raid5: MMX detected, trying high-speed MMX checksum routines pII_mmx : 883.158 MB/sec p5_mmx : 947.928 MB/sec 8regs : 695.706 MB/sec 32regs : 400.431 MB/sec using fastest function: p5_mmx (947.928 MB/sec) (scsi0) <Adaptec AHA-294X Ultra2 SCSI host adapter> found at PCI 10/0 (scsi0) Wide Channel, SCSI ID=7, 32/255 SCBs (scsi0) Downloading sequencer code... 374 instructions downloaded scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.1.17/3.2.4 <Adaptec AHA-294X Ultra2 SCSI host adapter> scsi : 1 host. (scsi0:0:0:0) Synchronous at 80.0 Mbyte/sec, offset 15. Vendor: SEAGATE Model: ST39175LW Rev: 0001 Type: Direct-Access ANSI SCSI revision: 02 Detected scsi disk sda at scsi0, channel 0, id 0, lun 0 (scsi0:0:1:0) Synchronous at 80.0 Mbyte/sec, offset 15. Vendor: SEAGATE Model: ST39175LW Rev: 0001 Type: Direct-Access ANSI SCSI revision: 02 Detected scsi disk sdb at scsi0, channel 0, id 1, lun 0 (scsi0:0:3:0) Synchronous at 20.0 Mbyte/sec, offset 15. Vendor: PLEXTOR Model: CD-ROM PX-40TS Rev: 1.01 Type: CD-ROM ANSI SCSI revision: 02 scsi : detected 2 SCSI disks total. SCSI device sda: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB] SCSI device sdb: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB] [...] Partition check: sda: sda1 sda2 sda3 sda4 sdb: sdb1 sdb2 sdb3 sdb4 md.c: sizeof(mdp_super_t) = 4096 autodetecting RAID arrays autorun ... ... autorun DONE. VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 68k freed Adding Swap: 128516k swap-space (priority -1) Adding Swap: 128516k swap-space (priority -2) (read) sda4's sb offset: 3630592 [events: 00000019] (read) sdb4's sb offset: 3630592 [events: 00000019] autorun ... considering sdb4 ... adding sdb4 ... adding sda4 ... created md0 bind<sda4,1> bind<sdb4,2> running: <sdb4><sda4> now! sdb4's event counter: 00000019 sda4's event counter: 00000019 md0: max total readahead window set to 128k md0: 1 data-disks, max readahead per data-disk: 128k raid1: device sdb4 operational as mirror 1 raid1: device sda4 operational as mirror 0 (checking disk 0) (really checking disk 0) (checking disk 1) (really checking disk 1) (checking disk 2) (checking disk 3) (checking disk 4) (checking disk 5) (checking disk 6) (checking disk 7) (checking disk 8) (checking disk 9) (checking disk 10) (checking disk 11) raid1: raid set md0 active with 2 out of 2 mirrors md: updating md0 RAID superblock on device sdb4 [events: 0000001a](write) sdb4's sb offset: 3630592 sda4 [events: 0000001a](write) sda4's sb offset: 3630592 . ... autorun DONE. (read) sda2's sb offset: 2562240 [events: 0000001b] (read) sdb2's sb offset: 2562240 [events: 0000001b] autorun ... considering sdb2 ... adding sdb2 ... adding sda2 ... created md1 bind<sda2,1> bind<sdb2,2> running: <sdb2><sda2> now! sdb2's event counter: 0000001b sda2's event counter: 0000001b md1: max total readahead window set to 128k md1: 1 data-disks, max readahead per data-disk: 128k raid1: device sdb2 operational as mirror 1 raid1: device sda2 operational as mirror 0 (checking disk 0) (really checking disk 0) (checking disk 1) (really checking disk 1) (checking disk 2) (checking disk 3) (checking disk 4) (checking disk 5) (checking disk 6) (checking disk 7) (checking disk 8) (checking disk 9) (checking disk 10) (checking disk 11) raid1: raid set md1 active with 2 out of 2 mirrors md: updating md1 RAID superblock on device sdb2 [events: 0000001c](write) sdb2's sb offset: 2562240 sda2 [events: 0000001c](write) sda2's sb offset: 2562240 . ... autorun DONE. Los paquetes que yo tengo instalados (por si a alguien le interesa): # dpkg -l *raid* Desired=Unknown/Install/Remove/Purge | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-===============-==============-============================================ ii kernel-patch-2. 2.2.10-2 Drivers for 'new-style' RAID arrays rc raidtools 0.42-19 Utilities to support 'old-style' RAID disks ii raidtools2 0.90.990824-2 Utilities to support 'new-style' RAID disks 6.- Referencias Todo lo dicho aqu� es un extracto del Software-RAID HOWTO de Jakob OEstergaard ([EMAIL PROTECTED]), que viene con el paquete raidtools2, o que est� en http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/ y del art�culo de Antonio Castro ([EMAIL PROTECTED]) en Linuxfocus, http://www.linuxfocus.org/Castellano/articles/article21.html 7.- Feedback Como dije m�s arriba, a mi todo estop me funciona, lo que no me exime de haber cometido m�ltiples errores tanto en el procedimiento (espero que no) como en la redacci�n de est�s l�neas. Toda sugerencia ser� bienvenida, as�mo toda ampliaci�n de lo expuesto aqu�, especialmente en el tema del mantenimiento, que ha quedado un tanto espartano. Para montar un RAID de otro nivel, no deber�a haber mayores problemas, pero si alguien se anima a explicar con m�s detalle como se monta un RAID 0, 4 o 5 pues mejor.

