Raid
Sumario
Usando la Array
- Parar el dispositivo RAID
mdadm --stop /dev/md0
- Para todos los RAID
mdadm --stop --scan
- Encender la raid
mdadm --run /dev/md0
- Ver estado de la raid
cat /proc/mdstat
- Ver la los detalles de inicio del servidor para las raid
dmesg | grep md
Detalles de una raid
Para obtener los detalles de una raid
mdadm --detail /dev/md0
/dev/md1: Version : 1.2 Creation Time : Mon Jan 20 20:23:09 2014 Raid Level : raid1 Array Size : 1441382208 (1374.61 GiB 1475.98 GB) Used Dev Size : 1441382208 (1374.61 GiB 1475.98 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Tue Jan 28 13:07:09 2014 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : space:1 (local to host space) UUID : 3c7af92e:aaeb5082:6f8cf3a2:2ae8cf67 Events : 187 Number Major Minor RaidDevice State 0 8 34 0 active sync /dev/sdc2 1 8 66 1 active sync /dev/sde2
- Para ver todo los detalles de todas las raid
mdadm --detail --scan
Raid 1
Para hacer una raid 1 o mirror necesitamos dos particiones del mismo tamaño
mdadm --create /dev/md0 --verbose --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
Crear una raid con un solo disco el segundo como perdido
mdadm --create /dev/md0 --verbose --level=1 --raid-devices=2 /dev/sdb1 missing
Raid Linear
mdadm --create --verbose /dev/md0 --level=linear --raid-devices=2 /dev/sdb6 /dev/sdc5
Modificar mdadm.conf
Para que la raid quede montada en el inicio de servidor hay que modificar el archivo mdadm.conf
cd /etc/mdadm cd mdadm.conf mdadm.conf.old echo "DEVICE partitions" > mdadm.conf mdadm --detail --scan >> mdadm.conf
Comprobamos el estado del archivo mdadm.conf
cat mdadm.conf
DEVICE partitions ARRAY /dev/md0 level=raid1 num-devices=2 UUID=a48e6816:ea6e7f37:6cc50cdb devices=/dev/sdb1,/dev/sdc1
Variación
Con la orden anterior introducíamos la información de las raid del sistema en el archivo mdadm.conf pero no especificaba concretamente el montaje de la raid y puede que al reiniciar el servidor que esos nombres cambien, dando un error en el montaje de las unidades.
Para solventar este error me gusta utilizar:
mdadm --detail --brief /dev/md2 ARRAY /dev/md2 metadata=1.2 name=space:2 UUID=37035db4:4f538841:ddbc30e9:81428a98
Como podemos comprobar los informa exactamente el dispositivo RAID, su nombre y UUID
Ahora solo tenemos que introducir estos datos en el archivo mdadm.conf
mdadm --detail --brief /dev/md2 >> mdadm.conf
Importante realizar esta operación por cada RAID nunca utilizar --scan
Dar formato una raid
Para formatear una raid utilizaremos el comando mkfs y la extension del formato que queremos dar a la raid
mkfs.ext3 /dev/md0
Nota: Para comprobar que tipos de formatos disponemos en el sistema solamente tendremos que escribir en el terminal mkfs. y pulsar TAB obtendremos un listado
mkfs mkfs.cramfs mkfs.ext3 mkfs.ext4dev mkfs.msdos mkfs.vfat mkfs.bfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.ntfs
Montar la raid
Editamos el archovi fstab y añadimos:
/dev/md0 /media/raid1 ext3 defaults,user 0 0
Administrar una RAID
- Establecer un disco como faulty/failed:
sudo mdadm --fail /dev/md0 /dev/sdb1
No utilizar en RAID0 ó RAID en modo linear. Pueden perderse los datos! |
Quitar un disco fallido de una RAID:
sudo mdadm --remove /dev/md0 /dev/sdb1
Limpiar disco de una raid
- Limpiar cualquier información previa de un disco RAID (Ej. al reutilizar un disco de otra raid antigua)
sudo mdadm --zero-superblock /dev/sdb1
Añadir un disco a la RAID
sudo mdadm --add /dev/md0 /dev/sdb1
Añadir soporte "bitmap" a un RAID
sudo mdadm --grow /dev/mdX --bitmap=internal
Quitar el soporte de "bitmap" a un RAID
sudo mdadm --grow /dev/mdX --bitmap=none
Eliminar una Raid
mdadm --stop /dev/md0
mdadm --remove /dev/md0
Montar una disco de otra raid
Podemos montar el disco duro en una maquina diferente al la que se hizo la raid.
Primero devemos identificar que dispositivo tiene sistema de raid.
lsblk -l
NAME FSTYPE LABEL MOUNTPOINT sda └─sda1 linux_raid_member rtl:0 └─md10 ext4 /media/uno mmcblk0 ├─mmcblk0p1 vfat boot /boot ├─mmcblk0p2 ├─mmcblk0p5 ext4 RTL-03.10-18 / ├─mmcblk0p6 ext4 RTL-03.10-18 ├─mmcblk0p7 ext4 StarCam2
Ahora ya sabemos que el dispositivo sda1 es el que pertenecia a una raid, ahora vamos a comprobar que tipo de raid.
mdadm --examine /dev/sda1
/dev/sda1: Magic : a92b4efc Version : 1.2 Feature Map : 0x0 Array UUID : 94009109:d0414ad2:68f1982d:35984470 Name : rtl:0 (local to host rtl) Creation Time : Wed Mar 18 22:33:06 2015 Raid Level : raid1 Raid Devices : 2 Avail Dev Size : 15650816 (7.46 GiB 8.01 GB) Array Size : 7825344 (7.46 GiB 8.01 GB) Used Dev Size : 15650688 (7.46 GiB 8.01 GB) Data Offset : 8192 sectors Super Offset : 8 sectors State : clean Device UUID : 8368d6b7:d013918b:d42fc0ca:81c4dc0b Update Time : Wed Mar 18 23:58:48 2015 Checksum : 2305cee9 - correct Events : 114 Device Role : Active device 1 Array State : .A ('A' == active, '.' == missing)
Ya podemos crear una raid temporal para poder montarla despues y acceder a los datos del disco duro.
mdadm -A -R /dev/md10 /dev/sda1
Tiene que devolver el siguiente mensaje.
mdadm: /dev/md10 has been started with 1 drive (out of 2).
Ahora montamos del dispositivo md10
mount /dev/md10 /media/raid_temp
Para para el dispoditivo raid temporal, solo tenemos que desmontar el dispositivo /dev/md10
y comprobar que este esta parado mediante la siguiente orden.
mdadm -S /dev/md10
mdadm: stopped /dev/md9