Le RAID logiciel regroupe plusieurs disques en un seul volume qui survit à la panne de l'un d'eux. Sous Linux, l'outil standard est mdadm : il crée des arrays redondants, les surveille et permet de remplacer un disque à chaud. Ce guide montre comment choisir un niveau RAID, créer un array avec un disque de secours, le rendre persistant et le réparer. Pour administrateurs intermédiaires à avancés, sur Debian, Ubuntu ou RHEL. Commandes testées sur AlmaLinux 10.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Choisir le niveau RAID adapté (0, 1, 5, 6, 10)
- Créer un array
mdadmavec un disque de secours - Le rendre persistant au démarrage (mdadm.conf + initramfs)
- Surveiller l'array et remplacer un disque défaillant
Prérequis
Section intitulée « Prérequis »- Un serveur Linux avec
sudoet le paquetmdadminstallé - Au moins 2 disques (ou partitions) libres de même taille
- Savoir identifier les disques et gérer les partitions
Choisir un niveau RAID
Section intitulée « Choisir un niveau RAID »Le niveau définit le compromis entre capacité, performance et tolérance de panne. Choisissez-le avant de créer l'array, il ne se change pas facilement ensuite.
| Niveau | Disques min. | Tolérance de panne | Capacité utile | Pour quoi |
|---|---|---|---|---|
| RAID 0 | 2 | aucune | 100 % | Performance pure, données jetables |
| RAID 1 | 2 | 1 disque | 50 % | Disque système, petits volumes critiques |
| RAID 5 | 3 | 1 disque | (n-1)/n | Bon compromis capacité / sécurité |
| RAID 6 | 4 | 2 disques | (n-2)/n | Gros arrays (reconstruction longue) |
| RAID 10 | 4 | 1 par miroir | 50 % | Performance et redondance (bases de données) |
Créer un array RAID 5 avec un disque de secours
Section intitulée « Créer un array RAID 5 avec un disque de secours »Le disque de secours (spare) est inactif jusqu'à une panne, puis prend le relais automatiquement. C'est ce qui transforme la redondance en résilience sans intervention.
-
Créer l'array : 3 disques actifs (
--raid-devices=3) plus 1 spare (--spare-devices=1).Fenêtre de terminal sudo mdadm --create /dev/md0 --level=5 \--raid-devices=3 /dev/sdb /dev/sdc /dev/sdd \--spare-devices=1 /dev/sdeLa commande est interactive, ce qui surprend la première fois et bloque tout script qui l'ignore. Elle pose une question sur le write-intent bitmap, puis demande confirmation :
To optimalize recovery speed, it is recommended to enable write-indentbitmap, do you want to enable it now? [y/N]?mdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md0 started.Sans réponse (dans un script, ou avec l'entrée standard fermée),
mdadmabandonne :mdadm: create aborted., code de retour 1. Pour automatiser, répondez d'avance en passant les options correspondantes :Fenêtre de terminal sudo mdadm --create /dev/md0 --level=5 \--raid-devices=3 /dev/sdb /dev/sdc /dev/sdd \--spare-devices=1 /dev/sde \--bitmap=internal --run -
Suivre la synchronisation dans
/proc/mdstat.Fenêtre de terminal cat /proc/mdstatmd0 : active raid5 sde[4](S) sdd[3] sdc[1] sdb[0]241664 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]Le
(S)marque le spare. La notation[UUU]donne l'état de chaque disque actif (U= up,_= en panne) ; ici les 3 sont sains. -
Vérifier le détail de l'array.
Fenêtre de terminal sudo mdadm --detail /dev/md0Raid Level : raid5Array Size : 241664 (236.00 MiB 247.46 MB)State : cleanActive Devices : 3Working Devices : 4Spare Devices : 1
L'array /dev/md0 est prêt : 3 disques actifs et 1 de secours (Working Devices : 4).
Formater et monter
Section intitulée « Formater et monter »Un array mdadm se comporte comme un disque ordinaire. Formatez-le et montez-le :
sudo mkfs.xfs /dev/md0sudo mkdir -p /mnt/raidsudo mount /dev/md0 /mnt/raidPour un montage persistant, ajoutez-le à /etc/fstab par UUID, avec l'option nofail pour éviter un blocage au boot si l'array est dégradé.
Rendre l'array persistant
Section intitulée « Rendre l'array persistant »Un array créé en mémoire n'est pas réassemblé automatiquement après un redémarrage tant qu'il n'est pas déclaré dans la configuration et inclus dans l'initramfs. C'est la cause numéro un d'un RAID qui « disparaît » après reboot. La procédure diffère selon la distribution.
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.confsudo update-initramfs -uSur RHEL, le paquet mdadm n'est pas installé sur une image minimale
(rpm -q mdadm répond package mdadm is not installed), et le fichier
/etc/mdadm.conf n'existe pas non plus : il faut créer les deux.
sudo dnf install -y mdadmsudo mdadm --detail --scan | sudo tee -a /etc/mdadm.confsudo dracut --forceCe que dracut ajoute à l'image, ce n'est pas votre /etc/mdadm.conf :
une inspection par lsinitrd n'en trouve aucune trace. C'est le module
mdraid, avec les binaires mdadm et mdmon et leurs unités, sans
lesquels l'initramfs ne saurait pas assembler un array. Le geste reste donc
nécessaire, mais pour cette raison-là.
La ligne générée identifie l'array par UUID, indépendamment de l'ordre des disques :
ARRAY /dev/md0 metadata=1.2 spares=1 UUID=76755a1f:40a789ed:c6b8d707:16526c13Surveiller le RAID
Section intitulée « Surveiller le RAID »Un RAID sans surveillance est dangereux : si une panne de disque passe inaperçue, un second disque qui lâche entraîne la perte totale. Le service mdmonitor envoie une alerte par mail à la moindre dégradation.
Déclarez l'adresse de notification en tête de mdadm.conf, puis activez le service (confirmé enabled sur AlmaLinux) :
MAILADDR root@localhostsudo systemctl enable --now mdmonitorVous pouvez tester l'état à tout moment ; mdadm --detail --test /dev/md0 renvoie un code de sortie non nul si un disque est en panne, pratique dans un script de supervision.
Remplacer un disque défaillant
Section intitulée « Remplacer un disque défaillant »Quand un disque lâche, le workflow est toujours le même : marquer, retirer, ajouter. Si un spare est présent, la reconstruction démarre avant même d'avoir remplacé physiquement le disque.
-
Marquer le disque comme défaillant (simulé ici avec
--fail).Fenêtre de terminal sudo mdadm /dev/md0 --fail /dev/sdbDans
/proc/mdstat, le disque passe en(F)et le spare prend aussitôt le relais :md0 : active raid5 sde[4] sdd[3] sdc[1] sdb[0](F)241664 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU][=>...................] recovery = 9.0% (7424/241664) finish=1.9min speed=1856K/secLisez bien :
[3/2]et[_UU], pas[UUU]. Sur trois disques attendus, deux seulement sont actifs, et le_marque celui qui manque. Le spare a été enrôlé, mais il doit encore être reconstruit.mdadm --detaille dit sans détour :State : clean, degraded, recoveringActive Devices : 2Working Devices : 3Failed Devices : 1Rebuild Status : 9% complete -
Retirer le disque défaillant de l'array.
Fenêtre de terminal sudo mdadm /dev/md0 --remove /dev/sdb -
Ajouter le disque de remplacement, qui devient le nouveau spare.
Fenêtre de terminal sudo mdadm /dev/md0 --add /dev/sdf
Suivez la reconstruction avec watch -n1 cat /proc/mdstat : la ligne recovery = XX% indique la progression et l'estimation de fin.
La redondance n'est rétablie que lorsque /proc/mdstat revient à [3/3] [UUU] et que mdadm --detail réaffiche State : clean sans degraded.
RAID et LVM
Section intitulée « RAID et LVM »Pour combiner redondance et flexibilité, l'ordre recommandé est RAID en dessous, LVM au-dessus : mdadm crée /dev/md0, qui devient un volume physique LVM. Vous gardez la résilience du RAID et la souplesse des volumes logiques.
Alternative : LVM RAID (lvcreate --type raid5 ...) intègre le RAID directement dans LVM, en s'appuyant sur les mêmes pilotes noyau que mdadm. Préférez mdadm pour une couche RAID pure et éprouvée (notamment pour le disque système) ; LVM RAID pour une pile LVM unifiée.
Pièges à éviter
Section intitulée « Pièges à éviter »- RAID 0 et données critiques : aucune redondance, à proscrire hors caches jetables.
- Pas de monitoring : sans
mdmonitor+MAILADDR, une panne reste invisible jusqu'au drame. - Oublier l'initramfs : sans
update-initramfs/dracutaprès modification demdadm.conf, l'array ne remonte pas au boot. - Write hole du RAID 5/6 : après un arrêt brutal, la parité peut devenir incohérente. Pour le fermer, créez l'array avec une politique de cohérence PPL (
--consistency-policy=ppl, RAID 5) ou un journal sur SSD ; un write-intent bitmap accélère le resync mais ne ferme pas le trou. Attention, ce bitmap n'est pas posé d'office :mdadm --createle propose par une question interactive, et unNou une entrée standard fermée le laisse de côté. - Croire qu'un spare rend la panne indolore : pendant toute la reconstruction, l'array est dégradé et une seconde panne est fatale en RAID 5.
- Confondre RAID et sauvegarde : voir l'avertissement plus haut.
Dépannage
Section intitulée « Dépannage »| Symptôme | Cause probable | Solution |
|---|---|---|
| Array absent après reboot | mdadm.conf ou initramfs non mis à jour | Régénérer la conf + update-initramfs/dracut |
/proc/mdstat montre [U_U] | Un disque en panne | mdadm --detail puis remplacer le disque |
| Reconstruction lente | Charge I/O ou limite noyau | cat /proc/mdstat (speed), patienter, éviter les écritures |
mdadm: cannot open /dev/sdX | Disque déjà membre d'un array | mdadm --zero-superblock /dev/sdX avant réemploi |
| Aucune alerte de panne | mdmonitor inactif | systemctl enable --now mdmonitor + MAILADDR |
Mettre en pratique
Section intitulée « Mettre en pratique »La persistance est le point faible classique d'un array : il fonctionne à la création, puis disparaît au premier redémarrage si mdadm.conf et l'initramfs ont été oubliés. Ce lab vous fait construire un RAID 1 avec mdadm sur une VM équipée de disques vierges, et la validation vérifie que l'array est toujours assemblé après reboot, pas seulement qu'il l'était à la création.
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »- Choisir le niveau avant : RAID 1 (miroir), RAID 5 (compromis), RAID 6 (double parité), RAID 10 (perf + redondance).
- Un spare (
--spare-devices) déclenche la reconstruction automatique à la première panne, mais l'array reste dégradé ([_UU]) pendant toute la reconstruction : une seconde panne y est fatale en RAID 5. /proc/mdstatetmdadm --detailsont les deux outils d'inspection :[UUU]= sain,[_UU]= dégradé,(S)= spare,(F)= failed.mdadm --createest interactif : deux questions, etcreate aborted.en rc=1 si personne ne répond. En script,--bitmap=internal --run.- Rendre l'array persistant =
mdadm.conf+ initramfs (update-initramfssur Debian,dracut --forcesur RHEL). L'initramfs embarque le modulemdraid, pas votre fichier de configuration. - Activez
mdmonitor: un RAID sans surveillance n'est pas résilient. - Le RAID n'est pas une sauvegarde ; RAID 0 ne protège rien.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Analyser les performances disques : Mesurer l'impact du RAID avec fio et iostat.