Proceso para crear un RAID5 en Centos

0
626

El proceso que se describe a continuación permite configurar un RAID (Redundant Array of Independent Disks), nivel 5, el cual  es gestionado a través del conjunto de herramientas MDADM (Multiple Device Administrator).
 
En este caso particular, se cuenta con 5 dispositivos de 3TB cada uno, los cuales son nuevos. En caso contrario es necesario eliminar cualquier tipo de partición en los discos y continuar con el proceso.

raid5

 

Comenzamos…….

 

Paso #1. Se crea la partición primaria de tipo GPT(GUID Partition Table), en primer disco del arreglo, en este caso /dev/sdb


[root@localhost ~]# parted -a optimal /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted) mklabel gpt                                                       
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes                                                                
(parted) mkpart primary 0% 100%                                            
(parted) align-check
alignment type(min/opt)  optimal/[minimal]? optimal                        
Partition number? 1                                                        
(parted) p                                                                 
Model: ATA Hitachi HDS5C303 (scsi)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
 
Number  Start   End     Size    File system  Name     Flags
 1      1049kB  3001GB  3001GB               primary

Nota: Es importante manejar porcentajes para indicar donde inicia y termina la partición (0% y 100%), de otra manera obtendrás lo siguiente.  “Warning: The resulting partition is not properly aligned for best performance.”


 

Paso # 2 Hacemos un respaldo de la estructura que se ha creado en /dev/sdb y la copiamos al resto de los discos.


[root@localhost ~]# sgdisk –backup=estructura /dev/sdb
The operation has completed successfully.
 
[root@localhost ~]# sgdisk –load-backup=estructura /dev/sdc
The operation has completed successfully.
[root@localhost ~]# sgdisk –load-backup=estructura /dev/sdd
The operation has completed successfully.
[root@localhost ~]# sgdisk –load-backup=estructura /dev/sde
The operation has completed successfully.
[root@localhost ~]# sgdisk –load-backup=estructura /dev/sdf
The operation has completed successfully.


 

Paso#3 Creamos el arreglo de discos indicando, su nivel y los dispositivos que lo conforman.


[root@localhost ~]# mdadm –create –verbose /dev/md0 –level=5 –raid-devices=5 /dev/sd[bcdef]1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 2930132992K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

En todo momento podemos ver el avance de la creación de el arreglo de discos.  
 
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]  
md0 : active raid5 sdf1[5] sde1[3] sdd1[2] sdc1[1] sdb1[0]
      11720531968 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/4] [UUUU_]
      [>………………..]  recovery =  0.1% (5048320/2930132992) finish=739.7min speed=65899K/sec
       
unused devices: <none>

Nota: Por el tipo y tamaño de discos usados en este caso, deberemos esperar un largo rato en lo que se construye la estructura interna del arreglo.
 
A la mañana siguiente, literal…
 
Verificamos a detalle como quedo la estructura del arreglo.
 
[root@localhost ~]# mdadm –detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Wed Apr  2 09:23:49 2014
     Raid Level : raid5
     Array Size : 11720531968 (11177.57 GiB 12001.82 GB)
  Used Dev Size : 2930132992 (2794.39 GiB 3000.46 GB)
   Raid Devices : 5
  Total Devices : 5
    Persistence : Superblock is persistent
 
    Update Time : Wed Apr  2 19:46:46 2014
          State : clean  
 Active Devices : 5
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 0
 
         Layout : left-symmetric
     Chunk Size : 512K
 
           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : 437110ae:d816d0ec:9f1d5fde:02a6af79
         Events : 127
 
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       3       8       65        3      active sync   /dev/sde1
       5       8       81        4      active sync   /dev/sdf1


 

Paso #4. Le damos formato a arreglo, en este caso lo haremos con ext4.


[root@localhost ssmtp]# mkfs.ext4 /dev/md0


 

Paso #5. Modificamos el 5% de espacio que se reserva para uso exclusivo de root y lo reducimos a cero.


[root@localhost ssmtp]# tune2fs -m 0 /dev/md0
tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks percentage to 0% (0 blocks)


 

Paso #6. Creamos un punto de montaje en /etc/fstab para el arreglo /dev/md0 y montamos el arreglo.


[root@localhost ~]# vi /etc/fstab

*Agreagamos la linea.
/dev/md0  /mnt/miraid   ext4   defaults   0 0

*Creamos el directorio
[root@localhost ~]# mkdir /mnt/miraid

*Montamos el arreglo
[root@localhost ~]# mount -a


 

Paso #7. Verificamos que el espacio del arreglo creado sea el indicado y se encuentre montado correctamente.


[root@localhost ~]# df -h /mnt/miraid/
Filesystem   Size  Used Avail Use% Mounted on
/dev/md0     11T   159M 11T   1%   /mnt/miraid


 

Paso #8. Creamos el archivo de configuración para mdadm (/etc/mdadm.conf) a partir de la información detallada del arreglo.


*Mostramos la información del arreglo de discos .
[root@localhost ~]# mdadm –verbose –detail –scan
ARRAY /dev/md0 level=raid5 num-devices=5 metadata=1.2
name=localhost.localdomain:0
UUID=437110ae:d816d0ec:9f1d5fde:02a6af79
devices=/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sde1,/dev/sdf1
 
*En base a la información detallada construimos el archivo de configuración /etc/mdadm.conf
[root@localhost ~]# mdadm –verbose –detail –scan  > /etc/mdadm.conf


 

Paso #9. Reiniciamos el servidor y verificamos que el arreglo se monte correctamente


[root@localhost ~]# reboot


 

Como siempre esperando que este documento le sirva a alguien…

Saludos 🙂