Software raid 1 en slackware 9.1

13/09/2006 - 10:22
Buenas, les dejo esta miniguia que escribi,espero q sea entendible.

Haciendo click en more la pueden ver, y descargar en formato word.


Salutess

Software Raid en Slackware 9.1 ( Vectorlinux 4.3 )

En este texto vamos a ver como crear un raid1 (espejado) con dos discos IDE. Lo recomendado es utilizar dos discos iguales, pero se puede usar dos discos de distinto tamaño.

Primero los programas necesarios y requisitos para este mini howto

* Kernel =>2.4.x
* LILO =>22.0
* Raidtools => 0.90
* Fdisk,cfdisk o la utilidad preferida para manejar particiones.
* Acceder al bios, para cambiar el orden de booteo.
* Paciencia.

En la versión 9.1 de Slackware, el raid esta incluido en el kernel, pero en vectorlinux 4.3 hay que recompilar el kernel. Primero tenemos que bajar las sources de http://www.kernel.org/pub/linux/kernel/ eligiendo la versión de vuestro agrado (la que utilice fue la 2.4.7)
Descargado el archivo, lo descomprimimos en el directorio /usr/src/

tar xvjpf linux-2.4.7.tar.bz2 -C /usr/src/ #linux-2.4.7.tar.bz2: nuestro kernel
ln -sf /usr/src/linux-2.4.7 /usr/src/linux

Lo que queda ahora por hacer es compilar el kernel, para esto entramos en el directorio /usr/src/linux/ y hacemos lo siguiente:

make mrproper
cp /boot/config ./.config (copiamos la config del kernel actual)
make menuconfig o sino make xconfig, si estamos en el entorno X.

Ahora las opciones que necesitamos que estan en:
Device drivers ----> Multi-device support

Y activamos como "built-in" (como modulo NO funciona) las siguientes:

[*]Múltiple devices driver support (RAID and LVM)
[*] Raid support
[ ] Linear (append) mode
[ ]Raid-0 (stripping) mode
[*]Raid-1 (mirroring) mode
[ ]Raid-4/Raid5 mode
[ ]Raid-6 mode (EXPERIMENTAL)
[ ]Multipath I/O support
[ ]Device mapper support

En mi caso solamente necesitaba usar el raid 1, luego de los cambios, salimos y compilamos el nuevo kernel:


make bzImage && make modules && make modules_install
Los "&&" son para ejecutar un comando seguido del otro.

Cuando termina copiamos el nuevo kernel al directorio /boot/ con nombre vmlinuz.new y lo agregamos al menu de LILO, por si sale algo mal podemos usar el anterior para bootear.

cp arch/i386/boot/bzImage /boot/vmlinuz.new
cp System.map /boot/"
cp .config /boot/.config-custom (para futures compilaciones del nuevo kernel)

y en lilo.conf lo siguiente:

image=/boot/vmlinuz.new
boot=/dev/hda1 (la particion donde esta instalado el sistema)
label= kernel.new 2.4.7
read-only

Ejecutamos lilo, para actualizar la mbr

lilo -v

Luego de iniciar el sistema, podemos ver si tenemos activado el soporte, escribiendo el siguiente comando:

cat /proc/mdstat

Y veremos algo asi:

Personalities : [raid1]
Unused devices :

Ya tenemos activado el soporte raid en el kernel. Ahora empecemos con el raid 1
Primero necesitamos planear la distribución de las particiones, por ejemplo tenemos un disco con dos particiones: /hda1 y /hda2 como swap.
Ejecutando fdisk -l /dev/hda veremos lo siguiente:

Disk /dev/hda: 2147 MB 2147483648 bytes
1 heads, 63 sectors/track, 66576 cylinders
Units = cylinders of 63 * 512 = 32256 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 2 55804 1757794+ 83 Linux
/dev/hda2 55805 66576 339318 82 82 Linux swap

Con estos datos, podemos particionar el segundo disco (/dev/hdc), de la misma forma siempre usando el mismo tamaño o menor que el de /dev/hda ya que no se pueden agregar discos chicos a un raid de mayor tamaño)
Tambien elegiremos como tipo de partición el Linux raid autodetect, y luego de crear todo ejecutamos el comando fdisk -l /dev/hdc y nos quedara algo asi:

Disk /dev/hdc: 2147 MB 2147483648 bytes
1 heads, 63 sectors/track, 66576 cylinders
Units = cylinders of 63 * 512 = 32256 bytes

Device Boot Start End Blocks Id System
/dev/hdc1 * 2 55804 1757794+ 83 Linux raid autodetect
/dev/hdc2 55805 66576 339318 82 82 Linux swap


Ahora tenemos que editar/crear el archivo /etc/raidtab, que se utiliza para configurar que discos se utilizan en el raid.
Aquí hay un ejemplo

raiddev /dev/md0
raid-level 1
nr-raid-disks 2 (el total de discos a utilizar)
nr-spare-disks 0
persistent-superblock 1
device /dev/hdc 1
raid-disk 0
device /dev/had 1
failed-disk 1 (este parametro luego lo cambiaremos a "raid-disk")
chunk-size 32

