NVMe over Fabrics (Non-Volatile Memory Express over Fabrics)
Non-Volatile Memory Express (NVMe) over Fabrics est une spécification qui permet d'envoyer des commandes NVMe à messages pour transférer des données entre un ordinateur hôte et un périphérique ou un disque de stockage SSD cible sur un réseau de type Ethernet, Fibre Channel ou InfiniBand.
NVM Express Inc., organisation à but non lucratif de plus d'une centaine d'entreprises d'informatique, a publié la version 1.0 de la spécification NVMe over Fabrics le 5 juin 2016. Un groupe de travail de cette organisation a publié la version 1.0 de la spécification NVMe le 1er mars 2011.
La version 1.3 de NVMe, sortie en mai 2017, comprend des fonctionnalités supplémentaires destinées à améliorer la sécurité, le partage de ressources et la durée de vie des disques SSD (Solid-State Drive).
Les fournisseurs s'efforcent de développer un écosystème d'entreprises capable de prendre en charge NVMe-over Fabrics de bout en bout, du système d'exploitation (OS) aux périphériques de stockage en passant par l'hyperviseur du serveur, les adaptateurs réseau et l'OS de stockage.
D'après NVM Express, 90 % du protocole NVMe over Fabrics est identique au protocole NVMe, qui est conçu pour une utilisation locale sur le bus PCI Express (PCIe) d'un ordinateur.
Les fournisseurs de commutateurs SAN (Storage Area Network), notamment Brocade Communications Systems (qui appartient désormais à Broadcom Ltd.), Cavium Inc. (qui a racheté QLogic Corp. en 2016), Cisco Systems Inc. et Mellanox Technologies, tentent d'imposer le protocole FC 32 Gbit/s comme fabric logique pour la technologie Flash NVMe.
Différence entre NVMe over Fabrics et NVMe
La principale différence entre NVMe et NVMe over Fabrics réside dans le mécanisme de mappage du mode de transport pour l'envoi et la réception des commandes et des réponses. NVMe over Fabrics utilise un modèle à messages pour communiquer entre un hôte et un périphérique de stockage cible. Le protocole NVMe local mappe les commandes et les réponses sur la mémoire partagée de l'hôte via le protocole d'interface PCIe.
Le consortium NVM Express définit la spécification NVMe-oF comme une architecture commune prenant en charge un large éventail de fabrics de réseau de stockage pour le protocole de stockage par blocs NVMe sur un fabric de réseau de stockage. Elle fournit notamment une interface frontale avec les systèmes de stockage, s'étend à un grand nombre de périphériques NVMe et augmente la distance d'accès aux périphériques et sous-systèmes NVMe au sein d'un datacenter.
NVMe-oF permet d'utiliser d'autres modes de transport vers PCIe pour augmenter les distances de connexion entre un hôte NVMe et un périphérique de stockage ou un sous-système NVMe. A l'origine, l'objectif qui sous-tendait la conception de NVMe over Fabrics était de ne pas ajouter plus de 10 microsecondes de latence entre un hôte NVMe et un périphérique de stockage cible NVMe distant, connectés via le fabric réseau approprié, par rapport à la latence d'un périphérique de stockage NVMe utilisant le bus PCIe d'un serveur local.
NVMe est une alternative au standard SCSI (Small Computer System Interface) pour la connexion et le transfert de données entre un hôte et un périphérique ou système de stockage cible. La norme SCSI a vu le jour en 1986, époque où les disques durs et les bandes constituaient les principaux supports de stockage. NVMe est conçu pour des supports plus rapides, comme les disques SSD (solid-state drives) et les technologies postérieures à la période Flash.
Comparé à SCSI, NVMe fournit une interface de registre et un jeu de commandes simplifiés pour réduire la surcharge du processeur de la pile d'E/S. Ce jeu de commandes utilise moins de la moitié des jeux d'instructions des autres protocoles de stockage. Les périphériques de stockage NVMe bénéficient d'une latence plus faible, d'un niveau de parallélisme accru pour les requêtes et d'une meilleure performance.
NVMe prend en charge jusqu'à 64 000 files d'attente, chacune pouvant accueillir jusqu'à 64 000 commandes. Un même coeur de processeur peut traiter toutes les commandes d'E/S et leurs réponses, de sorte que les processeurs multicoeurs offrent un très haut niveau de parallélisme. Le verrouillage des E/S n'est pas nécessaire, étant donné que chaque thread d'applications bénéficie de sa propre file d'attente.
Dennis Martin, fondateur et président du cabinet d'analystes Demartek, décrit les rôles de NVMExpress et NVMe over Fabrics.
De l'avis général, les SSD NVMe devraient à terme supplanter les SSD SATA et SAS (Serial Attached SCSI) en tant que supports Flash par défaut dans les datacenters des entreprises. NVMe est disponible en plusieurs formats : cartes d'extension, disques SSD U.2 2,5 pouces et M.2.
Les périphériques NVMe transmettent les données via un connecteur d'extension PCIe série, ce qui permet de se passer d'un contrôleur matériel dédié pour le routage des données du stockage réseau. Avec NVMe, un disque SSD PCIe équipant un hôte est capable de transférer plus efficacement des données vers un sous-système ou une cible de stockage.
Les disques SSD NVMe connectés via PCIe permettent une communication directe entre les applications et le stockage. Une carte PCIe 3.0 à quatre voies peut fournir environ 4 Gbit/s de bande passante par périphérique.
Si la spécification NVMe enregistre des performances équivalentes à celles des disques PCIe Gen 3, il lui manque cependant une couche de messagerie native pour orienter le trafic entre les hôtes distants et les SSD NVMe d'une baie. NVMe-oF permet de combler cette lacune.
NVME over Fabrics via RDMA
La spécification NVMe-oF utilisant l'accès direct à la mémoire à distance (RDMA, Remote Direct Memory Access) est définie par un sous-groupe technique de l'organisation NVM Express. Les mappages disponibles incluent RoCE (RDMA over Converged Ethernet) et iWARP (Internet Wide Area RDMA Protocol) pour Ethernet et InfiniBand.
RDMA est un mécanisme de transport entre les mémoires de deux ordinateurs. Les données sont envoyées d'une adresse mémoire à une autre sans faire intervenir le système d'exploitation ni le processeur. Il en résulte un temps de traitement réduit, des accès et des réponses plus rapides aux requêtes, ainsi qu'une latence se mesurant généralement en microsecondes.
NVMe sert de protocole pour le déplacement des données de stockage via RDMA over Fabrics. Le protocole fournit un langage commun permettant aux serveurs de calcul et au stockage de communiquer pour assurer le transfert de données.
NVMe over Fabrics via RDMA exige essentiellement la mise en oeuvre d'un nouveau réseau de stockage qui booste les performances. En contrepartie cependant, on perd en évolutivité par rapport au protocole FC.
NVMe over Fabrics via Fibre Channel (FC-NVMe)
La spécification NVMe over Fabrics utilisant le protocole Fibre Channel (FC-NVMe) a été développée par la commission T11 de l'INCITS (InterNational Committee for Information Technology Standards). FC permet de superposer le mappage d'autres protocoles – comme NVMe, SCSI et le protocole propriétaire d'IBM, Fibre Connection (FICON) – pour transmettre les données et les commandes entre les périphériques de stockage hôte et cible.
FC-NVMe et FC Gen 6 coexistent dans une même infrastructure, ce qui permet d'éviter une mise à niveau de grande ampleur dans le datacenter.
Les utilisateurs ont la possibilité de recourir à un microprogramme pour mettre à niveau les commutateurs réseau FC existants, à condition que les adaptateurs de bus hôtes (HBA, Host Bus Adapter) soient compatibles avec les cibles de stockage FC ou NVMe-oF de 16 et 32 Gbit/s.
Le protocole FC prend en charge l'accès à la mémoire Flash NVMe partagée. Toutefois, le fait que les commandes SCSI encapsulées doivent être interprétées et converties en commandes NVMe entraîne une perte de performances. La FCIA (Fibre Channel Industry Association) participe à la définition de standards pour la rétrocompatibilité des implémentations FC-NVMe, afin qu'un adaptateur FC-NVMe soit en mesure de prendre en charge des disques SCI ou SSD, ou encore des cartes Flash NVMe connectées à un port PCIe.
Prise en charge de NVMe et NVMe-oF par les fabricants de solutions de stockage
Les premiers déploiements de NVMe concernaient des périphériques DAS (Direct-Attached Storage) dans des serveurs, des cartes Flash NVMe venant remplacer les disques SSD traditionnels comme supports de stockage. Cette configuration apporte des gains de performance considérables en comparaison du stockage 100 % Flash, mais elle présente aussi des inconvénients.
NVMe exige le recours à des outils logiciels tiers pour optimiser l'endurance à l'écriture et les services de données. Par ailleurs, les goulots d'étranglement ne sont pas éliminés dans les baies NVMe au niveau du contrôleur de stockage.
NVMe-oF comble certaines des lacunes de son prédécesseur et ouvre la voie aux systèmes « Rack-Scale Flash » qui intègrent une gestion des données native de bout en bout. La rapidité d'adoption de cette technologie dépendra de la vitesse à laquelle elle sera mise en oeuvre dans les différentes couches de l'écosystème NVMe.
Startups et fournisseurs historiques de solutions de stockage sont déjà sur les rangs. Voici une liste de produits de stockage NVMe-oF et NVMe 100 % Flash :
- DataDirect Networks Flashscale
- Système hybride Datrium DVX
- Kaminario K2.N
- Baies NetApp FAS, dont Flash Cache avec connectivité SSD NVMe
- Pure Storage FlashArray//X
- Tegile IntelliFlash (racheté par Western Digital Corp. en 2017).
En décembre 2017, IBM a sorti une configuration InfiniBand avec NVMe-oF intégrant ses systèmes Power9 et FlashSystem V9000. L'entreprise affirme que ce produit est conçu pour les workloads cognitifs qui ingèrent de très grandes quantités de données.
En 2017, Hewlett Packard Enterprise a dévoilé son système de stockage Flash côté serveur exploitant sa mémoire HPE Persistent Memory, qui utilise les serveurs ProLiant Gen9 et les disques SSD PCIe à mémoire persistante compatibles NVMe.
Dell EMC a été l'un des premiers fournisseurs de solutions de stockage à mettre sur le marché un produit NVMe 100 % Flash. La baie DSSD D5 reposait sur des serveurs Dell PowerEdge et sur un maillage réseau NVMe-over-PCIe propriétaire. Elle a cessé d'être commercialisée en 2017 en raison de ses faibles ventes.
Plusieurs startups ont également lancé des baies de stockage 100 % Flash exploitant NVMe :
- Apeiron Data Systems utilise des disques NVMe comme supports et héberge ses services de données dans des baies FPGA (Field-Programmable Gate Array) plutôt que de recourir à des serveurs connectés à des baies de stockage.
- E8 Storage exploite son propre logiciel pour répliquer des instantanés de la baie Flash NVMe E8-D24 sur des serveurs de calcul de marque connectés. Cette configuration vise à réduire les frais de gestion liés à la baie.
- Excelero est un stockage programmable exécutable sur n'importe quel serveur standard.
- Mangstor propose des baies NVMe-oF MX6300 sur un serveur PowerEdge de Dell EMC équipé de cartes PCIe NVMe de marque.
- Pavilion Data Systems a équipé sa baie Pavilion Memory Array de cartes réseau, commutateurs PCIe et processeurs génériques. L'appliance 4U de Pavilion contient 20 contrôleurs de stockage et 40 ports Ethernet pouvant être connectés à 72 disques SSD NVMe grâce au réseau interne de commutateurs PCIe.
- Vexata Inc. a développé la baie VX-100 et le logiciel distribué Vexata Active Data Fabric. La baie NVMe connectée via Ethernet de ce fournisseur comprend un contrôleur frontal, un routeur en mode direct (ou « cut-through ») s'appuyant sur des circuits FPGA et des noeuds de données qui gèrent l'ordonnancement des E/S et les métadonnées.
Avis aux fabricants de circuits intégrés : les fournisseurs réseau sont dans les starting blocks
Les fournisseurs de matériel informatique ont ouvert de nouvelles perspectives en 2017 en matière de technologies NVMe over Fabrics. Pour leur part, les fournisseurs réseau attendent que les constructeurs se décident à commercialiser des baies de stockage NVMe-oF.
En matière de commutateurs FC, les concurrents Brocade et Cisco ont tous deux développé un matériel FC de 32 Gbit/s (Gen 6) qui prend en charge le trafic Flash NVMe, avec notamment des fonctionnalités de fabric FC-NVMe. Cavium est également entré en lice en donnant un coup de jeune aux adaptateurs FC QLogic Gen 6 et FastLinQ Ethernet pour NVMe-oF.
Marvell a lancé ses contrôleurs SSD NVMe 88SS1093 au design sophistiqué : la technologie de contrôle de parité faible densité conçue pour les supports Flash NAND à cellules triple niveau (TLC, Triple-Level Cell) s'exécute sur des NAND à cellules multiniveaux (MLC, Multi-Level Cell).
Mellanox Technologies a développé une architecture de stockage NVMe-oF de référence s'appuyant sur ses processeurs SoC programmables BlueField. Comparable à une infrastructure hyperconvergée, BlueField combine des outils de calcul, de réseau, de sécurité, de stockage et de virtualisation dans un seul produit.
Microsemi Corp. s'est associé à American Megatrends Inc. pour développer une architecture NVMe-oF de référence. Le système comprend des commutateurs PCIe Microsemi Switchtec dans une infrastructure composable désagrégée Intel Rack Scale Design qui exécute le microprogramme Fabric Management Firmware d'American Megatrends.
Chez les fabricants de disques, Intel Corp. a ouvert la marche avec les SSD NVMe NAND 3D à deux ports et les disques NVMe Intel Optane, qui reposent sur la technologie de mémoire 3D XPoint développée par Intel et le fabricant de circuits intégrés Micron Technology, Inc. Intel estime que les disques NVMe Optane sont environ huit fois plus rapides que les SSD PCIe NVMe à mémoire Flash NAND.
Micron a déployé sa série 9200 de SSD NVMe et s'est également lancé dans la vente de solutions de stockage, en commercialisant l'architecture de référence NVMe Micron Accelerated Solutions et les appliances Micron SolidScale compatibles NVMe-oF.
Enfin, Seagate Technology a présenté son SSD NVMe Nytro 5000 M.2 et commencé à développer une carte d'extension NVMe de 64 To.