Me picó la curiosidad y el resultado es este tutorial. No voy a extenderme demasiado en las explicaciones puesto que en el tutorial del raid 1 que hice hace tiempo se puede encontrar la información más detallada. Manos a la obra!.
shian:~# fdisk /dev/sdb
...
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 130 1044193+ fd Linux raid autodetect
...
shian:~# mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 missing
mdadm: size set to 1044096K
mdadm: array /dev/md1 started.
shian:~# mknod /dev/md0 b 9 0
shian:~# mknod /dev/md1 b 9 1
shian:~# mknod /dev/md2 b 9 2
...
shian:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sdb1[0]
1044096 blocks [2/1] [U_]
shian:~# mdadm --detail /dev/md1
/dev/md1:
Version : 00.90.03
Creation Time : Fri Sep 28 08:09:16 2007
Raid Level : raid1
Array Size : 1044096 (1019.80 MiB 1069.15 MB)
Device Size : 1044096 (1019.80 MiB 1069.15 MB)
Raid Devices : 2
Total Devices : 1
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Fri Sep 28 08:09:16 2007
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
UUID : b0e5f96e:12266294:54e4f551:119b56e7
Events : 0.1
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 0 0 1 removed
shian:~# mkfs.ext3 /dev/md1
shian:~#
shian:~# mkdir /mnt/datos_raid
shian:~# mount /dev/md1 /mnt/datos_raid
shian:~#
shian:~# cp -a /mnt/datos/* /mnt/datos_raid
shian:~# umount /dev/sda1
shian:~# fdisk /dev/sda
...
Disk /dev/sda: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 130 1044193+ fd Linux raid autodetect
...
shian:~# mdadm --manage /dev/md1 --add /dev/sda1
mdadm: added /dev/sda1
shian:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda1[1] sdb1[0]
1044096 blocks [2/2] [UU]
shian:~# cd /etc/mdadm
shian:/etc/mdadm# cp mdadm.conf mdadm.conf.`date +%y%m%d`
shian:/etc/mdadm# echo "DEVICE partitions" > mdadm.conf
shian:/etc/mdadm# mdadm --detail --scan >> mdadm.conf
shian:~# echo "/dev/md1 /mnt/datos ext3 defaults 0 2" >> /etc/fstab
Hemos visto cómo pasar de una configuración con un único disco a otra basada en un raid 1 sin tener que salvar toda nuestra información en otro medio independiente y reformatear todo a la vez.
Lamentablemente, lo que quería hacer nuestro compañero Renato era crear un raid JBOD (o lineal), cosa que no entendí yo en un primer momento y me lancé a probarlo con un raid 1. Si intentamos crear el raid lineal con un único disco vemos que no es posible. Aunque el mensaje de mdadm no es muy claro, con dmesg vemos realmente la causa:
shian:~# mdadm --create --verbose /dev/md2 --level=linear --raid-devices=2 /dev/sdb1 missing
mdadm: chunk size defaults to 64K
mdadm: RUN_ARRAY failed: Invalid argument
mdadm: stopped /dev/md2
shian:~# dmesg
...
linear: not enough drives present. Aborting!
md: pers->run() failed ...
md: md3 stopped.
md: unbind
md: export_rdev(sdb1)
La solución a cómo poder hacer esto sin tener que reformatear en el próximo post :-).
12 comentarios:
Yo también tengo un NSLU2 con Debian, y habría que mirar el consumo del mdadm en cuanto a memoria y cpu ya que anda muy muy justito y cualquier cosa que se ponga lo carga y empieza a swapear :)
Estaba yo pensando...
También se podría aprovechar LVM para hacer mirrors etc. Se añaden dos discos a un VG y se indican a los lvoles que utilicen una mirror copy contra el otro disco y así se pueden sacar, meter más discos e incluso la posibilidad de usar lvm para ampliar los lvoles y luego extender los filesystems en caliente.
Algún día escribiré algo sobre esto si estais interesados
Hola rubick,
respecto al consumo de mdadm, no te puedo decir demasiado puesto que en mi servidor actual de backup no tengo problemas con el raid. Ya me gustaría a mi tener un NSLU2 para poder hacer pruebas y cacharrear con él.
Te has adelantado a la solución que iba a proponer. Es con LVM aunque no tan sofisticada como lo que indicas del mirror copy. En un par de días postearé el artículo.
Saludos y gracias por el comentario, Iván.
Me ha parecido muy interesante el tutorial, aunque cuando he leído que quería agregar discos linealmente, yo también he pensado inmediatamente en el LVM.
En cualquier caso, si los discos fueran similares, más que un JBOD, casi mejor hacer un RAID0 para mejorar las prestaciones, ¿no?
Al fin y al cabo las probabilidades de pérdida de datos en un RAID0 son iguales que en un JBOD...
Hola Super coco,
hombre, con raid 0 sí se mejoran las prestaciones, pero si tienes un raid JBOD y se te va un disco, sólo pierdes esos datos, en el raid 0 perderías todos. Aunque, para el caso del NSLU2 utilizado como servidor media center habría que ver si compensa el "riesgo" (al fin y al cabo son pelis o series que de pueden descargar) con la mejora de velocidad.
Gracias por el comentario.
Saludos, Iván.
P.D: Tú también me has chafado la solución del LVM. Menos mal que no he ofrecido un premio al que lo acertara ;-)
Respecto a:
pero si tienes un raid JBOD y se te va un disco, sólo pierdes esos datos, en el raid 0 perderías todos.
Si hablamos de tener un único filesystem que cruce los dos discos, estoy en desacuerdo con lo que dices. El sistema de ficheros pondrá cada fichero en el disco que quiera. En ocasiones incluso fragmentado, con partes en un disco y partes en otro. Por tanto, si pierdes un disco, a efectos prácticos de usuario casero, lo habrás perdido todo, como en el RAID0.
Eso sí, en caso de que quisieras recuperar parte de la información currándotelo en serio, en el JBOD te puede resultar más sencillo encontrar "algo" que en el RAID0. Pero si tienes información que valga tanto ese esfuerzo, mejor no uses JBOD o RAID0 o haz backups muy frecuentes.
¿No te parece?
Yo creo que la mejor solución en cuanto a rendimiento y fiabilidad es realiar mirror con mdadm y esos discos usarlos con lvm en modo stripping.
¿Que opinais?
[Super coco]: Según tengo entendido (aunque puede que me confunda) los datos en un JBOD se utiliza un disco entero y cuando se llena se empieza a utilizar el otro. Aunque ya te digo que puede que esté equivocado. Me lo apunto a ver si puedo hacer alguna pruebecilla. No obstante tienes toda la razón cuando dices que si usas un raid 0 ó JBOD debes utilizar un buen sistema de backup.
[Rubick]: No conozco el modo stripping de LVM, tengo que mirar porque puede ser interesante. Lo que sí está claro es que el raid 1 te proporciona mucha seguridad si pierdes un disco.
Saludos, Iván.
Hola Iván, me tienes "anonadado" con tus post sobre raid y soluciones por el estilo, me quedé pillado con tu solución de monitorización por sms a través de google-calendar. En fin, al final me he montado en casa un Servidor Linux (Ubuntu) con un raid 1 de 500Gb y estoy la mar de contento, todo es gracias a tus aportaciones, te estoy muy agradecido por todo. Pero me ha surgido una duda:
Empezamos con un disco duro, cuando pensamos en el posible error damos con el mirroring (raid 1) pero conforme vamos llenándolo entonces empezamos a pensar en la falta de espacio y pensamos en montar otro raid 1, pero vemos que con el raid 5 podemos obtener más volumen de información y con tolerancia a fallos. Así pues me puse a pensar en como pasar de Raid 1 a Raid 5, entonces busqué en internet y me encontré con esto:
http://scott.wallace.sh/node/1521
En principio me ilusionó pero no se que pensar, lo ves fiable?
Saludos maquina.
Hola Javier,
lo primero darte las gracias por los comentarios que me haces. Me alegra mucho que todo lo que cuento le sirva a alguien y no se quede sólo en "papel".
He leído el artículo que has enlazado y me ha dejado impresionado!. Tanto que he hecho una pequeña prueba con mi servidor debian en vmware que utilizo para cacharrear. Me han funcionado perfectamente todos los pasos que indican en el artículo. Para comprobar que todo ha ido bien, una vez montado el raid1 he creado un par de archivos aleatorios y he calculado su cksum y todo coincide luego.
Por si te animas a hacerlo, te dejo algunas recomendaciones:
- Haz backup de los datos de raid por si acaso, nunca se sabe.
- El paso final de comprobar el filesystem y redimensionarlo, hazlo con éste desmontado. Hay sistemas de archivos que lo permiten hacer "al vuelo", pero ext3 NO es uno de ellos.
Y lo dicho, que muchas gracias por el comentario y por el enlace y si te surge cualquier duda ya sabes donde estoy.
Saludos, Iván.
Luis
hola buen día
he leído todo lo que esta en tu bloc incluso los comentarios y me ha parecido muy interesante
solo que tengo 2 dudas
1-primero como seria lo de implementar el lvm en vez del raid y el lvm en un raid
2- en el comentario de Javier ros deja este link http://scott.wallace.sh/node/1521
para consulta el asunto es que cuando uno entra a dicho link sale
Page not found
ustedes saben si la pagina cambio si el link esta mal o de pronto si alguien copio el articulo por favor lo pueden compartir
gracias
Hola Luis,
gracias, me alegro de que te guste el blog. Respondiendo a tus preguntas:
1.- Primero tendrías que crear el LVM y luego el raid sobre ese dispositivo en lugar de sobre sda1 o lo que sea. En este artículo hablo sobre LVM: http://lopezivan.blogspot.com.es/2007/04/linux-y-lvm.html
2.- Lo siento, no tengo ese link.
Saludos, Iván.
Publicar un comentario