![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Actualizar a RAID en un PC linuxActualizar a RAID en un PC linuxLas siguientes instrucciones han sido probadas en seraphim (que es un Debian GNU/Linux 3.0 "woody"). El RAID es un sistema para utilizar varios discos duros en paralelo. Aquí se explica cómo instalr software RAID-1, que es para que la información que se guarda esté duplicada en dos discos duros, de manera que si falla uno, siga funcionando, y cuando se pueda, reponer el que ha fallado y reconstruirlo automáticamente.
La información proviene fundamentalmente de este how-to Suposiciones:
Tabla de contenidos
1. Preparación hardwareHay que meter un segundo HDD en el ordenador, del mismo tipo y tamaño. Si el ordenador sólo va a tener de dispositivos IDE los discos duros, la manera de ponerlos que da mayor rendimiento es cada uno en una controladora distinta, ambos como maestros. En el caso de seraphim, se han puesto los dos en la misma controladora ya que hay una grabadora IDE instalada, y mi esperiencia me dice que es mejor porner los discos duros en controladoras diferentes de los lectores de CD-ROMs y similares (ya que con algunas combinaciones de marcas de HDD y de lectores de CD-ROMs, los dispositivos se pegan y obtienes cuelgues sin razón aparente; mejor no arriesgarse y tener algo menos de velocidad pero con una máquina estable). 2. Instalar un núcleo que soporte RAID y las utilidades correspondientes
3. Particionado del segundo HDDAtención. Esta parte es peligrosa (bueno, realmente todas lo son a partir de aquí); asegúrate de que tienes hecho un backup de los datos, no sea que algo vaya mal... Copias las particiones de un disco a otro y las configuras:
4. Creación de los volúmenes RAIDA continuación vamos a generar un volúmen raid-1 con dos elementos, diciendo que el primero está missing (será el de las particiones de /dev/hda) y el segundo es el recién particionado hdc. Más adelante ya añadiremos las de /dev/hda. Se hace a nivel de particiones, por lo que ejecutamos un "mdadm --create" para cada partición. # mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/hdc1 # mdadm --create /dev/md6 --level=1 --raid-disks=2 missing /dev/hdc6 Los números del dispositivo md no tienen por qué coincidir con los de las particiones de los discos, pero causa menos confusión si se hace así, usando el mismo número que el de la partición sobre la que se hace el raid. Nota: si eso no funciona, hay que resetear el superblock, con un "madm --zero-superblock /dev/hdc1" 5. Formatear las particiones del disco duro virgenAhora que ya tenemos las particiones metidas en el RAID, formateamos las particiones usando los dispositivos del RAID: # mkfs.ext2 /dev/md1 # mkfs.xfs /dev/md6 6. Montado temporal de las nuevas particionesPara montar las particiones que hemos metido en el raid, hacemos unos directorios en el raiz y las montamos ahí. Cuidado con equivocarse; lo hay que usar son los dispositivos raid /dev/mdX que acabamos de formatear: # cd / # mkdir /raid /raid/md1 /raid/md6 # mount -t ext2 /dev/md1 /raid/md1 # mount -t xfs /dev/md6 /raid/md6 7. Copia de datosCopiamos los datos a las nuevas particiones # cd /boot # cp -ax . /raid/md1 # cd / # cp -ax / /raid/md6 NOTA: Si hacemos modificaciones en el /dev/hdaX, podemos volver a copiar pero con un "cp -aux / /raid/md6" (por ejemplo), que sólo copia los ficheros que hayan cambiado y tardará menos... 8. Primer cambio del fstabAntes de continuar, vamos a comprobar que el driver software raid es capaz de montar las particiones en el arranque (es decir, que funciona bien). En este paso me falló el raid usando el kernel 2.4.18-bf2.4-xfs, y por eso cambié al 2.4.25, que funcionó perfectamente ;-). En /dev/hda editamos el /etc/fstab, añadiendo las líneas /dev/md1 /raid/md1 ext2 defaults 0 0 /dev/md6 /raid/md6 xfs defaults 0 0 Salvamos, salimos y hacemos un REBOOT: # shutdown -r now Una vez que arranque, comprueba con un "mount" que ha montado las particiones en /raid 9. Primer cambio del lilo y segundo cambio de fstabVamos a comprobar que es capaz de arrancar usando la nueva partición. Realmente este paso no lo hice bien, ya que no usé lo de "hacer un sólo arranque en el lilo con esta configuración", sino lo puse directamente (al fin y al cabo, si falla, siempre puedo arrancar desde disquette, que para eso me he tenido que molestar en hacer un kernel menor que 1440kB ;-). NOTA: El disquette está en mi puesto el cajón de abajo al fondo, con el nombre "Linux 2.4.25 (kernel) con raid support". Monta en /boot la partición de arranque de RAID: # umount /raid/md1 # mount -t ext2 /dev/md1 /boot Edita en /dev/hda el /etc/lilo.conf: boot=/dev/hda
image=/vmlinuz
label=RAID
read-only
root=/dev/md6
Y compruebas el lilo.conf con: # lilo -tv NOTA: No lo he probado, pero para hacerlo "de forma cautelosa", puedes hacer que los cambios sean para un sólo arranque usando "lilo -v -r" o un "lilo -v -R RAID" (no me ha quedado muy claro cuál de los dos habría que usar, parece que el primero). En mi caso, simplemente he hecho (cuidado, que si falla, necesitarás acceso físico a la máquina para arrancar desde disquette): # lilo Por último modifica en /dev/md6 el /etc/fstab para que monte como raíz y boot las particiones del RAID: /dev/md1 /boot ext2 defaults 0 0 /dev/md6 / xfs defaults 0 0 #/dev/hda1 /boot ext2 defaults 0 0 #/dev/hda6 / xfs defaults 0 0 Copiamos el lilolconf que hemos usado a la partición de RAID, y hacemos un REBOOT del ordenador (cruzando los dedos...): # cp /etc/lilo.conf /raid/md6/etc # umount /boot # shutdown -r now Y ahora tienes que esperar que arranque ;-). Si no arranca es que algo ha ido mal O:-). Compruebas con un "mount" que realmente están montados "/dev/md1 en /boot" y "/dev/md6 en /". 10. Preparar hda y meterlo en el RAIDAhora que parece que todo funciona en las particiones que hay en el RAID, es el momento de meter el antiguo disco duro en el RAID. NOTA: si todavía tienes cosas que copiar de /dev/hdaX al RAID, esta es tu última oportunidad para montar las particiones de /dev/hdaX y copiar esas cosas al RAID (recuerda que para actualizar la copia, puedes usar un "cp -aux origen destino", pero cuidado de no sobreescribir el nuevo fstab...). Primero cambiamos el tipo de las particiones para que sean del tipo de "software raid":
NOTA: Si en el fdist/cfdisk, al dar a la opción "write", sale un error diciendo que necesita reiniciar para releer las particiones, entonces reinicia antes del siguiente paso haciendo un "shutdown -r now". Añades las particiones del primer disco al volumen RAID: # mdadm --add /dev/md1 /dev/hda1 # mdadm --add /dev/md6 /dev/hda6 Ahora miras que realmente está haciendo el hotadd del hda y esperas a que termine, con un: # watch "cat /proc/mdstat" Una vez que ha terminado, sales con un control+c del watch. 11. Segundo cambio de liloAhora vamos a cambiar en el lilo el arranque para que use el RAID. Eso lo descimos poniendo el boot en una partición del raid (en este caso, en el /boot) y usando la sentencia raid-extra-boot para pedirle que haga copias de dicho sector de arranque en el MBR de ambos discos duros. Edita el lilo.conf: boot=/dev/md1
raid-extra-boot=/dev/hda,/dev/hdc
image=/vmlinuz
label=RAID
read-only
root=/dev/md6
Y ahora volverías hacer lo del "lilo -tv" para probar que el lilo está bien editado luego volver a instalar el lilo (si quieres una primera vez tempralmente con un "lilo -r" y al rearrancar hacerlo normal, o directamente hacerlo normal, con los riesgos que eso conlleva (que no son muchos tienes acceso al equipo): # lilo Y ahora otra vez rearrancar para comprobar que todo está bien: # shutdown -r now Si el ordenador arranca correctamente (y en el mount no hay nada raro), es que ya tienes RAID :-) 12. Notas finalesEl proceso seguido es bastante seguro, sobre todo si los rearranques del lilo los haces con las opciones de "-r" o "-R nombreimagen" (NOTA: ten en cuenta que yo no he usado tales opciones, o sea que no sé su alcance real). Además se puede aprovechar que se copian todos los datos para cambiar de sistema de archivos las particiones. Unos consejos:
Y esto es todo. Que disfrutes de tu nuevo sistema con RAID-1 (software raid-1; mirroring) ;-) Attachs:linux-kernel-image2.tar.bz2 |