0% found this document useful (0 votes)
29 views

RAIDs Linux

The document discusses different RAID levels and provides instructions for setting up a RAID 0 array using mdadm. It details the steps to create the RAID 0 array across multiple disks, check that it was created successfully, partition and format the array, and copy files to it for testing purposes.

Uploaded by

Gustavo Mollá
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

RAIDs Linux

The document discusses different RAID levels and provides instructions for setting up a RAID 0 array using mdadm. It details the steps to create the RAID 0 array across multiple disks, check that it was created successfully, partition and format the array, and copy files to it for testing purposes.

Uploaded by

Gustavo Mollá
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

RAIDs

RAID 0 2
Comprobamos los discos que tenemos en el sistema 2
Creamos el raid0 4
Comprobamos que el raid está creado 4
Comprobamos el fichero de RAID 4
Información del RAID0 4
Particionamos 5
Formatemos ¡Error! Marcador no definido.
Montamos el sistema de ficheros 7
Copiamos algún fichero grande al raid0 del servidor. 7
Duplicamos si hace falta 7
Copiamos la carpeta a nuestro ordenador 8
Provocamos el fallo 8

RAID1 8
Paramos el RAID anterior 8
Reiniciamos 9
Comprobamos si se borró el RAID 9

RAID 2,3 y 4 ¡Error! Marcador no definido.

RAID 5 ¡Error! Marcador no definido.

RAID 6 11
RAID 0
https://en.wikipedia.org/wiki/RAID
RAID 0 consists of striping, but no mirroring or parity. Compared to a spanned volume, the
capacity of a RAID 0 volume is the same; it is sum of the capacities of the disks in the set.
But because striping distributes the contents of each file among all disks in the set, the
failure of any disk causes all files, the entire RAID 0 volume, to be lost. A broken spanned
volume at least preserves the files on the unfailing disks. The benefit of RAID 0 is that the
throughput of read and write operations to any file is multiplied by the number of disks
because, unlike spanned volumes, reads and writes are done concurrently,[11] and the cost is
complete vulnerability to drive failures.

Instalamos el mdadm. En las últimas versiones de Ubuntu server, ya viene instalado. Si


instalais el Ubuntu desktop, entonces, debeis instalarlo:

sudo apt-get install mdadm

Comprobamos los discos que tenemos en el sistema

root@localhost:~# fdisk -l
Disk /dev/loop0: 86,9 MiB, 91099136 bytes, 177928 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors


Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 368B6029-C708-483A-88E9-491C98B5AB83

Device Start End Sectors Size Type


/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 20969471 20965376 10G Linux filesystem

Disk /dev/sdb: 100 MiB, 104857600 bytes, 204800 sectors


Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdc: 100 MiB, 104857600 bytes, 204800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdd: 200 MiB, 209715200 bytes, 409600 sectors


Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sde: 200 MiB, 209715200 bytes, 409600 sectors


Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdf: 300 MiB, 314572800 bytes, 614400 sectors


Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdg: 300 MiB, 314572800 bytes, 614400 sectors


Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
root@localhost:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 86,9M 1 loop /snap/core/4917
sda 8:0 0 10G 0 disk
├─sda1 8:1 0 1M 0 part
└─sda2 8:2 0 10G 0 part /
sdb 8:16 0 100M 0 disk
sdc 8:32 0 100M 0 disk
sdd 8:48 0 200M 0 disk
sde 8:64 0 200M 0 disk
sdf 8:80 0 300M 0 disk
sdg 8:96 0 300M 0 disk
sr0 11:0 1 1024M 0 rom
root@localhost:~#

Lo que menos me interesa es si tienen formato o particiones porque voy a gastar todo el
disco duro.
Creamos el raid0
root@localhost:~# mdadm --create RAID0 --level=0 --raid-devices=3 /dev/sdb /dev/sdd
/dev/sdf
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md/RAID0 started.
Se ha creado un dispositivo en /dev, dentro de la carpeta md y debe haber un dispositivo
llamado RAID0

Comprobamos que el raid está creado


root@localhost:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : active raid0 sdf[2] sdd[1] sdb[0]
608256 blocks super 1.2 512k chunks

unused devices: <none>

Comprobamos el fichero de RAID


root@localhost:~# ll /dev/md
total 0
drwxr-xr-x 2 root root 60 oct 8 09:55 ./
drwxr-xr-x 19 root root 4160 oct 8 09:55 ../
lrwxrwxrwx 1 root root 8 oct 8 09:55 RAID0 -> ../md127

Vemos que el nombre que le hemos dado a nuestro RAID está enlazado al fichero
/dev/md127

Información del RAID0


Tenemos dos vías, o consultar directamente a través del programa o verlo en el fichero de
la carpeta /proc.

Cat /proc/mdstat

root@localhost:~# mdadm -D /dev/md/RAID0


/dev/md/RAID0:
Version : 1.2
Creation Time : Mon Oct 8 09:55:54 2018
Raid Level : raid0
Array Size : 608256 (594.00 MiB 622.85 MB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent

Update Time : Mon Oct 8 09:55:54 2018


State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0

Chunk Size : 512K

Consistency Policy : none

Name : localhost.localdomain:RAID0 (local to host localhost.localdomain)


UUID : dcb185ee:d2e89fcf:f1e84e82:4ae3f426
Events : 0

Number Major Minor RaidDevice State


0 8 16 0 active sync /dev/sdb
1 8 48 1 active sync /dev/sdd
2 8 80 2 active sync /dev/sdf

Particionamos
root@localhost:~# fdisk /dev/md/RAID0

Welcome to fdisk (util-linux 2.31.1).


Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.


Created a new DOS disklabel with disk identifier 0x867a04ff.

Command (m for help): n


Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):

