14 diciembre 2011

Montar un sistema IDE-Raid en Slackware

Tengo los 2 discos, estos no tienen que ser iguales ni de tamaño ni marca, ni nada.
En mi caso es un samsung de 80G y un hitachi de 82.3G.


:NOTA: al ser RAID por Soft, se puede hacer entre particiones logicas, no necesariamente entre discos físicos.



Preparamos los discos
Es necesario saber que conviene poner los discos que van a ir en RAID en canales distintos, uno en el primario, y otro en el secundario, eso si los dos maestros, o los dos esclavos.

En mi caso /dev/hda y dev/hdc

No voy a entrar mucho en la teoria del RAID, hay muy buenos post aca que lo explican, sinó el "TIO Wikipedia" la tiene bastante clara http://es.wikipedia.org/wiki/RAID

Lo que hice fué particionar en mi /dev/hda (primario maestro) con fdisk de la siguiente forma, no voy a decir como se particiona con fdisk, pero el tipo de partición que usamos es el fd "Linux raid autodetect":

mi /dev/hda
Device Boot Start End Blocks Id System
/dev/hda1 1 2433 19543041 fd Linux raid autodetect
/dev/hda2 2434 6081 29302560 fd Linux raid autodetect
/dev/hda3 6082 6204 987997+ 82 Linux swap
/dev/hda4 6205 9733 28346692+ fd Linux raid autodetect


y mi /dev/hdc
Device Boot Start End Blocks Id System
/dev/hdc1 1 2433 19543041 fd Linux raid autodetect
/dev/hdc2 2434 6081 29302560 fd Linux raid autodetect
/dev/hdc3 6082 6204 987997+ 82 Linux swap
/dev/hdc4 6205 10011 30579727+ fd Linux raid autodetect


A simple vista son iguales, como supuestamente debe ser para raid, pero como soy bastante pijotero no quiero desperdiciar esos 2 gigas y pico del disco mas grande de modo que hasta la particion swap los hice iguales y la última le dejé por default que termine el disco.

si fueran discos idénticos al particionae uno se puede copiar la tabla de particiones para que queden identicos:
sfdisk -d /dev/hda | sfdisk /dev/hdc

pero estos no eran iguales

Una vez particionados llegó la hora de armar los arrays
Yo me armé de la siguiente forma:
/dev/hda1 y /dev/hdc1 para "/" (root) en raid1 (copia idéntica en dos particiones, o sea 20Gb espejados)
/dev/hda2 y /dev/hdc2 para "/home" en raid1 (idem a la anterior pero de 30 Gb)
/dev/hda3 y /dev/hdc3 para swap, me zarpé porque suman 2G pero bueno que se arregle el Kernel
y /dev/hda4 y /dev/hdc4 para una partición "/pepito" en raid0 para sumar los restos y armarme un disco de casi 60Gb para descargar gilada al que puedan acceder todos los usuarios (tambien lo puedo manejar por cuotas que no incluyo como hacerlo porque no lo hice y no viene al caso)

Armemos los arrays:

-Lo que va a ser "/":
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hd[ac]1

-Lo que va a ser "/home" (casi lo mismo que el anterior):
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/hd[ac]2

-Lo que va a ser "/pepito":
mdadm --create /dev/md2 --level=0 --raid-devices=2 /dev/hd[ac]4

Paso a detallar por si hace falta:
mdadm Comando para armar los arrays
--create arma el dispositivo que vamos a montar en fstab
--level= nivel de raid:
1 para espejado te ocupa el doble pero lee 2 veces mas rapido
0 para sumar particiones y hacerlars una sola, si se parte un disco fuiste.
--raid-devices= cantidad de particiones que forman parte del array.
/dev/hd ahí va entre corchetes las letras de los discos en cuestión seguido del número de la partición.



LE ESTO:Ejecutamos "setup" para iniciar el instalador de Slackware y cuando vamos a  formatear tenemos que referir a las particiones como /dev/md0 para "/", /dev/md1 para "/home", y /dev/md2 para "/pepito", y lo instalamos como cualquier hijo de vecino y el lilo que lo instale en RBM

Una vez que termina de instalar NO REINICIES CON CTRL+ALT+DEL como dice el programa
tenemos que:

Configurar mdadm:
mdadm -D --scan >> /mnt/etc/mdadm.conf

Editar el lilo
Cambiamos de root
chroot /mnt

editamos la confir de lilo
vi /etc/lilo.conf

cambiamos al principio:
boot = /dev/md0
y agregamos abajo
raid-extra-boot = "/dev/hda, /dev/hdc"

y despues abajo de todo cambiamos
image = /boot/vmlinuz
root = /dev/md0

Yo por lo gral le bajo a 1 el tiempo de espera ya que no uso otra cosa que no se Slack
timeout = 1

Instalamos lilo:
Pueden salir algunos warnings (no hay que darle bola).
lilo -v


Ahora si
reboot ...

...y agarrate

Espero que les haya gustado

Por último si se llega a romper si sistema de archivos y tienen que iniciar la maquina con el CD1 de slack, acuerdense que los /dev/md0 no levantan solosssss, hay que hacerlos así:
mdadm -A /dev/md0 /dev/hda1 /dev/hdc1
y despues
fsck /dev/md0 (o dependiendo el sistema de archivos que se haya elegido). 
 Tomado de: http://www.taringa.net/posts/linux/1872493/Montar-un-sistema-IDE-Raid-en-Slackware.html