Mdadm est un composant sous Linux qui permet de faire du RAID logiciel doté d’excellentes performances. Je l’utilise avec succès depuis  plusieurs années pour assurer de la redondance de disques de manière souple. Mais quand un array RAID refuse de s’assembler, c’est toujours délicat…

Sommaire

Description de la situation

Cette page montre comment le ré-assemblage d’un RAID 1+0 a été effectué sur une grappe mdadm arrêtée brutalement par une coupure de courant, et qui ne s’est pas re-montée comme d’habitude au reboot. Ce RAID ne contient pas le système de fichiers racine ni le /boot, ce qui simplifie les choses.

Le fichier mdstat ne contient rien de probant (ci-dessous).

Étapes du ré-assemblage

État des lieux

On commence par examiner les disques qui composent nos RAID comme suit. Pour commencer on regarde les UUID des disques durs connectés.

Premier disque :

Second disque :

Troisième disque :

Quatrième disque

Les disques indépendants sont déjà reconnus comme étant membre d’un RAID, c’est une première avancée.

Assemblage

Première méthode automatique

Les commandes habituelles pour ré-assembler un RAID automatiquement sont mdadm --assemble --scan  pour l’assemblage et mdadm --detail --scan  pour extraire un récapitulatif utilisable en tant que fichier de configuration. Dans le cas présent ces deux commandes ont échoué.

Seconde méthode explicite

Pour spécifier les devices des grappes RAID ainsi que leurs disques constitutifs, voici comment j’ai procédé.

Troisième méthode forcée

On trouve parfois des suggestions qui consistent à lancer la commande de création d’un RAID (avec les mêmes options que le RAID à réassembler) en spécifiant les disques ainsi que l’option --assume-clean .

Cette méthode fonctionne apparemment dans certains cas mais elle est également très risquée. Je ne tenterai pas à moins d’avoir sauvegardé tous les disques en copie bloc à bloc.

Le wiki RAID du noyau Linux déconseille cette méthode à moins d’être guidé par un expert.