Recuperación de la información de RAID
Para este apartado vamos a crear una serie de datos en el RAID 5 configurado de forma previa.
Almacenar datos
Descargamos el libro completo de El Quijote varias veces:
user@server-carpet:~$ wget https://gist.githubusercontent.com/jsdario/6d6c69398cb0c73111e49f1218960f79/raw/8d4fc4548d437e2a7203a5aeeace5477f598827d/el_quijote.txt >> el_quijote.txt
Desconectar disco
Debemos configurar en VirtualBox que nuestros discos son desconectables en caliente.
Al desconectar desde la interfaz de VirtualBox el disco vemos lo siguiente:
1user@server-carpet:~$ sudo mdadm --detail /dev/md2
2/dev/md2:
3 Version : 1.2
4 Creation Time : Mon Oct 25 11:41:35 2021
5 Raid Level : raid5
6 Array Size : 15713280 (14.99 GiB 16.09 GB)
7 Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
8 Raid Devices : 4
9 Total Devices : 3
10 Persistence : Superblock is persistent
11
12 Update Time : Mon Oct 25 12:07:43 2021
13 State : clean, degraded
14 Active Devices : 3
15Working Devices : 3
16 Failed Devices : 0
17 Spare Devices : 0
18
19 Layout : left-symmetric
20 Chunk Size : 512K
21
22Consistency Policy : resync
23
24 Name : server-carpet:2 (local to host server-carpet)
25 UUID : dc70161b:a4c632d6:fee7cbaa:33c7f703
26 Events : 43
27
28 Number Major Minor RaidDevice State
29 0 8 80 0 active sync /dev/sdf
30 - 0 0 1 removed
31 2 8 112 2 active sync /dev/sdh
32 4 8 128 3 active sync /dev/sdi
Como podemos ver en las líneas 12 y 25 de la salida del comando anterior, el estado del raid es degradado y no se encuentra el disco 1, aparece como eliminado (removed).
Recuperación de la información
Guardar la información del superbloque
Una de las acciones más útiles que podemos hacer antes de nada es guardar la información guardada en los superbloques del RAID en cada dispostivo antes de que el disco fallara.
Para hacerlo podemos ejecutar el siguiente comando:
user@server-carpet:~$ sudo mdadm --examine /dev/sdf >> raid.status
user@server-carpet:~$ sudo mdadm --examine /dev/sdh >> raid.status
user@server-carpet:~$ sudo mdadm --examine /dev/sdi >> raid.status
Esta información puede sernos útil en futuros pasos.
Comprobar que los datos siguen siendo accesibles
Para hacerlo basta con navegar al punto de montaje del dispostivo RAID y listar o navegar por los archivos. Siempre teniendo en cuenta que cuánto menos modifiquemos, mejor.
user@server-carpet:~$ cd /mnt/md2/
user@server-carpet:/mnt/md2$ ll
total 23852
drwxr-xr-x 3 user user 4096 oct 25 12:02 ./
drwxr-xr-x 5 root root 4096 oct 25 11:43 ../
-rw-rw-r-- 1 user user 0 oct 25 12:02 el_quijote.txt
-rw-rw-r-- 1 user user 1060259 oct 25 12:02 el_quijote.txt.1
-rw-rw-r-- 1 user user 1060259 oct 25 12:02 el_quijote.txt.10
-rw-rw-r-- 1 user user 1060259 oct 25 12:02 el_quijote.txt.11
-rw-rw-r-- 1 user user 1060259 oct 25 12:02 el_quijote.txt.12
[...]
Añadir nuevo disco a RAID
user@server-carpet:~$ sudo mdadm -–manage /dev/md2 -–add /dev/sdg
Al hacerlo veremos como se durante unos segundos el sistema se recompondrá, replicando los datos entre los discos.
