Résumé

  • NVM Express, Inc. est le consortium à but non lucratif qui régit la famille NVMe; il ne fabrique ni SSD, ni contrôleurs, ni commutateurs, ni systèmes de stockage.
  • NVMe a remplacé les hypothèses héritées des disques mécaniques par plusieurs files de soumission et d’achèvement en mémoire, mieux adaptées au parallélisme de la mémoire flash et aux processeurs multicœurs.
  • Le même modèle de contrôleur, de sous-système et d’espace de noms peut fonctionner localement sur PCIe ou à distance au moyen de NVMe over Fabrics, avec des transports TCP et RDMA aux profils opérationnels distincts.
  • NVMe 2.x est modulaire. L’ensemble 2.4, publié le 4 août 2026, coordonne la spécification Base, les transports PCIe/RDMA/TCP, NVMe-MI, Boot et plusieurs jeux de commandes spécialisés.
  • Le protocole rend l’accès à la capacité plus composable. Il ne définit ni le système de fichiers, ni la durabilité, ni le RAID, ni le codage d’effacement, ni la conception du réseau, ni la sécurité opérationnelle, ni la cohérence applicative.

Une commande de stockage peut quitter le serveur sans changer de langage fondamental

Une lecture peut viser un espace de noms NVMe local via PCIe ou un sous-système distant à travers un fabric. Le support, le contrôleur et le chemin changent, mais le modèle de commandes demeure.

Cette continuité permet la désagrégation. La capacité peut être regroupée et attribuée aux hôtes selon la demande, au lieu d’installer chaque périphérique dans le châssis qui l’utilise.

La désagrégation ajoute des dépendances: découverte, réseau, chemins multiples, authentification, reconnexion et nouveaux domaines de panne. NVMe transforme le stockage en service programmable, pas en ressource dépourvue de topologie.

La mémoire flash avait besoin d’un protocole conçu pour le parallélisme

Les interfaces historiques reflétaient la latence mécanique et des files étroites. La mémoire flash peut traiter de nombreuses opérations en parallèle, tandis que les serveurs modernes disposent de nombreux cœurs.

NVMe utilise des paires de files de soumission et d’achèvement en mémoire. L’hôte y place les commandes, met à jour les sonnettes et reçoit les achèvements par interruptions ou scrutation. La multiplication des files réduit les verrous partagés et permet de les associer à des cœurs précis.

Le résultat dépend du firmware, de PCIe, de NUMA, de la profondeur des files, des interruptions et de la charge de travail. Le nom du protocole ne garantit aucun niveau universel de performances.

Le consortium sépare la gouvernance du protocole de la concurrence entre produits

Les travaux ont commencé à la fin des années 2000; NVMe 1.0 est apparu en 2011 et NVM Express, Inc. a été constitué en 2014. Des entreprises des secteurs des processeurs, des supports, des contrôleurs, des réseaux, des systèmes et du cloud y participent.

À la date de référence, Amber Huffman, de Google, occupait la présidence; Curtis Ballard, d’AMD, la trésorerie; et David Allen, de Microchip, le secrétariat. Le conseil d’administration public comptait treize représentants de membres promoteurs.

Le consortium définit des contrats et des programmes de conformité. Les membres rivalisent sur le silicium, le firmware, les systèmes, l’assistance et les performances. L’appartenance au consortium ne prouve pas qu’un produit met en œuvre toutes les fonctions.

NVMe 2.0 a transformé un document toujours plus volumineux en famille modulaire

Avec plusieurs transports et de nouveaux modèles de données, une spécification unique était devenue difficile à maintenir. La restructuration 2.0 de 2021 a séparé la spécification Base, les jeux de commandes et les transports.

TCP peut ainsi évoluer sans qu’il faille réécrire chaque commande, et ZNS peut progresser sans modifier tous les contrôleurs conventionnels. En contrepartie, la matrice des versions devient plus complexe.

