Me he inspirado en estos dos artículos
http://feeding.cloud.geek.nz/posts/setting-up-raid-on-existing/
http://www.guia-ubuntu.com/index.php?title=Crear_una_Software_RAID
Preliminares
Son dos discos WD SATA de 1TB, instalados normalmente y comprobado que están disponibles con
lsblk. Los ha identificado como /dev/sdb y /dev/sdc
Al pasarle el fdisk me ha dicho que no estaban alienados correctamente (más información en este artículo)
Solucionado con el comando:
sudo fdisk -H 224 -S 56 /dev/sdb (seguido de 'w' cuando nos pregunte para confirmar los cambios)
sudo fdisk -H 224 -S 56 /dev/sdc
Asegurarse de que tenemos todo el software instalado con
sudo apt-get install mdadm rsync initramfs-tools
Iniciamos
Creo las particiones (en mi caso una única partición primaria con todo el disco) con
sudo fdisk -/dev/sdb
- m para ayuda
- n nueva particin
- p de primaria
- valores predeterminados para el resto
- 1
- t para indicar el tipo
- L para listar
- fd para Linux Raid Auto
Como lo he hecho varias veces durante las prueba al final he usado cfdisk, una alternativa mucho más interactiva y fácil.
Una vez creadas las particiones creamos el RAID con
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
Aceptamos y empieza a crearlo en segundo plano. Podemos consultar el estado con:
$cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
972725056 blocks super 1.2 [2/2] [UU]
[>....................] resync = 0.8% (8456320/972725056) finish=82.6min speed=194392K/sec
Tomate un cafetín o dos que la cosa va para rato
Finalizada la creación del RAID hay que formatearlo. Asegúrate de que identificador de dev le ha asignado:
$ sudo mkfs.ext4 /dev/md0
Y finalmente preparamos en el montaje
$sudo mkdir /media/raid
Editamos el fichero /etc/fstab y añadimos
/dev/md0 /media/raid ext4 defaults, 0 0
Con sudo mount -a nos deja montadas todas las particiones
Ya puedes crear las carpetas que desees en el RAID ten en cuenta el tema de los permisos para saber si los usuarios podrán escribir en ellas.
...y reinicia... para encontrar un error :-(
$ sudo mdadm --detail --scan
ARRAY /dev/md/woody:0 metadata=1.2 name=woody:0 UUID=230eecee:2560d588:bf244ba0:f0adfdd8
...me encuentro con el que el dispositivo ha pasado a ser /dev/md/woody:0.
El caso es que no es mucho problema puesto que el RAID sigue existiendo con otro nombre. Modifico el /etc/fstab
/dev/md/woody:0 /media/raid ext4 defaults 0 0
...y en previsión de futuros errores y para que se guarde correctamente la configuración (aunque Ubuntu autodetecta los RAIDs al arrancar) algo lo siguiente. Añadir al /etc/mdadm/mdadm.conf los dispositivos usados
(verás que la línea está comentada)
...y también añadimos los datos de los arrays creados (es conveniente que te pases a root y no lo hagas con sudo, puede darte problemas)
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
sudo dpkg-reconfigure mdadm
Esto último instalará un proceso del tipo mdadm --monitor --scan --daemonize que chequeara los discos e irá enviando informes por corre electrónico. Para estar seguro de que funciona correctamente tienes que tener instalado y configurado correctamente postfix. Para probarlo puedes hacer un kill al proceso mdadm --monitor arrancado y probarlo manualmente con:
$ sudo mdadm --monitor /dev/md0 --test --mail=tumail@ejemplo.com
Eso dejará el proceso arrancado y a los pocos minutos deberías recibir un correo electrónico. Si no es así primero deberás comprobar que el postfix esta correctamente configurado.
Podemos instalar adicionalmente las smartmoontols y programar un chequeo periódico para detectar la degradación de los discos (por si tienen tasas de fallo demasiado elevadas)
$ sudo apt-get install smartmontools
$ sudo smartctl -d sat --all /dev/sdb #test basico para discos SATA
...y lo instalamos para que semanalmente realice un chequeo y envíe un correo en caso de problemas
# new test to RAID involved disks with mailing
/dev/sdb -d sat -o on -S on -s (S/../.././02|L/../../6/03) -m USUARIOCORREO@EJEMPLO.COM
/dev/sdc -d sat -o on -S on -s (S/../.././02|L/../../6/03) -m USUARIOCORREO@EJEMPLO.COM
También existe un GUI que podemos usar (si conectamos por ssh activa la opcion -X)
$ sudo apt-get install gsmartcontrol
$ sudo gsmartcontrol
Algunos comandos útiles
Si dejamos de detectar el RAID en algún momento
sudo mdadm --detail --scan
Para detener y eliminar un RAID si no lo hemos configurado correctamente
sudo mdadm --stop /dev/md0
sudo mdadm --remove /dev/md0 (no ha sido necesario en mi caso)
Para eliminar los superblock
sudo mdadm --zero-superblock /dev/sda1 /dev/sdb1 /dev/sdc1 (particiones involucradas)
Monitorizar el estado del RAID
cat /proc/mdstat o sudo mdadm --query /dev/md0 o sudo mdadm --detail /dev/md0
Similar para monitorizar el estado de los discos
sudo mdadm --query /dev/sdb1 o sudo mdadm --examine /dev/sdb1
Probando performance del disco
http://askubuntu.com/questions/87035/how-to-check-hard-disk-performance
Excelente Post, me ayudo muchisimo.
ResponderEliminarYo tengo un servidor con Ubuntu 14.04 todo corre en disco de 320 GB, y trabaja perfecto, yo quiero hacer un RAID1 con dos discos WD de 1TB c/u , y eliminar el disco de 320 GB, pero mantener todo el server igual en los nuevos discos, será que con este procedimiento puedo lograr lo que deseo?
ResponderEliminarNo. Este proceso te permite añadir un disco raid a un servidor que ya funciona y el que quedará una carpeta (/media/raid/) que correponde dcon el RAID. Lo que tu quieres está descrito en el primer artículo que he usado como referencia: https://feeding.cloud.geek.nz/posts/setting-up-raid-on-existing/
ResponderEliminar