RAIDs Linux
RAIDs Linux
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 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.
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
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
Vemos que el nombre que le hemos dado a nuestro RAID está enlazado al fichero
/dev/md127
Cat /proc/mdstat
Particionamos
root@localhost:~# fdisk /dev/md/RAID0
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]
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
Crear Partición
Montar el RAID1
Copiar datos
Provocar el fallo
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
© 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
● 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/.
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.
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.
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
Para listar las capacidades la siguiente unidad de almacenamiento (/dev/sdc) ejecute lo siguiente
fdisk -l /dev/sdc
Ejecute lo siguiente para crear dispositivo RAID1, indicando el número de dispositivos que lo
integrarán y las unidades de almacenamiento a utilizar.
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.
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:
/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
Layout : near=2
Chunk Size : 512K
Name : 1
UUID : 3ae6c23ea:c62d0933:7e89faee:1174c7d2
Events : 8
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
Name : 0
UUID : ae6c23ea:c62d0933:7e89faee:1174c7d2
Events : 18
cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb[1] sdc[0]
8384448 blocks super 1.2 [2/2] [UU]
A partir de este momento puede utilizar el dispositivo /dev/md0 como cualquier otra unidad de
almacenamiento. Ejemplo:
mkfs.ext4 /dev/md0
mkdir /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
pvscan
vgscan
lvscan
mkfs.ext4 /dev/VGDatos00/LVDatos00
Ejecute lo siguiente para generar un punto de montaje para asignar al nuevo volumen lógico:
mkdir -p /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
vi /etc/fstab
umount /datos00
mount /datos00
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:
resize2fs /dev/mapper/VGDatos00-LVDatos00
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
vi /etc/mdadm.conf
mdadm --detail
pvcreate /dev/md1
resize2fs /dev/mapper/VGDatos00-LVDatos00
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).
poweroff
Ejecute lo siguiente para generar un arreglo en RAID10 utilizando las primeras 4 unidades de
almacenamiento recién agregadas.
Espere a que el arreglo se construya. Se puede ver el estado de progreso ejecutando lo siguiente:
mdadm --detail /dev/md1
/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
Layout : near=2
Chunk Size : 512K
Name : 1
UUID : 342944f9:8d1f5acf:2d72653b:a1f2f253
Events : 8
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.
Layout : near=2
Chunk Size : 512K
Name : 1
UUID : 342944f9:8d1f5acf:2d72653b:a1f2f253
Events : 18
Ejecute lo siguiente para observar el estado del arreglo y verificar que se han añadido todas las
unidades de almacenamiento de repuesto inactivas.
Layout : near=2
Chunk Size : 512K
Name : 1
UUID : 342944f9:8d1f5acf:2d72653b:a1f2f253
Events : 20
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
vgscan
lvscan
mkfs.ext4 /dev/mapper/VGDatos01-LVDatos01
mkdir -p /datos01
df -h
umount /datos01
vi /etc/fstab
Para eliminar una unidad de almacenamiento por falla o simplemente para probar, ejecute:
Ejecute lo siguiente para observar el detalle del arreglo donde observará que se reconstruye el
arreglo con la unidad de almacenamiento de repuesto:
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
Layout : near=2
Chunk Size : 512K
Name : 1
UUID : 342944f9:8d1f5acf:2d72653b:a1f2f253
Events : 36
Ejecute lo siguiente para añadir al arreglo la unidad anteriormente eliminada, simulando que se
trata de una unidad de almacenamiento nueva:
Ejecute lo siguiente para comprobar que la unidad de almacenamiento se ha agregado como unidad
de repuesto:
/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
Layout : near=2
Chunk Size : 512K
Name : 1
UUID : 342944f9:8d1f5acf:2d72653b:a1f2f253
Events : 46
umount /datos00
Si fuese el caso, se debe eliminar el volumen lógico que pudisese contener. Ejemplo:
lvremove LVDatos00
vgremove VGDatos00
vi /etc/mdadm.conf
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:
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
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:
Ejecute lo siguiente para guardar los cambios en la configuración del muro cortafuegos:
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.
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 --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.