Ce tutoriel décrit comment remplacer un disque défaillant sur un RAID logiciel géré par le mdadm
utilitaire. Pour remplacer un disque RAID 6 défaillant dans mdadm
:
- Identifiez le problème.
- Obtenez les détails de la matrice RAID.
- Retirez le disque défaillant de la matrice RAID.
- Éteignez la machine et remplacez le disque.
- Partitionnez le nouveau disque.
- Ajoutez le nouveau disque à la matrice RAID.
- Vérifiez la récupération.
Examinons ce processus plus en détail en parcourant un exemple.
Identifiez le problème
Pour identifier le disque défaillant dans la matrice RAID, exécutez :
[root@server loc]# cat /proc/mdadm
Ou :
[root@server loc]# mdadm -–query -–detail /dev/md2
Le disque défaillant apparaîtra comme défaillant ou supprimé . Par exemple :
[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
Obtenez les détails de la matrice RAID
Pour examiner l'état de la matrice RAID et identifier l'état d'un disque dans le 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>
Comme nous pouvons le voir, le périphérique /dev/sdb4
a échoué dans le RAID.
Depuis que nous avons identifié que le disque défaillant est /dev/sdb4
(ce qui était le cas sur ce serveur), nous aurions besoin d'obtenir le numéro de série du disque en utilisant smartctl
:
[root@server loc]# smartctl -–all /dev/sdb | grep -i 'Serial'
La commande ci-dessus est importante car vous devez savoir quel disque supprimer du serveur, en fonction de l'étiquette physique du disque.
Retirez le disque défaillant de la matrice RAID
Il est important de supprimer le disque défaillant de la baie afin que la baie conserve un état cohérent et soit au courant de chaque changement, comme ceci :
[root@server loc]# mdadm -–manage /dev/md2 -–remove /dev/sdb4
En cas de suppression réussie, un message semblable à celui-ci s'affichera :
[root@server loc]# mdadm: hot removed /dev/sdb4 from /dev/md2
Vérifiez l'état de /proc/mdstat
encore une fois :
[root@server loc]# cat /proc/mdstat
Vous pouvez voir que /dev/sdb4
n'est plus visible.
Éteignez la machine et remplacez le disque
Il est maintenant temps d'arrêter le système et de remplacer le disque défectueux par un nouveau, mais avant d'arrêter le système, commentez /dev/md2
de votre /etc/fstab
dossier. Voir l'exemple ci-dessous :
[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
Partitionner le nouveau disque
Étant donné que nous avons d'autres disques de travail dans la matrice RAID, il est facile et pratique de copier le schéma de partition d'un disque de travail sur le nouveau disque. Cette tâche est accomplie avec le sgdisk
utilitaire, qui est fourni par le gdisk
emballer.
Installez gdisk
comme ceci (ajustez cette commande pour votre distribution):
[root@server loc]# yum install gdisk
Utilisation de gdisk
, nous allons d'abord passer le -R
option (signifie Répliquer). Assurez-vous de répliquer le schéma de partition d'un disque de travail. Il est important que vous utilisiez le bon ordre de disques pour répliquer le schéma de partition d'un disque de travail vers un nouveau. Dans notre situation, sur le nouveau disque se trouve /dev/sdb
et les disques de travail sont /dev/sdc
, /dev/sdd
, /dev/sde
.
Maintenant, pour répliquer le schéma de partition d'un disque de travail (disons /dev/sdc
) sur le nouveau disque /dev/sdb
, la commande suivante est nécessaire :
[root@server loc]# sgdisk -R /dev/sdb /dev/sdc
Pour éviter les conflits de GUID avec d'autres lecteurs, nous devrons randomiser le GUID du nouveau lecteur en utilisant :
[root@server loc]# sgdisk -G /dev/sdb
The operation has completed successfully.
Ensuite, vérifiez la sortie de /dev/sdb à l'aide de parted
utilitaire :
[root@server loc]# parted /dev/sdb print
Ajouter le nouveau disque à la matrice RAID
Après avoir terminé la réplication du schéma de partition sur le nouveau disque, nous pouvons maintenant ajouter le disque à la matrice RAID :
[root@server loc]# mdadm -–manage /dev/md2 -–add /dev/sdb4
mdadm: added /dev/sdb4
Vérifier la récupération
Pour vérifier la récupération RAID, utilisez ce qui suit :
[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>
Ou :
[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
À partir de la sortie ci-dessus, nous voyons maintenant que /dev/sdb4
est en cours de reconstruction et quatre appareils fonctionnels et actifs sont disponibles. Le processus de reconstruction peut prendre un certain temps, en fonction de la taille totale de votre disque et du type de disque (par exemple, traditionnel ou à semi-conducteurs).
Célébrer
Vous avez maintenant remplacé avec succès un disque RAID 6 défaillant par mdadm
. J'espère que vous n'aurez jamais besoin de le faire, mais le matériel tombe en panne. Il y a de fortes chances que si vous utilisez RAID 6, cela finira par arriver. Si vous le pouvez, configurez un laboratoire, forcez un RAID 6 à échouer, puis récupérez-le. Savoir comment résoudre le problème rendra l'expérience lorsque l'impensable se produit beaucoup moins stressante.