Cette fiche de synthèse explique comment la solution matérielle et logicielle intégrée de Napatech déleste les charges de travail de stockage NVMe/TCP du processeur hôte vers une IPU, réduisant ainsi de manière significative le CAPEX, l'OPEX et la consommation d'énergie. Cette solution introduit également une isolation de sécurité dans le système, ce qui accroît la protection contre les cyberattaques.
Qu'est-ce que NVMe sur TCP ?
NVMe/TCP est une technologie de stockage qui permet d'accéder aux appareils de stockage NVMe (Non-Volatile Memory Express) sur un réseau en utilisant des fabrics de centre de données standard. Voir Figure 1.
Les centres de données d'entreprise et Cloud modernes adoptent de plus en plus le NVME/TCP en raison des avantages indéniables qu'il offre par rapport aux anciens protocoles de stockage tels que l'interface iSCSI (Internet Small Computer System Interface) et Fibre Channel :
-
Performances supérieures : NVMe est conçu pour tirer pleinement parti des unités de stockage SSD modernes à grande vitesse basées sur la technologie NAND et offre des taux de transfert de données nettement plus rapides que les protocoles de stockage classiques. NVMe/TCP intègre ces avantages dans un environnement de stockage en réseau, ce qui permet aux centres de données de bénéficier d'un accès au stockage très performant sur le fabric.
-
Latence réduite : la faible latence du NVMe/TCP est essentielle pour les applications à forte intensité de données et les charges de travail en temps réel. NVMe/TCP permet de réduire les délais d'accès au stockage et d'améliorer les performances globales de l'application en minimisant la surcharge de communication et en éliminant le besoin de convertir les protocoles.
-
Évolutivité : les centres de données sont souvent confrontés à des déploiements de stockage à grande échelle, et NVMe/TCP permet une évolutivité fluide grâce à une solution d'accès au stockage flexible et efficace sur un réseau. À mesure que le nombre de périphériques NVMe augmente, les centres de données peuvent maintenir des niveaux de performance élevés sans goulots d'étranglement notables.
-
Pool de stockage partagé : NVMe/TCP permet de créer des pools de stockage partagés accessibles simultanément à plusieurs serveurs et applications. Cette architecture de stockage partagé améliore l'utilisation des ressources et simplifie la gestion du stockage, ce qui permet de réduire considérablement les coûts.
-
Compatibilité avec l'infrastructure existante : les centres de données disposent souvent d'une infrastructure existante basée sur des réseaux Ethernet, InfiniBand ou Fibre Channel. NVMe/TCP leur permet de tirer parti de leur fabric existant tout en intégrant une technologie de stockage plus récente basée sur NVMe sans avoir à réorganiser l'ensemble de l'infrastructure du réseau.
-
Utilisation efficace des ressources : NVMe/TCP permet une meilleure utilisation des ressources en réduisant le besoin de ressources de stockage dédiées sur chaque serveur. Plusieurs serveurs peuvent accéder à des appareils de stockage NVMe partagés sur le réseau, ce qui permet d'optimiser l'utilisation des ressources de stockage NVMe coûteuses.
-
Pérennisation : à mesure que les centres de données évoluent et adoptent des technologies de stockage plus rapides, NVMe/TCP fournit une approche prospective de l'accès au stockage, ce qui garantit que les réseaux de stockage peuvent répondre aux exigences croissantes des applications et des charges de travail modernes.
Globalement, NVMe/TCP offre une solution de stockage puissante et flexible pour les centres de données, assurant des performances élevées, une faible latence et une utilisation efficace des ressources dans un environnement de stockage partagé et évolutif.
Limites des architectures de stockage exclusivement logicielles
Malgré les avantages indéniables de NVMe/TCP en termes de stockage, les opérateurs de centres de données doivent être conscients des limites importantes associées à une mise en œuvre dans laquelle tous les services d'initiateur de stockage requis s'exécutent par logiciel sur le processeur du serveur hôte. Voir la figure 2.
Tout d'abord, il existe un risque de sécurité au niveau du système si le logiciel de virtualisation du stockage, l'hyperviseur ou le commutateur virtuel (vSwitch) est compromis lors d'une cyberattaque.
Deuxièmement, il n'existe aucun moyen de garantir une isolation complète entre les charges de travail du locataire. Une architecture unique héberge les applications et les données de plusieurs clients dans un environnement multi-locataire. Un problème dit de voisin bruyant se produit lorsqu'une application ou une machine virtuelle (VM) utilise les ressources les plus disponibles et altère les performances du système pour les autres locataires de l'infrastructure partagée.
Enfin, l'exécution de services d'infrastructure tels que le logiciel de virtualisation du stockage, l'hyperviseur et le vSwitch nécessite une part importante des cœurs du processeur hôte. Cela réduit le nombre de cœurs de processeur susceptibles d'être monétisés pour les VM, les conteneurs et les applications. Les rapports indiquent qu'entre 30 et 50 % des ressources des processeurs des centres de données sont généralement consommées par les services d'infrastructure.
Dans un sous-système de stockage hautes performances, le processeur hôte peut être amené à exécuter plusieurs protocoles tels que TCP (Transmission Control Protocol), RoCEv2 (Remote Direct Memory Access over Converged Ethernet), InfiniBand et Fibre Channel. Lorsque les protocoles de stockage et les autres services d'infrastructure sollicitent fortement le processeur hôte, le nombre de cœurs de processeur disponibles pour les applications des locataires est considérablement réduit. Par exemple, il se peut qu'un processeur à 16 cœurs ne puisse offrir que les performances d'un processeur à 10 cœurs.
Ce sont notamment les raisons pour lesquelles une architecture exclusivement logicielle présente des défis commerciaux et techniques considérables pour le stockage dans les centres de données.
Solution de délestage du stockage basée sur une IPU
Le fait de délester la charge de travail NVMe/TCP sur une IPU, en plus d'autres services d'infrastructure tels que l'hyperviseur et le vSwitch (voir figure 3), permet de remédier aux limites d'une implémentation exclusivement logicielle et offre des avantages significatifs aux opérateurs de centres de données :
-
Utilisation du processeur : la communication NVMe/TCP consiste à encapsuler les commandes et les données NVMe dans le protocole de transport TCP. Le processeur hôte traite ces tâches d'encapsulation et de désencapsulation sans délestage. Le fait de délester ces opérations sur du matériel dédié permet au processeur de se concentrer sur d'autres tâches essentielles, ce qui améliore les performances globales du système et l'utilisation du processeur.
-
Latence réduite : le fait de délester les tâches de communication NVMe/TCP sur du matériel spécialisé permet de réduire de manière significative le temps de latence du traitement des commandes de stockage. Les applications peuvent ainsi bénéficier de temps de réponse plus rapides et de meilleures performances lorsqu'elles accèdent à des appareils de stockage NVMe à distance.
-
Mouvement efficace des données : le fait de délester les tâches d'applications ne relevant pas du processeur sur des accélérateurs matériels dédiés permet d'effectuer des opérations de transfert de données de manière plus efficace qu'en utilisant un processeur à usage général. Cela permet de gérer efficacement les gros transferts de données et la gestion de la mémoire tampon, de réduire les temps de latence et d'améliorer le débit global.
-
Évolutivité améliorée : le délestage des tâches NVMe/TCP améliore l'évolutivité des déploiements de stockage à grande échelle. En délestant le processeur du traitement des communications réseau, le système peut prendre en charge un plus grand nombre de connexions simultanées et d'appareils de stockage sans être limité.
-
Efficacité énergétique : en délestant certaines tâches sur du matériel dédié, la consommation d'énergie du processeur hôte peut être réduite. Ce gain d'énergie peut s'avérer particulièrement important dans les grands centres de données où la consommation d'énergie revêt une importance significative.
Outre les avantages susmentionnés qui s'appliquent à la charge de travail de stockage NVMe/TCP, l'architecture système basée sur une IPU offre des options d'isolement de sécurité progressives, grâce auxquelles les services d'infrastructure sont isolés des applications des locataires. Cela garantit que les services de stockage, d'hyperviseur et de vSwitch ne puissent pas être compromis par une cyberattaque lancée via une application locataire. Les services d'infrastructure eux-mêmes sont sécurisés puisque le processus de démarrage de l'IPU est lui-même sécurisé, tandis que l'IPU agit ensuite en tant que source de confiance pour le serveur hôte.
Solution matérielle et logicielle intégrée de Napatech
Napatech fournit une solution intégrée au niveau du système pour le délestage du stockage dans les centres de données, comprenant la pile logicielle Link-Storage hautes performances fonctionnant sur l'IPU F2070X. Voir la figure 4.
Le logiciel Link-Storage intègre un vaste ensemble de fonctions, notamment :
-
Le délestage complet des charges de travail NVMe/TCP de l'hôte vers l'IPU ;
-
Le délestage complet des charges de travail TCP de l'hôte vers l'IPU ;
-
L'initiateur NVMe vers TCP ;
-
La configuration du stockage via l'interface SPDK RPC (Storage Performance Development Kit Remote Procedure Call) ;
-
La prise en charge du NVMe Multipath ;
-
La présentation d'appareils à 16 blocs à l'hôte via l'interface virtio-blk ;
-
La compatibilité avec les pilotes virtio-blk standard dans les distributions Linux* les plus courantes ;
-
L'isolation de sécurité entre le processeur hôte et l'IPU, sans interface réseau exposée à l'hôte.
Outre Link-Storage, l’IPU F2070X prend également en charge le logiciel Link-Virtualization, qui fournit un plan de données virtualisé déchargé et accéléré, comprenant des fonctions telles qu'Open vSwitch (OVS), la migration en direct, la mise en miroir entre VM, l'encapsulation/décapsulation VLAN/VxLAN, Q-in-Q, les RSS (receive side scaling), l'équilibrage de charge, l'agrégation de liens et la qualité de service (QoS).
Dans la mesure où l’IPU F2070X est basée sur un FPGA et un processeur plutôt que sur des ASIC, la fonctionnalité complète de la plateforme peut être mise à jour après le déploiement. Qu'il s'agisse de modifier un service existant, d'ajouter de nouvelles fonctions ou d'ajuster des paramètres de performance spécifiques, cette reprogrammation peut être effectuée sous la forme d'une simple mise à jour logicielle dans l'environnement serveur existant, sans déconnexion, retrait ou remplacement de matériel.
IPU F2070X de Napatech
L'IPU F2070X de Napatech, basée sur Intel® IPU Platform F2000X-PL, est une carte PCIe 2x100G avec un FPGA Intel Agilex® 7 série F et un processeur Intel® Xeon® D dans un format pleine hauteur, demi-longueur (FHHL), à deux slots.
La configuration standard de l'IPU F2070X comprend un FPGA Intel Agilex® 7 AGF023 avec quatre banques de mémoire DDR4 de 4 Go et un processeur Intel® Xeon® D-1736 de 2,3 GHz avec deux banques de mémoire DDR4 de 8 Go. D'autres options de configuration peuvent être proposées pour prendre en charge des charges de travail spécifiques.
L'IPU F2070X se connecte à l'hôte via une interface PCIe 4.0 x16 (16 GT/s), avec une interface PCIe 4.0 x16 (16 GT/s) supplémentaire entre le FPGA et le processeur.
Deux interfaces réseau QSFP28/56 sur le panneau avant prennent en charge les configurations réseau suivantes :
- 2 x 100G ;
-
8 x 10G ou 8 x 25G (en utilisant des câbles de dérivation).
Un port RJ45 PTP dédié permet une synchronisation temporelle facultative avec un connecteur SMA-F externe et MCX-F interne. L'horodatage IEEE 1588v2 est pris en charge.
Un connecteur Ethernet RJ45 dédié permet de gérer la carte. Les mises à jour sécurisées de l'image FPGA permettent d'ajouter de nouvelles fonctionnalités ou de mettre à jour les fonctionnalités existantes après le déploiement de l'IPU.
Le processeur fonctionne sous Linux Fedora, avec un BIOS UEFI, un support de démarrage PXE, un accès complet au shell via SSH et un UART.