Montar un RAID 5 en Ubuntu 12.04
Montaje de un RAID 5 mediante (mdadm) por software.
Se realizará el proceso en una máquina Ubuntu 12.04 sobre una máquina virtual VMware workstation 9.
1.- Adición 4 discos virtuales de 1 GB cada uno.
2.- Creamos las particiones con fdisk:
fdisk /dev/sd(X)
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151):
Using default value 2097151
------------------------------------------------------------------------------------------------------------------
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): l
Nos interesa esta línea: fd Linux raid auto
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
-------------------------------------------------------------------------------------------------------------------
Realizamos esta operación con el resto de discos.
Para crear un RAID 5 con tres discos, hacemos lo siguiente:
#mdadm --create /dev/md127 --l 5 --raid-devices=3 /dev/sd[XYZ]1
Una vez creado podemos ver su estado con esto:
#mdadm --detail /dev/md127
-------------------------------------------------------------------------------------------------------------------
root@ubuntu:/home/daniel# mdadm --detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Wed Nov 7 11:33:13 2012
Raid Level : raid5
Array Size : 2093056 (2044.34 MiB 2143.29 MB)
Used Dev Size : 1046528 (1022.17 MiB 1071.64 MB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Nov 8 01:13:40 2012
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Name : ubuntu:0 (local to host ubuntu)
UUID : 57a3f039:f2dad432:0ed3cdcf:f9b78cb6
Events : 41
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
4 8 65 2 active sync /dev/sde1
------------------------------------------------------------------------------------------------------------------
Con el parámetro "manage", podemos añadir o quitar discos al arreglo y dejarlo en espera de posibles fallos, pasando a estado activo cuando falle uno de ellos, o se haya eliminado del arreglo. Todo los procesos que se realizan con "manage" son en "caliente".
------------------------------------------------------------------------------------------------------------------
mdadm --manage /dev/md127 --add /dev/sdd1
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
4 8 65 2 active sync /dev/sde1
3 8 49 - spare /dev/sdd1
------------------------------------------------------------------------------------------------------------------
Supongamos que uno de los discos (sde) falla. De nuevo con el parámetro manage, lo marcamos como "fail":
#mdadm --manage /dev/md127 --fail /dev/sde1
El fichero "mdstat" almacena el log de sucesos de los arreglos instalados en el sistema.
------------------------------------------------------------------------------------------------------------------
root@ubuntu:/home/daniel# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : active raid5 sdd1[3] sdc1[1] sde1[4](F) sdb1[0]
2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[=============>.......] recovery = 69.3% (726648/1046528) finish=0.2min speed=25056K/sec
Al tener un disco en spare, de manera automática el sistema lo añade al arreglo y reconstruye el RAID.
------------------------------------------------------------------------------------------------------------------
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
3 8 49 2 active sync /dev/sdd1
4 8 65 - faulty spare /dev/sde1
------------------------------------------------------------------------------------------------------------------
Eliminamos el disco marcado como faulty con:
#mdadm --manage /dev/md127 --remove /dev/sde1
Esta es la ventaja de tener discos en "spare". En caso de no tener discos en espera, un RAID 5 de 3 discos, por su naturaleza, permite que en caso de avería o fallo de uno de ellos el RAID siga en marcha. Por ejemplo:
------------------------------------------------------------------------------------------------------------------
#mdadm --manage /dev/md127 --fail /dev/sdd1
Update Time : Thu Nov 8 23:55:25 2012
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 1
Spare Devices : 0
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 0 0 2 removed
3 8 49 - faulty spare /dev/sdd1
------------------------------------------------------------------------------------------------------------------
En este caso, vemos como "sde1" ha sido eliminado del arreglo y "sdd1" esta marcado como "fallo". Además, nos marcar el arreglo en estado "degradado".
Eliminamos pues el disco con fallo:
#mdadm --manage /dev/md127 --remove /dev/sdd1
Cambiamos la unidad por una nueva y repetimos la operación de añadir partición y dar formato. Agregamos la nueva unidad:
#mdadm --manage /dev/md127 --add /dev/sdd1
------------------------------------------------------------------------------------------------------------------
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
3 8 49 2 active sync /dev/sdd1
------------------------------------------------------------------------------------------------------------------
Es importante almacenar la configuración, para ello utilizamos la siguiente expresión:
#mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Es posible detener un array, para ello solo debemos introducir el siguiente comando:
#mdadm --stop /dev/md127
Esto no significa la pérdida del arreglo. Para volver a ensamblar las unidades al arreglo, utilizamos "--asemble".
#mdadm --asemble /dev/md127 /dev/sd[bcd]1
Podemos añadir discos activos a nuestro arreglo de la siguiente manera:
#mdadm --manage /dev/md127 --add /dev/sde1
Ahora podemos usar --grow para añadir un disco activo:
#mdadm --grow --raid-devices=4 /dev/md127
------------------------------------------------------------------------------------------------------------------
Update Time : Sun Nov 11 14:53:31 2012
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Name : ubuntu:0 (local to host ubuntu)
UUID : 57a3f039:f2dad432:0ed3cdcf:f9b78cb6
Events : 103
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
3 8 49 2 active sync /dev/sdd1
4 8 65 3 active sync /dev/sde1
------------------------------------------------------------------------------------------------------------------
* Es posible añadir o quitar unidades simplemente con:
mdadm --{add,remove} /dev/sd{x}y
Solo queda crear una partición con "fdisk".
#fdisk /dev/md127
Y montar la partición o añadir una línea al fichero "fstab".
#vim /etc/fstab