Cette unité couvre le stockage professionnel : mathématiques du RAID (XOR, Reed-Solomon, RAID-Z3), ZFS en profondeur (checksumming, auto-réparation, ARC, réplication asynchrone), NVMe over Fabrics et les interfaces physiques modernes.
Mathématiques du RAID
Le RAID (Redundant Array of Independent Disks) combine plusieurs disques pour améliorer la performance, la capacité utile ou la tolérance aux pannes.
RAID 5 — parité XOR simple
Le RAID 5 répartit une parité XOR sur tous les disques : chaque bloc de parité vaut le OU exclusif (XOR) des blocs de données correspondants sur les autres disques. Cette propriété permet de reconstruire n’importe quel bloc manquant par un nouveau XOR. RAID 5 tolère la perte d’un seul disque.
RAID 6 — double parité Reed-Solomon
Le RAID 6 tolère deux pannes simultanées en ajoutant une seconde parité Q calculée par des codes de Reed-Solomon (arithmétique sur corps fini GF(2⁸)). Cela permet de résoudre un système de deux inconnues à partir de deux équations de parité, reconstituant deux blocs perdus simultanément.
RAID-Z3 (ZFS) — triple parité
Le RAID-Z3 pousse ce principe à trois parités (P, Q, R), tolérant trois défaillances de disque simultanées. C’est l’une des seules implémentations commerciales matures de RAID à triple parité, intégrée nativement dans ZFS.
ZFS en profondeur
Contrairement à la plupart des systèmes de fichiers, ZFS ne fait pas confiance au contrôle d’erreur intégré au disque. À chaque écriture, ZFS calcule lui-même un checksum (SHA-256 ou BLAKE3) de chaque bloc et le stocke dans les métadonnées de l’arbre Merkle du système de fichiers.
À chaque lecture, ZFS recalcule le checksum et le compare à la valeur stockée. En cas de désaccord (corruption silencieuse), le mécanisme d’auto-réparation récupère la version saine depuis un miroir ou recalcule le bloc depuis la parité RAID-Z, puis réécrit le bloc corrigé à son emplacement d’origine.
zfs send -R et réplication asynchrone
La commande zfs send -R envoie récursivement des snapshots d’un système de fichiers ZFS vers un autre pour la réplication asynchrone (sauvegarde distante). Contrairement à rsync (comparaison de fichiers), elle transmet directement les blocs de données et métadonnées tels que structurés physiquement — optimal en bande passante, mais requiert ZFS des deux côtés.
ARC — Adaptive Replacement Cache
L’ARC est le cache mémoire de ZFS, géré en espace noyau. Il utilise une politique hybride (fréquence + récence) et peut utiliser toute la RAM disponible, avec éviction automatique quand d’autres processus en ont besoin. Un L2ARC (cache de second niveau sur SSD) étend l’ARC au-delà de la RAM physique.
NVMe over Fabrics (NVMe-oF)
NVMe-oF étend le protocole NVMe sur un réseau, permettant d’accéder à des SSD distants avec une latence proche du NVMe local. Les deux transports dominants

:
- RoCE (RDMA over Converged Ethernet) : utilise l’Ethernet existant avec RDMA, permettant un accès direct à la mémoire de l’hôte distant sans passer par la pile réseau du noyau. Exige un réseau sans perte (Priority Flow Control).
- InfiniBand EDR/HDR/NDR : réseau dédié HPC à très faible latence (≈100 ns), nativement conçu pour le RDMA. Bande passante jusqu’à 400 Gb/s (NDR) par port.
Interfaces physiques de stockage
- U.2 (SFF-8639) : connecteur 2,5″ pour SSD NVMe haute performance, standard data center — supporte PCIe x4 et SAS/SATA
- E1.S : format ultra-compact (9,5 mm de hauteur) pour les racks haute densité, jusqu’à 1 To par slot de 16 mm
- M.2 : format client (2280 typiquement), PCIe x4 NVMe ou SATA — performance maximale en PCIe 5.0 x4 : ≈14 Go/s
- SAS 24G : interface serveur dual-path natif pour la redondance, utilisé surtout pour les disques rotatifs en data center
- RAID 5 = XOR simple (1 panne) ; RAID 6 = Reed-Solomon double parité (2 pannes) ; RAID-Z3 = triple parité (3 pannes)
- ZFS checksum chaque bloc et répare automatiquement les corruptions silencieuses
- zfs send -R = réplication de blocs bruts, plus efficace que rsync pour les gros volumes ZFS
- NVMe-oF sur RoCE ou InfiniBand : latence proche du NVMe local pour le stockage distant
- U.2 = standard data center NVMe ; E1.S = haute densité ; M.2 = client/laptop

-
Add a note