Sur Linux, mdadm (manage MD devices) est l’utilitaire qui permet de créer et gérer un RAID logiciel.
C’est à dire la combinaison de plusieurs disques pour créer un ou plusieurs lecteurs logiques.
Cela permet une redondance des données afin d’éviter ou minimiser la perte de données.
mdadm permet de créer un RAID logiciel sur Linux.
Ce tutoriel vous guide pour utiliser mdadm.

Table des matières
Qu’est-ce qu’un RAID ?
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.
mdadm permet de créer, gérer un RAID sur Linux.
Cet article vous guide pour y parvenir.
L’outil mdadm de Linux
Il permet donc de gérer un RAID logiciel.
C’est un outil pour créer, surveiller et gérer un RAID sur Linux.
Voici les commandes ou actions possibles :
- create : Créez un nouveau tableau avec des superblocs par périphérique (création normale).
- assemble : Assemblez les parties d’un tableau précédemment créé dans un tableau actif. Les composants peuvent être donnés explicitement ou recherchés. mdadm vérifie que les composants forment un tableau de bonne foi et peut, sur demande, manipuler des informations de superbloc afin d’assembler un tableau défectueux. En règle générale, vous effectuez cette opération dans les scripts d’initialisation après le redémarrage.
- Follow or Monitor : Surveillez un ou plusieurs périphériques md et réagissez à tout changement d’état. Cela n’a de sens que pour les tableaux raid1, 4, 5, 6, 10 ou multi-trajets car seuls ceux-ci ont un état intéressant. raid0 ou linear n’ont jamais de disques manquants, de rechange ou en panne, il n’y a donc rien à surveiller. En général, vous le faites également après le redémarrage.
- Build : Créez un tableau qui n’a pas de superblocs par périphérique. Pour ces types de tableaux, mdadm ne peut pas faire la différence entre la création initiale et l’assemblage ultérieur d’un tableau. Il ne peut pas non plus vérifier que les appareils appropriés ont été demandés. Pour cette raison, le mode Build ne doit être utilisé qu’avec une compréhension complète de ce que vous faites.
- Grow : Agrandir, réduire ou remodeler une matrice d’une manière ou d’une autre. Options de croissance actuellement prises en charge, notamment la modification de la taille active des périphériques composants au niveau RAID 1/4/5/6 et la modification du nombre de périphériques actifs dans RAID1.
- manage : C’est pour faire des choses sur des composants spécifiques d’une baie, comme ajouter de nouvelles pièces de rechange et supprimer des périphériques défectueux.
mdadm : créer un RAID
Sur Linux, le RAID se fait sous la forme d’un lecteur logique : /dev/mdX.
Par exemple : /dev/md0, /dev/md1, etc.
Soit donc les disques suivants :
- 4 disques : sdaX
- et un disque flash en /dev/nvme0n1
On peut utiliser les 4 disques pour créer un ou plusieurs RAID.
Par exemple deux RAID 1 , 10 ou un RAID 6.
Les disques sont vides, donc on peut créer la partition principale sur chacun avec parted :
parted --script /dev/sda mklabel gpt mkpart primary 1Mib 6000Mib
Ensuite on utilise mdadm pour créer le RAID.
Ici nous allons créer un RAID 1 avec deux disques.
Soit donc :
mdadm --create /dev/md0 --level=mirror --raid-device=2 /dev/sd[a-b]1
- create : indique le nom du périphérique. Il faut que ce dernier soit libre
- level : Le type de RAID. Ici on utilise mirror mais on peut utiliser :
- linear : pour combiner les disques entre eux et ainsi agrérer l’espace disque.
- stripe : RAID-0
- mirror : RAID-1
- 4,5,6 : on indique le niveau de RAID.
- raid-device : le nombre de disque qui compose le RAID
Il suffit ensuite de répondre yes par y et le RAID se créé.
Le RAID /dev/md0 est alors en place.
On peut alors vérifier ce dernier avec le paramètre -E :
mdadm -E /dev/sd[b-c]1
ou encore obtenir le détail et les erreurs de RAID :
mdadm --detail /dev/md0
Par exemple pour un RAID linear, on voit bien l’agrégation des disques avec la somme totale.
Le RAID disque est prêt mais il faut pouvoir le monter afin d’y copier les fichiers.
Ainsi, il faut créer le système de fichiers.
mkfs.ext4 /dev/md0
Si on réutilise lsblk, on voit ici deux RAID.
Enfin il faut modifier /etc/fstab afin de créer le point de montage au démarrage de Linux.
Et pour terminer, on sauve la configuration du RAID :
mdadm -E -s -v >> /etc/mdadm.conf
Vérifier le status du RAID
On peut aussi lister les RAID avec la commande cat de cette manière :
cat /proc/mdstat
On obtient alors le nombre de raid avec le nombre de disques.
Mais on peut aller plus loin.
Par exemple ci-dessous, on voit que l’on a deux RAID.
On peut alors obtenir les informations de md2 avec :
mdadm --detail /dev/md0
Cela donne beaucoup d’informations comme :
- La version de mdadm
- Le niveau du RAID, ici c’est du RAID 1 soit du miroir.
- La taille des disques et leurs nombres ici 2
- Le statut, ici state active.
- Mais aussi si des erreurs sont présentes sur les disques ou sur le RAID.
mdadm : Ajouter un disque
Lorsqu’un des deux disques tombent, il faut le remplacer.
A partir de là, il faut ajouter le disque dans le RAID.
Vous devez recréer la partition puis ajouter le disque dans le RAID.
On utilise manage.
mdadm /dev/md2 --manage --add /dev/sda1
Ensuite pour surveiller la reconstruction du RAID :
cat /proc/mdstat
Ce qui nous donne ceci.
On voit que le RAID est en recovery avec l’avancement et la vitesse.
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sda1[2] sdb1[1]
20971456 blocks [2/1] [_U]
[==>..................] recovery = 13.7% (2879872/20971456) finish=1.8min speed=159992K/sec
md2 : active raid1 sdb2[1]
1932012480 blocks [2/1] [_U]
unused devices: <none>
root@rescue:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sda1[2] sdb1[1]
20971456 blocks [2/1] [_U]
[===>.................] recovery = 15.5% (3256320/20971456) finish=1.8min speed=162816K/sec
md2 : active raid1 sdb2[1]
1932012480 blocks [2/1] [_U]
L’article suivant donne plus de détails :
mdadm : supprimer un tableau
Enfin si vous désirez supprimer un RAID md0 :
mdadm --stop /dev/md0
mdadm --remove /dev/md0
mdadm --zero-superblock /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Conclusion
mdadm est un outil puissant pour créer et gérer un RAID logiciel sur Linux.
A noter que l’on peut aussi utiliser LVM (Logical Volume Manager) qui permet aussi de créer un RAID.
Enfin il est même possible d’utiliser les deux en même temps.