Para que ubuntu pueda trabajar con las RAID puede ser necesario cargar primero el módulo correspondiente. 

 

$ sudo modprobe raid1 

o bien: 

$ sudo modprobe raid0


 
]En el caso ejemplo que voy a exponer crearé una RAID5 con 4 discos.  
Asimismo este procedimiento se puede seguir mas o menos de manera análoga  
para crear cualquier tipo de RAID.


Particionamiento 

Debemos tener en cuenta, que puesto que vamos a crear una Software RAID, vamos a utilizar particiones en lugar de discos. Sin perjuicio que cada disco contenga una sola partición con la totalidad del tamaño del disco, como de hecho es indicado. 

Así pues primeramente debemos preparar las particiones que vamos a utilizar para crear la RAID. 

Para esto podemos utilizar cualquier herramienta de particionamiento. En nuestro caso vamos a utilizar GParted, una herramienta gráfica de fácil uso. Puesto que Ubuntu no la lleva instalada por defecto la instalaremos mediante el Gestor de paquetes Synaptic, o bien con apt-get mediante comandos: 

 
$ sudo apt-get install gparted

Una vez instalado GParted, procedemos a crear una partición para la totalidad de cada uno de los discos idénticos de los que disponemos para crear la RAID. Debemos crear una partición sin formato, puesto que el formato de la RAID lo daremos cuando esta esté construida. A parte del formato debemos indicar que se tratará de un disco para crear una RAID. Esto lo podemos hacer de manera fácil con GParted, seleccionando la partición e yendo a Menú Particióngestionar señaladores y marcando el señalador RAID 

Marcar la partición como RAID no es vital para el funcionamiento de la RAID, asimismo es la manera más correcta de hacerlo y nos ayudará a distinguir las particiones en un futuro. Con fdisk veremos este hecho marcado como Autodetección Linux raid (Linux raid autodetect). Una vez acabado el proceso podemos ver con fdisk -l un listado de las particiones como el siguiente (esta en Català puesto a que mi sistema está en este idioma): 

 
$ sudo fdisk -l

Disc /dev/sdb: 200.0 GiB, 200049647616 octets 
255 capçals, 63 sectors/pista, 24321 cilindres 
Unitats = cilindres de 16065 * 512 = 8225280 octets 

Dispositiu Arrenc.   Comença       Acaba    Blocs    Id  Sistema 
/dev/sdb1               1       24321   195358401   fd  Autodetecció Linux raid 

Disc /dev/sdc: 200.0 GiB, 200049647616 octets 
255 capçals, 63 sectors/pista, 24321 cilindres 
Unitats = cilindres de 16065 * 512 = 8225280 octets 

Dispositiu Arrenc.   Comença       Acaba    Blocs    Id  Sistema 
/dev/sdc1               1       24321   195358401   fd  Autodetecció Linux raid 

Disc /dev/sdd: 200.0 GiB, 200049647616 octets 
255 capçals, 63 sectors/pista, 24321 cilindres 
Unitats = cilindres de 16065 * 512 = 8225280 octets 

Dispositiu Arrenc.   Comença       Acaba    Blocs    Id  Sistema 
/dev/sdd1               1       24321   195358401   fd  Autodetecció Linux raid 

Disc /dev/sde: 200.0 GiB, 200049647616 octets 
255 capçals, 63 sectors/pista, 24321 cilindres 
Unitats = cilindres de 16065 * 512 = 8225280 octets 

Dispositiu Arrenc.   Comença       Acaba    Blocs    Id  Sistema 
/dev/sde1               1       24321   195358401   fd  Autodetecció Linux raid




Podemos observar que la columna Id muestra el valor fd esto es debido a que lo hemos marcado como Autodetección Linux raid (Linux raid autodetect). 

 

Primeramente antes de crear la RAID podemos ver en el fichero /proc/mdstat si al algún otro array: 

$ cat /proc/mdstat 
Personalities : 
Event: 0 
unused devices: none


Vemos que no aparece ningún array. Proseguimos a la creación del md en el que crearemos la RAID. Para ello utilizaremos el comando mknod como se muestra en la siguiente orden: 

 
$ sudo mknod /dev/md0 b 9 0

