Stockage : GRAID décuple les performances du RAID NVMe avec un… GPU
La solution la plus puissante et la moins chère pour aligner 110 Go/s de bande passante sur 32 SSD serait simplement d’utiliser une carte graphique d’entrée de gamme que l’on trouve dans le commerce.
Une carte graphique Nvidia en guise de contrôleur RAID ! Cette idée surprenante est à la base de la solution « SupremeRAID » de la startup américaine GRAID. Pour moins de 4 000 $, elle sait piloter 32 SSD NVMe simultanément dans un serveur afin d’atteindre un débit total en lecture de 110 Go/s et une vitesse d’accès de 19 millions d’entrées-sorties par seconde (millions d’IOPS).
Comparativement, la carte LSI MegaRAID de Broadcom, sa concurrente la plus proche, ne supporte directement que quatre SSD NVMe, lit leurs données avec un débit maximal de 13,5 Go/s et délivre moins de 200 000 IOPS en lecture. La différence entre les deux cartes ? Celle de Broadcom utilise un ASIC, une puce sur mesure que le fabricant a lui-même mise au point.
« Évidemment, nous avions commencé par chercher à créer une carte RAID à partir d’une puce spécialisée, en l’occurrence un FPGA. Mais nous avons vite déchanté : pour atteindre les 19 millions d’IOPS que nous visions, notre FPGA devait coûter 30 000 dollars pièce ! Cela n’avait aucun sens », lance Leander Yu, le PDG de la startup GRAID (en photo ci-dessus avec Thomas Paquette Senior VP and General Manager, GRAID).
« En revanche. Sachant que le RAID consiste juste à répartir les accès en flux parallèles et qu’un GPU a justement pour fonction de paralléliser les flux de pixels, nous avons eu l’idée de prendre une simple carte graphique disponible partout dans le commerce pour quelques centaines de dollars », ajoute-t-il.
Ainsi, la carte contrôleur SupremeRAID SR-1010 n’est en réalité qu’une NVidia RTX A2000, une carte graphique d’entrée de gamme pour stations de travail, que l’on trouve de nos jours pour moins de 600 €. « Honnêtement, nous n’utilisons même pas 50 % de sa puissance. En revanche, nous devions forcément choisir une carte graphique de classe professionnelle. Les modèles grand public n’ont pas de mémoire à correction d’erreur. Ils sont moins fiables. Nous ne pouvons pas tolérer la perte d’un seul octet dans le cadre du stockage », dit Leander Yu.
La SupremeRAID SR-1010 est le nouveau modèle sur bus PCIe 4.0. GRAID commercialisait déjà l’année dernière un modèle SR-1000 avec bus PCIe 3.0 et qui atteignait pour sa part 16 millions d’IOPS en lecture. La SR-1010 a un tarif de 3 995 dollars. L’ancienne SR-1000 coûte 2 500 dollars.
Leander Yu ajoute que, selon lui, la solution de son concurrent Broadcom a certainement été développée à une époque où il fallait mettre en RAID des disques durs. Elle serait obsolète avec des SSD NVMe, qui ne communiquent plus par les ports SATA ou SAS, mais utilisent à présent des canaux PCIe. Il estime que Broadcom a sans doute conservé le même ASIC pour rentabiliser son développement très coûteux.
12 fois plus rapide sur les écritures
Le savoir-faire technique de GRAID est en réalité uniquement dans l’implémentation logicielle sur GPU des modes RAID 0, 1, 5, 6, 10 et EC. « Nous vendons la solution complète, avec la carte. Mais nous sommes aussi en discussion avec des fabricants de serveurs et des hébergeurs de cloud qui achètent de leur côté de très grandes quantités de cartes graphiques. Nous sommes ouverts à ne leur vendre que notre logiciel », précise Thomas Paquette, le directeur général de GRAID.
En pratique, la carte ne sert de passerelle vers les SSD que lors des écritures. Car c’est à ce moment-là qu’elle doit prendre les flux et les segmenter en fragments pour qu’ils puissent ensuite être relus en parallèle avec une vitesse maximale. Dans cette configuration, le débit en écriture du point de vue du serveur est de 12 Go/s, à savoir la vitesse maximale du bus PCIe 4.0 x 16 canaux sur lequel est branchée la carte SupremeRAID.
En sortie, la carte communique les écritures à chaque SSD à la vitesse individuelle de 7 Go/s, leur vitesse maximale sur un bus PCIe 4.0 quand ils utilisent un maximum de 4 canaux. Mais si l’on compte le débit global vers tous les SSD, il s’élève à 22 Go/s, du fait des doublons qui sont créés par le dispositif RAID.
GRAID compare sa solution à « un contrôleur RAID matériel concurrent » – sans citer précisément Broadcom cette fois – qui, lui, ne saurait écrire qu’un total de 4 Go/s vers les SSD. Manifestement, parce que sa puce avait été prévue pour des disques durs, donc, et non pour des SSDs NVMe. Est également comparé un RAID logiciel, dans lequel c’est le processeur du serveur – occupé par ailleurs à exécuter les applications – qui se charge d’écrire sur les SSD. Cette fois, le débit tomberait à 2 Go/s en écriture.
En termes de vitesse d’accès, la SupremeRAID atteindrait 1,5 million d’IOPS en écriture, contre 180 000 IOPS pour « le contrôleur matériel » et 200 000 IOPS pour le processeur seul.
Pas de goulet d’étranglement en lecture
C’est en revanche sur les lectures que la solution est particulièrement efficace. « Le point essentiel de notre solution est qu’elle ne communique pas au serveur les données qu’il doit charger. Elle lui dit sur quels SSD les charger et le serveur les lit directement depuis plusieurs SSD en parallèle », explique Thomas Paquette. C’est ainsi que la vitesse record de 110 Go/s serait atteinte sur un serveur équipé de deux Xeon 6338, de 32 cœurs chacun, à 2 GHz.
En face, la solution de Broadcom continue de faire office de passerelle lorsque les données sont lues depuis les SSD. C’est-à-dire que, même en lui attribuant un switch PCIe qui permettrait de la connecter par intermittence à 32 SSD, les données n’auraient toujours que ses 16 canaux PCIe pour remonter jusqu’à la RAM du serveur.
Et Thomas Paquette d’ajouter : « nous ne sommes pas limités aux SSD internes. Notre contrôleur peut très bien communiquer avec un contrôleur NVMe-over-Fabric installé dans un autre slot PCIe et qui pilote des SSD dans un tiroir externe. C’est-à-dire que dans un cas d’usage extrême, nous pouvons faire du RAID qui écrit et lit en miroir toutes les données à la fois sur des SSD internes et des SSD externes. Nous sommes de fait les seuls à proposer du RAID compatible NVMe-over-Fabrics », se félicite le DG de GRAID.
Il précise que la limite des 32 SSD n’est pas due à la capacité de la carte Nvidia, mais au logiciel de GRAID. « Ces quantités s’amélioreront au fur et à mesure de nos mises à jour et des capacités des machines à supporter autant de SSD. Néanmoins, notre logiciel est déjà prévu pour pouvoir être utilisé avec la future norme CXL d’architecture composable ».
L’architecture de bus CXL est celle qui doit à terme étendre les prochains bus PCIe 5.0, de sorte qu’il deviendra possible d’installer les processeurs, les barrettes mémoires et les extensions PCIe dans des nœuds physiquement séparés. Ce type d’architecture est censé offrir plus de possibilités pour assembler des clusters de machines.
La vitesse du GPU au service des reconstructions RAID
Autre point très important en RAID : les délais de reconstruction, habituellement prohibitifs. Ils surviennent lorsqu’un disque tombe en panne et qu’il faut référencer tous les doublons de secours pour en faire des blocs de données utilisables. C’est dans ce domaine, qui nécessite d’ordinaire beaucoup de puissance de calcul, que le GPU de la carte graphique montre tout son potentiel.
Tom PaquetteDirecteur général, GRAID
« C’est bien simple, nous reconstruisons en deux heures ce qu’un système RAID ordinaire met trois semaines à reconstruire », se vante Thomas Paquette, sans toutefois associer ces délais à une capacité.
Selon des mesures plus précises, la carte SupremeRAID de GRAID permettrait d’avoir une vitesse d’accès de 5,5 millions d’IOPS en lecture et de 1,1 million d’IOPS en écriture lors de la phase de reconstruction. Tandis que la MegaRAID de Broadcom tomberait respectivement à 36 000 et 18 000 IOPS.
« À ce propos, nous avons aussi évalué le DPU Bluefield de Nvidia. Mais ces puces sont plutôt conçues pour encoder et décoder à la volée des données qui circulent en réseau. Si nous ne les avons pas retenues, c’est justement parce qu’elles n’ont pas assez de puissance pour les fonctions qui nous intéressent, typiquement la reconstruction RAID », indique Leander Yu. LeMagIT l’interrogeait sur la pertinence d’utiliser une carte graphique, alors que Nvidia s’est lui-même beaucoup investi dans le développement de puces accélératrices pour communiquer avec du stockage externe.
Pour le Machine learning et l’enregistrement vidéo continu
Parmi les cas d’usage de la carte SupremeRAID, GRAID cite d’abord les moteurs de machine learning qui doivent constamment charger en mémoire de très gros volumes de données. Selon la startup un algorithme qui met d’ordinaire 12 heures à s’exécuter avec des données stockées sur un NAS en NFS, ne prendrait plus que 2 heures en communiquant en NVMe/RoCe avec un serveur de stockage pourvu du contrôleur de la startup. En moyenne, une baie de stockage offre une vitesse d’accès de 1,5 million d’IPOS, soit 12 fois moins qu’un serveur pourvu d’une SupremeRAID.
Autre exemple, l’enregistrement vidéo d’une course automobile qui nécessite une bande passante de 10 Go/s entre les caméras et le stockage, pourrait enfin bénéficier de la protection RAID 5 ou RAID 6 des données (distribution calculée de doublons). Une autre configuration ne pourrait offrir que du RAID 1, qui ne nécessite pas autant de calcul, mais consommerait 80 % d’espace de stockage en plus.
« Les entreprises achètent de plus en plus de SSD NVMe pour la performance, mais elles se retrouvent dans la situation paradoxale où cette performance a un impact sur celle des applications. Car les processeurs ont d’autant moins de cycles à leur accorder qu’ils doivent redoubler de calculs pour gérer des SSD en RAID. Nous traitons ce paradoxe », argumente Thomas Paquette.
Bientôt le PCIe 5.0 et l’erasure coding
Ces jours-ci, le logiciel de la SupremeRAID évolue en une version 1.3 qui supporte plus de distributions Linux. Il devient aussi possible d’installer deux cartes contrôleurs dans un serveur, au titre de redondance (et non pour doubler les performances ou le nombre de disques).
En 2023, le logiciel se dotera d’une interface graphique pour administrer la carte sous Windows, de l’erasure coding qui permettra de faire du RAID entre plusieurs cartes, ainsi que du support des prochains bus PCIe 5.0. La roadmap cite à plus ou moins court terme la compatibilité avec Kubernetes et avec VMware, mais aussi la compression, le chiffrement, la déduplication à la volée.
« C’est un autre avantage que nous avons sur les autres contrôleurs RAID : nous pouvons faire évoluer notre solution tous les ans, alors que nos concurrents attendent au moins trois ans avant de pouvoir mettre à jour leur carte », conclut Thomas Paquette.