NVMe 2.4, publié le 4 août 2026, a coordonné Base 2.4, PCIe 1.4, RDMA 1.3, TCP 1.3, NVMe-MI 2.2, Boot 1.4 ainsi que les jeux de commandes NVM, Key Value, Zoned Namespace, Computational Programs et Simple Log Memory. Il ne s’agit pas d’un fichier unique.

Les files de soumission et d’achèvement rapprochent le travail des cœurs

L’hôte écrit des commandes dans une file de soumission; le contrôleur renvoie leur état dans la file d’achèvement. Différents cœurs ou processus peuvent utiliser des paires distinctes et réduire la contention.

Les sonnettes signalent les nouveaux travaux. La scrutation peut réduire la latence au prix d’une consommation accrue de processeur; la coalescence des interruptions peut économiser des cycles tout en ajoutant de l’attente. La profondeur des files modifie l’utilisation et la latence de queue.

Une file plus profonde n’est pas toujours préférable. Elle peut masquer une saturation et prolonger l’attente. La configuration doit suivre la charge de travail.

Contrôleurs, sous-systèmes et espaces de noms séparent le point de terminaison logique du support physique

Un contrôleur expose des files et des commandes. Un sous-système peut regrouper plusieurs contrôleurs. Les espaces de noms représentent une capacité logique et peuvent être présentés par plusieurs chemins.

L’identité visible par l’hôte ne correspond donc plus nécessairement à un SSD. Une baie peut agréger de nombreux supports et proposer des espaces de noms stables.

NVMe ne décide ni du placement, ni de la réplication, ni de la protection des données. Le RAID, le codage d’effacement, l’allocation dynamique et la cohérence relèvent du système supérieur.

Les commandes d’administration contrôlent l’environnement d’E/S

La file d’administration gère l’identification, la création des files, les fonctionnalités, les journaux, le firmware, les espaces de noms et la sécurité. C’est la couche qui rend possible le travail ordinaire.

Une commande d’administration peut effacer un espace de noms, activer le mauvais firmware ou modifier l’état d’alimentation. Elle exige des autorisations, une journalisation d’audit et un contrôle des changements.

La séparation de l’administration et des E/S améliore l’architecture, mais ne réduit pas l’importance du plan de contrôle. Dans un fabric, les deux peuvent dépendre du même réseau.

PCIe maintient le chemin local à proximité de la mémoire et du matériel

NVMe sur PCIe utilise la mémoire partagée et les registres du contrôleur sur le bus local. C’est la manière la plus directe de connecter des SSD ou des cartes à l’intérieur du serveur.

La topologie reste importante. Un périphérique peut se trouver derrière un commutateur PCIe, sur un autre socket NUMA ou partager des voies. Le processeur, la mémoire et le périphérique doivent être correctement positionnés.

Il ne suffit donc pas d’inventorier le « nombre de disques ». Une partie de la latence peut naître dans le serveur avant même d’atteindre le support.

NVMe over Fabrics transforme une relation locale en service réseau

NVMe-oF 1.0 et NVMe-MI 1.0 ont été publiés le 9 juin 2016. NVMe-oF transporte des capsules et des données vers un sous-système distant, où l’hôte crée des files et voit les espaces de noms par le réseau.

L’architecture permet de partager des pools et de séparer le calcul du stockage. Les hôtes peuvent changer sans déplacement des données.

Elle ajoute aussi la carte réseau, le commutateur, le routage, la découverte, le contrôleur, l’authentification et les chemins multiples au parcours des données. Le fabric réseau devient une composante du système d’intégrité.

Les contrôleurs de découverte favorisent le dynamisme tout en créant une dépendance critique

Un hôte interroge un contrôleur de découverte pour connaître les sous-systèmes, les adresses et les services. Il n’est ainsi plus nécessaire de configurer manuellement chaque cible.

Des informations erronées ou un service indisponible peuvent empêcher de nouvelles connexions ou orienter l’hôte vers le mauvais emplacement. Il faut de la redondance, des caches, une validation et une protection des identités.

