Réparer un RAID logiciel sous Debian 7

I. Présentation

Mettre en place un RAID logiciel sur un serveur pour tolérer la panne d'un disque, c'est intéressant et fortement conseillé. Cependant, il faut également savoir quoi faire, comment faire, lorsqu'un disque dur tombe en panne. Ce tutoriel est là pour vous apprendre à réparer un RAID logiciel.

Pour ma part, je travaille sur une machine virtuelle donc pour simuler la perte d'un disque dans la grappe RAID je vais le supprimer de la machine virtuelle. L'OS invité de la VM est Debian 7.

II. Procédure

Je commence par simuler la perte d'un disque en le supprimant de la machine virtuelle, on peut voir ensuite que le RAID passe en mode dégradé grâce à la commande suivante :

cat /proc/mdstat

debianraid30On remarque l'indication [U_] qui indique la perte d'un disque dans la grappe RAID. En temps normal, c'est indiqué [UU].

Il est aussi possible de vérifier que le RAID fonctionne en mode dégradé en utilisant la commande suivante :

mdadm -D /dev/md0

debianraid31

On remarque clairement la mention "degraded" et dans la partie basse de la commande l'état "removed" pour le second disque.

Pour commencer, on sort le disque hors service de la grappe RAID. Il se peut que cela a été fait automatiquement mais pour être sur vaut mieux le faire. Étant donné qu'il s'agit des partitions "sdb1" et "sdb2" du disque "sdb" respectivement attachée à la grappe RAID "md0" et "md1" on utilisera ces deux commandes :

mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2

debianraid32

Maintenant on a plus qu'à ajouter un nouveau disque, tout beau, tout neuf... A chaud si possible sinon éteignez auparavant votre serveur. Suite à l'ajout du nouveau disque dur à ajouter au RAID 1, on peut voir qu'il est bien reconnu grâce à la commande suivante :

fdisk -l

On remarque la mention suivante : "Le disque /dev/sdb ne contient pas une table de partitions valable". Le disque est bien détecté mais il est vierge (sans table de partition, ni partition).

On va commencer par copier la table des partitions du disque fonctionnel vers le nouveau disque, pour cela on fait appel à l'utilitaire sfdisk de cette façon :

sfdisk -d /dev/sda | sfdisk /dev/sdb

On indique d'abord le disque source (sda) et le disque de destination (sdb). Vous pouvez réitérer la commande "fdisk -l" vue précédemment pour vérifier la création de la table de partition.

Désormais, il est nécessaire d'ajouter le nouveau disque dur à nos grappes RAID. Nous respecterons la même logique que précédemment : sdb1 pour md0 - sdb2 pour md1. Ce qui implique l'utilisation de deux commandes :

mdadm --manage /dev/md0 --add /dev/sdb1
mdadm --manage /dev/md1 --add /dev/sdb2

Suite à ces deux ajouts, le RAID doit passer en reconstruction. On peut le vérifier par l'intermédiaire de cette commande :

cat /proc/mdstat

Voici un aperçu général des 3 commandes venant d'être saisies :

debianraid33

Une fois la restauration terminée, on récupère notre RAID en état normal. Rassuré ?

debianraid34

Si ce tutoriel vous a plu, pensez à le partager sur les réseaux sociaux.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5561.Voir tous les posts

2 thoughts on “Réparer un RAID logiciel sous Debian 7

  • Dans le cas d’un raid matériel on peut aussi être amené à faire des bidouilles depuis un liveCD pour récupérer des données en dernier recours, merci pour le tuto sinon 🙂

    Répondre
  • Bonjour,
    Sur ma machine j’ai construit 2 raid un avec sdb sdc sdd sde et sdf puis un second avec sdg sdh sdi sdj et sdk. Si le disque sdf vient à casser lorsque je demande la liste des disques par raid sdf a été remplacé par sdg et sdk n’existe plus. Comment est-il possible d’éviter cela ? Merci beaucoup.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.