Este tutorial describe cómo reemplazar una unidad defectuosa en un RAID de software administrado por mdadm
utilidad. Para reemplazar una unidad RAID 6 defectuosa en mdadm
:
- Identifique el problema.
- Obtenga detalles de la matriz RAID.
- Retire el disco defectuoso de la matriz RAID.
- Apague la máquina y reemplace el disco.
- Particione el disco nuevo.
- Agregue el nuevo disco a la matriz RAID.
- Verificar recuperación.
Veamos este proceso con más detalle a través de un ejemplo.
Identifique el problema
Para identificar qué disco está fallando dentro de la matriz RAID, ejecute:
[root@server loc]# cat /proc/mdadm
O:
[root@server loc]# mdadm -–query -–detail /dev/md2
El disco defectuoso aparecerá como fallido o eliminado . Por ejemplo:
[root@server loc]# mdadm -–query -–detail /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Mon Jun 22 08:47:09 2015
Raid Level : raid6
Array Size : 5819252736 (5549.67 GiB 5958.91 GB)
Used Dev Size : 2909626368 (2774.84 GiB 2979.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Oct 15 11:55:06 2018
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Rebuild Status : 3% complete
Name : localhost.localdomain:2
UUID : 54404ab5:4450e4f3:aba6c1fb:93a4087e
Events : 1046292
Number Major Minor Raid Device State
0 0 0 0 removed
1 8 36 1 active sync /dev/sdc4
2 8 52 2 active sync /dev/sdd4
3 8 68 3 active sync /dev/sde4
Obtener detalles de la matriz RAID
Para examinar el estado de la matriz RAID e identificar el estado de un disco dentro de RAID:
[root@server loc]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md2 : active raid6 sdb4[4](F) sdd4[2] sdc4[1] sde4[3]
5819252736 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/3] [_UUU]
[>………………..] recovery = 3.4% (100650992/2909626368) finish=471.5min speed=99278K/sec
bitmap: 2/22 pages [8KB], 65536KB chunk
unused devices: <none>
Como podemos ver, el dispositivo /dev/sdb4
ha fallado en el RAID.
Dado que identificamos que el disco fallido es /dev/sdb4
(que fue el caso en este servidor), necesitaríamos obtener el número de serie del disco usando smartctl
:
[root@server loc]# smartctl -–all /dev/sdb | grep -i 'Serial'
El comando anterior es importante ya que necesita saber qué disco eliminar del servidor, de acuerdo con la etiqueta física del disco.
Retire el disco que falla de la matriz RAID
Es importante eliminar el disco defectuoso del arreglo para que el arreglo conserve un estado consistente y esté al tanto de cada cambio, así:
[root@server loc]# mdadm -–manage /dev/md2 -–remove /dev/sdb4
Si se elimina con éxito, aparecerá un mensaje como el siguiente:
[root@server loc]# mdadm: hot removed /dev/sdb4 from /dev/md2
Comprobar el estado de /proc/mdstat
una vez más:
[root@server loc]# cat /proc/mdstat
Puedes ver que /dev/sdb4
ya no se ve
Apague la máquina y reemplace el disco
Ahora es el momento de apagar el sistema y reemplazar el disco defectuoso por uno nuevo, pero antes de apagar el sistema, comente /dev/md2
fuera de su /etc/fstab
expediente. Vea el siguiente ejemplo:
[root@server loc]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri May 20 13:12:25 2016
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk’
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=1300b86d-2638-4a9f-b366-c5e67e9ffa4e /boot xfs defaults 0 0
#/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
#/dev/md2 /var/loc xfs defaults 0 0
Particionar el nuevo disco
Dado que tenemos otros discos en funcionamiento dentro de la matriz RAID, es fácil y conveniente copiar el esquema de partición de un disco en funcionamiento en el nuevo disco. Esta tarea se logra con el sgdisk
utilidad, que es proporcionada por el gdisk
paquete.
Instalar gdisk
así (ajuste este comando para su distribución):
[root@server loc]# yum install gdisk
Usando gdisk
, primero pasaremos el -R
opción (significa replicar). Asegúrese de replicar el esquema de partición de un disco en funcionamiento. Es importante que utilice el orden correcto de los discos para replicar el esquema de partición de un disco en funcionamiento a uno nuevo. En nuestra situación, en el nuevo disco está /dev/sdb
y los discos de trabajo son /dev/sdc
, /dev/sdd
, /dev/sde
.
Ahora, para replicar el esquema de partición de un disco en funcionamiento (digamos /dev/sdc
) al nuevo disco /dev/sdb
, se necesita el siguiente comando:
[root@server loc]# sgdisk -R /dev/sdb /dev/sdc
Para evitar conflictos de GUID con otras unidades, debemos aleatorizar el GUID de la nueva unidad mediante:
[root@server loc]# sgdisk -G /dev/sdb
The operation has completed successfully.
A continuación, verifique la salida de /dev/sdb usando el parted
utilidad:
[root@server loc]# parted /dev/sdb print
Agregue el nuevo disco a la matriz RAID
Después de completar la replicación del esquema de partición en la nueva unidad, ahora podemos agregar la unidad a la matriz RAID:
[root@server loc]# mdadm -–manage /dev/md2 -–add /dev/sdb4
mdadm: added /dev/sdb4
Verificar la recuperación
Para verificar la recuperación de RAID, utilice lo siguiente:
[root@server loc]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md2 : active raid6 sdb4[4] sdd4[2] sdc4[1] sde4[3]
5819252736 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/3] [_UUU]
[==>………………] recovery = 12.2% (357590568/2909626368) finish=424.1min speed=100283K/sec
bitmap: 0/22 pages [0KB], 65536KB chunk
unused devices: <none>
O:
[root@server loc]# mdadm -–query -–detail /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Mon Jun 22 08:47:09 2015
Raid Level : raid6
Array Size : 5819252736 (5549.67 GiB 5958.91 GB)
Used Dev Size : 2909626368 (2774.84 GiB 2979.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Oct 15 12:37:37 2018
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Rebuild Status : 12% complete
Name : localhost.localdomain:2
UUID : 54404ab5:4450e4f3:aba6c1fb:93a4087e
Events : 1046749
Number Major Minor Raid Device State
4 8 20 0 spare rebuilding /dev/sdb4
1 8 36 1 active sync /dev/sdc4
2 8 52 2 active sync /dev/sdd4
3 8 68 3 active sync /dev/sde4
De la salida anterior, ahora vemos que /dev/sdb4
se está reconstruyendo, y hay cuatro dispositivos activos y en funcionamiento disponibles. El proceso de reconstrucción puede demorar un tiempo, según el tamaño total del disco y el tipo de disco (es decir, tradicional o de estado sólido).
Celebrar
Ahora ha reemplazado con éxito una unidad RAID 6 defectuosa con mdadm
. Con suerte, nunca necesitará hacer esto, pero el hardware falla. Lo más probable es que si está utilizando RAID 6, eventualmente sucederá. Si puede, configure un laboratorio, fuerce un RAID 6 para que falle y luego recupérelo. Saber cómo abordar el problema hará que la experiencia cuando suceda lo impensable sea mucho menos estresante.