Qu’est-ce que NVMe-oF ?

What is NVMe-oF?

Dans les dernières années, nous avons constaté une amélioration constante des performances de stockage, ce qui a mis à l’épreuve les anciens protocoles de stockage, devenus des goulets d’étranglement pour les centres de données. Malgré l’utilisation des dernières technologies en matière de réseau, telles que la vitesse 100GbE et les nouvelles normes de mise en réseau comme InfiniBand, ces protocoles réseau lents limitent les performances des dispositifs flash, les confinant à l’intérieur du dispositif lui-même et les isolant dans leur boîtier. Dans cet article, nous examinons rapidement la technologie Non-Volatile Memory Express (NVMe). De plus, nous passons en revue NVMe over Fabrics (NVMe-oF) et NVMe over RDMA over Converged Ethernet (NVMe over RoCE), une nouvelle spécification de protocole développée pour résoudre les problèmes de performance des réseaux de stockage modernes.

NVMe-oF

En raison de la demande constante de faible latence et de débit élevé dans les clouds et les centres de données, il y a beaucoup de discussions autour de NVMe over Fabrics. La spécification NVMe existe depuis moins d’une décennie, et comme NVMe-oF est également relativement récent, il y a encore de nombreuses incompréhensions quant à son fonctionnement et aux avantages qu’il apporte aux entreprises. Cette technologie évolue constamment et est largement adoptée dans l’industrie informatique. Nous commençons à voir plusieurs fournisseurs de réseaux proposer des produits liés à NVMe-oF sur le marché des entreprises. Par conséquent, pour rester à jour avec les technologies avancées des centres de données, il est essentiel de comprendre ce qu’est NVMe-oF, ses capacités et ses caractéristiques de performance. De plus, il est important de comprendre comment le déployer et comment intégrer cette technologie dans différentes solutions.

NVMe et NVMe-oF

Les matrices 100 % flash (AFA) sont apparues dans les centres de données pour répondre à la demande de performances élevées, car elles sont bien plus rapides que les systèmes de stockage traditionnels et peuvent facilement atteindre le million d’IOPS tant promis sur le marché. Cependant, bon nombre de ces matrices continuent d’utiliser une technologie de stockage quasi-obsolète, le stockage SSD SATA. Ce type de stockage est basé sur le protocole de commande AHCI (Advanced Host Controller Interface) et prend en charge l’IDE. AHCI a été essentiellement conçu pour les disques durs rotatifs et non pour les disques à mémoire flash avancés. Cette technologie basée sur SCSI crée un goulot d’étranglement pour les SSD modernes et les contrôleurs de systèmes de stockage, car le bus SATA III avec AHCI ne permet des transferts de données qu’à une vitesse maximale de 600 Mo/s.

NVMe-oF vitesses de bus
Tableau 1: Vitesses courantes des bus

Pour débloquer tout le potentiel des SSD, il fallait une nouvelle technologie capable d’exploiter les performances de la mémoire flash plus rapidement. NVMe est une spécification qui permet au stockage flash (ou SSD) de bénéficier pleinement de ses performances. Cette technologie a été introduite pour la première fois en 2014 afin d’améliorer le temps de réponse des applications et d’offrir de nouvelles capacités. Il existe de nombreux formats de SSD NVMe, les plus connus étant l’AIC (carte enfichable), l’U.2, l’U.3 et le M.2. Les SSD NVMe utilisent le bus à haute vitesse Peripheral Component Interconnector Express (PCIe) de l’ordinateur ou du serveur en se connectant directement à celui-ci. En réduisant considérablement les ressources utilisées par le processeur central, NVMe accélère les opérations, réduit la latence, augmente le nombre d’opérations d’entrée/sortie par seconde (IOPS) et améliore le débit. Par exemple, les SSD NVMe offrent des vitesses d’écriture supérieures à 3 000 Mo/s. Comparés aux SSD SATA, cela signifie qu’ils sont 5 fois plus rapides, ou même 30 fois plus rapides que les disques durs rotatifs.

À lire aussi  6 astuces de nos aînées pour éloigner les souris de la maison

