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
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
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)
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
/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".
------------------------------------------------------------------------------------------------------------------
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
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
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:
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
Yo tuve un problema con una confi similar. El raid 5 en ubuntu me dejo de funcionar de un momento a otro. AL principio pense que era un problema logico pero despues de revisar me encontre ante un problema grave: una falla fisica en dos discos del raid... Tuve que averiguar por alguna empresa que brindara el servicio de recuperacion de datos. Me pasaron una de nombre Onretrieval. Se los lleve y me solucionaron el problema.
ResponderEliminarSaludos.
Primera observacion, con fdisk no se formatea... se crean particiones..
ResponderEliminarGracias F. Vásquez por el detalle. Ya está corregido. Espero más observaciones!
ResponderEliminarUn saludo.
Como harias para agregar un disco spare a un raid5 previamente creado y que esta en funcionamiento? el raid fue creado sin spare y consta de 4 discos, es posible agregar un nuevo disco pero como spare de este raid ?
ResponderEliminar