13 nov. 2007

Crear RAID Linux

Hoy me acabo de enamorar un poquito mas de linux, después de estar 2 días intentando arreglar un RAID por hardware con la controladora adaptec 1210sa (os recomiendo que os aseguréis antes de escribir datos en un RAID que los discos estan correctamente enchufados!) me he pasado a montar una por software, quizás con menos rendimiento pero con mas posibilidades de recuperar la información en caso de desastre.

La controladora esta instala una aplicación de bios, es decir, antes de entrar en el sistema operativo nos aparece la opción control+a para poder acceder a herramientas para gestionar el raid; por mi parte esta herramienta tiene la pésima nota de suspendido. Esta aplicación sólo te permite crear RAIDs y inicializarlos, en ningún momento permite arreglar RAIDs degradados (DEGRADED), para hacerlo tienes que tener instalado un software en tu maquina que te permite hacerlo, está basado en JAVA pero he tenido muchos problemas para usarlo.

En Linux tenemos una magnífica herramienta llamada mdadm que permite gestionar los RAIDs y permite crear por software lo que por hardware podrías dejarte mas que lo que vale tu coche (algunos fabricantes tienen obras de ingeniería para los RAIDs, 0, 1, 6, 10, etc. y caras herramientas para administrarlos).

Antes de empezar nos fijaremos como está nuestro sistema, un servidor con ubuntu o debian, con el kernel 2.6.22 (desde el kernel 2.4 los RAIDs vienen soportados por el kernel, es decir no hace falta cargar y recompilar el kernel para hacer funcionar un RAID).

Además es muy importante desactivar el RAID por hardware, esto puede dar muchos problemas.

Miramos que podemos ver los discos que vamos a usar para el RAID, en mi caso tengo 3 discos duros 1 de 80GB para / y otros dos de 250GB para los /home.

Para ver lo que tenemos vamos a usar

# fdisk -l
Si hace rato que estáis buscando por la red como montar RAIDs supongo que habréis visto que los RAIDs siempre se montan en un dispositivo llamado md0 (si es la primera página que accedes para instalar un RAID felicidades, espero que este post te permita configurar un RAID a la primera!)
# ls /dev |grep md

con esto podremos ver si tenemos algun RAID instalado, si tenemos un sistema recién instalado (o que no hayamos intentado instalar previamente un RAID) nos tendrá que devolver un resultado vacío.

Vamos a instalar lo que necesitamos para poder gestionar los RAIDs, el mdadm, así que usaremos el omnipresente apt! (notase que no soy debianita :P)
# apt-get install mdadm
En unos segundos lo tendremos instalado, no nos pedirá información ni nada, si lo hace es importante que leamos lo que nos dice y hagamos lo que nos pide.

El siguiente paso es crear el RAID (si si, ya vamos a crear el RAID, no hace falta hacer el pino, ni andar a una sola pata ni nada de todo esto).

# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

Muy bien, vamos a explicarlo, mdadm, el programa que usamos.
--create le decimos al mdadm que queremos CREAR el RAID
--verbose para que no nos vaya preguntando todo el rato que hacer, con esto podemos empezar a crear el RAID e ir a dar una vuelta, al llegar a casa/sitio de trabajo de nuevo vamos a tener la creación del RAID "completada".
/dev/md0 el dispositivo dónde vamos a crear el RAID, podemos tener tantos RAID como nuestra maquina permita (temas de espacio claro), podríamos crear RAIDs con discos duros externos usb, firewire, controladoras SCSI externas, etc. da rienda suelta a la imaginación, con esto nos referiríamos a los otros RAID que queramos montar.
--level=1 nivel del RAID, en este caso 1, 2 discos uno el mirror del otro.
--raid-devices=2 /dev/sdb1 /dev/sdc1 numero de dispositivos y los dispositivos que vamos a usar para el RAID.

Con esto ya tendremos el RAID creado. Ahora los discos empezaran a hacer ruiditos, esto quiere decir que se están sincronizando los discos, pero como podemos ver que porcentaje le falta?

# watch cat /proc/mdstat

Bonito ¿no? :)

Ahora sólo faltará reiniciar la maquina y el RAID tendría que estar funcionando.

En mi caso configuro el /etc/fstab para que monte el /home en md0
# vi /etc/fstab
/dev/md0 /home ext3 defaults 0 0
Finalmente podremos usar el md0 como otra partición.

Otra herramienta muy interesante a instalar es smartmontools, unas herramientas que vigilan la integridad de los discos duros y te avisan antes que este esté en un estado que sea imposible acceder a su información. Además nos muestra el tiempo de vida de nuestros discos, estadísticas y varias cosas realmente interesantes.

# apt-get install smartmontools

Luego con el mutt (el cliente de consola por excelencia) podemos ver los mensajes que nos manda el sistema, el cron, el smart, etc.

# apt-get install mutt exim4