Avec NVMe, les IOPS peuvent s’exécuter en parallèle, permettant ainsi l’exécution de plusieurs calculs en même temps. Les tâches volumineuses peuvent être divisées en plusieurs tâches plus petites à traiter indépendamment les unes des autres, tout comme un processeur multi-cœur qui travaille avec plusieurs threads. Chaque cœur d’un processeur peut effectuer des tâches spécifiques de manière indépendante des autres.

L’un des avantages de NVMe par rapport à AHCI est la profondeur de file d’attente (QD). Alors que AHCI et SATA peuvent gérer des files d’attente de 32 (1 file d’attente et 32 commandes), NVMe peut gérer des files d’attente allant jusqu’à 65 000. Il existe 65 000 files d’attente, chaque file pouvant contenir jusqu’à 65 000 commandes. En plus de réduire la latence, cela accélère les performances des serveurs occupés qui traitent des demandes simultanées.

NVMe-oF q depth
Tableau 2: Comparaison des files d’attente

Cependant, le problème pour les centres de données réside dans les protocoles de stockage en réseau. Malgré l’avancée de NVMe, ses avantages sont limités à chaque appareil individuel. Et le fait est que les systèmes de stockage flash et autres appareils d’entreprise (coûteux), tels que les AFA, ne sont pas conçus pour isoler leurs performances remarquables à l’intérieur du châssis. Au lieu de cela, ils sont destinés à être utilisés dans des grappes informatiques massivement parallèles, connectées à d’autres serveurs et systèmes de stockage. Cette interconnexion de dispositifs est ce que nous appelons le tissu, le réseau de stockage, comprenant des commutateurs, des routeurs, des ponts de protocole, des dispositifs passerelles et des câbles.

En 2016, la norme industrielle NVMe-oF a été lancée. La spécification du protocole étend les performances incroyables de NVMe depuis les contrôleurs de baies de stockage jusqu’au tissu, en utilisant Ethernet, Fibre Channel, RoCE ou InfiniBand. NVMe-oF utilise un protocole de transfert de données alternatif (sur des tissus) en tant que mappage de transport, au lieu du bus PCIe utilisé par NVMe. Les tissus sont basés sur le concept d’envoi et de réception de messages sans mémoire partagée entre les points d’extrémité. Les transports de messages NVMe sur le tissu encapsulent les commandes et les réponses NVMe dans un système basé sur des messages qui comprend une ou plusieurs commandes ou réponses NVMe.

nvme-over-fabric-1-1
Dans NVMe-oF, les cibles sont présentées sous forme d’espaces de noms, ce qui équivaut aux LUN SCSI. NVMe-oF permet aux hôtes de communiquer avec ces cibles de stockage sur de plus longues distances tout en maintenant une latence ultra-basse, de l’ordre des microsecondes (μs). En d’autres termes, nous obtenons de meilleures performances entre les systèmes et le stockage flash sans ajouter de latence importante au tissu. Cette faible latence, en partie due aux profondeurs de file d’attente NVMe mentionnées précédemment, permet à NVMe-oF de gérer les mêmes files d’attente que NVMe, soit 65 000. Ce nombre important permet à NVMe-oF de concevoir une architecture hautement parallèle entre les hôtes et les disques en utilisant une file d’attente séparée pour chacun de ces périphériques.

Transports de tissus NVMe

Trois types de transports de tissus pris en charge et utilisés par NVMe sont NVMe-oF utilisant RDMA, NVMe-oF utilisant Fiber Channel et NVMe-oF utilisant TCP.

nvme-over-fabric-2

NVMe-oF via RDMA

Cette spécification utilise le transfert de mémoire directe à distance (RDMA) et permet le transfert de données et de mémoire entre les ordinateurs et les dispositifs de stockage à travers le réseau. RDMA est une méthode d’échange d’informations entre la mémoire principale de deux ordinateurs sur un réseau sans impliquer le processeur, le cache ou le système d’exploitation de l’un ou l’autre ordinateur. Comme RDMA évite l’utilisation du système d’exploitation, il est généralement le mécanisme le plus rapide et le moins coûteux en termes de ressources pour transmettre des données via un réseau.

À lire aussi  Les 3 meilleures assurances maladie pour chiens en 2023

nvme-over-fabric-2

