Menu Fermer

Reconstruire son RAID Linux avec mdadm après un remplacement de disque/SSD

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.

Reconstruire son RAID Linux avec mdadm après un remplacement de disque/SSD

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

  1. 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

  2. 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.
    Reconstruire son RAID Linux avec mdadm après un remplacement de disque/SSD

  3. 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

    Reconstruire son RAID Linux avec mdadm après un remplacement de disque/SSD

  4. 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.
    Reconstruire son RAID Linux avec mdadm après un remplacement de disque/SSD

  5. 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.
    Reconstruire son RAID Linux avec mdadm après un remplacement de disque/SSD

  6. 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é.

    Reconstruire son RAID Linux avec mdadm après un remplacement de disque/SSD

  7. 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.
    Reconstruire son RAID Linux avec mdadm après un remplacement de disque/SSD

  8. 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.


    Reconstruire son RAID Linux avec mdadm après un remplacement de disque/SSD

Bravo ! vous avez réussi à reconstruire votre RAID Linux avec mdadm après un changement de disque ou SSD.