Chapitre 322 minIntermédiaire
RAID et redondance des serveurs : disques, alimentation, onduleur
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- expliquer le miroir, les bandes et la parité ;
- calculer la capacité utile et la tolérance de panne d'une grappe RAID ;
- créer un RAID 1 avec mdadm et remplacer un disque défaillant ;
- protéger un serveur contre les coupures électriques.
6 exercices corrigés1 schéma
Le RAID (Redundant Array of Independent Disks) regroupe plusieurs disques pour qu'un serveur continue de fonctionner quand l'un d'eux, ou deux selon le niveau, tombe en panne. Avec les alimentations doubles et l'onduleur, c'est la première couche de la haute disponibilité : celle qui protège un serveur contre ses propres pannes matérielles. Ce chapitre présente les niveaux de RAID 0, 1, 5, 6 et 10, le calcul de leur capacité utile et de leur tolérance de panne, la mise en place d'un RAID 1 sous Linux, puis la redondance électrique.
Ce qui tombe en panne dans un serveur
Les composants d'un serveur ne s'usent pas tous au même rythme. Ceux qui bougent ou qui chauffent lâchent en premier.
| Composant | Pourquoi il tombe | Ce qu'un serveur « de gamme serveur » prévoit |
|---|---|---|
| Disques durs | Pièces mécaniques en rotation, usure | RAID, disques remplaçables à chaud (hot-swap), disque de secours |
| SSD | Usure des cellules à force d'écritures, panne du contrôleur | RAID, surveillance de l'usure par SMART |
| Alimentations | Composants qui chauffent, surtensions | Deux alimentations remplaçables à chaud, chacune capable de porter tout le serveur (« 1+1 ») |
| Ventilateurs | Roulements | Ventilateurs redondants, alerte en cas d'arrêt |
| Mémoire vive | Erreurs de bits | Mémoire ECC, qui corrige les erreurs d'un bit et signale les autres |
| Cartes réseau | Rarement la carte, plus souvent le câble ou le port d'en face | Deux cartes, deux liens, agrégés (chapitre 4) |
Un serveur de gamme serveur ajoute une carte de gestion hors bande (le BMC : iDRAC chez Dell, iLO chez HPE, IPMI de façon générique). Elle a son propre port réseau et fonctionne même serveur éteint : elle permet de voir la console, de redémarrer la machine à distance et de lire les alertes matérielles. Un cluster s'en sert pour éteindre de force un nœud douteux (chapitre 7).
Le RAID : trois techniques
Tous les niveaux de RAID combinent trois techniques :
- l'agrégat par bandes (striping) : les données sont découpées en blocs répartis sur plusieurs disques, qui travaillent en même temps. C'est plus rapide, mais un seul disque perdu détruit tout ;
- le miroir (mirroring) : chaque bloc est écrit à l'identique sur deux disques (ou plus). Si l'un meurt, l'autre a tout ;
- la parité : un bloc de contrôle est calculé à partir des blocs de données avec l'opération XOR (le OU exclusif). Si un bloc de données est perdu, on le recalcule à partir des autres et de la parité.
La parité en pratique. Le XOR donne 1 quand les deux bits sont différents, 0 quand ils sont égaux. Avec deux blocs de données D1 = 1011 et D2 = 0110, la parité vaut P = D1 XOR D2 = 1101. Si le disque de D2 meurt, on recalcule D2 = D1 XOR P = 1011 XOR 1101 = 0110. La propriété qui fait tout fonctionner : un XOR appliqué deux fois s'annule. Elle vaut pour autant de blocs qu'on veut : la parité de trois blocs est D1 XOR D2 XOR D3, et n'importe lequel se recalcule à partir des deux autres et de la parité. Le cours maths : logique détaille le OU exclusif.
Les niveaux de RAID à connaître
RAID 0 : agrégat par bandes, sans redondance. Les blocs sont répartis sur tous les disques. Lectures et écritures sont plus rapides, toute la capacité est utilisable, mais la perte d'un seul disque détruit toutes les données, et plus il y a de disques, plus le risque augmente. Le RAID 0 n'est pas une solution de haute disponibilité : il la dégrade. On le réserve à des données jetables (un espace de travail temporaire, un cache).
RAID 1 : miroir. Chaque bloc est écrit sur deux disques. On ne garde que la capacité d'un disque, mais le serveur survit à la perte de l'un d'eux sans la moindre interruption. Les lectures peuvent être réparties sur les deux disques. C'est le choix classique pour le système d'un serveur : deux disques, simple, robuste.
RAID 5 : bandes avec parité répartie. Sur n disques, chaque bande contient n − 1 blocs de données et un bloc de parité, et la parité change de disque à chaque bande pour ne pas surcharger un disque. On perd l'équivalent d'un disque en capacité, et on survit à la perte d'un disque. Il faut au moins trois disques. Les écritures sont plus lentes, car chaque petite écriture oblige à relire et réécrire la parité.
RAID 6 : bandes avec double parité. Même principe, avec deux blocs de parité calculés différemment par bande. On perd l'équivalent de deux disques, on survit à la perte de deux disques quelconques. Il faut au moins quatre disques. C'est le choix des grosses grappes de disques de grande capacité, où une seconde panne pendant la reconstruction est un vrai risque.
RAID 10 (1+0) : des miroirs agrégés par bandes. Les disques sont groupés par paires en miroir, puis les données sont réparties en bandes sur les paires. On garde la moitié de la capacité, les écritures sont rapides (pas de parité à calculer), et on survit à la perte d'un disque par paire. Il faut au moins quatre disques, en nombre pair. C'est le choix des bases de données et des hyperviseurs, qui écrivent beaucoup.
| Niveau | Technique | Disques minimum | Capacité utile (n disques de taille T) | Disques perdus sans perte de données | Écritures | Usage typique |
|---|---|---|---|---|---|---|
| RAID 0 | Bandes | 2 | n × T | 0 | Très rapides | Données temporaires uniquement |
| RAID 1 | Miroir | 2 | T | 1 (n − 1 avec n disques en miroir) | Comme un disque | Système d'un serveur |
| RAID 5 | Bandes et parité | 3 | (n − 1) × T | 1 | Plus lentes | Partages de fichiers, disques de taille moyenne |
| RAID 6 | Bandes et double parité | 4 | (n − 2) × T | 2 | Encore plus lentes | NAS de sauvegarde, gros disques |
| RAID 10 | Miroirs agrégés | 4 (nombre pair) | n × T ÷ 2 | 1 garanti, jusqu'à 1 par paire | Rapides | Bases de données, hyperviseurs |
Calculer la capacité utile
Les formules du tableau suffisent, à deux pièges près.
Exemple 1. Quatre disques de 4 To :
- RAID 0 : 4 × 4 = 16 To, sans aucune protection ;
- RAID 5 : (4 − 1) × 4 = 12 To ;
- RAID 6 : (4 − 2) × 4 = 8 To ;
- RAID 10 : 4 × 4 ÷ 2 = 8 To.
À capacité égale, RAID 6 et RAID 10 se distinguent par la tolérance (deux disques quelconques pour le RAID 6, un par paire pour le RAID 10) et par les performances en écriture (meilleures en RAID 10).
Exemple 2. Six disques de 8 To : RAID 5 = 5 × 8 = 40 To ; RAID 6 = 4 × 8 = 32 To ; RAID 10 = 6 × 8 ÷ 2 = 24 To.
Premier piège : des disques de tailles différentes. Une grappe RAID classique utilise sur chaque disque la taille du plus petit. Trois disques de 2, 2 et 4 To en RAID 5 donnent (3 − 1) × 2 = 4 To : les 2 To en trop du grand disque sont perdus.
Second piège : To et Tio. Les fabricants comptent en puissances de 10 (1 To = 10¹² octets), les systèmes souvent en puissances de 2 (1 Tio = 2⁴⁰ octets). Un disque de 4 To apparaît comme environ 3,64 Tio dans le système, ce qui surprend en recette. Ce n'est pas une panne.
Combien de disques peut-on perdre ?
Pour le RAID 5 et le RAID 6, la réponse est simple : un disque quelconque, deux disques quelconques. Pour le RAID 10, tout dépend de quels disques tombent.
Prenons quatre disques : la paire A (A1, A2) et la paire B (B1, B2). Si deux disques tombent, il y a six combinaisons possibles : {A1, A2}, {A1, B1}, {A1, B2}, {A2, B1}, {A2, B2}, {B1, B2}. Deux sont fatales, celles où les deux disques d'une même paire meurent. Le RAID 10 à quatre disques survit donc à deux pannes dans 4 cas sur 6, soit deux fois sur trois, alors que le RAID 6 à quatre disques y survit à coup sûr.
La reconstruction, le moment dangereux
Quand un disque est remplacé, le contrôleur reconstruit son contenu à partir des autres (copie du miroir, ou recalcul par la parité). Pendant ce temps, la grappe est en mode dégradé : elle fonctionne, mais une panne de plus peut tout faire perdre en RAID 1, 5 ou 10.
Or la reconstruction est longue : elle doit relire l'intégralité des disques restants. Un disque de 8 To écrit à 150 Mo/s demande au minimum 8 × 10¹² ÷ (150 × 10⁶) ≈ 53 000 secondes, presque 15 heures, et bien plus si le serveur continue à travailler. Pendant ces heures, les disques restants, souvent du même lot et du même âge que celui qui vient de mourir, sont lus intensivement. Une deuxième panne, ou une erreur de lecture sur un secteur défaillant, n'est pas rare.
D'où trois bonnes pratiques :
- un disque de secours (hot spare) installé dans le serveur, que le contrôleur intègre automatiquement : la reconstruction démarre sans attendre qu'un humain intervienne ;
- le RAID 6 plutôt que le RAID 5 pour les disques de grande capacité ;
- une alerte dès qu'un disque tombe : un RAID dégradé que personne ne remarque, c'est une perte de données qui attend la panne suivante.
Les performances en écriture
Chaque écriture logique coûte plusieurs opérations sur les disques. C'est la pénalité d'écriture :
| Niveau | Opérations disque pour une petite écriture | Pourquoi |
|---|---|---|
| RAID 0 | 1 | Le bloc est écrit sur un seul disque |
| RAID 1 et RAID 10 | 2 | Le bloc est écrit sur les deux disques du miroir |
| RAID 5 | 4 | Lire l'ancien bloc et l'ancienne parité, écrire le nouveau bloc et la nouvelle parité |
| RAID 6 | 6 | Même chose avec deux parités |
C'est pourquoi on évite le RAID 5 et le RAID 6 sous une base de données très sollicitée en écriture, et pourquoi les contrôleurs matériels ont un cache protégé par une batterie ou une mémoire flash : il absorbe les écritures et les regroupe.
RAID matériel, RAID logiciel, ZFS
| Solution | Principe | Atouts | Limites |
|---|---|---|---|
| RAID matériel | Une carte contrôleur gère les disques ; le système voit un seul disque | Cache protégé, aucune charge pour le processeur, transparent pour le système | La carte est un SPOF, et son format est propriétaire : une grappe ne se relit qu'avec un contrôleur compatible |
| RAID logiciel (mdadm sous Linux, Espaces de stockage sous Windows) | Le système d'exploitation gère la grappe | Gratuit, indépendant du matériel, grappe lisible sur n'importe quelle machine Linux | Utilise un peu de processeur, pas de cache protégé |
| ZFS (systèmes de fichiers avec gestion des disques intégrée) | Miroirs et RAIDZ1, RAIDZ2, RAIDZ3 (une, deux ou trois parités) gérés par le système de fichiers | Sommes de contrôle sur chaque bloc : détecte et corrige la corruption silencieuse ; instantanés et réplication | Gourmand en mémoire, à ne pas placer derrière un contrôleur RAID matériel |
L'installateur de Proxmox VE propose directement ZFS en RAID 1, RAID 10, RAIDZ-1, RAIDZ-2 ou RAIDZ-3. Évite en revanche le « RAID » proposé par certaines cartes mères grand public (fake RAID) : c'est en réalité du RAID logiciel dépendant d'un pilote, avec les inconvénients des deux mondes.
Mettre en place un RAID 1 logiciel avec mdadm
Sur une VM Debian 13 de laboratoire, ajoute deux disques virtuels de même taille (ici /dev/sdb et /dev/sdc), puis :
apt install mdadm
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
cat /proc/mdstat
Pendant la première synchronisation, /proc/mdstat affiche la progression ; ensuite, il affiche une grappe saine :
Personalities : [raid1]
md0 : active raid1 sdc[1] sdb[0]
10476544 blocks super 1.2 [2/2] [UU]
unused devices: <none>
[2/2] signifie « deux disques prévus, deux actifs », et [UU] donne l'état de chaque disque (U pour up). Le nombre de blocs dépend de la taille de tes disques. On crée ensuite le système de fichiers, on le monte, et on enregistre la grappe pour qu'elle soit réassemblée au démarrage :
mkfs.ext4 /dev/md0
mkdir -p /srv/donnees
mdadm --detail --scan | tee -a /etc/mdadm/mdadm.conf # décrit la grappe pour le démarrage
update-initramfs -u
blkid /dev/md0 # note l'UUID pour /etc/fstab
echo 'UUID=<uuid-de-md0> /srv/donnees ext4 defaults 0 2' >> /etc/fstab
mount -a
Remplace <uuid-de-md0> par l'UUID affiché par blkid. Le montage par UUID évite les surprises si les noms de disques changent au démarrage.
Simuler une panne et remplacer le disque. C'est la démonstration attendue en recette :
mdadm /dev/md0 --fail /dev/sdc # déclare le disque défaillant
cat /proc/mdstat # md0 : active raid1 sdc[1](F) sdb[0] ... [2/1] [U_]
mdadm /dev/md0 --remove /dev/sdc # le retire de la grappe
mdadm /dev/md0 --add /dev/sdd # ajoute le disque de remplacement
cat /proc/mdstat # recovery = 12.5% ... la reconstruction progresse
mdadm --detail /dev/md0 # State : clean, degraded, recovering puis clean
Pendant toute l'opération, les fichiers de /srv/donnees restent lisibles et modifiables : c'est la tolérance de panne.
Être prévenu. Le paquet mdadm installe un service de surveillance qui envoie un courriel à l'adresse de la ligne MAILADDR de /etc/mdadm/mdadm.conf (par défaut root) quand une grappe se dégrade. Vérifie que le serveur sait envoyer du courrier, ou fais remonter l'état de /proc/mdstat dans ta supervision (chapitre 11).
La redondance électrique
Une coupure de courant arrête tous les équipements d'un coup, redondants ou non : c'est le mode commun par excellence. Trois protections se complètent.
Les alimentations doubles. Un serveur, un commutateur de cœur ou un pare-feu de gamme entreprise accepte deux blocs d'alimentation. Chacun peut porter seul la machine. Pour que la redondance serve à quelque chose, on les branche sur deux circuits différents (les voies A et B d'une baie, deux bandeaux de prises, deux onduleurs) : deux alimentations sur la même multiprise ne protègent que contre la panne d'un bloc.
L'onduleur (UPS, Uninterruptible Power Supply). Il alimente les équipements sur batterie pendant une coupure et filtre les perturbations du réseau électrique.
| Type | Principe | Usage |
|---|---|---|
| Off-line (ou standby) | Bascule sur batterie quand le courant disparaît, avec une microcoupure de quelques millisecondes | Postes de travail |
| Line-interactive | Régule aussi les baisses et hausses de tension sans passer sur batterie | Petits serveurs, équipements réseau |
| On-line à double conversion | Les équipements sont en permanence alimentés par l'onduleur, qui recrée un courant propre : aucune coupure au passage sur batterie | Salles serveurs |
On le dimensionne selon la puissance consommée, en watts (l'onduleur affiche aussi une puissance apparente en VA, plus élevée), en gardant une marge, puis selon l'autonomie voulue. Celle-ci n'a pas à couvrir une coupure de plusieurs heures : elle doit laisser le temps d'éteindre proprement les serveurs, ou de tenir le temps que démarre un groupe électrogène dans un centre de données. Le logiciel NUT (Network UPS Tools) sous Linux, ou le logiciel du fabricant, reçoit l'alerte de l'onduleur par USB ou par le réseau et éteint les machines dans le bon ordre : d'abord les VM, puis les hyperviseurs, enfin le stockage.
La maintenance. Les batteries d'onduleur vieillissent et se remplacent en général tous les trois à cinq ans. Un onduleur jamais testé est un onduleur qui lâche le jour de la coupure : programme un test d'autonomie, et supervise son état (charge, autonomie restante, date du dernier test) par SNMP.
Exercices
Exercice 1 sur 6 Capacités et tolérances Réussi À revoir
Pour chaque grappe, donne la capacité utile et le nombre de disques qu'elle peut perdre sans perte de données.
- Cinq disques de 6 To en RAID 5.
- Cinq disques de 6 To en RAID 6.
- Six disques de 4 To en RAID 10.
- Trois disques de 2 To, 4 To et 4 To en RAID 5.
- Quatre disques de 12 To en RAID 0.
Voir la réponseMasquer la réponse de l'exercice 1
- (5 − 1) × 6 = 24 To, perte d'un disque.
- (5 − 2) × 6 = 18 To, perte de deux disques quelconques.
- 6 × 4 ÷ 2 = 12 To, perte d'un disque garantie, jusqu'à trois si chacun appartient à une paire différente.
- Le plus petit disque fixe la taille utilisée sur chacun : (3 − 1) × 2 = 4 To, perte d'un disque. 4 To de capacité brute sont gaspillés.
- 4 × 12 = 48 To, perte de zéro disque : le premier disque perdu détruit toutes les données.
Tu avais trouvé ?
Exercice 2 sur 6 Choisir le niveau Réussi À revoir
Choisis un niveau de RAID pour chaque besoin, et justifie en une phrase.
- Le système d'un contrôleur de domaine, avec deux disques SSD.
- Un NAS de sauvegarde avec huit disques de 16 To.
- Le stockage local d'une base de données très sollicitée en écriture, avec quatre disques SSD.
- Un disque de travail temporaire pour des rendus vidéo, recalculables à tout moment.
Voir la réponseMasquer la réponse de l'exercice 2
- RAID 1 : deux disques, la perte de l'un ne coupe rien, et c'est la configuration la plus simple à reconstruire.
- RAID 6 : avec de si gros disques, la reconstruction dure plus d'une journée, et une seconde panne pendant ce temps est un vrai risque ; la double parité la couvre. Capacité : 6 × 16 = 96 To.
- RAID 10 : pas de calcul de parité, une pénalité d'écriture de 2 au lieu de 4 ou 6, et la tolérance d'une panne.
- RAID 0 : acceptable ici, puisque les données sont jetables et que seule la vitesse compte. Ce n'est pas de la haute disponibilité.
Tu avais trouvé ?
Exercice 3 sur 6 Reconstruire un bloc par la parité Réussi À revoir
Une bande de RAID 5 sur quatre disques contient trois blocs de données de 8 bits, D1 = 1100 1010, D2 = 0101 0110, D3 = 1111 0000, et leur parité P.
- Calcule P.
- Le disque qui porte D2 tombe en panne. Recalcule D2 à partir des autres.
Voir la réponseMasquer la réponse de l'exercice 3
- P = D1 XOR D2 XOR D3. D1 XOR D2 = 1001 1100 ; puis 1001 1100 XOR 1111 0000 = 0110 1100.
- D2 = D1 XOR D3 XOR P. D1 XOR D3 = 0011 1010 ; puis 0011 1010 XOR 0110 1100 = 0101 0110. On retrouve bien D2.
Tu avais trouvé ?
Exercice 4 sur 6 RAID 10 ou RAID 6 avec six disques ? Réussi À revoir
Tu disposes de six disques de 4 To.
- Calcule la capacité utile en RAID 10 et en RAID 6.
- Deux disques tombent en panne en même temps, au hasard. Quelle est la probabilité que la grappe survive, dans chaque cas ?
- Quel argument plaide malgré tout pour le RAID 10 ?
Voir la réponseMasquer la réponse de l'exercice 4
- RAID 10 : 6 × 4 ÷ 2 = 12 To. RAID 6 : (6 − 2) × 4 = 16 To.
- RAID 6 : il survit à n'importe quelle paire de pannes, donc 100 %. RAID 10 : trois paires de miroirs. Le nombre de façons de choisir deux disques parmi six est 15 ; les combinaisons fatales sont celles où les deux disques d'une même paire meurent, soit 3. La grappe survit dans 12 cas sur 15, soit 80 %.
- Les performances en écriture (pénalité de 2 contre 6) et une reconstruction plus rapide et moins risquée : on recopie un seul disque miroir au lieu de relire tous les disques pour recalculer la parité. Pour des VM ou une base de données, c'est souvent le critère décisif.
Tu avais trouvé ?
Exercice 5 sur 6 Lire l'état d'une grappe Réussi À revoir
Sur un serveur, cat /proc/mdstat affiche :
md0 : active raid1 sdb[0] sdc[1](F)
976630464 blocks super 1.2 [2/1] [U_]
- Que signifient
(F),[2/1]et[U_]? - Les données sont-elles accessibles ? Quel est le risque ?
- Donne, dans l'ordre, les commandes pour remplacer le disque défaillant par un disque neuf
/dev/sdd.
Voir la réponseMasquer la réponse de l'exercice 5
(F): le disquesdcest marqué défaillant (failed).[2/1]: la grappe prévoit deux disques et un seul est actif.[U_]: le premier disque est actif, le second absent.- Oui, la grappe fonctionne en mode dégradé sur
sdb. Le risque : une panne desdbavant la fin du remplacement ferait perdre toutes les données. C'est une urgence, et le bon moment pour vérifier la dernière sauvegarde. mdadm /dev/md0 --remove /dev/sdc, remplacement physique du disque (à chaud si le serveur le permet), puismdadm /dev/md0 --add /dev/sdd, et suivi de la reconstruction aveccat /proc/mdstatjusqu'à retrouver[2/2] [UU]. Si le système démarre sur cette grappe, il faut aussi réinstaller le chargeur de démarrage sur le nouveau disque.
Tu avais trouvé ?
Exercice 6 sur 6 Deux alimentations, une multiprise Réussi À revoir
Un serveur a deux alimentations, toutes les deux branchées sur la même multiprise, elle-même reliée à un onduleur off-line. Cite les deux faiblesses de ce montage et corrige-le.
Voir la réponseMasquer la réponse de l'exercice 6
- Les deux alimentations partagent la même multiprise et le même onduleur : la panne de la multiprise ou de l'onduleur coupe les deux. La redondance ne protège que contre la panne d'un bloc d'alimentation. Correction : brancher chaque alimentation sur un circuit différent, idéalement deux onduleurs (voies A et B).
- Un onduleur off-line bascule sur batterie avec une microcoupure, et ne régule pas la tension. Pour un serveur, on préfère un onduleur line-interactive ou on-line à double conversion, relié au serveur (USB ou réseau) pour déclencher un arrêt propre avant la fin de l'autonomie.
Tu avais trouvé ?