Using default response p.


Partition number (1-4, default 1):
First sector (3072-1216511, default 3072):
Last sector, +sectors or +size{K,M,G,T,P} (3072-1216511, default 1216511):

Created a new partition 1 of type 'Linux' and of size 592,5 MiB.

Command (m for help): w


The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing diskFormatemos
root@localhost:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 86,9M 1 loop /snap/core/4917
sda 8:0 0 10G 0 disk
├─sda1 8:1 0 1M 0 part
└─sda2 8:2 0 10G 0 part /
sdb 8:16 0 100M 0 disk
└─md127 9:127 0 594M 0 raid0
└─md127p1 259:0 0 592,5M 0 md
sdc 8:32 0 100M 0 disk
sdd 8:48 0 200M 0 disk
└─md127 9:127 0 594M 0 raid0
└─md127p1 259:0 0 592,5M 0 md
sde 8:64 0 200M 0 disk
sdf 8:80 0 300M 0 disk
└─md127 9:127 0 594M 0 raid0
└─md127p1 259:0 0 592,5M 0 md
sdg 8:96 0 300M 0 disk
sr0 11:0 1 1024M 0 rom
root@localhost:~# ll /dev/md
total 0
drwxr-xr-x 2 root root 80 oct 8 10:10 ./
drwxr-xr-x 19 root root 4180 oct 8 10:10 ../
lrwxrwxrwx 1 root root 8 oct 8 10:10 RAID0 -> ../md127
lrwxrwxrwx 1 root root 10 oct 8 10:10 RAID0p1 -> ../md127p1

root@localhost:~# mkfs.ext4 /dev/md/RAID0p1


mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 151680 4k blocks and 37920 inodes
Filesystem UUID: d621ebbd-8ab7-4acc-bef2-a42f938dc230
Superblock backups stored on blocks:
32768, 98304

Allocating group tables: done


Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
Montamos el sistema de ficheros

Copiamos algún fichero grande al raid0 del servidor.


gusmolva@cicles:~/Descargas$ scp *.mp4 [email protected]:/home/lliurex/
[email protected]'s password:
RAID 0 RAID 1 RAID 10 - All You Need to Know 100% 19MB 84.1MB/s 00:00
gusmolva@cicles:~/Descargas$

Duplicamos si hace falta


