RAID (Redundant Array of Inexpensive Disks) por software es una forma barata de obtener discos duros grandes, rápidos y seguros. Aprovechamos la potencia de la CPU para tareas que necesitarían circuitería especializada y cara.
Vamos a ver cómo instalar un RAID-1 (mirror) con dos discos que contienen exactamente lo mismo, un sistema que nos proporciona tolerancia a fallos de disco duro. Aunque falle un disco:
- no perderemos datos, ya que tenemos redundancia.
- el sistema seguirá funcionando. Mientras sobreviva un disco el sistema no se cae.
- el sistema podrá bootear, ya que arranca desde el RAID y desde cualquiera de los discos.
Recursos
- RAID COMO: unthought.net/Software-RAID.HOWTO/
- Convert System to RAID – Albers alioth.debian.org/projects/rootraiddoc
Instalar RAID
La manera más sencilla y eficaz de instalar RAID-1 es durante la instalación del Sistema Operativo. Lo haremos en el particionado:
- particionamos los dos discos con el mismo esquema de particiones, marcadas todas ellas como particiones RAID:
- seleccionamos Configurar RAID software (antes de pasar a configurar el RAID el instalador particionará los discos):
- tenemos que crear un dispositivo RAID para cada partición, incluyendo la swap (incluimos la swap para intentar evitar un cuelgue si falla un disco):
- seleccionamos el tipo de RAID, RAID1:
- le decimos que estará formado por 2 particiones:
- sin discos de reserva:
- seleccionamos la pareja de particiones correspondientes:
- y repetimos este proceso con todas las particiones. Una vez definidos todos los dispositivos RAID:
- les asignamos punto de montaje y formato:
- comprobamos que todo esté correcto:
- grabamos los cambios y listo:
- el gestor de arranque GRUB lo instalaremos en el MBR.
Nota: Error 22, Error 15
En ocasiones GRUB no se instala bien y da problemas al reiniciar. El equipo no arranca y tira un Error 22 o un Error 15. En ese caso, reiniciaremos desde el CD en Graphical Rescue Mode y probaremos la opción Reinstalar GRUB pero esta vez en:
(hd0,0)
Si esto no resuelve el problema, volveremos a reiniciar desde el CD en Graphical Rescue Mode, abriremos una terminal y editaremos con nano el archivo /boot/grub/menu.lst:
# nano /boot/grub/menu.lst
… donde reemplazaremos la línea:
root (hd1,0)
… por:
root (hd0,0)
Si esto no resuelve el problema, a googlear…
- Todavía no hemos terminado, nos falta configurar el sistema para que sea capaz de bootear desde
ambos discos. Si simulamos un fallo del segundo disco desconectándolo (con el ordenador apagado),
comprobaremos que la máquina arranca. Pero si desconectamos el primer disco veremos que no arranca,
porque en el MBR del segundo disco no hay nada. Por tanto, para que la máquina pueda bootear desde
cualquiera de los discos tenemos que instalar GRUB también en el MBR del segundo disco. Para ello:
# grub grub> device (hd0) /dev/hdd grub> root (hd0,0) grub> setup (hd0) grub> quit
En las versiones más modernas de GRUB el comando es:
# grub-install /dev/hdd
Administrar RAID
Veremos los RAIDs como si fuesen particiones normales:
# df S.archivos 1K-blocks Used Available Use% Mount /dev/md0 2885664 121800 2617280 5% / /dev/md2 2885664 32872 2706208 2% /home /dev/md3 1829037 887074 844376 52% /usr /dev/md4 918229 47973 821264 6% /var /dev/md5 1309703 8245 1231583 1% /tmp |
Para consultar el estado de los RAID ejecutaremos:
# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 hda5[0] hdd5[1] 289024 blocks [2/2] [UU] md2 : active raid1 hda6[0] hdd6[1] 2931712 blocks [2/2] [UU] md3 : active raid1 hda7[0] hdd7[1] 1951744 blocks [2/2] [UU] md4 : active raid1 hda8[0] hdd8[1] 979840 blocks [2/2] [UU] md5 : active raid1 hda9[0] hdd9[1] 1397504 blocks [2/2] [UU] md0 : active raid1 hda1[0] hdd1[1] 2931712 blocks [2/2] [UU] unused devices: none |
Si el RAID se está sincronizando veremos algo similar a:
# cat /proc/mdstat md0 : active raid1 hda1[0] hdb1[1] 1951744 blocks [2/1] [U_] [====>.....] resync = 33.1% finish=34.3min speed=59895K/sec |
Podemos monitorizar el proceso de reconstrucción con:
# watch -n1 'cat /proc/mdstat' |
Para obtener información acerca de un dispositivo md ejecutaremos:
# mdadm --query /dev/md0 /dev/md0: 146.21GiB raid1 2 devices, 0 spares. Use mdadm --detail for more detail. |
Para obtener información acerca de una partición RAID:
# mdadm --query /dev/sda1 /dev/sda1: is not an md array /dev/sda1: device 0 in 2 device active raid1 /dev/md0. Use mdadm --examine for more detail. |
Reemplazar un disco RAID dañado
Veamos cómo actuar cuando un disco del RAID falle (no lo dudes, tarde o temprano fallará). Utilizaremos las herramientas mdadm (multiple device administer, paquete mdadm), que han reemplazado a las clásicas raidtools.
- Detectaremos que un disco RAID ha fallado mirando en /proc/mdstat:
# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sda1[0] 153316224 blocks [2/1] [U_]
Aunque probablamente ya habremos recibido un email de mdadm monitoring en [email protected] con el asunto DegradedArray event on /dev/md0:
This is an automatically generated mail message from mdadm A DegradedArray event had been detected on md device /dev/md0. Faithfully yours, etc. P.S. The /proc/mdstat file currently contains the following: Personalities : [raid1] md0 : active raid1 sda1[0] 153316224 blocks [2/1] [U_]
- Apagamos el ordenador y reemplazamos el disco averiado. El nuevo disco debe tener al menos el mismo tamaño que el disco averiado, si su tamaño es inferior el proceso de reconstrucción fallará.
- Arrancamos de nuevo el sistema.
- Comprobamos los discos duros (los discos IDE se denominan hd*, mientras que los disco SATA se llaman sd*):
# fdisk -l
- Crearemos en el nuevo disco /dev/sdb exactamente las mismas particiones que en el disco activo /dev/sda. Formatearemos el nuevo disco con fdisk, marcando las particiones como fd (Linux RAID autodetect). También podemos emplear el comando:
# sfdisk -d /dev/sda | sfdisk /dev/sdb
BE EXTREMELY CAREFUL – ONE TYPING MISTAKE AND ALL YOUR DATA IS LOST
- Comprobamos si ambos discos duros tienen las mismas particiones:
# fdisk -l
- El nuevo disco no se inserta automáticamente en el RAID, ya que está marcado como erróneo. Insertaremos la partición /dev/sdb1 en el dispositivo /dev/md0 ejecutando:
# mdadm --manage /dev/md0 --add /dev/sdb1
- A continuación comenzará la reconstrucción del RAID /dev/md0 y se sincronizarán /dev/sda1 y /dev/sdb1. Lo comprobaremos con:
# cat /proc/mdstat md0 : active raid1 hda1[0] hdb1[1] 1951744 blocks [2/1] [U_] [====>.....] resync = 33.1% finish=34.3min speed=59895K/sec
Podemos monitorizar el proceso de reconstrucción con:
# watch -n1 'cat /proc/mdstat'
- Todavía no hemos terminado, nos falta configurar el sistema para que sea capaz de bootear también desde el nuevo disco. Para que la máquina pueda bootear desde el nuevo disco tenemos que instalar GRUB en su MBR. Para ello, una vez haya terminado el proceso de reconstrucción ejecutaremos:
# grub grub> device (hd0) /dev/hdb grub> root (hd0,0) grub> setup (hd0) grub> quit
Hola, muy interesante voy a probarlo en un server dell por que tengo problemas de boot con el GRUB. gracias
Deberias de usar RAID 5 o RAIFD 10. Son mejores que RAID 1 y RAID 0.
Mi experiencia con un RAID 1 de 3 discos fue negativa. Tuve falla fisica en dos de los tres discos y perdi el acceso a los datos…
No fue hasta que llame a una empresa de recuperaciones experta en RAID llamada ONRETRIEVAL en donde me recuperaron la informacion, no sin antes tener que haber desembosado una plata importante por el servicio. Pero no tenia opcion ya que si estas empresas no pueden recuperar, nadie podra. Y mi informacion lo valia.
De ahora en mas uso un RAID 10 desde hace 4 años. Y tengo implementado un BACKUP externo a traves de una caja de discos externa de 5 discos, la Lian-Li EX-50 en donde llevo el respaldo casi diario…
Saludos.
Hola, trato de hacer lo que indicas sobre instalar el grub en el segundo disco y cuando coloco el comando “device (hd0) /dev/hdd” dice error 15 File not Found
Excelente guia, me ha servidor mucho, gracias.
Esta muy bueno, ya lo he probado en varios equipos… Gracias..