Stockage : Fungible accélère les baies NVMe/TCP avec des DPUs
La startup a mis au point deux puces accélératrices qui soulagent les processeurs x86 des opérations réseau. Elle a décidé de les mettre en œuvre dans des solutions de stockage.
Après les CPUs et les GPUs, voici l’ère des DPUs. La startup Fungible, qui planche sur ces nouvelles puces accélératrices destinées aux cartes réseau, devrait bientôt dévoiler le nom de plusieurs grandes entreprises déjà séduites par sa solution. Une solution de stockage, en l’occurrence : ce n’est pas une puce que commercialise Fungible, mais un ensemble baie SAN plus cartes contrôleur de type NVMe/TCP.
« La connectique NVMe/TCP porte la promesse d’avoir 2,5 à 3,5 fois plus d’IOPS qu’en iSCSI, une latence réduite de 75 % et deux fois moins de temps CPU occupé sur les machines clientes. Mais encore fallait-il parvenir à implémenter cette promesse. C’est ce que nous parvenons à faire », lance Tobey Owen, le chef produits de Fungible, lors d’une rencontre avec LeMagIT.
« Nous y parvenons avec une carte contrôleur Ethernet dotée d’une puce accélératrice de notre conception, qui permet d’atteindre 2,3 millions d’IOPS côté client. Et aussi avec une baie de 24 SSD, dotée de deux puces DPU de la même famille, qui délivre 15 millions d’IOPS. »
L’enjeu d’un SAN NVMe qui reste rapide avec une connectique Ethernet
Les baies SAN sont des baies de disques accédées en mode bloc par tous les serveurs qui s’y connectent. On les utilise généralement avec des bases de données SQL, des applications qui ont plus besoin de vitesse que de capacité de stockage. Historiquement, ces baies de disques étaient soit partagées sur un réseau Fiber Channel (FC), très rapide, dédié, très cher, soit sur le tout venant des réseaux Ethernet, via le protocole iSCSI.
Quand les SSDs ont remplacé les disques durs dans les serveurs, les commandes d’accès NVMe, bien plus adaptées aux mémoires Flash, ont succédé à celles du SCSI. Par extension, le protocole NVMe/FC (littéralement des commandes NVMe transportées sur les câbles et les switches d’un réseau FC) prend petit à petit la place du FC tout court pour accéder à distance aux baies SAN. Le remplacement de son alternative économique, l’iSCSI, posait en revanche problème.
Il y a une dichotomie entre l’embouteillage d’un réseau Ethernet et la rapidité que l’on espère atteindre quand on achète un SAN rempli de SSDs NVMe. Le marché a proposé le protocole NVMe/RoCE, aussi véloce que le NVMe/FC, sur des câbles réseau Ethernet, mais nécessitant des cartes contrôleurs et des switches qui n’ont rien à voir avec ceux d’un LAN ordinaire. On ignore encore si les entreprises adhéreront : NVMe/RoCE est finalement aussi cher que NVMe/FC.
NVMe/TCP, lui, se contente bien des liens Ethernet physiques en place dans toutes les entreprises. En revanche, demander aux processeurs des serveurs d’encapsuler des ordres NVMe dans des trames TCP/IP représente une telle consommation de temps de calcul qu’il valait encore mieux continuer à parler aux baies de SSDs avec des commandes iSCSI pour disques durs. C’est ce problème que résout la puce DPU de Fungible.
Décharger le processeur de certaines tâches
Fungible a mis au point deux processeurs DPU (Data Processing Unit). Le S1, le plus économique en énergie, prend place sur les cartes réseau Fungible FC200, FC100 et FC50 pour serveurs. Ces trois cartes offrent respectivement deux ports Ethernet en 100, 50 et 25 Gbit/s.
Le S1 se charge d’encapsuler les commandes NVMe dans des paquets TCP à la place du processeur du serveur. Il compresse et chiffre aussi les données à la volée, pour économiser de la bande passante sur le réseau et ajouter de la sécurité dans les transferts. Toutefois, ces deux dernières fonctions doivent exister avec les mêmes paramètres dans les appareils avec lesquels communique la carte FC, typiquement la baie de stockage du même Fungible.
« Le point important à retenir est que vous obtenez en même temps de la performance et des fonctions de haut niveau. Sur les autres solutions de NVMe/TCP, uniquement logicielles, c’est soit l’un, soit l’autre », argumente Jai Menon, le directeur technologique de Fungible.
L’autre DPU, le F1, plus performant, prend place en deux exemplaires dans le nœud de stockage 2U FS1600. Chacun des deux DPU F1 assure la transition entre six ports Ethernet 100 Gbit/s et 12 SSD NVMe au format U.2. Le nœud ne comprend aucun processeur x86 : toutes les fonctions habituelles du stockage sont confiées au DPU. Pour l’heure, on n’y trouve que la compression, le chiffrement, l’Erasure coding et le fonctionnement en cluster par cumul de plusieurs FS1600.
« D’autres fonctions vont bientôt voir le jour. Nos deux F1 ont suffisamment de puissance pour exécuter simultanément des traitements applicatifs. Par exemple, ils pourraient prendre à leur charge des opérations d’accès intermédiaires dans des bases de données comme Apache Spark, ce qui réduirait drastiquement les besoins d’aller-retour sur le réseau et accélérerait in fine les applications », promet Toby Owen.
Des cœurs MIPS64 qui accélèrent certaines opérations
Les S1 et F1 reposent sur des cœurs MIPS64 R6. Le S1 a 16 cœurs, accolés à une mémoire SRAM interne de 52 Mo. Un firmware intégré transforme ces cœurs en accélérateurs. Fungible indique plusieurs chiffres : un S1 peut transférer des données avec un débit de 2 Tbit/s, les chiffrer avec un débit de 256 Gbit/s et les compresser avec un débit de 128 Gbit/s.
Sur la carte réseau qu’il équipe, le S1 fonctionne sous un système d’exploitation appelé FunOS. Celui-ci apporte le support des protocoles réseau : routage IPv4/6, mais aussi MPLS, VXLAN, NVGRE, GENEVE, EVPN. Ainsi que les fonctions de stockage : elles vont des commandes NVMe à la capacité de faire démarrer le serveur hôte depuis un volume distant sur le SAN. Fungible n’indique pas la quantité de RAM présente sur la carte, on sait juste que le S1 peut adresser 64 Go de RAM DDR4.
Le F1 a 52 cœurs, intègre une mémoire cache de 32 Mo et une mémoire HBM de 8 Go. Il transfère des données avec un débit de 4 Tbit/s, les chiffre avec un débit de 1 Tbit/s et les compresse avec un débit de 512 Gbit/s.
Finalement, le nœud de stockage équipé de deux F1 affiche un débit de 60 Go/s pour les lecteurs et 24 Go/s pour les écritures. « La latence est de 120 microsecondes, soit de à peine 10 microsecondes de plus que la latence d’un tiroir de disques directement piloté en NVMe par un serveur », argumente Toby Owen.
Les 15 millions d’IOPS précédemment cités concernent l’intensité des lectures. Les écritures affichent un score de 6 millions d’IOPS. Mais Toby Owen insiste surtout sur la croissance linéaire des performances.
« Nous avons mené des tests avec IBM en utilisant un cluster de plusieurs FS1600 pour exécuter leur système de fichier distribué Spectrum Scale (GPFS, NDR). Nous avons pu constater que Spectrum Scale atteignait 10 millions d’IOPS sur deux nœuds et 30 millions d’IOPS sur six nœuds. Contrairement à d’autres solutions de stockage en cluster, il n’y a pas de déperdition au fur et à mesure que l’on augmente le nombre de nœuds », assure-t-il.
Demain, des DPUs pour mettre en réseau des pools de ressources dédiées
Le stockage NVMe/TCP n’est qu’un galop d’essai pour Fungible. À terme, la startup ambitionne d’utiliser ses DPUs pour mettre en réseau des pools fonctionnels d’infrastructure, soit le concept des infrastructures composables. Ces pools seraient des clusters réunissant des composants d’un seul type : un cluster de serveurs simples, un cluster de GPUs, un cluster de tiroirs de disques durs non NVMe et, donc, son actuel cluster de baies NVMe.
« Agencer l’infrastructure en pools fonctionnels indépendants apporterait une plus grande flexibilité au datacenter. Les entreprises pourraient ainsi avoir des réservoirs de calcul, d’IA, de capacité, dans lesquels elles puiseraient librement au gré de leurs projets. Il n’y aurait plus la contrainte d’investir dans un matériel pour un projet éphémère », explique Eric Hayes, le PDG de Fungible. Un logiciel est déjà dans les cartons pour piloter une telle architecture composable : FDC (Fungible Data Center)
Son ambition ? Que les DPUs deviennent indispensables dans les datacenters géants des fournisseurs de cloud public. « Les fournisseurs de cloud public ont révolutionné le datacenter en lui apportant des outils d’automatisation. Nous amenons l’évolution suivante, à savoir désolidariser complètement les ressources matérielles des applications. Mais pour que cela fonctionne, il faut que chaque pool soit interconnecté aux autres avec un réseau intelligent, qui mette en buffer les commandes de chacun, qui prenne à sa charge toutes les opérations protocolaires dont les allers-retours surchargeraient le réseau », ajoute-t-il.
Un fabricant de DPUs ou de solutions de stockage ?
Pour l’heure, le défi de Fungible reste de se faire un nom sur le marché. Lors de sa rencontre avec la presse, la startup n’a pas su précisément dire si le fait de se lancer avec des solutions de stockage n’allait pas phagocyter la carrière commerciale de ses DPUs pour d’autres solutions de stockage. Fungible semble croire par exemple que des utilisateurs voudraient acheter ses cartes réseau pour communiquer plus vite avec leurs baies Dell EMC ou NetApp, mais on ignore si ces derniers supporteront une technologie qui sert par ailleurs à vendre des baies concurrentes aux leurs.
Le problème, surtout, est qu’un géant de l’électronique s’est lui aussi emparé du sujet des DPUs : Nvidia. En décembre dernier, Nvidia annonçait ainsi que sa carte réseau à double connecteur 100 Gbit/s, basée sur son DPU maison BlueField-2, permettait à un serveur HPE Proliant DL380 d’atteindre plus de 5 millions d’IOPS vers une baie NVMe/TCP, elle aussi construire à partir d’un Proliant DL380 et dotée de la même carte réseau.
A priori, ce résultat est deux fois meilleur que celui de Fungible. Mais nos confrères britanniques du média spécialisé Block and Files suspectent NVidia de tricher sur leurs chiffres : les mesures pourraient ne concerner que des données cantonnées à la RAM des deux machines, ce qui signifie que Nvidia aurait plus testé le réseau que le stockage. Il n’empêche : NVidia, lui, ne vend pas d’équipements de stockage.
Un élément permettra de déterminer le potentiel de la solution de Fungible, mais il est encore inconnu : son prix.