-> ANOTACIÓN <-
No se puede hacer el raid de una particion que esté montada y en uso, así que será prácticamente inviable hacer un raid de / y de /boot en el caso que las tengamos en 2 particiones distintas, así que se deberá crear una 3a partición con los datos que queremos guardar en RAID.

8 comentaris:

Black ha dit...

http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-ig-s390-multi-es-4/s1-s390info-raid.html

Black ha dit...

http://web.mit.edu/
rhel-doc/4/RH-DOCS/
rhel-ig-s390-multi-es-4/
s1-s390info-raid.html

Black ha dit...

mdadm --detail /dev/md0

para ver la información del RAID

Blackhold ha dit...

http://dev.jerryweb.org/raid/ (crear RAID con LVM desde la instalación de debian)

Anònim ha dit...

como se elimina?

Anònim ha dit...

Recuerdo que no tuve una experiencia favorable con RAID en Linux. Use un RAID 0 que al tiempo me fallo debido a una falla fisica en uno de los discos. Lo peor es que tuve que enviar los discos a un laboratorio de recuperaciones, OnRetrieval, y me costo un dinero que no tenia pensado gastar...

De ahi en mas abandone el tema RAID.

Anònim ha dit...

RAID 0,1,5 EN UBUNTU 9.10
PASOS PARA PONER CONTRASEÑA DE ROOT:
1-.primero para poner una contraseña de root en ubuntu pondremos lo siguiente:
sudo passwd root
2.-tendremos que poner primeramente despues de dar enter la contraseña de usuario
3.-despues aparecera un mensage que pide la nueva contraseña root(unix):escribimos la contraseña k keramos
4.-pedira la confirmacion y ponemos la misma otra vez

PARA HACER RAID 0,1,5 EN UBUNTU
1.-poner como minimo dos discos duros en el virtualbox.
2.-una vez ya en la maquina abrimos la terminal y vamos a instalar el Gparted:
sudo apt-get install gparted
3.-el gparted solo funciona estando como superusuario o root
4.-tambien tenemos que instalar el mdadm para esto ponemos lo siguiente:
sudo apt-get install mdadm
5.-en algunos casos no puede ser instalado puesto a que sale un mnsj.k dice no tener candidato para la instalacion
en este caso si es k se da ponemos lo siguiente y volvemos a repetir la instalacion del mdadm:
sudo apt-get update
6.-ya una vez instalado solo es cuestion de irnos a donde dice sitema y buscamos la opcion administracion y utilidad de discos
ahi nos apareceran los discos duros ya agregados en el primer disco duro seleccionamos su primer particion y en donde dice "tipo"
seleccionamos la opcion k dice autodeteccion de raid linux.
una vez hecho esto pasamos al gparted para crear las particiones de los discos duros con el gparted para esto haremos
lo siguiente:
PASOS PARA LA PARTICION EN GPARTED:
1.-en el gparted buscamos en donde dice /dev/sda y vamos a seleccionar el /dev/sdb una vez ya seleccionado nos aparecera una particion
que dice sin asignar despues la seleccionamos y buscamos un simbolito de una hoja con un signo de + y le damos clic aparecera un mensaje
y le ponemos en crear y le damos en la opcion que dice añadir asi lo dejamos komo esta esta se formateara y aparecera komo ext2 haremos
lo mismo kon los otros dos discos luego le damos a la palomita de arriba
y listo ahora si a crear el raid k gusten.

PARA RAID:

fdisk /dev/sdb
n
p
1


t
L
fd
p
w

cuando terminemos de poner esto pondremos lo siguiente:
PARA RAID 0:
mdadm --create /dev/md0 --level=0 --raid-devices=2
/dev/sdb1 /dev/sdc1

PARA RAID 1:
mdadm --create /dev/md0 --level=1 --raid-devices=3
/dev/sdb1 /dev/sdc1 /dev/sdd1

PARA RAID 5 CON 3 0 4 DISCOS:
mdadm --create /dev/md0 --level=5 --raid-devices=3
/dev/sdb1 /dev/sdc1 /dev/sdd1
CON 4 DISCOS:
mdadm --create /dev/md0 --level=5 --raid-devices=4
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

despues de poner esto aparecera un mensaje k dice: continue creating array? y le ponemos una "y"luego escribimos lo siguiente:

mkfs.ext3 /dev/md0 -v
mkdir /media/raid0,1,5-->segun sea el caso.
cd /media
mount /dev/md0 /media/raid0,1,5-->segun sea el caso.
cd /media
ls -la

Una vez terminando de poner todo esto ya hemos terminado de hacer raid en linux.

Anònim ha dit...

Hola a todos alguin me podria ayudar como particionar un disco de 300 gb sas para instalar ubuntu server 11.10 haciendo raid1 por hardware ya eh instalado varias veces y no arranca el ubuntu, mi correo es mmalexp@gmail.com
algun manual para instalar ubuntu 11.10 tengo un servidor dell r510 con controladora de raid perch700

Publica un comentari a l'entrada