ST01 - Le RAID

Objectif

Comprendre comment le RAID combine plusieurs disques pour gagner en performance et/ou en tolérance aux pannes, savoir calculer la parité XOR et reconstruire un disque perdu, et choisir le bon niveau.


1. Définition

RAID = Redundant Array of Independent Disks : plusieurs disques physiques vus comme une seule unité logique.

ImplémentationFonctionnement✅ Plus❌ Moins
LogicielleGérée par l’OS (mdadm sous Linux, Gestion des disques / Espaces de stockage sous Windows)Gratuite, souple, indépendante du matérielConsomme du CPU, l’OS doit démarrer pour voir le RAID
Pseudo-matérielle (fake RAID)Contrôleur bon marché de la carte mère, aidé par un pilotePermet de mettre l’OS sur le RAIDPerformances et fiabilité médiocres, peu portable
MatérielleCarte contrôleur dédiée (avec cache, batterie)Rapide, remplacement à chaud, reconstruction transparenteChère, propriétaire : il faut la même carte (voire le même firmware) pour relire le RAID

2. Les niveaux principaux

RAID 0 - striping (agrégat par bandes)

flowchart LR
  F["Fichier : blocs 1 2 3 4 5 6"] --> D1["Disque 1 : 1 · 3 · 5"]
  F --> D2["Disque 2 : 2 · 4 · 6"]

✅ ~2× plus rapide, 100 % de la capacité · ❌ un disque perdu = TOUT perdu (aucune redondance).

RAID 1 - mirroring (miroir)

flowchart LR
  F["Fichier : blocs 1 2 3"] --> D1["Disque 1 : 1 · 2 · 3"]
  F --> D2["Disque 2 : 1 · 2 · 3 (copie)"]

✅ Survit à la perte d’un disque, lecture plus rapide · ❌ Capacité divisée par 2.

RAID 5 - bandes + parité répartie

flowchart LR
  subgraph Ligne1[" "]
    A1["D1 : A1"] --- A2["D2 : A2"] --- AP["D3 : Parité A"]
  end
  subgraph Ligne2[" "]
    B1["D1 : B1"] --- BP["D2 : Parité B"] --- B2["D3 : B2"]
  end
  subgraph Ligne3[" "]
    CP["D1 : Parité C"] --- C1["D2 : C1"] --- C2["D3 : C2"]
  end

La parité tourne d’un disque à l’autre (round robin). ✅ Survit à 1 panne, bon compromis capacité/sécurité · ❌ 3 disques minimum, écriture plus lente (calcul de parité), reconstruction longue et risquée sur de gros disques.

RAID 6 - double parité

✅ Survit à 2 pannes · ❌ 4 disques minimum, écriture encore plus lente.

RAID 10 (1+0) - miroirs puis bandes

✅ Rapide et sûr (1 panne par miroir) · ❌ 4 disques minimum, capacité ÷ 2. Très utilisé pour les bases de données.

CombinaisonsPrincipe
RAID 01 (0+1)Un miroir de deux RAID 0 (moins robuste que le 10)
RAID 10 (1+0)Un RAID 0 de plusieurs RAID 1
RAID 50Un RAID 0 de plusieurs RAID 5
RAID 15 / 51Un RAID 5 de miroirs / un miroir de RAID 5

3. Tableau de synthèse (n disques de taille T)

NiveauDisques min.Capacité utilePannes toléréesLectureÉcriture
RAID 02n × T0++++++
RAID 12Tn − 1++=
RAID 53(n − 1) × T1+++
RAID 64(n − 2) × T2++−
RAID 104(n / 2) × T1 par miroir (au mieux n/2)+++++

Exemple : 4 disques de 2 To → RAID 0 = 8 To · RAID 5 = 6 To · RAID 6 = 4 To · RAID 10 = 4 To.


4. La parité XOR (calcul à la main)

XOR (« ou exclusif ») : le résultat vaut 1 si le nombre de 1 est impair, 0 s’il est pair.

ABA ⊕ B
000
011
101
110

Écriture sur 3 disques de données

ABCNombre de 1Parité
0112 (pair)0
1001 (impair)1
11020
10120

Le disque C meurt → reconstruction

On compte les 1 parmi A, B et la parité : pair → C’ = 0, impair → C’ = 1.

ABParitéNombre de 1C’ reconstruit
0101 (impair)1 ✅
1012 (pair)0 ✅
11020 ✅
10011 ✅

On retrouve exactement la colonne C d’origine : C = A ⊕ B ⊕ Parité. Lien avec les maths : M03 - Logique booléenne et Karnaugh.


5. RAID logiciel sous Linux (mdadm) - en VM

sudo apt install mdadm            # Arch : sudo pacman -S mdadm
lsblk                             # repérer les disques vides : ex. /dev/vdb /dev/vdc /dev/vdd
# RAID 5 avec 3 disques
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/vdb /dev/vdc /dev/vdd
cat /proc/mdstat                  # progression de la synchronisation
sudo mkfs.ext4 /dev/md0
sudo mkdir -p /mnt/raid && sudo mount /dev/md0 /mnt/raid
# Rendre permanent
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u
echo '/dev/md0  /mnt/raid  ext4  defaults,nofail  0  2' | sudo tee -a /etc/fstab
 
# Simuler une panne puis réparer
sudo mdadm /dev/md0 --fail /dev/vdc
sudo mdadm /dev/md0 --remove /dev/vdc
sudo mdadm --detail /dev/md0          # État : degraded
sudo mdadm /dev/md0 --add /dev/vde    # nouveau disque → reconstruction automatique
watch cat /proc/mdstat

Sous Windows : miroir logiciel → W04 - Disques, RAID logiciel et sauvegarde sous Windows.


« Cool, du coup avec un RAID je n'ai pas besoin de sauvegarder ! » - FAUX.

Le RAID protège contre la panne d’un disque. Il ne protège pas contre : suppression accidentelle, rançongiciel, corruption logicielle, vol, incendie, panne du contrôleur. Tout est immédiatement répercuté sur tous les disques. → ST02 - Stratégies de sauvegarde

Voir aussi