Vous possédez un serveur Linux avec un Raid logiciel Linux (mdadm) en miroir (RAID 1).
Malheureusement, un des disques du RAID rencontre des problèmes et vous avez dû le changer.
Vous devez donc reconstruire votre RAID Linux.
Cet article vous guide donc pour parvenir à reconstruire son RAID Linux avec mdadm après un remplacement de disque dur ou SSD.
Table des matières
Les RAID logiciels de disque
Un RAID permet de combiner des disques pour éviter la perte de données et parfois améliorer les performances.
Il existe plusieurs types de RAID. On parle alors de niveaux de RAID.
Cet article complet les présentes.
Linux propose un RAID logiciel à travers l’utilitaire mdadm pour le gérer.
Dans cet article, nous allons voir le remplacement d’un disque défectueux sur un RAID 1 soit donc un RAID miroir.
Erreur et problème de disque sur le RAID
Voici quelques signes qui ne trompent pas sur un problème matériel sur un disque dur.
En général, le disque dur est défectueux et il faut le remplacer.
Dans le cas observé, les logs Linux affichent des erreurs ATA :
[2599815.769914] ata2.00: status: { DRDY } [2599815.779329] ata2.00: failed command: READ FPDMA QUEUED [2599815.788713] ata2.00: cmd 60/80:68:00:de:76/00:00:04:00:00/40 tag 13 ncq dma 65536 in res 40/00:00:80:e8:76/00:00:04:00:00/40 Emask 0x1 (device error)
Mais aussi une erreur 05 :
[2599821.611071] ata2.00: revalidation failed (errno=-5)
Enfin on peut voir qu’il s’agit du disque sdb qui est touché :
[2599828.019954] sd 1:0:0:0: [sdb] tag#7 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE [2599828.029529] sd 1:0:0:0: [sdb] tag#7 Sense Key : Medium Error [current] [2599828.039009] sd 1:0:0:0: [sdb] tag#7 Add. Sense: Unrecovered read error - auto reallocate failed [2599828.048630] sd 1:0:0:0: [sdb] tag#7 CDB: Read(10) 28 00 04 76 e9 00 00 00 80 00 [2599828.058246] print_req_error: I/O error, dev sdb, sector 74901792
En général, cela indique un problème matériel sur le disque.
L’utilitaire smartctl confirme cela à travers une interrogation SMART.
On voit que smartctl retourne des erreurs ATA.
Vous allez donc devoir remplacer votre disque dur défectueux.
Ici c’est un serveur OVH, il faut créer un ticket pour demander le remplacement du disque.
Celle-ci nécessite le numéro du disque endommagé.
On peut l’obtenir de différentes manières vec les commandes udevadm, hdparm, lshw ou encore à travers smartctl :
udevadm info --query=all --name=/dev/sdX | grep ID_SERIAL
hdparm -I /dev/sdX | grep 'Serial\ Number'
lshw -class disk
smartctl -i /dev/sdX
Une fois le disque remplacé, il faut reconstruire le disque avec mdadm
Reconstruire son RAID Linux avec mdadm après un remplacement de disque/SSD
Avant de commencer, je rappelle qu’il existe un article sur mdadm sur le site.
Cela vous permet de vous familiariser avec ce dernier et le RAID logiciel Linux.
Dans ce tutoriel :
- Le RAID est /dev/md2
- Le disque à remplacer est /dev/sdb
Temps nécessaire : 20 minutes
Reconstruire son RAID Linux avec mdadm après un remplacement de disque/SSD
- Récupérer les informations du RAID
Avant de commencer, si vous en avez la possibilité, il faut noter les informations du RAID et la structure du disque avec l’agencement des partitions de disques.
Ainsi, si vous en avez la possibilité, récupérez les résultats des commandes suivantes :fdisk -l
mdadm –detail /dev/md2 - Les partitions de disques après le remplacement de disque
Une fois que vous ou un technicien a remplacé votre disque dur défectueux par un nouveau, ce dernier est vide.
On confirme cela par un fdisk. - Recopier la structure du disque
Comme il s’agit d’un RAID 1, il faut que les disques dur soient identiques.
Nous allons donc recopier la structure du disque /dev/sda vers /dev/sdb avec sfdisk.sfdisk -d /dev/sda | sfdisk /dev/sdb
- Vérifier la structure et agencement des partitions de disques
Puis on vérifie avec fdisk que les disques sont bien identiques.
La partition /dev/sdb2 est prête pour être utilisé dans le RAID Linux. - Ajouter le disque dans le RAID
Ensuite on utilise mdadm pour ajouter la partition de disques dans le RAID.
mdadm –manage /dev/md2 –add /dev/sdb2
A partir de là, le RAID se reconstruit automatiquement. - Vérifier le composition du RAID
Pour vérifier que la partition du disque a bien été pris en compte, on utilise la commande mdadm de cette manière :
/sbin/mdadm –detail /dev/md2
Le statut du RAID est alors actif mais en dégradé. - Vérifier l’avancement de la reconstruction du RAID
La commande suivante permet de vérifier le niveau d’avancement.
cat /proc/mdstat
Un pourcentage est indiqué avec une barre de progression.
Vous avez aussi la vitesse d’écriture. - Fin de la reconstruction du RAID Linux
La reconstruction prend plusieurs dizaines d’heures.
Une fois terminé, on peut réutiliser les commandes pour vérifier le statut du RAID.
Ici le statut est clean et donc le RAID est à nouveau 100% opérationnel.