🧱 Storage Systems — Chapitre 6 : RAID et protection locale des données
Objectif : comprendre les mécanismes RAID classiques, leurs limites modernes, les alternatives comme RAID-Z et Erasure Coding, puis relier tout cela aux risques réels : rebuild long, URE, bit rot, firmware, contrôleurs, cache, BBU, scrubbing, monitoring et runbooks de production.
Fondations RAID
Pourquoi le RAID existe : disponibilité locale, agrégation de disques, performance, tolérance aux pannes et limites fondamentales.
RTO/RPOAvailabilityLocal protectionRAID matériel / logiciel
Contrôleurs, cache, BBU, HBA, mdadm, Storage Spaces, ZFS RAID-Z, responsabilités et pièges.
ControllerBBUmdadmRAID 0
Striping pur : performance maximale, aucune protection, perte totale si un seul disque tombe.
FastNo redundancyRAID 1
Miroir simple, lecture parallèle, écriture dupliquée, excellent choix pour boot, petits serveurs et workloads critiques simples.
MirrorSafeRAID 5
Parité simple : bon rendement, mais limites fortes avec gros disques, rebuild long et exposition URE.
ParityLegacy riskRAID 6
Double parité : meilleure protection pour grands ensembles, prix en capacité et en pénalité d'écriture.
Dual parityEnterpriseRAID 10
Striping de miroirs : excellent compromis performance, latence et résilience, très apprécié pour bases de données.
Low latencyDB friendlyErasure Coding
Alternative moderne au RAID classique : object storage, stockage distribué, Ceph, S3-like, reconstruction par fragments.
EC k+mScale-outRebuild, scrubbing, bit rot
Risques silencieux, reconstruction, patrol read, scrubbing ZFS/Btrfs, corruption latente et stratégie anti-surprise.
RebuildScrubBit rotRisque réel : URE & gros disques
Pourquoi les très grands HDD changent le calcul : lecture massive pendant rebuild, erreur irrécupérable et fenêtre de vulnérabilité.
UREMTTRLarge HDDCache, BBU, PLP
Write-back, write-through, cache protégé, power-loss protection, batteries, supercapacitors, cohérence après crash.
Write-backBBUPLPZFS RAID-Z
RAID-Z1/Z2/Z3, copy-on-write, checksums end-to-end, scrub, resilver, vdev design et pièges.
ChecksumsRAID-Z2COWLinux mdadm
Créer, monitorer, réparer et remplacer un disque dans un RAID logiciel Linux avec commandes et runbook.
LinuxmdadmCLIMonitoring production
SMART, MegaCLI/storcli, mdadm --detail, zpool status, alerting, logs, métriques et seuils d'exploitation.
SMARTAlertsSREMatrice de décision
Quel RAID choisir selon workload : OS, VM, DB, NAS, vidéosurveillance, backup, archive, lab, cloud gateway.
DecisionSizingTrade-offsLab & simulations
Exercices pratiques : disques loop, mdadm, fio, panne simulée, rebuild, observation de performance et logs.
LabfioFailure drillChecklist production
Liste de contrôle avant mise en production : firmware, hot spare, alerting, sauvegarde, test restore, documentation.
Prod-readyAuditRunbookLe RAID répond à trois objectifs très différents
Le RAID agrège plusieurs disques pour former un volume logique. Selon le niveau choisi, il augmente le débit, améliore la disponibilité locale, ou équilibre capacité, performance et tolérance à la panne.
| Objectif | Ce que le RAID apporte | Ce qu'il ne règle pas |
|---|---|---|
| Disponibilité locale | Continuer à servir malgré un ou plusieurs disques morts. | Suppression humaine, ransomware, incendie, corruption applicative. |
| Performance | Parallélisme de lecture/écriture, files d'E/S réparties. | Latence réseau, mauvais SQL, saturation contrôleur. |
| Capacité utile | Pool de disques présenté comme volume unique. | Fragmentation du risque sur longue durée. |
Chaîne logique simplifiée
Vocabulaire technique indispensable
| Terme | Définition | Impact design |
|---|---|---|
| Stripe | Répartition des blocs sur plusieurs disques. | Augmente débit séquentiel et parallélisme. |
| Mirror | Deux copies identiques d'un même bloc. | Très bonne lecture, excellente simplicité de recovery. |
| Parity | Information calculée permettant de reconstruire un disque perdu. | Économie capacité, mais pénalité écriture et rebuild lourd. |
| Chunk / stripe size | Taille d'un segment écrit avant de passer au disque suivant. | Influence workloads DB, VM, séquentiel, petits fichiers. |
| Hot spare | Disque de secours prêt à intégrer un rebuild automatiquement. | Réduit le temps avant début reconstruction. |
| Degraded mode | État où le RAID fonctionne avec redondance perdue ou réduite. | Performance et sécurité diminuées. |
Mort d'un disque, parfois deux ou trois selon architecture.
Retour arrière après suppression, ransomware, corruption logique.
Perte d'un serveur, d'une baie, d'une salle, d'un site.
| Incident | RAID | Snapshot | Backup externe | DR site |
|---|---|---|---|---|
| Disque mort | Oui selon niveau | Non | Indirect | Indirect |
| Suppression table DB | Non | Oui si snapshot avant | Oui | Oui selon réplication |
| Ransomware | Non | Partiel si immutable | Oui si isolé/immutable | Partiel |
| Contrôleur détruit | Non seul | Non | Oui | Oui |
Métriques à suivre avant de choisir un niveau RAID
Combien de temps le service peut être indisponible.
Combien de données on accepte de perdre.
Temps de réparation/rebuild réel, pas théorique.
Erreur de lecture irrécupérable pendant les lectures massives.
| Approche | Avantages | Inconvénients | Quand l'utiliser |
|---|---|---|---|
| RAID matériel | Offload contrôleur, cache write-back, BIOS de gestion, boot simple. | Dépendance constructeur, format propriétaire, contrôleur à remplacer à l'identique parfois. | Serveurs classiques, Windows, ESXi traditionnel, appliances. |
| RAID logiciel mdadm | Transparent, portable Linux, très documenté, pas de contrôleur spécifique. | CPU/RAM hôte, boot parfois plus délicat, monitoring à configurer. | Linux bare-metal, labs, NAS custom, serveurs simples. |
| ZFS RAID-Z | Checksums end-to-end, COW, scrub, compression, snapshots intégrés. | Design vdev strict, extension historique moins flexible, RAM recommandée. | NAS sérieux, backup, archive, datasets critiques. |
| HBA + filesystem intelligent | Expose les disques bruts au système, idéal ZFS/Ceph. | Moins de magie contrôleur, demande discipline admin. | Ceph, ZFS, SDS, object storage. |
Ce que fait réellement un contrôleur RAID
- Présente un volume logique unique au système.
- Calcule parité et layout de stripes.
- Gère cache lecture/écriture, BBU, patrol read, hot spare.
- Expose des alarmes matérielles et un journal d'événements.
- Peut masquer certains détails SMART si mal configuré.
Architecture contrôleur
# Exemple storcli storcli /c0 show storcli /c0 /vall show storcli /c0 /eall /sall show all storcli /c0 show events file=/tmp/raid_events.log
RAID logiciel : avantages modernes
Les métadonnées mdadm suivent les disques, souvent lisibles sur autre machine Linux.
Tout peut être scripté : /proc/mdstat, mdadm --detail, journalctl.
Pas de carte RAID coûteuse, bon usage des CPU modernes.
# Lire l'état global cat /proc/mdstat # Détails d'un array mdadm --detail /dev/md0 # Scanner les arrays mdadm --examine --scan
Pourquoi ZFS préfère voir les disques bruts
ZFS veut maîtriser l'intégrité de bout en bout. Un contrôleur RAID matériel peut cacher les erreurs, remapper les disques et empêcher ZFS de comprendre précisément l'état physique. La pratique recommandée est souvent HBA/IT mode + disques exposés individuellement.
| Fonction | RAID classique | ZFS |
|---|---|---|
| Checksums données | Souvent non end-to-end | Oui, chaque bloc est vérifié |
| Self-healing | Limité | Oui si redondance disponible |
| Snapshots | Externe | Natif COW |
| Scrub | Patrol read selon contrôleur | Scrub logique + checksum |
Pièges classiques à éviter
- Fake RAID / BIOS RAID : souvent moins robuste qu'un vrai contrôleur ou mdadm.
- Write-back sans protection : très performant, mais dangereux sans BBU/flash-backed cache.
- Contrôleur unique : une baie peut perdre tous ses volumes si la carte RAID tombe et qu'aucune carte compatible n'est disponible.
- Firmware hétérogène : disques identiques mais firmwares différents peuvent produire des comportements incohérents.
- Monitoring absent : le RAID dégradé pendant plusieurs semaines est une bombe à retardement.
Striping pur
Chaque bloc est réparti sur plusieurs disques. Le système lit/écrit en parallèle.
| Dimension | Comportement RAID 0 |
|---|---|
| Débit séquentiel | Très bon, souvent proche de la somme des disques si le contrôleur suit. |
| IOPS random | Améliorés par parallélisme, mais latence disque inchangée. |
| Écriture | Aucune pénalité de parité. |
| Rebuild | Impossible : aucune redondance. |
Quand RAID 0 est acceptable
- Cache temporaire reconstructible.
- Scratch disk vidéo/IA/HPC sans données uniques.
- Benchmark ou lab.
- Volume avec réplication applicative forte au-dessus.
Chaque bloc est écrit sur deux disques. La lecture peut être servie par l'un ou l'autre.
| Type E/S | Effet | Commentaire |
|---|---|---|
| Lecture séquentielle | Bonne à très bonne | Peut lire en parallèle selon implémentation. |
| Lecture aléatoire | Améliorée | Deux sources possibles pour les blocs. |
| Écriture | Comparable à un disque | Chaque écriture doit être confirmée sur les deux copies. |
| Rebuild | Simple | Copie du disque sain vers le nouveau. |
Procédure de remplacement conceptuelle
- Disques système de serveurs.
- Petits NAS 2 baies.
- Volumes logs critiques à taille modérée.
- Environnements où la simplicité prime sur le rendement capacité.
Parité distribuée
La pénalité d'écriture RAID 5
Une petite écriture implique souvent lecture ancienne donnée, lecture ancienne parité, calcul nouvelle parité, écriture donnée, écriture parité.
| Workload | Impact |
|---|---|
| Gros séquentiel | Acceptable, surtout avec stripe complète. |
| Petites écritures random | Mauvais sans cache protégé. |
| Base transactionnelle | Souvent déconseillé avec HDD. |
- Rebuild lit massivement tous les disques survivants.
- Une URE pendant reconstruction peut rendre le volume irrécupérable.
- Un second disque mort pendant rebuild est fatal.
- Plus le disque est grand et lent, plus la période de risque augmente.
Usages encore acceptables avec prudence
- Petits ensembles de SSD entreprise avec backup solide.
- Données peu critiques et facilement restaurables.
- Volumes lecture majoritaire avec faible pression d'écriture.
RAID 6 peut survivre à deux disques perdus dans le même groupe RAID.
| Aspect | RAID 6 | Commentaire |
|---|---|---|
| Capacité | Perte de deux disques | Meilleur rendement que RAID 10 sur grands groupes. |
| Écriture random | Pénalité élevée | Double parité à mettre à jour. |
| Lecture | Bonne | Parallélisme sur N-2 disques utiles. |
| Sécurité rebuild | Bien meilleure que RAID 5 | Reste vulnérable à troisième panne ou URE sévères. |
Rebuild : attention à la fenêtre de stress
- Le rebuild sollicite tous les disques, parfois pendant très longtemps.
- Les disques restants sont souvent du même âge et du même lot.
- Le système peut devenir lent : throttle de rebuild à ajuster.
- Un patrol read/scrub régulier réduit la surprise au moment critique.
- NAS/SAN avec gros HDD.
- Stockage backup local.
- Archives actives.
- Volumes lecture majoritaire.
Stripe de miroirs
| Critère | RAID 10 |
|---|---|
| Latence | Très bonne : pas de calcul de parité. |
| Écritures random | Très bonnes, chaque écriture va sur un miroir. |
| Lectures | Très bonnes : lecture possible sur plusieurs membres. |
| Rebuild | Plus léger : copie d'un miroir, pas lecture complète de tous les disques pour parité. |
RAID 10 peut perdre plusieurs disques si ceux-ci ne sont pas dans la même paire miroir. Il peut aussi être perdu avec seulement deux pannes si les deux disques d'une même paire tombent.
- Base de données OLTP.
- Datastores de machines virtuelles.
- Journaux transactionnels.
- Workloads mixtes lecture/écriture.
- Applications qui exigent basse latence et rebuild rapide.
Le principe k+m
Une donnée est découpée en k fragments de données et m fragments de parité. Il suffit de récupérer k fragments parmi k+m pour reconstruire l'objet.
| Critère | RAID classique | Erasure Coding |
|---|---|---|
| Échelle | Serveur ou baie locale | Cluster distribué multi-nœuds |
| Unité protégée | Bloc / disque | Objet / chunk / placement group |
| Rebuild | Souvent par disque complet | Par fragments d'objets, réparti |
| Latence | Faible localement | Plus élevée, réseau impliqué |
| Cas d'usage | Volumes locaux | Object storage, data lake, archive scale-out |
Dans Ceph ou object storage
- Les fragments sont placés sur des OSD/nœuds différents.
- La CRUSH map ou politique de placement évite les corrélations de panne.
- EC est intéressant pour données volumineuses et froides.
- Pour petits objets ou workloads random write, réplication 3× peut être plus simple et plus rapide.
# Exemple conceptuel Ceph ceph osd erasure-code-profile set ec-profile k=6 m=3 crush-failure-domain=host ceph osd pool create data-ec erasure ec-profile
Coûts cachés
- CPU pour encoder/décoder.
- Réseau pour récupérer plusieurs shards.
- Latence supérieure à une réplication simple.
- Complexité d'exploitation en cas de cluster dégradé.
- Moins adapté aux petits objets très modifiés.
| Profil | Overhead | Tolérance | Usage |
|---|---|---|---|
| 4+2 | 1.5× | 2 fragments | Petits clusters, compromis simple. |
| 6+3 | 1.5× | 3 fragments | Archive robuste, clusters moyens. |
| 10+4 | 1.4× | 4 fragments | Très grands clusters, meilleur rendement. |
Le rebuild n'est pas une formalité
Un rebuild impose de relire massivement les disques restants, de recalculer les blocs manquants et d'écrire sur le disque de remplacement. Pendant cette période, l'array est plus vulnérable.
Plus les disques sont gros, plus il faut lire/écrire.
La production concurrence le rebuild.
Disques restants souvent aussi âgés que le disque mort.
Lecture massive augmente la probabilité d'erreur latente.
Scrubbing / patrol read
Le scrub relit périodiquement les données pour détecter les erreurs latentes avant qu'un rebuild critique ne les rencontre. ZFS/Btrfs vérifient les checksums logiques, tandis que beaucoup de contrôleurs parlent de patrol read ou consistency check.
| Technologie | Opération | But |
|---|---|---|
| ZFS | zpool scrub | Checksum + auto-healing si redondance. |
| Btrfs | btrfs scrub | Vérification checksums et réparation si profil redondant. |
| RAID controller | Patrol read / consistency check | Lecture proactive des secteurs et parité. |
| mdadm | check / repair | Vérifier cohérence de l'array. |
Bit rot et corruption silencieuse
- Cosmic rays, usure NAND, défaut média, firmware, câble, RAM non-ECC.
- Sans checksum end-to-end, une corruption peut être sauvegardée et répliquée.
- Les systèmes COW à checksum sont conçus pour détecter ces anomalies.
| Action | Fréquence type | Fenêtre | Remarque |
|---|---|---|---|
| SMART short | Quotidien / hebdo | Faible charge | Rapide, peu intrusif. |
| SMART long | Mensuel | Nuit/weekend | Peut durer longtemps sur gros HDD. |
| ZFS scrub | Mensuel | Hors pic | Adapter selon taille pool. |
| Controller patrol read | Hebdo/mensuel | Hors pic | Surveiller impact performance. |
# ZFS scrub zpool status zpool scrub tank zpool status -v tank # Btrfs scrub btrfs scrub start -Bd /data btrfs scrub status /data # mdadm consistency check echo check > /sys/block/md0/md/sync_action cat /proc/mdstat # SMART smartctl -a /dev/sda smartctl -t long /dev/sda
URE : Unrecoverable Read Error
Une URE est une erreur de lecture qu'un disque ne parvient pas à corriger malgré ses mécanismes internes. Pendant un rebuild RAID 5/6, le système doit relire d'énormes volumes de données sur les disques survivants.
Calcul simplifié
Ce modèle simplifié illustre l'ordre de grandeur. En production, il faut aussi tenir compte de l'âge des disques, des vibrations, de la température, du firmware, de la charge, de la qualité contrôleur et des secteurs déjà réalloués.
| Scénario | Lecture pendant rebuild | Risque opérationnel | Lecture design |
|---|---|---|---|
| RAID 5, 4 × 4 TB | ≈ 12 TB | Modéré | Acceptable si backup et charge faible. |
| RAID 5, 8 × 18 TB | ≈ 126 TB | Élevé | Très discutable en production. |
| RAID 6, 8 × 18 TB | ≈ 126 TB | Plus robuste | Préférable à RAID 5. |
| RAID 10, 8 × 18 TB | Copie miroir ciblée | Rebuild plus localisé | Très bon pour performance et recovery. |
Réduction du risque
- Éviter RAID 5 sur gros HDD critiques.
- Préférer RAID 6, RAID 10, RAID-Z2/Z3 ou stockage distribué.
- Scrubbing régulier pour détecter les erreurs latentes avant panne.
- Hot spare ou cold spare disponible immédiatement.
- Monitoring SMART et seuils prédictifs.
- Backup restaurable testé, pas seulement existant.
| Mode | Principe | Performance | Risque |
|---|---|---|---|
| Write-through | Confirmation après écriture disque réelle. | Plus lent | Très sûr. |
| Write-back | Confirmation dès écriture en cache contrôleur. | Très rapide | Dangereux si cache non protégé. |
| Read-ahead | Prélecture séquentielle. | Très utile en séquentiel | Peut polluer le cache en random. |
| No read-ahead | Lecture à la demande. | Meilleur pour random | Moins bon en scan séquentiel. |
BBU / Flash-backed write cache
La batterie ou le supercondensateur protège les écritures en cache pendant une coupure. Les contrôleurs modernes peuvent transférer le cache vers une mémoire flash interne.
Power Loss Protection côté SSD
Les SSD enterprise disposent souvent de condensateurs pour protéger les données en transit dans les buffers internes du SSD. C'est très important pour bases de données et virtualisation.
| SSD consumer | SSD enterprise avec PLP |
|---|---|
| Performance parfois élevée mais garanties faibles sous coupure. | Flush interne protégé et comportement plus prévisible. |
| Endurance et QoS variables. | Endurance, latence et firmware adaptés datacenter. |
- Activer write-back uniquement si BBU/supercap est OK.
- Sur alerte BBU défectueuse, basculer en write-through.
- Tester la restauration après coupure contrôlée dans un lab, jamais directement en prod.
- Sur DB critiques, aligner paramètres contrôleur, filesystem, cache DB et politique fsync.
Pourquoi ZFS est différent
- Copy-on-write : les blocs ne sont pas écrasés en place.
- Checksums sur les données et métadonnées.
- Self-healing si une copie correcte existe.
- Snapshots et clones natifs.
- Compression intégrée, souvent bénéfique.
| Niveau | Équivalent conceptuel | Tolérance | Commentaire |
|---|---|---|---|
| RAID-Z1 | RAID 5-like | 1 disque | À éviter avec gros HDD critiques. |
| RAID-Z2 | RAID 6-like | 2 disques | Très courant pour NAS sérieux. |
| RAID-Z3 | Triple parité | 3 disques | Grandes capacités, archives, longs resilver. |
| Mirror vdevs | RAID 10-like | Selon paires | Meilleure IOPS et extension plus simple. |
Règle fondamentale : le pool hérite des vdevs
Dans ZFS, un pool est composé de vdevs. Si un vdev est perdu, le pool est perdu. La redondance se définit au niveau du vdev, pas seulement au niveau du pool.
# Status et santé zpool status -v tank zpool list zfs list # Scrub zpool scrub tank # Remplacement zpool offline tank /dev/disk/by-id/old zpool replace tank /dev/disk/by-id/old /dev/disk/by-id/new # Snapshots zfs snapshot tank/data@before-upgrade zfs list -t snapshot
- Ne pas mettre ZFS au-dessus d'un RAID matériel opaque.
- Éviter SMR non adaptés aux écritures intensives.
- Planifier RAM ECC si possible.
- Comprendre que l'extension d'un vdev RAID-Z n'est pas la même chose qu'ajouter un vdev.
- Tester les procédures de remplacement de disque avant incident réel.
# Exemple RAID 1 avec deux partitions mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 # Exemple RAID 10 avec quatre partitions mdadm --create /dev/md10 --level=10 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 # Créer filesystem mkfs.xfs /dev/md10 mkdir -p /data mount /dev/md10 /data
cat /proc/mdstat mdadm --detail /dev/md0 mdadm --examine /dev/sdb1 journalctl -u mdmonitor --since today
# Simuler un disque en panne dans un lab mdadm /dev/md0 --fail /dev/sdb1 mdadm /dev/md0 --remove /dev/sdb1 cat /proc/mdstat
# Préparer le nouveau disque avec même partitionnement sfdisk -d /dev/sdc | sfdisk /dev/sdb # Ajouter le nouveau membre mdadm /dev/md0 --add /dev/sdb1 # Suivre rebuild watch -n 2 cat /proc/mdstat
# Debian/Ubuntu mdadm --detail --scan >> /etc/mdadm/mdadm.conf update-initramfs -u # fstab avec UUID blkid /dev/md0 echo 'UUID=xxxx /data xfs defaults,nofail 0 2' >> /etc/fstab
| Signal | Pourquoi c'est critique | Action |
|---|---|---|
| Reallocated sectors | Indique secteurs remappés. | Surveiller tendance, remplacement préventif. |
| Pending sectors | Secteurs instables non encore remappés. | Très sérieux, planifier remplacement. |
| CRC errors | Souvent câble/backplane. | Vérifier connectique avant accuser disque. |
| Temperature | Chaleur augmente erreurs et usure. | Corriger airflow. |
| Array degraded | Redondance perdue ou réduite. | Incident immédiat, pas simple warning. |
| Patrol read errors | Erreurs latentes trouvées. | Analyser et remplacer si récurrent. |
smartctl -a /dev/sda smartctl -H /dev/sda smartctl -x /dev/sda smartctl -t short /dev/sda smartctl -t long /dev/sda
# Broadcom/LSI storcli examples storcli /c0 show storcli /c0 /vall show storcli /c0 /eall /sall show storcli /c0 /bbu show storcli /c0 show events # MegaCLI legacy style MegaCli64 -AdpAllInfo -aALL MegaCli64 -PDList -aALL MegaCli64 -LDInfo -Lall -aALL
Alertes minimales
- Array degraded : critique immédiat.
- Battery failed / cache disabled : warning sérieux, performance et cohérence impactées.
- SMART health failed : remplacement.
- Pending sectors > 0 : investigation.
- Scrub errors : vérifier fichiers affectés et backup.
- Rebuild started/completed/failed : notifications obligatoires.
| Workload | Choix recommandé | Pourquoi | À éviter |
|---|---|---|---|
| OS serveur | RAID 1 | Simple, robuste, boot facile. | RAID 0. |
| Base OLTP | RAID 10 / NVMe mirror | Latence basse, écritures random. | RAID 5 HDD. |
| VM datastore | RAID 10 ou baie enterprise | Workload mixte et random. | RAID 5 large HDD. |
| NAS fichiers | RAID 6 / RAID-Z2 | Capacité + tolérance. | RAID 5 sur gros disques. |
| Backup local | RAID 6 / RAID-Z2/Z3 | Capacité, sécurité, scrubbing. | RAID 0. |
| Archive froide | Erasure Coding / RAID-Z3 | Rendement + forte tolérance. | RAID 1 trop coûteux. |
| Vidéosurveillance | RAID 6 ou volumes dédiés | Écriture séquentielle continue. | RAID 5 faible qualité. |
| Cache temporaire | RAID 0 possible | Reconstructible, performance. | Stockage unique. |
- Production critique + HDD : RAID 6 minimum ou RAID 10.
- Production DB : RAID 10 ou stockage flash enterprise.
- Grand NAS : RAID-Z2/Z3 ou RAID 6 selon technologie.
- Stockage distribué : EC ou réplication, pas RAID local seul.
- Tout niveau RAID : backup externe obligatoire.
# Créer des fichiers disques de lab mkdir -p /tmp/raidlab for i in 1 2 3 4; do dd if=/dev/zero of=/tmp/raidlab/disk$i.img bs=1M count=1024; done # Attacher en loop devices for f in /tmp/raidlab/disk*.img; do losetup -fP "$f"; done losetup -a
# Exemple avec loop devices /dev/loop0..3 mdadm --create /dev/mdlab --level=5 --raid-devices=4 /dev/loop0 /dev/loop1 /dev/loop2 /dev/loop3 watch -n 1 cat /proc/mdstat mkfs.ext4 /dev/mdlab mkdir -p /mnt/mdlab mount /dev/mdlab /mnt/mdlab
fio --name=seqwrite --directory=/mnt/mdlab --size=2G --bs=1M --rw=write --iodepth=16 --numjobs=1 --direct=1 fio --name=randrw --directory=/mnt/mdlab --size=2G --bs=4k --rw=randrw --rwmixread=70 --iodepth=32 --numjobs=4 --direct=1
# Simuler panne mdadm /dev/mdlab --fail /dev/loop2 mdadm --detail /dev/mdlab # Retirer puis ajouter un disque mdadm /dev/mdlab --remove /dev/loop2 mdadm /dev/mdlab --add /dev/loop2 watch -n 1 cat /proc/mdstat
- Créer un ticket incident avec heure, serveur, array, slot disque, symptômes.
- Vérifier que l'alerte correspond au bon serveur et au bon disque physique.
- Vérifier l'état du backup récent et la capacité de restauration.
- Identifier le niveau RAID et la redondance restante.
- Si redondance épuisée, réduire charge et envisager arrêt contrôlé du service.
- Remplacer le disque selon procédure constructeur.
- Suivre pourcentage et vitesse de reconstruction.
- Surveiller latence applicative et erreurs kernel.
- Ne pas lancer de tâches lourdes inutiles.
- Éviter reboot ou firmware update pendant rebuild sauf nécessité absolue.
- Prévenir métiers si la performance est dégradée.
- Confirmer array optimal.
- Lancer scrub/consistency check après stabilisation.
- Vérifier logs contrôleur et SMART des autres disques.
- Remplacer hot spare consommé si nécessaire.
- Mettre à jour inventaire : serial, slot, date, firmware.
- Rédiger post-mortem si incident critique.
| Contrôle | OK ? | Remarque |
|---|---|---|
| Niveau RAID cohérent avec workload | ☐ | RAID 10 DB, RAID 6/Z2 NAS, etc. |
| Firmware contrôleur validé | ☐ | Pas de firmware expérimental en prod. |
| Disques enterprise adaptés | ☐ | Éviter consumer sans PLP pour prod critique. |
| Cache protégé | ☐ | BBU/supercap healthy. |
| Hot spare défini ou spare disponible | ☐ | Selon SLA. |
| Alerting testé | ☐ | Simuler événement non destructif. |
- Vérifier état array quotidiennement via monitoring.
- Recevoir alerte sur degraded, predictive failure, BBU failure.
- Planifier scrubbing/patrol read.
- Vérifier température et airflow.
- Observer tendances SMART, pas seulement état binaire OK/FAIL.
- Backup hors machine et hors array.
- Copie immuable ou offline contre ransomware.
- Test de restauration périodique.
- Documentation RTO/RPO réelle mesurée.
- Plan des slots disques avec numéros de série.
- Type contrôleur, version firmware, mode cache.
- Niveau RAID, stripe size, hot spare.
- Procédure remplacement disque.
- Contact support constructeur et contrat.
- Dernier test restore et résultat.