root@localhost:/home/lliurex# for i in {1..100} ; do cp RAID\ 0\ RAID\ 1\ RAID\ 10\ -\ All\ You\
Need\ to\ Know\ as\ Fast\ As\ Possible.mp4 /mnt/$i.mp4; done
cp: error writing '/mnt/23.mp4': No space left on device
cp: error writing '/mnt/24.mp4': No space left on device
…..
Copiamos la carpeta a nuestro ordenador
gusmolva@cicles:~/Descargas/RAID0$ scp [email protected]:/mnt/* .
[email protected]'s password:
01.mp4 100% 19MB 47.5MB/s 00:00
02.mp4 100% 19MB 100.4MB/s 00:00
03.mp4 100% 19MB 100.5MB/s 00:00
04.mp4 100% 19MB 103.7MB/s 00:00
No debería darnos ningún fallo. Si aparecen discos vacíos es porque no había suficiente
rspacio en el RAID0
cd

Provocamos el fallo
root@localhost:/home/lliurex# dd if=/dev/zero of=/dev/sdd bs=1M
dd: error writing '/dev/sdd': No space left on device
201+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 2,7118 s, 77,3 MB/s
root@localhost:/home/lliurex#

Cuando copiamos todos los ficheros de nuevo, comprobamos que si se copian bien. Sin
embargo, la visualización es errónea. Porque no se ha producido, realmente, un fallo de
disco. Hemos simulado, por software, ese fallo, pero el S.O. sigue detectando el disco como
bueno.

fdRAID1
RAID 1 consists of data mirroring, without parity or striping. Data is written identically to two
drives, thereby producing a "mirrored set" of drives. Thus, any read request can be serviced
by any drive in the set. If a request is broadcast to every drive in the set, it can be serviced
by the drive that accesses the data first (depending on its seek time and rotational latency),
improving performance. Sustained read throughput, if the controller or software is optimized
for it, approaches the sum of throughputs of every drive in the set, just as for RAID 0. Actual
read throughput of most RAID 1 implementations is slower than the fastest drive. Write
throughput is always slower because every drive must be updated, and the slowest drive
limits the write performance. The array continues to operate as long as at least one drive is
functioning.[11]

Paramos el RAID anterior


root@localhost:/home/lliurex# mdadm --stop /dev/md/RAID0
mdadm: Cannot get exclusive access to /dev/md/RAID0:Perhaps a running process,
mounted filesystem or active volume group?
root@localhost:/home/lliurex#
El mensaje que nos sale indica que el RAID anterior está siendo utilizado. Hay que
comprobar que no esté montado.
root@localhost:/home/lliurex#umount /mnt
root@localhost:/home/lliurex#umount /dev/md127
root@localhost:/home/lliurex#umount /dev/md/RAID0p1
Puedo ejecutar cualquiera de las tres anteriores.

root@localhost:/home/lliurex# mdadm --stop /dev/md/RAID0


mdadm: stopped /dev/md/RAID0
root@localhost:/home/lliurex#

root@localhost:/home/lliurex# mdadm --zero-superblock /dev/sdb /dev/sdd /dev/sdf


mdadm: Unrecognised md component device - /dev/sdb
mdadm: Unrecognised md component device - /dev/sdd
root@localhost:/home/lliurex#

No ha detectado el sdb y el sdd como discos de raid porque sus metadatos fueron borrados
al ejecutar la instrucción “dd” con el dispositivo /dev/zero.

Reiniciamos
reboot

Comprobamos si se borró el RAID


lliurex@server_teacher:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>
lliurex@server_teacher:~$
Construir el RAID1

Crear Partición

Crear el sistema de ficheros

Montar el RAID1

Copiar datos

Provocar el fallo

Comprobar que la información es accesible

Añadimos un nuevo disco


exit

Comprobamos el nuevo disco añadido


root@server_teacher:/mnt# mdadm -D /dev/md/RAID1
/dev/md/RAID1:
Version : 1.2
Creation Time : Mon Oct 8 11:21:56 2018
Raid Level : raid1
Array Size : 101376 (99.00 MiB 103.81 MB)
Used Dev Size : 101376 (99.00 MiB 103.81 MB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent

Update Time : Mon Oct 8 11:38:18 2018


State : clean, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 1
Spare Devices : 1

Consistency Policy : resync

Rebuild Status : 81% complete

Name : server_teacher:RAID1 (local to host server_teacher)


UUID : 7a10e638:02a72383:13d9bb47:39cee3cf
Events : 35
Number Major Minor RaidDevice State
2 8 80 0 spare rebuilding /dev/sdf
1 8 48 1 active sync /dev/sdd

0 8 16 - faulty /dev/sdb
root@server_teacher:/mnt#

RAID 2,3 y 4

RAID 5

RAID 6
Gestión de RAID a través de MDADM.
http://www.alcancelibre.org/staticpages/index.php/como-mdadm
Autor: Joel Barrios Dueñas

Correo electrónico: darkshram en gmail punto comSitio de Red: http://www.alcancelibre.org/


Jabber ID: [email protected]

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2013 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las
condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su
publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra
derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien
claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los
derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en
castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán
responsabilidad alguna si el usuario o lector, hace mal uso de éstos.

Introducción

MDADM (Multiple Device Administrator) es un conjunto de herramientas que son utilizadas en


GNU/Linux para la gestión de RAID (Redundant Array of Independent Disks, que se traduce como
conjunto redundante de discos independientes) administrado a través de software, distribuido bajo
los términos de la Licencia Pública General de GNU versión 2 (GNU/GPLv2).

El RAID por software permite:

● Una solución de RAID de muy bajo costo pues prescinde del uso de costosas
tarjetas RAID y unidades de almacenamiento especiales y que carece de
restricciones que regularmente imponen los fabricantes de dispositivos de
hardware privativos.
● Proceso de reconstrucción de arreglos en subprocesos.
● Configuración basada sobre el núcleo del sistema.
● Permite portar de manera transparente los arreglos entre sistemas GNU/Linux sin
necesidad de reconstruir éstos.
● Mejor aprovechamiento de los recursos del sistema pues la reconstrucción de los
arreglos se hace utilizando recursos libres.
● Soporte para unidades de almacenamiento con capacidad para realizar cambios en
caliente (hot-swap).
● Detección automática del número de núcleos del microprocesador a fin de
aprovechar mejor los recursos del sistema.

URL: kernel.org/pub/linux/utils/raid/mdadm/.

Tipos de arreglos soportados.

MDADM permite configurar los siguientes arreglos RAID:


● RAID0: Incrementa el índice de transmisión del sistema (throughput) mediante el
uso de varias unidades de disco en paralelo. El rendimiento del sistema con la
configuración RAID0 es superior a la que proporcionan las configuraciones RAID1 o
RAID5, pero se incrementa la posibilidad de pérdida de datos porque no hay forma
de recuperar o reconstruir los datos almacenados en cualquier disco que falle.
Requiere 2 discos.
● RAID1: Espejo. El arreglo más lento de todos. Requiere 2 unidades de
almacenamiento.
● RAID4: Igual que RAID0 pero con una unidad de almacenamiento extra para
mejorar el desempeño a través de la paridad y al mismo tiempo lograr
redundancia. Requiere 4 unidades de almacenamiento.
● RAID5: Igual a RAID4 pero con una paridad distribuida en todas la unidades de
almacenamiento. Requiere un mínimo de 3 unidades de almacenamiento.
● RAID6: Igual que RAID5 pero con dos paridades. Requiere un mínimo de 4 unidades
de almacenamiento.
● RAID10: Se le conoce mejor como RAID1+0. Combina RAID1 y RAID0. Requiere un
mínimo de 4 unidades de almacenamiento.

Nota.

Un RAID0+1 (también llamado RAID01 y que es muy diferente a RAID1 y totalmente opuesto a RAID1+0) es un
arreglo usado para replicar y compartir datos entre varios discos. Un RAID0+1 es un espejo de divisiones. Es decir,
dos arreglos RAID0 en el nivel inferior y un arreglo RAID1 en el nivel superior. Una falla de disco en RAID0+1 resulta
en un una falla completa de uno de los arreglos RAID0 en el nivel inferior y degradación del arreglo en RAID1 en el
nivel superior.

RAID10 es lo contrario a un RAID0+1, pues los niveles RAID que lo forman se invierten: un RAID10 es una división de
espejos. Es decir un RAID0 en el nivel superior y dos arreglos RAID1 en el nivel inferior. Una falla de disco sólo
degrada uno de los espejos del nivel inferior sin afectar el RAID0 en el nivel superior, salvo por el desempeño que
se pierde por la falta de paridad.

MDADM permite también configurar los siguientes arreglos No-RAID:

● LINEAR: Concatena unidades de almacenamiento en un sólo dispositivo md.


● MULTIPATH: permite múltiples rutas con falla en un sólo dispositivo.
● FAULTY: Un dispositivo que emula varios escenarios de falla de disco. Sólo se
utiliza para pruebas y desarrollo.
● CONTAINER: Grupo de dispositivos que son gestionados como un único dispositivo
sobre el cual se pueden crear dispositivos RAID.
Equipamiento lógico necesario.

El paquete mdadm viene instalado de modo predeterminado en ALDOS, Fedora™, CentOS y Red

Hat™ Enterprise Linux, pues se trata de un paquete obligatorio. Si por algún motivo estuviese
ausente, instale o actualice el paquete mdadm.

yum -y install mdadm

Reinicie el sistema sólo en caso de que el paquete hubiera estado ausente de la instalación, pues
debe iniciar junto con el servicio mdmonitor.

Procedimientos.

Se asume que se han añadido varias unidades de almacenamiento en el sistema. Todas las unidades
de almacenamiento que formen parte de un mismo arreglo siempre deben ser idénticas en
capacidad.

Para listar las capacidades la primera unidad de almacenamiento libre y disponible (/dev/sdb)
ejecute lo siguiente.

fdisk -l /dev/sdb

La salida debe ser similar a la siguiente:

Disco /dev/sdb: 8589 MB, 8589934592 bytes


255 heads, 63 sectors/track, 1044 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Para listar las capacidades la siguiente unidad de almacenamiento (/dev/sdc) ejecute lo siguiente

fdisk -l /dev/sdc

La salida debe ser similar a la siguiente:


Disco /dev/sdc: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Compruebe que las unidades involucradas son exactamente de la misma capacidad.

Crear un arreglo tipo RAID1.

Ejecute lo siguiente para crear dispositivo RAID1, indicando el número de dispositivos que lo
integrarán y las unidades de almacenamiento a utilizar.

mdadm --create /dev/md0 --level=1 \


--raid-devices=2 /dev/sdc /dev/sdb

La salida siempre devuelve una advertencia que recuerda que se debe evitar utilizar dispositivos
RAID con MDADM para /boot porque muchos gestores de arranque carecen de soporte para
metadatos versión 1.x y que se recomienda usar --metadata=0.90. Pase por alto esta advertencia
porque —al menos para los escenarios descritos en este documento— el arreglo sólo se utilizará
para almacenar datos.

mdadm: Note: this array has metadata at the start and


may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array?

Responda pulsado y para proceder.

Observe la información del arreglo:

mdadm --detail --scan

La salida de lo anterior puede ser similar a la siguiente.

ARRAY /dev/md0 metadata=1.2 name=0 UUID=ae6c23ea:c62d0933:7e89faee:1174c7d2

Ejecute lo siguiente para guardar la información del arreglo recién creado en el archivo
/etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf

Espere a que el arreglo se construya. Se puede ver el estado de progreso ejecutando lo siguiente:

mdadm --detail /dev/md0

Lo anterior puede devolver algo similar a lo siguiente:

/dev/md0:
Version : 1.2
Creation Time : Tue Jun 11 22:25:30 2013
Raid Level : raid1
Array Size : 8384448 (8.00 GiB 8.59 GB)
Used Dev Size : 8384448 (8.00 GiB 8.59 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Tue Jun 11 22:25:45 2013


State : active, resyncing
Active Devices : 2
Working Devices : 2
Persistence : Superblock is persistent

Layout : near=2
Chunk Size : 512K

Resync Status : 44% complete

Name : 1
UUID : 3ae6c23ea:c62d0933:7e89faee:1174c7d2
Events : 8

Number Major Minor RaidDevice State


0 8 32 0 active sync /dev/sdc
1 8 16 1 active sync /dev/sdb

Mientras se va construyendo el arreglo, observe que el valor de State es active, resyncing. El valor
de Resync Statusinformará respecto del porcentaje de progreso de la operación. El proceso puede
demorar desde unos pocos minutos hasta varias horas dependiendo el tamaño de las unidades de
almacenamiento utilizadas.

Cuando el arreglo esté terminado el valor mostrado por State debe ser sólo active. Ejemplo:
/dev/md0:
Version : 1.2
Creation Time : Tue Jun 11 22:25:30 2013
Raid Level : raid1
Array Size : 8384448 (8.00 GiB 8.59 GB)
Used Dev Size : 8384448 (8.00 GiB 8.59 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Tue Jun 11 22:26:18 2013


State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Name : 0
UUID : ae6c23ea:c62d0933:7e89faee:1174c7d2
Events : 18

Number Major Minor RaidDevice State


0 8 32 0 active sync /dev/sdc
1 8 16 1 active sync /dev/sdb

Puede verificarse un resumen del estado a través de /proc/mdstat.

cat /proc/mdstat

Lo anterior puede devolver una salida similar a la siguiente:

Personalities : [raid1]
md0 : active raid1 sdb[1] sdc[0]
8384448 blocks super 1.2 [2/2] [UU]

unused devices: <none>

A partir de este momento puede utilizar el dispositivo /dev/md0 como cualquier otra unidad de
almacenamiento. Ejemplo:

mkfs.ext4 /dev/md0

mkdir /datos00

mount /dev/md0 /datos00

df -h

umount /datos00

Lo más recomendado es utilizar el nuevo dispositivo RAID para crear volúmenes lógicos.
Primero hay que crear una unidad física en el dispositivo RAID. Ejecute lo siguiente:

pvcreate /dev/md0

Lo anterior puede devolver una salida similar a la siguiente:

Physical volume "/dev/md0" successfully created

Visualice el nuevo volumen físico ejecutando lo siguiente:

pvscan

Lo anterior puede devolver una salida similar a la siguiente:

PV /dev/sda2 VG VolGroup lvm2 [39,51 GiB / 0 free]


PV /dev/md0 lvm2 [8,00 GiB]
Total: 2 [47,50 GiB] / in use: 1 [39,51 GiB] / in no VG: 1 [8,00 GiB]

Ejecute lo siguiente para generar un nuevo grupo de volumen:

vgcreate VGDatos00 /dev/md0

Lo anterior puede devolver una salida similar a la siguiente:

Volume group "VGDatos00" successfully created

Ejecute lo siguiente para visualizar el nuevo grupo de volumen:

vgscan

Lo anterior puede devolver una salida similar a la siguiente:

Reading all physical volumes. This may take a while...


Found volume group "VolGroup" using metadata type lvm2
Found volume group "VGDatos00" using metadata type lvm2
Genere un volumen lógico denominado LVDatos00 dentro del grupo de volumen VGDatos00
utilizando cualquier porcentaje del espacio disponible. Se recomienda dejar siempre al menos un
10% libre para poder asignarlo sólo cuando sea necesario.

lvcreate -l 90%FREE VGDatos00 -n LVDatos00

Lo anterior puede devolver una salida similar a la siguiente:

Logical volume "LVDatos00" created

Ejecute lo siguiente para visualizar el nuevo volumen lógico:

lvscan

Lo anterior puede devolver una salida similar a la siguiente:

ACTIVE '/dev/VolGroup/lv_root' [38,04 GiB] inherit


ACTIVE '/dev/VolGroup/lv_swap' [1,47 GiB] inherit
ACTIVE '/dev/VGDatos00/LVDatos00' [7,19 GiB] inherit

Ejecute lo siguiente para asignar formato al nuevo volumen lógico:

mkfs.ext4 /dev/VGDatos00/LVDatos00

Lo anterior puede devolver una salida similar a la siguiente:


mke2fs 1.41.12 (17-May-2010)
Etiqueta del sistema de ficheros=
Tipo de SO: Linux
Tamaño del bloque=4096 (bitácora=2)
Tamaño del fragmento=4096 (bitácora=2)
Stride=0 blocks, Stripe width=0 blocks
471424 nodos-i, 1885184 bloques
94259 bloques (5.00%) reservados para el superusuario
Primer bloque de datos=0
Número máximo de bloques del sistema de ficheros=1933574144
58 bloque de grupos
32768 bloques por grupo, 32768 fragmentos por grupo
8128 nodos-i por grupo
Respaldo del superbloque guardado en los bloques:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Escribiendo las tablas de nodos-i: hecho


Creating journal (32768 blocks): hecho
Escribiendo superbloques y la información contable del sistema de ficheros:
hecho

Este sistema de ficheros se revisará automáticamente cada 23 montajes o


180 días, lo que suceda primero. Utilice tune2fs -c o -i para cambiarlo.

Ejecute lo siguiente para generar un punto de montaje para asignar al nuevo volumen lógico:

mkdir -p /datos00

Ejecute lo siguiente para montar el nuevo volumen lógico en el nuevo directorio:

mount /dev/VGDatos00/LVDatos00 /datos00/

Ejecute lo siguiente para visualizar el sistema de archivos en el nuevo volumen lógico que se ha
añadido en el sistema.

df -h

Lo anterior puede devolver una salida similar a la siguiente:

S.ficheros Size Used Avail Use% Montado en


/dev/mapper/VolGroup-lv_root
38G 4,3G 32G 13% /
tmpfs 376M 0 376M 0% /dev/shm
/dev/sda1 485M 66M 394M 15% /boot
/dev/mapper/VGDatos00-LVDatos00
7,1G 145M 6,6G 3% /datos00
Para que el punto de montaje sea permanente y sea montado automáticamente con el siguiente
inicio del sistema, edite el archivo /etc/fstab:

vi /etc/fstab

Añada la siguiente línea:

/dev/mapper/VGDatos00-LVDatos00 /datos00 ext4 defaults 1


2

Guarde y cierre el archivo. Verifique la configuración desmontando el volumen lógico y volviendo a


montar éste del siguiente modo:

umount /datos00

mount /datos00

Lo anterior sólo debe devolver el símbolo de sistema.

Reinicie el sistema para verificar que todo quedó correctamente. Si el sistema reinició
correctamente significa que esta primera parte del procedimiento se ha concluido el
procedimiento.

Si más adelante necesita utilizar el espacio libre disponible en la unidad física, puede asignarlo con
el sistema en funcionamiento y la partición montada sólo ejecutando lo siguiente:

lvextend -l +100%FREE /dev/mapper/VGDatos00-LVDatos00

resize2fs /dev/mapper/VGDatos00-LVDatos00

Compruebe el espacio disponible ejecutando lo siguiente:

df -h

Para este escenario, que está lejos de ser el más óptimo, si necesita hacer crecer el sistema de
archivos se puede crear otro arreglo en RAID1 y repetir el procedimiento para configurar éste como
unidad física, luego añadirlo a grupo de volumen y crecer el volumen lógico LVDatos00 para
incrementar la capacidad de almacenamiento. Sólo revise el siguiente ejemplo y en su lugar
realice el procedimiento descrito más adelante para crear un RAID10.
mdadm --create /dev/md1 --level=1 \
--raid-devices=2 /dev/sde /dev/sdd

mdadm --detail --scan >> /etc/mdadm.conf

vi /etc/mdadm.conf

mdadm --detail

pvcreate /dev/md1

vgextend VGDatos00 /dev/md1

lvextend -l +90%FREE /dev/mapper/VGDatos00-LVDatos00

resize2fs /dev/mapper/VGDatos00-LVDatos00

Crear un arreglo tipo RAID10.

Un RAID10, con o sin LVM, es más eficiente en cuanto a rendimiento que un RAID1+LVM pues el
rendimiento sigue siendo el de un RAID1 (espejo sin paridad).

Para un RAID10 requerirá un mínimo de 4 unidades de almacenamiento. Para el ejemplo a


continuación se utilizarán 6 unidades de almacenamiento, donde se utilizarán 4 unidades activas en
el arreglo y utilizarán 2 unidades de repuesto, las cuales serán utilizados automáticamente en
cuanto falle cualquier otra unidad de almacenamiento. Tome en consideración que MDADM es
incapaz de hacer crecer los arreglos en RAID10 y sólo permite agregar o reemplazar unidades de
almacenamiento.

Ejecute lo siguiente para apagar el sistema:

poweroff

Añada 6 unidades de almacenamiento idénticas.

Encienda de nuevo el sistema.

Ejecute lo siguiente para generar un arreglo en RAID10 utilizando las primeras 4 unidades de
almacenamiento recién agregadas.

mdadm --create /dev/md1 --level=raid10 --raid-devices=4 \


/dev/sdd /dev/sde /dev/sdf /dev/sdg

Espere a que el arreglo se construya. Se puede ver el estado de progreso ejecutando lo siguiente:
mdadm --detail /dev/md1

Lo anterior puede devolver una salida similar a la siguiente:

/dev/md1:
Version : 1.2
Creation Time : Tue Jun 11 23:30:10 2013
Raid Level : raid10
Array Size : 16768000 (15.99 GiB 17.17 GB)
Used Dev Size : 8384000 (8.00 GiB 8.59 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent

Update Time : Tue Jun 11 23:30:49 2013


State : active, resyncing
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Layout : near=2
Chunk Size : 512K

Resync Status : 44% complete

Name : 1
UUID : 342944f9:8d1f5acf:2d72653b:a1f2f253
Events : 8

Number Major Minor RaidDevice State


0 8 48 0 active sync /dev/sdd
1 8 64 1 active sync /dev/sde
2 8 80 2 active sync /dev/sdf
3 8 96 3 active sync /dev/sdg

Continúe hasta que se haya completado por completo la construcción del arreglo.

Tras unos minutos, ejecute lo siguiente para verificar que haya concluido el proceso de
construcción del arreglo.

mdadm --detail /dev/md1

Lo anterior puede devolver una salida similar a la siguiente:


/dev/md1:
Version : 1.2
Creation Time : Tue Jun 11 23:30:10 2013
Raid Level : raid10
Array Size : 16768000 (15.99 GiB 17.17 GB)
Used Dev Size : 8384000 (8.00 GiB 8.59 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent

Update Time : Tue Jun 11 23:31:36 2013


State : active
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Layout : near=2
Chunk Size : 512K

Name : 1
UUID : 342944f9:8d1f5acf:2d72653b:a1f2f253
Events : 18

Number Major Minor RaidDevice State


0 8 48 0 active sync /dev/sdd
1 8 64 1 active sync /dev/sde
2 8 80 2 active sync /dev/sdf
3 8 96 3 active sync /dev/sdg

Ejecute lo siguiente para agregar dos unidades de almacenamiento como repuestos:

mdadm --add /dev/md1 /dev/sdh


mdadm --add /dev/md1 /dev/sdi

Ejecute lo siguiente para observar el estado del arreglo y verificar que se han añadido todas las
unidades de almacenamiento de repuesto inactivas.

mdadm --detail /dev/md1

Lo anterior puede devolver una salida similar a la siguiente:


/dev/md1:
Version : 1.2
Creation Time : Tue Jun 11 23:30:10 2013
Raid Level : raid10
Array Size : 16768000 (15.99 GiB 17.17 GB)
Used Dev Size : 8384000 (8.00 GiB 8.59 GB)
Raid Devices : 4
Total Devices : 6
Persistence : Superblock is persistent

Update Time : Tue Jun 11 23:34:56 2013


State : active
Active Devices : 4
Working Devices : 6
Failed Devices : 0
Spare Devices : 2

Layout : near=2
Chunk Size : 512K

Name : 1
UUID : 342944f9:8d1f5acf:2d72653b:a1f2f253
Events : 20

Number Major Minor RaidDevice State


0 8 48 0 active sync /dev/sdd
1 8 64 1 active sync /dev/sde
2 8 80 2 active sync /dev/sdf
3 8 96 3 active sync /dev/sdg

4 8 112 - spare /dev/sdh


5 8 128 - spare /dev/sdi

Guarde la información del arreglo recién creado en el archivo /etc/mdadm.conf.

mdadm --detail --scan >> /etc/mdadm.conf

Edite el archivo /etc/mdadm.conf y quite las líneas repetidas.

vi /etc/mdadm.conf

Este paso es importante, pues puede hacer que los arreglos repetidos sean imposibles de utilizar y
el sistema sea incapaz de iniciar normalmente.

Una vez que esté todo configurado, proceda a crear otro volumen lógico:
pvcreate /dev/md1

pvscan

vgcreate VGDatos01 /dev/md1

vgscan

lvcreate -l 90%FREE VGDatos01 -n LVDatos01

lvscan

mkfs.ext4 /dev/mapper/VGDatos01-LVDatos01

mkdir -p /datos01

mount /dev/mapper/VGDatos01-LVDatos01 /datos01

df -h

umount /datos01

Edite el archivo /etc/fstab:

vi /etc/fstab

Añada la siguiente línea:

/dev/mapper/VGDatos01-LVDatos01 /datos01 ext4 defaults 1


2

Reinicie el sistema para verificar que todo quedó configurado correctamente.

Si el sistema reinició correctamente significa que se ha concluido el procedimiento.

Eliminar una unidad de almacenamiento de un arreglo.

Para eliminar una unidad de almacenamiento por falla o simplemente para probar, ejecute:

mdadm /dev/md1 --fail /dev/sdd --remove /dev/sdd

Lo anterior puede devolver una salida similar a la siguiente:


mdadm: set /dev/sdd faulty in /dev/md1
mdadm: hot removed /dev/sdd from /dev/md1

Ejecute lo siguiente para observar el detalle del arreglo donde observará que se reconstruye el
arreglo con la unidad de almacenamiento de repuesto:

mdadm --detail /dev/md1

Lo anterior puede devolver una salida similar a la siguiente donde se podrá observar que en el
estado se reporta arreglo limpio, degradado pero en recuperación:

/dev/md1:
Version : 1.2
Creation Time : Tue Jun 11 23:30:10 2013
Raid Level : raid10
Array Size : 16768000 (15.99 GiB 17.17 GB)
Used Dev Size : 8384000 (8.00 GiB 8.59 GB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent

Update Time : Tue Jun 11 23:48:05 2013


State : clean, degraded, recovering
Active Devices : 3
Working Devices : 5
Failed Devices : 0
Spare Devices : 2

Layout : near=2
Chunk Size : 512K

Rebuild Status : 67% complete

Name : 1
UUID : 342944f9:8d1f5acf:2d72653b:a1f2f253
Events : 36

Number Major Minor RaidDevice State


5 8 128 0 spare rebuilding /dev/sdi
1 8 64 1 active sync /dev/sde
2 8 80 2 active sync /dev/sdf
3 8 96 3 active sync /dev/sdg

4 8 112 - spare /dev/sdh

Ejecute lo siguiente para añadir al arreglo la unidad anteriormente eliminada, simulando que se
trata de una unidad de almacenamiento nueva:

mdadm --zero-superblock /dev/sdd


mdadm --add /dev/md1 /dev/sdd

Lo anterior puede devolver una salida similar a la siguiente:


mdadm: added /dev/sdd

Ejecute lo siguiente para comprobar que la unidad de almacenamiento se ha agregado como unidad
de repuesto:

mdadm --detail /dev/md1

Lo anterior puede devolver una salida similar a la siguiente:

/dev/md1:
Version : 1.2
Creation Time : Tue Jun 11 23:30:10 2013
Raid Level : raid10
Array Size : 16768000 (15.99 GiB 17.17 GB)
Used Dev Size : 8384000 (8.00 GiB 8.59 GB)
Raid Devices : 4
Total Devices : 6
Persistence : Superblock is persistent

Update Time : Tue Jun 11 23:50:09 2013


State : clean
Active Devices : 4
Working Devices : 6
Failed Devices : 0
Spare Devices : 2

Layout : near=2
Chunk Size : 512K

Name : 1
UUID : 342944f9:8d1f5acf:2d72653b:a1f2f253
Events : 46

Number Major Minor RaidDevice State


5 8 128 0 active sync /dev/sdi
1 8 64 1 active sync /dev/sde
2 8 80 2 active sync /dev/sdf
3 8 96 3 active sync /dev/sdg

4 8 112 - spare /dev/sdh


6 8 48 - spare /dev/sdd

Eliminar un arreglo del sistema.

Para eliminar un arreglo, primero desmonte el sistema de archivos. En el siguiente ejemplo


realizará con el arreglo configurado como /dev/md0.

umount /datos00

Edite el archivo /etc/fstab:


vi /etc/fstab

Elimine la linea que corresponda al sistema de archivos contenido en el arreglo.

Si fuese el caso, se debe eliminar el volumen lógico que pudisese contener. Ejemplo:

lvremove LVDatos00

Ejecute lo siguiente para eliminar el grupo de volumen:

vgremove VGDatos00

Ejecute lo siguiente para detener el arreglo:

mdadm --stop /dev/md0

Edite el archivo /etc/mdadm.conf:

vi /etc/mdadm.conf

Elimine la línea que correspondía al arreglo /dev/md0.

Verifique que se ha eliminado el arreglo ejecutando:

mdadm --detail --scan

Ejecute lo siguiente para poder volver a utilizar las unidades de almacenamiento saludables para
añadirlas a otro arreglo o bien como unidades físicas en un volumen lógico:

mdadm --zero-superblock /dev/sdb


mdadm --zero-superblock /dev/sdc

Otras alternativas para gestionar MDADM.

Cabe señalar que Webmin incluye una excelente herramienta de administración para arreglos de
disco con MDADM.
Si utiliza CentOS o Red Hat™ Enterprise Linux, descargue el archivo de configuración del almacén
YUM de AlcanceLibre.org ejecutando lo siguiente:

wget http://www.alcancelibre.org/al/server/AL-Server.repo \
-O /etc/yum.repos.d/AL-Server.repo

Instale el paquete ejecutando lo siguiente

yum -y install webmin

Una vez concluida la instalación del paquete, para poder acceder hacia la interfaz de Webmin es
necesario abrir en el muro cortafuegos el acceso hacia el puerto 10000 por TCP. Ejecute lo
siguiente para modificar el cortafuegos predeterminado del sistema:

iptables -A INPUT -m state --state NEW -m tcp -p tcp \

--dport 10000 -j ACCEPT

Ejecute lo siguiente para guardar los cambios en la configuración del muro cortafuegos:

service iptables save

Acceda hacia https://nombre.dominio.tld:10000/ utilizando cualquier navegador para interfaz


gráfica. Ingrese como root y descubra que todos los procedimientos descritos en este documento se
pueden hacer más fácilmente desde el módulo Linux RAID de la sección de Hardware de Webmin.
El objetivo de este documento es que usted conozca cómo funciona todo por debajo de lo que
puede hacer Webmin y pueda prescindir de dicha interfaz en cualquier circunstancia que así lo
requiera.
Otras consideraciones
CREAR un RAID5
lliurex@server1:~$ sudo mdadm --create RAID1 --level=1 --raid-devices=2 /dev/sdb
/dev/sdd
mdadm: /dev/sdb appears to be part of a raid array:
level=raid0 devices=2 ctime=Wed Nov 3 09:26:54 2021
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: /dev/sdd appears to be part of a raid array:
level=raid0 devices=2 ctime=Wed Nov 3 09:26:54 2021
mdadm: largest drive (/dev/sdd) exceeds size (101376K) by more than 1%
Continue creating array? ^C

Los dos discos pertenecen a un raid0 anterior y nos avisa que perderemos la información si
continuamos. Podemos borrar los metadatos que contiene cada disco ejecutando la
instrucción de abajo.

lliurex@server1:~$ sudo mdadm --zero-superblock /dev/sdb


lliurex@server1:~$ sudo mdadm --create RAID1 --level=1 --raid-devices=2 /dev/sdb
/dev/sdd
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: /dev/sdd appears to be part of a raid array:
level=raid0 devices=2 ctime=Wed Nov 3 09:26:54 2021
mdadm: largest drive (/dev/sdd) exceeds size (101376K) by more than 1%
Continue creating array? ^C

Ahora solo se queja del disco /dev/sdd porque no le hemos borrado sus metadatos

lliurex@server1:~$ ^C
lliurex@server1:~$ sudo mdadm --zero-superblock /dev/sdb /dev/sdd
mdadm: Unrecognised md component device - /dev/sdb

Si intentamos quitar los metadatos de un disco que no los contiene, entonces nos avisa de
que ese disco no lo reconoce como parte de un RAID

lliurex@server1:~$ sudo mdadm --create RAID1 --level=1 --raid-devices=2 /dev/sdb


/dev/sdd
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: largest drive (/dev/sdd) exceeds size (101376K) by more than 1%
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md/RAID1 started.
Disk /dev/md127: 99 MiB, 103809024 bytes, 202752 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa9349b80

Device Boot Start End Sectors Size Id Type


/dev/md127p1 2048 202751 200704 98M 83 Linux

-----------------------------------------------------------------------------------------------------------------
lliurex@server1:~$ sudo mdadm --zero-superblock /dev/sdb /dev/sdd
mdadm: Couldn't open /dev/sdb for write - not zeroing
mdadm: Couldn't open /dev/sdd for write - not zeroing
lliurex@server1:~$ sudo mdadm --stop /dev/md/RAID1
mdadm: stopped /dev/md/RAID1
lliurex@server1:~$ sudo mdadm --zero-superblock /dev/sdb /dev/sdd
lliurex@server1:~$

Si el RAID está en marcha, no podemos eliminar los metadatos de sus discos. Primero
hemos de parar el RAID.

---------------------------------------------------------------------------------------------------------
lliurex@server1:~/raids$ sudo mount /dev/md/RAID5 /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/md127, missing codepage or
helper program, or other error.
lliurex@server1:~/raids$ sudo mount /dev/md/RAID5p1 /mnt
lliurex@server1:~/raids$

Si intentamos montar el disco duro, nos saldrá un error porque no reconoce el formato, ya
que esa información está en la partición. Cuando montemos, hemos de fijarnos que solo
podemos montar particiones.

You might also like