Outils pour utilisateurs

Outils du site


linux:mdadm

MDADM : RAID logiciel sous Linux

Mdadm est l'outil linux permettant de faire du RAID logiciel. Je ne maîtrise pas vraiment l'outil sur le bout des doigts, mais vu les galères que j'ai pu avoir avec mon RAID logiciel chez moi, je commence a l’appréhender davantage. Cette page risque d'être un peu brouillon, puisqu'elle n'a pas vocation à expliquer tout de A à Z la création et la vie d'un RAID, mais plutôt à me servir de pense bête. Attention, les commandes données ici sont extrêmement puissantes. Utilisez les seulement en connaissance de cause car mal utilisées elles pourraient avoir de graves conséquences.

Créer une nouvelle grappe RAID

Avant de vous lancer dans la création d'une nouvelle grappe RAID, je vous conseille de vérifier que tous vos disques sont sains. Pour cela, utilisez l'outil smartmontools comme ceci :

smartctl -t short /dev/sdX


Puis pour lire le résultat une fois que le test est fait :

smartctl -l selftest /dev/sdX


Si tout est OK, alors vous pouvez passer à la préparation des disques. Avec fdisk (ou gdisk si vous avez une table de partition GPT) créez sur chaque disque une partition et donnez lui le code de partition fd00.

gdisk /dev/sdX


Créez ensuite votre RAID en vous appuyant sur la ligne ci-dessous (à adapter en fonction du cas)

mdadm --create /dev/md0 --level=5 --raid-devices=5 /dev/sd[b-f]1


Dans cet exemple /dev/md0 correspondra au périphérique RAID (la grappe), –level indique le type de RAID à créer, –raid-devices indique le nombre de disques que contient la grappe et ensuite il faut donner la liste de ces disques.
Ensuite, il faut sauvegarder cela dans le fichier de configuration de mdadm :

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.old
mdadm --examine --scan --verbose >> /etc/mdadm/mdadm.conf
update-initramfs -u -k all


Vérifier l'état de la grappe RAID

Il est possible de vérifier l'état des grappes RAID en utilisant cette commande :

cat /proc/mdstat


Cela permet de visualiser les grappes créées, leurs composants, les éventuels disques défaillants… On peut visualiser ici également l'avancement des grandes opérations sur la grappe (synchronisation, reconstruction…)

Assembler un RAID existant

Il est possible d'assembler un RAID précédemment créé. Cela peut s'avérer utile lorsque le RAID a un problème et ne s'assemble pas tout seul, ou bien lorsque l'on souhaite monter le RAID sur un autre système (liveCD ou suite à un formatage de disque système). Pour assembler le RAID, il faut utiliser la commande suivante en adaptant le nom du RAID et des disques membres :

mdadm --assemble /dev/md127 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1


Il est possible d'ajouter un paramètre –force si besoin. Cette commande peut également être réduite comme suit :

mdadm --assemble /dev/md127 /dev/sd[bcde]1 --force


Agrandir un RAID existant

Il est possible d'agrandir un RAID existant. Pour cela, il va falloir travailler en trois étapes. La première consiste à ajouter les nouveaux disques dans le RAID. La deuxième consiste à dire à mdadm d'utiliser X disques pour qu'il prenne en compte les nouveaux. Cela aura alors pour effet de conserver la même volumétrie, mais en la répartissant sur le nouveau nombre de disques. Pour cela, on utilise le paramètre –grow. On va partir ici du principe que nous avons un RAID avec 3 membres (sdb1, sdc1 et sdd1) et que l'on souhaite en ajouter 1 (sde1).

mdadm --manage /dev/md127 --add /dev/sde1
mdadm --grow /dev/md127 -n 4


L'opération va alors prendre un moment puisque MDADM va devoir restructurer le RAID, c'est à dire réorganiser les fichiers sur les différents disques Une fois que c'est terminé, il va falloir dire au système que l'on souhaite utiliser la volumétrie maximale. Attention, il est préférable de démonter le RAID pour réaliser cette action.

resize2fs /dev/md127


Quelques commandes utiles

Il peut arriver qu'un RAID s'assemble, mais ne s'active pas. Cela peut, par exemple, se produire si le RAID est assemblé en mode dégradé. Si tel est le cas et que l'on souhaite activer l'array, il convient d'utiliser la commande suivante (en adaptant le md127) :

echo active > /sys/block/md127/md/array_state
linux/mdadm.txt · Dernière modification: 2018/04/09 05:01 (modification externe)