NVMe-oF via RDMA utilise le protocole de transport TCP pour transmettre des données via des réseaux IP. Les implémentations typiques de RDMA comprennent l’architecture de l’interface virtuelle, RDMA over Converged Ethernet (RoCE), InfiniBand, Omni-Path et iWARP. Actuellement, RoCE, InfiniBand et iWARP sont les plus utilisés.

NVMe via Fiber Channel

L’utilisation de NVMe via Fiber Channel (FC) est souvent appelée FC-NVMe, NVMe via FC ou parfois NVMe/FC. Fiber Channel est un protocole robuste pour le transfert de données entre les matrices de stockage et les serveurs, et la plupart des systèmes SAN d’entreprise l’utilisent. Dans FC-NVMe, les commandes sont encapsulées dans des trames FC. Il est basé sur les règles FC standards et correspond au protocole FC standard prenant en charge l’accès à la mémoire flash NVMe partagée. Les commandes SCSI sont encapsulées dans des trames FC ; toutefois, cela entraîne une perte de performance due à l’interprétation et à la traduction des commandes SCSI en commandes NVMe.

NVMe via TCP/IP

Ce type de transport est l’une des dernières évolutions de NVMe-oF. NVMe via TCP (protocole de contrôle de transmission) utilise NVMe-oF et le protocole de transport TCP pour transférer des données via des réseaux IP (Ethernet). NVMe est encapsulé dans des datagrammes TCP sur Ethernet pour le transport physique. Comparé à RoCE, qui utilise également Ethernet, NVMe/TCP se comporte davantage comme FC-NVMe car ils utilisent des sémantiques de messagerie pour les E/S.

En utilisant NVMe-oF avec l’un des protocoles RDMA, Fiber Channel ou TCP, on obtient une solution de stockage NVMe de bout en bout. Ces solutions offrent des performances considérablement élevées tout en maintenant la très faible latence disponible avec NVMe.

NVMe over RDMA over Converged Ethernet (RoCE)

Parmi les protocoles RDMA, RoCE se démarque. Nous connaissons maintenant les protocoles RDMA et NVMe-oF, et nous avons maintenant Ethernet convergent (CE), qui supporte RDMA sur un réseau Ethernet. CE est une version améliorée de l’Ethernet, également connu sous le nom de Data Center Bridging et Data Center Ethernet. Elle encapsule le paquet de transport InfiniBand sur Ethernet. Cette solution fournit un mécanisme de contrôle de flux de niveau de lien pour assurer une perte nulle, même lorsque le réseau est saturé. Le protocole RoCE permet d’obtenir des latences inférieures à celles de son prédécesseur, le protocole iWARP.

Il existe deux versions de RoCE, RoCE v1 et RoCE v2. RoCE v1 est un protocole de couche 2 (liaison) Ethernet qui permet la communication entre deux hôtes dans le même domaine de diffusion Ethernet. Il ne peut donc pas acheminer entre sous-réseaux. La nouvelle option est RoCE v2, un protocole basé soit sur le protocole UDP/IPv4, soit sur le protocole UDP/IPv6. RoCE v2 est un protocole de couche 3 (internet) Ethernet, ce qui signifie que ses paquets peuvent être acheminés. Le support logiciel de RoCE v2 est encore en développement. Mellanox OFED 2.3 ou version ultérieure prend en charge RoCE v2, tout comme le noyau Linux v4.5.

RoCE

NVMe via RoCE est un nouveau type de SAN. Ce protocole offre les mêmes performances et la même flexibilité que les matériels et logiciels SAN. Bien que le protocole RoCE bénéficie des caractéristiques d’un réseau Ethernet convergent, il peut également être utilisé sur un réseau Ethernet traditionnel ou non convergent. Pour configurer un tissu de stockage NVMe via RoCE, la carte réseau, le commutateur et le AFA doivent prendre en charge Ethernet convergent. La carte réseau (appelée R-NIC) et la matrice tout flash doivent prendre en charge RoCE. Les serveurs dotés de R-NIC et les matrices tout flash avec une interface NVMe via RoCE peuvent être branchés et utilisés immédiatement avec les commutateurs CE installés.

À lire aussi  Votre pare-brise est gelé ? Découvrez 7 astuces pour le dégivrer sans causer de dommages

Support de NVMe-oF over RoCE pour VMware