Si ya tuviéramos algún otro array llamado md0, podemos crear un md diferente: md1, md2, ... 

Procedemos ahora a crear finalmente la RAID: 

$ sudo mdadm --create /dev/md0 --level=raid5 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 
Continue creating array? yes 
mdadm: array /dev/md0 started.


La raid hecho esto empezará a crearse. 

Detalles del comando mdadm --create /dev/md0 --level=raid5 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 : 

En --create /dev/md0 le indicaremos el md al que vamos a asignar el array. Si hemos escogido otro lo deberemos cambiar aquí. 

En --level=raid5 indicaremos el tipo de raid que queremos que sea. Los valores validos aquí son: linear, raid0, 0, stripe, raid1, 1, mirror, raid4, 4, raid5, 5, raid6, 6, multipath, mp, fautly. Como vemos algunos de ellos son sinónimos, por lo que para una RAID5 podemos introducir raid5 o bien 5. 

Como vemos debemos indicarle las PARTICIONES (no los discos) con las que hacer la RAID, así como el numero de particiones: --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 

 

--verbose  
nos explica mas cosas sobre lo que pasa. 

--chunk=  
especifica cada segmento en kibibytes. Por defecto es 64. Ej: --chunk=32.  
Antes de decidir el tamaño del segmento es recomendable que consultes el apartado  
de Factores de optimización del sistema de archivos en una RAID de este mismo  
documento. 

--parity=  
Establece el algoritmo de paridad para RAID5. Las opciones son: left-asymmetric,  
left-symmetric, right-asymmetric, right-symmetric (la, ra, ls, rs en sus versiones reducidas).  
Por defecto es left-symmetric. Ej: --parity=right-asymmetric. Este modificador tiene otras 
opciones avanzadas. 


 


Una vez hemos lanzado la orden de creación de la RAID, empezarán a trabajar los discos como locos: están creando la RAID. Este proceso puede durar varias horas dependiendo de la capacidad de los discos y la potencia del ordenador/discos. 

Podemos visualizar en cualquier momento el estado de éste proceso en el fichero /proc/mdstat

 
$ cat /proc/mdstat

Personalities : [raid5] [raid4] 
md0 : active raid5 sdb1[0] sde1[3] sdd1[2] sdc1[1] 
      586075008 blocks [4/3] [UUU_] 
      [.........]  resync =  0.7% (4103401/586075008) finish=177.6min speed=97640K/sec


[4/3] [UUU_] nos indica el numero de discos que esta activo y correcto en este momento. No nos tenemos que preocupar porque durante éste periodo de creación de la RAID nos marque que hay alguno incorrecto. Cuando finalice el proceso éste indicador deberá mostrarnos que todos los discos están correctos. 

Una vez ha terminado el proceso de construcción de la raid podemos ver de nuevo en el fichero /proc/mdstat el estado de nuestro array: 

 
$ cat /proc/mdstat

Personalities : [raid5] [raid4]  
md0 : active raid5 sdb1[0] sde1[3] sdd1[2] sdc1[1] 
      586075008 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] 
       
unused devices: none


Perfecto! 

Una vez creada la RAID solo debemos montarla y formatearla con el sistema de ficheros que deseemos. 


 
Para formatear la RAID utilizaremos el comando mkfs

Con ReiserFS 
mkfs.reiserfs /dev/md0


En mi caso he utilizado el sistema de archivos ReiserFS, pero podemos utilizar cualquier otro como ext3: 

mkfs.ext3 /dev/md0



 

Para montar la RAID añadimos la siguiente línea al fichero /etc/fstab 

/dev/md0 /punto_de_montaje sistema_de_archivos defaults,user 0 0

Recuerda que debes tener creada la carpeta /punto_de_montaje (la ruta que quieras), con los permisos correspondientes a los usuarios que quieras que accedan a la RAID. Recuerda también que debes especificar que sistema de archivos es la RAID cambiando sistema_de_archivos por reiserfs, ext3... según hayas escogido. 

Para montar la raid bastara luego con hacer: 
$ sudo mount /punto_de_montaje

O bien reiniciar y que Ubuntu la monte automáticamente en el inicio del sistema.