La découverte ne se confond pas avec la disponibilité du chemin de données. Les connexions existantes peuvent continuer à fonctionner alors que les nouveaux hôtes ne découvrent plus rien.

NVMe/TCP a étendu le fabric aux réseaux IP ordinaires

NVMe/TCP, normalisé en 2019, associe les commandes et les données à TCP. Les opérateurs peuvent utiliser un Ethernet routable, des outils IP, des pare-feu et des pratiques connues sans construire de réseau RDMA.

Cette facilité ajoute une surcharge. TCP, les copies, les interruptions et le processeur peuvent influer sur la latence de queue. Le noyau, les déchargements matériels, la taille des transferts et le réglage sont déterminants.

Le transport comprend une mise en trames et des condensés spécifiques, et peut utiliser TLS. La prise en charge de TLS ne signifie pas qu’il soit activé ni correctement exploité.

NVMe/RDMA vise une faible latence au prix d’une discipline accrue du fabric

RDMA utilise des paires de files, de la mémoire enregistrée et les capacités des cartes réseau pour déplacer les données avec une intervention moindre du processeur. Il est intéressant pour le calcul haute performance et l’IA.

RDMA ne désigne pas un réseau unique. RoCE, iWARP et d’autres associations imposent des exigences différentes en matière de congestion, de pertes, de PFC, d’ECN et de mémoire.

Un test de performance rapide ne démontre pas que l’exploitation sera simple. Un problème réseau peut se manifester comme un délai d’expiration du stockage et nécessiter des compétences combinées.

Les chemins multiples transforment la redondance en décision de l’hôte

Un espace de noms peut être visible par plusieurs contrôleurs et chemins. L’hôte choisit l’équilibrage de charge ou le basculement. Asymmetric Namespace Access indique si les chemins sont optimisés, non optimisés ou indisponibles.

Deux liaisons peuvent partager un commutateur, un contrôleur, une alimentation ou une route. Leur indépendance doit être vérifiée par des pannes réelles.

Une politique incorrecte peut envoyer les E/S sur un chemin lent ou tarder à abandonner un chemin hors service. La redondance est un comportement observé, pas un nombre de ports.

Les réservations coordonnent l’accès partagé sans remplacer le consensus

Les réservations NVMe permettent d’enregistrer des hôtes et de réserver un espace de noms afin d’empêcher les écritures non autorisées. Elles sont utiles dans les clusters et lors des basculements.

Elles ne remplacent ni le consensus du cluster ni la cohérence de l’application. Un hôte en panne peut laisser un état à nettoyer, et le cloisonnement doit empêcher un ancien nœud de continuer à écrire.

Une réservation mal récupérée peut provoquer une indisponibilité ou une corruption.

L’authentification et TLS deviennent essentiels lorsque le stockage quitte PCIe

Un périphérique local héritait d’une certaine frontière physique. Sur le réseau, l’initiateur et la cible doivent authentifier les identités et protéger les canaux.

NVMe définit des mécanismes d’authentification et TCP peut utiliser TLS. Le résultat dépend des clés, des certificats, de leur renouvellement, des algorithmes et des politiques. La prise en charge n’équivaut pas à une configuration sûre.

Les plans de découverte, d’administration et de données doivent être analysés ensemble. Une identité authentique peut néanmoins disposer d’autorisations excessives.

NVMe-MI crée un plan de gestion séparé des E/S

NVMe Management Interface permet d’inventorier les sous-systèmes, de consulter leur état de santé et d’effectuer des opérations même lorsque le chemin applicatif n’est pas actif.

Cela facilite la maintenance et la récupération, mais ajoute une autre interface privilégiée. Une plateforme de gestion peut lire des informations sensibles ou modifier des périphériques à grande échelle.

NVMe-MI s’intègre à Redfish et à d’autres systèmes. Cette intégration ne fusionne pas les responsabilités propres à chaque norme.

Zoned Namespaces expose les contraintes du support aux logiciels