VMware a ajouté la prise en charge du stockage NVMe partagé via NVMe-oF. Pour la connectivité externe, NVMe via Fibre Channel et NVMe via RDMA sont pris en charge dans vSphere 7.0. Les hôtes ESXi peuvent utiliser RDMA via Ethernet convergent v2 (RoCE v2). Pour activer et accéder au stockage NVMe via RDMA, l’hôte ESXi utilise un adaptateur R-NIC sur votre hôte et un adaptateur de stockage NVMe over RDMA SW. Les deux adaptateurs doivent être configurés pour les utiliser pour la découverte du stockage NVMe.

Les cibles sont présentées comme des espaces de noms à un hôte en mode d’accès actif/actif ou asymétrique (ALUA) lors de l’utilisation de NVMe-oF. Cela permet aux hôtes ESXi de découvrir et d’utiliser les espaces de noms présentés. ESXi émule les cibles NVMe-oF en tant que cibles SCSI à l’intérieur et les présente comme cibles SCSI actives/actives ou cibles implicites ALUA SCSI.

nvme-over-fabric-3

Exigences pour NVMe-oF via RDMA :

  • Matrice NVMe prenant en charge le transport RDMA (RoCE v2)
  • Hôte ESXi compatible
  • Commutateurs Ethernet prenant en charge un réseau sans perte.
  • Adaptateur réseau prenant en charge RoCE v2
  • Adaptateur SW NVMe over RDMA
  • Contrôleur NVMe
  • RoCE fonctionne aujourd’hui sur des tissus perdus prenant en charge ZTR (Zero Touch RoCE) ou nécessite un réseau configuré pour un trafic d’informations sans perte au niveau 2 uniquement ou aux niveaux 2 et 3 (en utilisant PFC)

Lors de la configuration de NVMe-oF sur un hôte ESXi, il est recommandé de suivre quelques bonnes pratiques :

  • Ne pas mélanger les types de transport pour accéder au même espace de noms.
  • Assurer que tous les chemins actifs sont présentés à l’hôte.
  • N’utilisez pas/supportez NMP ; utilisez plutôt HPP (High-Performance Plugin) pour les cibles NVMe.
  • Vous devez disposer de liens, de VMkernels et d’adaptateurs RDMA dédiés à vos cibles NVMe.
  • Connectivité VLAN de niveau 3 dédiée ou connectivité de niveau 2
  • Limites :
    • Espaces de noms : 32
    • Chemins : 128 (maximum de 4 chemins/espace de noms sur un hôte)

Conclusion

De plus en plus de personnes dépendent de leurs données dans les services cloud, ce qui crée une demande croissante de stockage en arrière-plan plus rapide dans les centres de données. NVMe est une nouvelle manière d’interfacer les dispositifs flash, et avec NVMe-oF, les technologies progressent pour offrir des options de connectivité externes. NVMe-oF et ses différents types de transports commencent à être reconnus comme l’avenir du stockage de données. Ces dispositifs et appliances de stockage sont considérés comme le cœur des centres de données, car chaque milliseconde compte dans ce réseau interconnecté. La technologie NVMe réduit les commandes d’entrée/sortie mappées en mémoire et facilite l’utilisation des pilotes de périphériques d’exploitation pour une meilleure performance et une latence plus faible.

NVMe est devenu de plus en plus populaire en raison de sa vitesse multitâche à faible latence et de son débit élevé. Alors que NVMe est également utilisé sur les ordinateurs personnels pour améliorer le montage vidéo, les jeux et d’autres solutions, les véritables avantages se manifestent dans l’entreprise grâce à NVMe-oF. Les secteurs informatiques, de l’intelligence artificielle et de l’apprentissage automatique continuent de progresser, et la demande de performances améliorées ne cesse de croître. Il est devenu courant de voir des fournisseurs de logiciels et de réseaux, tels que VMware et Mellanox, proposer davantage de produits et de solutions liés à NVMe-oF sur le marché des entreprises. Avec des grappes informatiques modernes et massivement parallèles, plus nous pouvons traiter et accéder rapidement à nos données, plus elles sont précieuses pour notre entreprise.

Ressources

  • Storagehub: VMware NVMeoF vSphere
  • NVMexpress: NVMe Over Fabrics
  • NetApp AFF A800 NVMeOF Review

Contactez StorageReview

  • Newsletter | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | Facebook | Flux RSS