Guardamos los cambios y pasamos a crear el raid, que por el momento solo contendra un disco (/dev/hdc). Ejecutamos lo siguiente:

mkraid /dev/md0

Para ver si se creo correctamente la raid, ejecutamos cat /proc/mdstat y veremos algo similar a esto:

Personalities : [raid1]
md0 : active raid1 hdc1[0]
1756800 blocks [2/1] [U_]

Unused devices :

Las [U_] y el [2/1] indican que solo la mitad del raid funciona.

Ya tenemos una parte del trabajo hecho, nos queda crear un sistema de archivos en el raid, con lo siguiente formateamos el raid usando reiserfs:

mkreiserfs /dev/md0

Ahora el raid ya tiene formato y se le pueden agregar archivos, que es lo que vamos a hacer ahora, ya que nuestro plan es bootear desde /dev/hdc, para poder integrar la unidad activa (/dev/hda) actualmente en la raid.
Primero montamos la raid en un directorio de nuestro agrado, por ej:

mount /dev/md0 /raid1

Luego creamos los directories /mnt y /proc en la carpeta /raid1

mkdir /raid1/proc
mkdir /raid1/mnt

Y copiamos todo el contenido de /dev/hda1 a /dev/hdc1, podemos usar el
mc (midnight commander) o desde la consola, de la siguiente forma:

cp -a /bin /raid1
cp -a /boot /raid1
cp -a /dev /raid1
cp -a /etc /raid1
cp -a /home /raid1
cp -a /lib /raid1
cp -a /root /raid1
cp -a /sbin /raid1
cp -a /tmp /raid1
cp -a /usr /raid1
cp -a /var /raid1

Asi con todas las carpetas que necesitemos guardar, ya que /dev/hda1 sera eliminada luego.
Editamos el archivo /raid1/etc/fstab (el del segundo disco, no el del primero) cambiando las siguientes opciones:

# Device M.Point F.System Options
#_______________________________________________________________
/dev/md0 / reiserfs defaults 0 1
/dev/hdc2 none swap sw 0 0

Ahora vamos a configurar el LILO, para poder bootear desde la raid, que por ahora tiene un solo disco y esta montado en el directorio /raid1
Editamos el /raid1/etc/lilo.conf y lo dejamos algo parecido a esto:

#LILO config raid1 example
boot = /dev/md0
raid-extra-boot = "mbr"
prompt
timeout = 120
change-rules
reset
vga=normal

#aca empieza la partición
image = /boot/vmlinuz
root = /dev/md0
label = Linux Raid
read-only

Luego de esto pasamos a escribir la mbr del raid (/raid1) usando el siguiente comando:

lilo -r /raid1

Lo que hace la opcion "-r" es decirle a lilo que use el /dev/md0 en vez de la partición actual.
Si no recibimos ningun error de LILO, podemos pasar a reiniciar el equipo y configurar el bios para iniciar desde el disco /dev/hdc , o sea el secondary master.
Si salio todo bien, tenemos ya casi todo el trabajo hecho.
Cambiamos el archivo /etc/raidtab y en la linea donde pusimos failed-disk lo cambiamos por raid-disk.
Ahora necesitamos cambiar el tipo de partición del disco primario a Linux raid autodetect y
queda agregar al raid el disco /dev/hda de la siguiente forma:

raidhotadd /dev/md0 /dev/hda1

Ejecutando este comando, agregamos el disco primario (/dev/hda) al raid, y lo sincroniza con el secundario (/dev/hdc) borrando todo su contenido.
Queda por ver si se agrego correctamente al raid, ejecutando cat /proc/mdstat veremos algo parecido a lo siguiente:

Personalities : [raid1]
md0 : active raid1 hda1[2] hdc[0]
1756800 blocks [2/1] [U_]
[>...............] recovery = 3.3% (60288/1756800) finish=3.2min speed=8612K/sec
unused devices:

Esto quiere decir que esta copiando el contenido del disco secundario, al primario.
Al finalizar el proceso ejecutando cat /proc/mdstat , veremos algo asi:

Personalities : [raid1]
Md0 : active raid1 hda1[1] hdc[0]
1756800 blocks [2/2] [UU]

Vemos que las [U_] se convirtieron en [UU], indicando que funcionan los dos discos en espejo. Tambien nos indica a que parte del raid corresponde la unidad, por ejemplo hda1[1] es el segundo disco del raid, aunque eso no importa mucho, ya que bootea de igual forma en los dos discos.

Esta miniguia esta basada en los siguientes textos:

* http://slacksite.com/slackware/raid.html
* http://www.faqs.org/docs/Linux-mini/Boot+Root+Raid+LILO.html
* http://www.google.com/search?hl=en&q=software+raid+slackware
* http://es.wikipedia.org/wiki/RAID

Descargar en formato .doc


1 comentarios


29/03/2007 - 04:18 - Omar
Muy buen documento el que realizas y con una forma tan simple de explicarlo.
Excelente

Comentarios

Autor:

Comentario:


Security Text: