Edición de «RAID y LVM en Linux»

Saltar a: navegación, buscar

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición en estas condiciones. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.
Revisión actual Tu texto
Línea 1: Línea 1:
{| class="wikitable" align="right" cellpadding="4"
 
|+ '''Sobre este documento'''
 
|-
 
| bgcolor="#ddf"|'''Tipo''' || Manual (How To)
 
|-
 
| bgcolor="#ddf"|'''Categoria''' || [[:Categoría:Linux|Linux]]
 
|-
 
| bgcolor="#ddf"|'''Plataforma''' || All GNU/Linux
 
|-
 
| bgcolor="#ddf"|'''Dificultad''' || [[Imagen:Micro_tux.png|Tux]][[Imagen:Micro_tux.png|Tux]][[Imagen:Micro_tux.png|Tux]][[Imagen:Micro_tux.png|Tux]]
 
|-
 
|}
 
 
En esta guía vamos a explicar como configurar un [http://es.wikipedia.org/wiki/RAID RAID] y un [http://es.wikipedia.org/wiki/LVM LVM] para un sistema GNU/Linux.
 
En esta guía vamos a explicar como configurar un [http://es.wikipedia.org/wiki/RAID RAID] y un [http://es.wikipedia.org/wiki/LVM LVM] para un sistema GNU/Linux.
 
Partiendo de dos discos duros montaremos el siguiente sistema:
 
Partiendo de dos discos duros montaremos el siguiente sistema:
Línea 29: Línea 17:
 
  /dev/sdb2 /media/hdc2    jfs    45GB  ---> LVM
 
  /dev/sdb2 /media/hdc2    jfs    45GB  ---> LVM
  
El primer disco (sda) lo tenemos dividido en 4 particiones: raiz, swap, una para el RAID (/media/hda3) y el espacio restante para añadir al LVM (/media/hda4).
+
El primer disco (sda) lo tenemos dividido en 4 particiones: raiz, swap, una para el RAID (/media/hda3) y el espacio restante para añadir al LVM (/media/hda4)
EL segundo disco (sdb) está dividido en dos particiones, la primera (media/hdc1) será el otro disco del RAID y el espacio restante (/media/hdc2) lo uniremos al LVM.
+
EL segundo disco (sdb) esta dividido en dos particiones, la primera (media/hdc1) sera el otro disco del RAID y el espacio restante (/media/hdc2) lo uniremos al LVM
  
 
----
 
----
Línea 44: Línea 32:
 
  sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb1
 
  sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb1
  
'''''--create /dev/md0''' será el nombre del RAID que estamos creando''
+
'''''--create /dev/md0''' sera el nombre del RAID que estamos creando''
  
'''''--level=1''' le indicamos qué tipo de RAID estamos creando, en este caso RAID1''
+
'''''--level=1''' le indicamos que tipo de RAID estamos creando, en este caso RAID1''
  
'''''--raid-devices=2''' el número de dispositivos que forman el RAID''
+
'''''--raid-devices=2''' el numero de dispositivos que forman el RAID''
  
 
'''''/dev/sda3 /dev/sdb1...''' la lista de dispositivos que forma parte del RAID''
 
'''''/dev/sda3 /dev/sdb1...''' la lista de dispositivos que forma parte del RAID''
Línea 107: Línea 95:
 
  vgextend lvm /dev/dispositivo_a_añadir
 
  vgextend lvm /dev/dispositivo_a_añadir
  
Por (pen)último repartimos este espacio según nuestras necesidades, por ejemplo aumentamos el tamaño de /media/Datos en 20GB procedentes del dispositivo que acabamos de añadir
+
Por ultimo repartimos este espacio según nuestras necesidades, por ejemplo aumentamos el tamaño de /media/Datos en 20GB procedentes del dispositivo que acabamos de añadir
  lvextend -L+20G /dev/lvm/Datos /dev/dispositivo_a_añadir
+
  lvextend -L20G /dev/lvm/Datos /dev/dispositivo_a_añadir
 
 
Finalmente, después de haber extendido el volumen lógico es necesario aumentar el tamaño del sistema de ficheros, para que todo encaje. Este procedimiento será distinto en funcion del sistema de ficheros que usemos. En el ejemplo siguiente, se hace lo necesario para JFS:
 
mount -o remount,resize /media/datos
 
 
 
----
 
 
 
== RAID1 en un sistema ya instalado ==
 
Este apartado te servirá para convertir un sistema instalado en un solo disco en un RAID1.
 
Tendrá tanto el directorio / como la swap en espejo, por lo que si falla uno de los discos el sistema seguirá funcionando sin problemas.
 
 
 
Está realizado a partir de [http://www.howtoforge.com/software-raid1-grub-boot-debian-etch este manual (en inglés)]
 
 
 
Tenemos un sistema ya instalado con ''/dev/sda1'' para / y ''/dev/sda2'' para swap. En el otro disco creamos dos particiones, ''/dev/sdb1'' del mismo tamaño que ''/dev/sda1'' y ''/dev/sdb2'' para swap del mismo tamaño que ''/dev/sda2'' y marcamos las dos particiones creadas con el flag de RAID (fd).
 
 
 
Creamos dos dispositivos de RAID para el sistema de archivos y para la swap. Estos RAID los crearemos en modo degradado (con un solo disco), ya que de momento solo añadiremos al RAID los discos que hemos formateado, por lo que las entradas que corresponden al disco /dev/sda las dejamos en ''missing''
 
sudo mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
 
sudo mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2
 
 
 
Ahora formateamos los RAID que acabamos de crear:
 
sudo mkfs.jfs /dev/md0
 
sudo mkswap /dev/md1
 
 
 
Tenemos que modificar el fichero ''/etc/mdadm/mdadm.conf'' para lo que ejecutamos
 
mdadm --examine --scan
 
 
 
Que nos devuelve información de nuestro RAID:
 
 
 
...
 
ARRAY /dev/md0 level=raid1 num-devices=2 UUI...
 
ARRAY /dev/md1 level=raid1 num-devices=2 UUI...
 
 
 
Las líneas anteriores las deberemos añadir al final del fichero mdadm.conf
 
sudo gedit /etc/mdadm/mdadm.conf
 
 
 
Y los montamos después de crear el punto de montaje:
 
sudo mkdir /mnt/md0
 
sudo mkdir /mnt/md1
 
 
 
sudo mount /dev/md0 /mnt/md0
 
sudo mount /dev/md1 /mnt/md1
 
 
 
Ahora modificamos el archivo ''/etc/fstab'' para que nos monte estas particiones como RAIZ y SWAP.
 
Cambiamos estas líneas:
 
/dev/sda1    /              jfs        defaults,errors=remount-ro    0      1
 
/dev/sda2    none            swap        sw                      0      0
 
 
 
Por estas:
 
/dev/md0    /              jfs        defaults,errors=remount-ro    0      1
 
/dev/md1    none            swap        sw                      0      0
 
 
 
 
 
También tenemos que modificar el fichero ''/etc/mtab'', hacemos lo mismo, sustituimos dentro del fichero ''/dev/sda1'' por ''/dev/md0''
 
 
 
Editamos el menu del grub para que arranque el sistema desde la partición RAID:
 
sudo gedit /boot/grub/menu.lst
 
 
 
Tenemos que duplicar las lineas que nos indica de donde arrancar
 
title        Ubuntu 8.04, kernel 2.6.24-17-generic
 
root        (hd0,0)
 
kernel        /boot/vmlinuz-2.6.24-17-generic root=/dev/sda1 ro quiet splash
 
initrd        /boot/initrd.img-2.6.24-17-generic
 
quiet
 
 
 
Y modificamos el primero para que apunte a ''/dev/md0'' en el disco ''(hd1,0)''.
 
El segundo lo dejamos apuntando a nuestra particion raiz actual por si no arranca correctamente desde ''/dev/md0''
 
title        Ubuntu 8.04, kernel 2.6.24-17-generic
 
root        '''(hd1,0)'''
 
kernel        /boot/vmlinuz-2.6.24-17-generic root='''/dev/md0''' ro quiet splash
 
initrd        /boot/initrd.img-2.6.24-17-generic
 
quiet
 
 
title        Ubuntu 8.04, kernel 2.6.24-17-generic
 
root        (hd0,0)
 
kernel        /boot/vmlinuz-2.6.24-17-generic root=/dev/sda1 ro quiet splash
 
initrd        /boot/initrd.img-2.6.24-17-generic
 
quiet
 
 
 
Ahora actualizamos el ramdisk:
 
sudo update-initramfs -u
 
 
 
Ya solo nos quedaria copiar todos los datos de / a la nueva particion desde la que va a arrancar ahora:
 
sudo cp -dpRx / /mnt/md0
 
 
 
Tenemos que configurar correctamente grub en los dos discos:
 
sudo grub
 
 
 
grub> root (hd1,0)
 
grub> setup (hd1)
 
 
grub> root (hd0,0)
 
grub> setup (hd0)
 
 
 
Ahora reiniciamos la maquina y arrancara desde el RAID, que esta funcionando en modo degradado ya que solo dispone de un disco.
 
Lo podemos ver con el siguiente comando, la particion ''/dev/md0'' debe estar montada en /
 
df -h
 
 
 
Ahora que hemos conseguido arrancar el sistema desde el segundo disco es hora de preparar las particiones del primer disco para añadirlo al RAID. Ponemos el flag de RAID (fd) a las particiones ''/dev/sda1'' y ''/dev/sda2'' y podemos añadir ''/dev/sda1'' y ''/dev/sda2'' a su RAID correspondiente
 
sudo mdadm --add /dev/md0 /dev/sda1
 
sudo mdadm --add /dev/md1 /dev/sda2
 
 
 
Si compruebas ahora el fichero ''/proc/mdstat'' veras que se esta sincronizando el RAID, hay que esperar hasta que finalice:
 
more /proc/mdstat
 
 
 
Personalities : [raid1]
 
md2 : active raid1 sda1[2] sdb1[1]
 
      8702093 blocks [2/1] [_U]
 
      [=====>...............]  recovery = 37.3% (3245881/8702093) finish=2.4min speed=67433K/sec
 
 
md1 : active raid1 sda2[0] sdb2[1]
 
      197920 blocks [2/2] [UU]
 
 
 
Ahora ya lo tenemos correctamente sincronizado:
 
Personalities : [raid1]
 
md2 : active raid1 sda1[0] sdb1[1]
 
      8702093 blocks [2/2] [UU]
 
 
md1 : active raid1 sda2[0] sdb2[1]
 
      197920 blocks [2/2] [UU]
 
 
 
 
 
Volvemos a modificar el fichero ''/etc/mdadm/mdadm.conf'', tenemos que eliminar las lineas que habiamos añadido antes y sustituirlas por las que nos devuelve ahora la ejecucion del comando:
 
sudo mdadm --examine --scan
 
 
 
...
 
ARRAY /dev/md0 level=raid1 num-devices=2 UUI...
 
ARRAY /dev/md1 level=raid1 num-devices=2 UUI...
 
 
 
Debemos modificar de nuevo el grub para que la entrada que apunta todavia a ''/dev/sda1'' apunte a ''/dev/md0'' en el disco ''(hd0,0)''
 
sudo gedit /boot/grub/menu.lst
 
 
 
title        Ubuntu 8.04, kernel 2.6.24-17-generic
 
root        (hd1,0)
 
kernel        /boot/vmlinuz-2.6.24-17-generic root=/dev/md0 ro quiet splash
 
initrd        /boot/initrd.img-2.6.24-17-generic
 
quiet
 
 
title        Ubuntu 8.04, kernel 2.6.24-17-generic
 
root        (hd0,0)
 
kernel        /boot/vmlinuz-2.6.24-17-generic root=''/dev/md0'' ro quiet splash
 
initrd        /boot/initrd.img-2.6.24-17-generic
 
quiet
 
 
 
Con esto el sistema arrancara por defecto desde el disco hd1 y en el caso de que este disco falle deberemos indicarle manuelmente que arranque desde la otra particion.
 
Para que el sistema arranque automaticamente desde el segundo disco si falla el primero debemos añadir '''fallback''' justo debajo de '''default''' en el fichero ''/boot/grub/menu.lst''
 
...
 
default        0
 
fallback        1
 
...
 
 
 
O sea, que arranque por defecto de la entrada 0 (la primera del listado) y en caso de error que arranque de la entrada 1 (la segunda del listado).
 
 
 
Tambien hay que modificar la linea que aparece como kopt:
 
# kopt=root=/dev/md0 ro
 
 
 
Esta linea aparece comentada, no hay que descomentarla, al cargar grub la ignora, pero es necesaria para generar la configuracion de grub.
 
''NOTA: En esta misma linea podrias pasar parametros adicionales al kernel, por ejemplo: (# kopt=root=/dev/md0 ro noapic)''
 
 
 
Volvemos a actualizar el ramdisk:
 
sudo update-initramfs -u
 
 
 
Y finalmente reiniciamos:
 
sudo reboot
 
 
 
=== Comprobación Final ===
 
Ahora el sistema debe ser capaz de arrancar desde cualquiera de los dos discos aunque falle uno de ellos, puedes hacer pruebas desconectando uno de los discos para ver si todo sigue funcionando correctamente.
 
Si no quieres abrir el ordenador puedes simular un fallo de discos:
 
 
 
sudo mdadm --manage /dev/md0 --fail /dev/sdb1
 
sudo mdadm --manage /dev/md0 --remove /dev/sdb1
 
 
 
Reinicias y ahora el equipo debera arrancar con el RAID en modo degradado.
 
  
 
[[Categoría:Linux]]
 
[[Categoría:Linux]]
 
[[Categoría:Docs]]
 
[[Categoría:Docs]]

Ten en cuenta que todas las contribuciones a Wiki de BandaAncha.eu se consideran publicadas bajo la Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 (véase Wiki de BandaAncha.eu:Derechos de autor para más información). Si no deseas que las modifiquen sin limitaciones y las distribuyan libremente, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre. ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar | Ayuda de edición (se abre en una ventana nueva)