Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

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.

ComposantPourquoi il tombeCe qu'un serveur « de gamme serveur » prévoit
Disques dursPièces mécaniques en rotation, usureRAID, disques remplaçables à chaud (hot-swap), disque de secours
SSDUsure des cellules à force d'écritures, panne du contrôleurRAID, surveillance de l'usure par SMART
AlimentationsComposants qui chauffent, surtensionsDeux alimentations remplaçables à chaud, chacune capable de porter tout le serveur (« 1+1 »)
VentilateursRoulementsVentilateurs redondants, alerte en cas d'arrêt
Mémoire viveErreurs de bitsMémoire ECC, qui corrige les erreurs d'un bit et signale les autres
Cartes réseauRarement la carte, plus souvent le câble ou le port d'en faceDeux 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.

RAID 1D1A1A2A3D2A1A2A3capacité : 1 disquetolère 1 panneRAID 5D1A1B1PD2A2PC1D3PB2C2capacité : n − 1tolère 1 panneRAID 6D1A1B1PD2A2PQD3PQC1D4QB2C2capacité : n − 2tolère 2 pannesRAID 10D1A1A3A5D2A1A3A5D3A2A4A6D4A2A4A6miroirmiroircapacité : n ÷ 21 panne par pairebloc de parité (P, Q) ; A1, A2… : blocs de données ; D1, D2… : disques
Où vont les blocs de données et de parité dans un RAID 1, 5, 6 et 10
NiveauTechniqueDisques minimumCapacité utile (n disques de taille T)Disques perdus sans perte de donnéesÉcrituresUsage typique
RAID 0Bandes2n × T0Très rapidesDonnées temporaires uniquement
RAID 1Miroir2T1 (n − 1 avec n disques en miroir)Comme un disqueSystème d'un serveur
RAID 5Bandes et parité3(n − 1) × T1Plus lentesPartages de fichiers, disques de taille moyenne
RAID 6Bandes et double parité4(n − 2) × T2Encore plus lentesNAS de sauvegarde, gros disques
RAID 10Miroirs agrégés4 (nombre pair)n × T ÷ 21 garanti, jusqu'à 1 par paireRapidesBases 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 :

NiveauOpérations disque pour une petite écriturePourquoi
RAID 01Le bloc est écrit sur un seul disque
RAID 1 et RAID 102Le bloc est écrit sur les deux disques du miroir
RAID 54Lire l'ancien bloc et l'ancienne parité, écrire le nouveau bloc et la nouvelle parité
RAID 66Mê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

SolutionPrincipeAtoutsLimites
RAID matérielUne carte contrôleur gère les disques ; le système voit un seul disqueCache protégé, aucune charge pour le processeur, transparent pour le systèmeLa 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 grappeGratuit, indépendant du matériel, grappe lisible sur n'importe quelle machine LinuxUtilise 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 fichiersSommes de contrôle sur chaque bloc : détecte et corrige la corruption silencieuse ; instantanés et réplicationGourmand 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 :

bash
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 :

text
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 :

bash
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 :

bash
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.

TypePrincipeUsage
Off-line (ou standby)Bascule sur batterie quand le courant disparaît, avec une microcoupure de quelques millisecondesPostes de travail
Line-interactiveRégule aussi les baisses et hausses de tension sans passer sur batteriePetits serveurs, équipements réseau
On-line à double conversionLes équipements sont en permanence alimentés par l'onduleur, qui recrée un courant propre : aucune coupure au passage sur batterieSalles 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.

  1. Cinq disques de 6 To en RAID 5.
  2. Cinq disques de 6 To en RAID 6.
  3. Six disques de 4 To en RAID 10.
  4. Trois disques de 2 To, 4 To et 4 To en RAID 5.
  5. Quatre disques de 12 To en RAID 0.
Voir la réponseMasquer la réponse de l'exercice 1
  1. (5 − 1) × 6 = 24 To, perte d'un disque.
  2. (5 − 2) × 6 = 18 To, perte de deux disques quelconques.
  3. 6 × 4 ÷ 2 = 12 To, perte d'un disque garantie, jusqu'à trois si chacun appartient à une paire différente.
  4. 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.
  5. 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.

  1. Le système d'un contrôleur de domaine, avec deux disques SSD.
  2. Un NAS de sauvegarde avec huit disques de 16 To.
  3. Le stockage local d'une base de données très sollicitée en écriture, avec quatre disques SSD.
  4. Un disque de travail temporaire pour des rendus vidéo, recalculables à tout moment.
Voir la réponseMasquer la réponse de l'exercice 2
  1. RAID 1 : deux disques, la perte de l'un ne coupe rien, et c'est la configuration la plus simple à reconstruire.
  2. 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.
  3. 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.
  4. 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.

  1. Calcule P.
  2. Le disque qui porte D2 tombe en panne. Recalcule D2 à partir des autres.
Voir la réponseMasquer la réponse de l'exercice 3
  1. P = D1 XOR D2 XOR D3. D1 XOR D2 = 1001 1100 ; puis 1001 1100 XOR 1111 0000 = 0110 1100.
  2. 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.

  1. Calcule la capacité utile en RAID 10 et en RAID 6.
  2. Deux disques tombent en panne en même temps, au hasard. Quelle est la probabilité que la grappe survive, dans chaque cas ?
  3. Quel argument plaide malgré tout pour le RAID 10 ?
Voir la réponseMasquer la réponse de l'exercice 4
  1. RAID 10 : 6 × 4 ÷ 2 = 12 To. RAID 6 : (6 − 2) × 4 = 16 To.
  2. 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 %.
  3. 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 :

text
md0 : active raid1 sdb[0] sdc[1](F)
      976630464 blocks super 1.2 [2/1] [U_]
  1. Que signifient (F), [2/1] et [U_] ?
  2. Les données sont-elles accessibles ? Quel est le risque ?
  3. 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
  1. (F) : le disque sdc est 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.
  2. Oui, la grappe fonctionne en mode dégradé sur sdb. Le risque : une panne de sdb avant 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.
  3. mdadm /dev/md0 --remove /dev/sdc, remplacement physique du disque (à chaud si le serveur le permet), puis mdadm /dev/md0 --add /dev/sdd, et suivi de la reconstruction avec cat /proc/mdstat jusqu'à 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
  1. 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).
  2. 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é ?

Chapitre terminé !

Fais les 6 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Redondance du réseau : agrégation de liens LACP et Spanning TreeRevoir le sommaire du cours