ZNS divise la capacité en zones écrites séquentiellement. En donnant cette visibilité à l’hôte, il peut réduire le nettoyage interne des données et améliorer l’endurance ou la prévisibilité.

Ce bénéfice exige un système de fichiers, une base de données ou une couche de stockage consciente des zones. Une application conçue pour un périphérique bloc conventionnel n’en profite pas automatiquement.

ZNS illustre le compromis: une meilleure connaissance du support peut accroître l’efficacité, mais augmente le coût de portabilité des logiciels.

Key Value, Simple Log Memory et Computational Programs élargissent le concept d’espace de noms

Des jeux de commandes spécialisés permettent de manipuler des paires clé-valeur, des journaux simples ou d’exécuter des programmes à proximité du stockage. Ils visent à réduire les traductions et les déplacements de données.

Leur utilisation dépend des contrôleurs, des pilotes, des bibliothèques et des applications. Leur présence dans la spécification ne les rend pas universels.

Plus les options sont nombreuses, plus la découverte des capacités et une solution de repli sont importantes. La modularité crée de la souplesse ainsi qu’une nouvelle matrice commerciale.

La conformité apporte des preuves, sans certifier les performances de bout en bout

Les programmes et ateliers d’interopérabilité vérifient des comportements précis entre l’hôte et le contrôleur. Ils détectent des divergences que le texte ne révèle pas.

Une liste ne mesure ni la latence, ni l’endurance, ni la récupération, ni la sécurité dans l’ensemble d’une topologie. Les options et les matrices pilote-firmware évoluent.

L’acheteur doit considérer la conformité comme un socle et tester ses propres charges de travail, pannes et mises à niveau.

La désagrégation sépare la capacité du serveur et redistribue les responsabilités

Le stockage local associait le périphérique, l’hôte et l’équipe système. Un pool distant peut servir de nombreux consommateurs et modifier les attributions par logiciel.

Les équipes réseau, stockage, plateforme, sécurité et applications partagent désormais les incidents. Une dégradation du fabric peut ressembler à un problème de base de données; un incident de firmware peut sembler être une perte de réseau.

L’économie dépend du taux d’utilisation et des capacités opérationnelles, pas seulement du prix par téraoctet.

L’IA transforme la latence du stockage en coût de calcul

L’entraînement et l’inférence chargent des jeux de données, écrivent des points de contrôle et déplacent de l’état à grande échelle. Lorsque des milliers d’accélérateurs attendent, le gaspillage des ressources de calcul lié au stockage devient un coût important.

TCP, RDMA, les chemins multiples et les espaces de noms partagés offrent différentes possibilités, mais doivent être évalués en tenant compte de la congestion, de la récupération, des métadonnées et du comportement des files.

L’objectif n’est pas seulement un débit de pointe, mais une latence de file et une récupération prévisibles pendant les charges synchronisées.

NVMe 2.4 illustre l’étendue du système et la pression du versionnage

L’ensemble coordonne la spécification Base, les transports, Boot, Management Interface et les jeux de commandes. NVMe est désormais une pile, et non un connecteur de SSD.

Un hôte peut prendre en charge Base 2.4 sans accepter tous les jeux de commandes; un contrôleur TCP peut différer d’un contrôleur RDMA. Les déclarations de prise en charge exigent des précisions.

Le pilote, le système d’exploitation, le firmware, le transport et l’outil de gestion forment une matrice qui, en pratique, fait partie du protocole.

NVMe a rendu le stockage composable sans le rendre simple

Le contrat réduit un coût de changement: les commandes et les espaces de noms peuvent survivre au passage de PCIe à un fabric ou d’un fournisseur à un autre. Restent la migration des données, la sécurité, l’observabilité, le réseau et l’assistance.

L’avantage consiste à séparer le protocole du produit. Le risque est de masquer des architectures très différentes sous la même marque NVMe.

Le stockage devient programmable et distribuable, mais demeure un système d’intégrité qu’il faut comprendre lorsqu’une panne survient.