GNU/Linux >> Tutoriales Linux >  >> Linux

Sustitución de una unidad RAID 6 defectuosa con mdadm

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 :

  1. Identifique el problema.
  2. Obtenga detalles de la matriz RAID.
  3. Retire el disco defectuoso de la matriz RAID.
    1. Apague la máquina y reemplace el disco.
    2. Particione el disco nuevo.
    3. Agregue el nuevo disco a la matriz RAID.
  4. 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.


Linux
  1. ¿Errores al clonar disco con Cat?

  2. mdadm:comando no encontrado

  3. Simple mdadm RAID 1 que no activa el repuesto

  4. mdadm:configuración de disco por UUID

  5. Linux raid desaparece después de reiniciar

Verifique el espacio en disco usado en Linux con du

RAID de Linux

¿No se puede formatear la unidad USB con discos (udisks-error-quark, 0)?

Hacer que la copia de disco/disco sea más lenta

¿Es posible cambiar el tamaño del disco en línea con KVM?

Linux mdadm software RAID 6:¿es compatible con la recuperación de corrupción de bits?