Stockage : Xinnor propose un RAID plus rapide aux chercheurs

La startup focalise ses développements sur un module essentiel du stockage : le système RAID qui consolide plusieurs disques pour éviter de perdre des données. Son implémentation évite les pertes de performances.

La startup israélienne Xinnor, qui revendique d’avoir développé le système RAID logiciel le plus rapide du monde, xiRAID, étend sa solution avec le support des processeurs ARM et un dispositif dit de haute disponibilité qui permet à deux serveurs de gérer le même stockage RAID.

« Notre solution consiste à apporter la partie stockage bloc de bas niveau à des serveurs qui repartagent ensuite ce stockage RAID sous la forme de services de fichiers, que ce soit en NFS, en BeeGFS, en LustreFS, en ZFS, sur des réseaux Ethernet ou via des liens Infiniband. Elle permet d’atteindre de très bonnes performances au meilleur prix avec des disques durs classiques, mais aussi – et c’est le plus important – avec des SSD NVMe », lance Davide Villa, le directeur des opérations de la startup (en photo), lors d’une récente rencontre avec la presse à Paris.

Selon lui, xiRAID est d’autant plus important pour assembler des serveurs de stockage à base de SSD, qu’ils sont les seuls suffisamment rapides pour soutenir les calculs des nouveaux traitements en IA. Si les cartes mères supportant un grand nombre de SSD NVMe sont désormais courantes, leur manière de gérer toutes les unités de stockage ensemble, le RAID, reposerait toujours sur des techniques créées pour les disques durs et jamais optimisées depuis lors.

« Notre clientèle va des centres de calcul qui veulent du stockage très rapide en lecture pour leurs GPUs, aux centres de recherche qui veulent du stockage très rapide en écriture pour leurs microscopes, en passant par les services d’archivage qui ont besoin d’un cache rapide entre les serveurs et les bibliothèques de bandes. Ce sont pour la plupart des universités qui n’ont pas les moyens d’investir dans des baies Weka, DDN ou NetApp », ajoute-t-il.

Dans ce contexte, les deux dernières évolutions de xiRAID servent deux besoins très précis.

Si Xinnor n’exclut pas que son système puisse à terme être utilisé sur des NAS d’appoint basés sur des processeurs ARM, la comptabilité ici offerte est surtout utile pour gérer du RAID sur un tiroir externe de SSD contrôlé par un DPU BlueField-3 de Nvidia, une puce à base de cœurs ARM.  

Tests à l’appui, il devient possible, pour le serveur équipé de xiRAID et d’un port Infiniband en 200 Gbit/s, de lire les données sur un RAID-5 ou RAID-6 à 100 % de la vitesse des SSD (24 Go/s) et d’écrire à 60 % de leur vitesse (11 Go/s au lieu de 16 Go/s). D’ordinaire, le RAID de base d’un serveur de stockage ne fonctionne, d’une part, que pour les disques durs internes. Et, d’autre part, il ne permet d’atteindre que 50 % (RAID-5) ou seulement 35 % (RAID-6) des vitesses réelles des SSD.

Concernant la haute disponibilité, elle sert plus précisément à assembler un serveur de stockage SAN (mode bloc) composé de deux nœuds de contrôle qui pilotent le même banc de disques en RAID. Le système supporte que plusieurs serveurs (de bases de données, de machines virtuelles, de partage de fichiers) accèdent en même temps à l’un ou l’autre des deux contrôleurs xiRAID. Et il supporte que l’un des deux contrôleurs prenne à sa charge 100 % du trafic si l’autre tombe en panne.

Une alternative aux RAID matériels ou Open source

Pour mémoire, un système RAID consiste à traiter tous les disques présents dans une machine comme un seul disque virtuel. Plus que cumuler les capacités, son avantage est surtout de mieux résister aux pannes : si un disque tombe en panne, le stockage continue de fonctionner sur les autres. D’autant plus que, selon les modes de fonctionnement, les données sont répliquées entre les disques, de sorte qu’elles ne soient pas perdues en cas de panne.

Les modes classiques utilisés sur les serveurs de stockage sont le RAID-10, où les données sont écrites à l’identique sur deux disques à la fois, le RAID-5 où elles sont réparties sur tous les disques sous forme de blocs avec des codes de parité pour les reconstruire, et le RAID-6, similaire au précédent, mais avec deux fois plus de codes de parité.

De base, les serveurs de stockage embarquent un chipset Broadcom sur leur carte mère qui prend en charge le RAID. Il fonctionne très bien en mode RAID-10, mais ce dernier présente l’inconvénient de réduire de moitié l’espace disponible. Les utilisateurs préfèrent généralement le RAID-5 ou le RAID-6, qui ne font perdre que 12,5 ou 25 % de la capacité, mais au prix d’une sévère perte de performances de la part du chipset Broadcom.

Deux alternatives existent. Soit remplacer le contrôleur RAID par une carte PCIe dédiée à cela, comme les SupremeRAID de GRAID. Soit utiliser un contrôleur RAID sous forme logicielle et le faire exécuter par le processeur hôte, qui est bien plus puissant que la puce Broadcom. C’est dans cette catégorie que se positionne le système commercial xiRAID (facturé selon le nombre de disques pris en charge, indépendamment de leur capacité). Mais il a un concurrent de taille : MDRAID, le logiciel de contrôle RAID Open source qui s’installe gratuitement sur n’importe quel serveur Linux.

« Nous revendiquons d’être bien plus optimisés que MDRAID ! », s’enflamme Davide Villa. « Le problème de MDRAID est que son code sature le cœur de processeur sur lequel il s’exécute, sans possibilité de répartir sa charge de travail sur plusieurs cœurs. C’est particulièrement visible lors des écritures où le calcul des codes de parités met les performances à genou. »

Selon des tests réalisés par Xinnor sur un pool de 24 SSD CM7 de Kioxia, en lecture continue, xiRAID atteint 310 Go/s contre 303 Go/s pour MDRAID. En écriture continue, xiRAID grimpe à 150 Go/s contre 84,5 Go/s pour son concurrent Open source. En lectures aléatoires, xiRAID affiche 65 millions d’IOPS et MDRAID 1,5 million d’IOPS. En écritures aléatoires, xiRAID atteint 8 millions d’IOPS et MDRAID 900 000 IOPS.

Parmi ses secrets de fabrication, xiRAID n’utilise pas du code x86 basique, mais se sert des instructions vectorielles AVX2, accélérées, des Xeon ou des Epyc pour la plupart de ses fonctions. Cette façon de faire lui permet par ailleurs de ne pas avoir à mettre des informations en mémoire cache, ce qui lui permet d’éviter ensuite de perdre du temps à vérifier la cohérence de ce cache.

« Quant à GRAID, la solution de passer par un GPU est séduisante, mais ils ont deux contraintes par rapport à nous. La première est qu’ils occupent un slot PCIe, ce qui réduit la quantité d’extensions – parmi lesquelles, des SSD NVMe – que l’on peut mettre dans le serveur. D’autant plus lorsqu’il s’agit d’un serveur d’appoint en 1U qui ne sert qu’au stockage. »

« La seconde est que nos tests montrent que leur solution ne fonctionne bien qu’en opération normale. Dès qu’un SSD tombe en panne ou est retiré du pool RAID, leur solution ne sait pas mieux gérer ce mode dégradé que ne le fait le contrôleur RAID de base du serveur », argumente Davide Villa, sans toutefois fournir de chiffres comparatifs.

Deux versions de xiRAID et le SDS xiStore

Le catalogue de Xinnor comprend deux versions de xiRAID et un SDS baptisé xiSTORE. La version historique de xiRAID, dite « Classic », fonctionne comme un pilote du noyau Linux, tandis que la version plus moderne, « Opus », s’exécute dans l’espace utilisateur de Linux.

« L’intérêt de xiRAID Opus est qu’il vous permet de transformer en baie SAN un serveur dont les disques sont installés sur un tiroir externe, connecté en iSCSI, NVMe/TCP, NVMe/RoCE ou NVMe/Infiniband. »
Davide VillaDirecteur des opérations, Xinnor

« Concrètement, xiRAID Classic suffit amplement pour transformer un serveur qui embarque ses propres disques en baie SAN. Vous choisirez cette solution d’appoint si les disques en question sont des SSD NVMe, de sorte à ne pas gâcher avec un RAID traditionnel le gain de performances qu’ils vous apportent par rapport à des disques durs », explique Davide Villa.

« L’intérêt de xiRAID Opus est qu’il vous permet de transformer en baie SAN un serveur dont les disques sont installés sur un tiroir externe, connecté en iSCSI, NVMe/TCP, NVMe/RoCE ou NVMe/Infiniband. Il vous permet aussi d’utiliser directement le mode bloc au niveau de machines virtuelles. Il s’agit donc d’une version bien plus versatile pour le datacenter. »

« Au-delà de ces deux cas de figure, nous nous apercevons dans nos tests que les interruptions du noyau peuvent vite devenir un goulet d’étranglement, ou un facteur de ralentissement pour xiRAID Classic. De son côté, xiRAID Opus repose sur le kit Open source SPDK (Storage Platform Development Kit) qui fluidifie le fonctionnement des accès dans le système. Il en ressort que xiRAID Opus va supporter un plus grand nombre d’accès parallèles que xiRAID Classic avant que les performances commencent à baisser », assure-t-il.

Le SDS xiSTORE, enfin, combine plusieurs contrôleurs de stockage fonctionnant avec xiRAID et mis en cluster avec Lustre, le système de stockage parallélisé Open source bien connu dans le monde des supercalculateurs. Initialement, xiStore supposait d’avoir dans le cluster des paires de nœuds de stockage redondants, chacun avec ses propres disques. Dorénavant, avec la fonction de haute disponibilité, les deux nœuds utiliseront le même tiroir de SSD.

L’enjeu de xiSTORE est de proposer des accès rapides au moindre coût. Ou plutôt, des systèmes performants pour les laboratoires de recherche qui n’ont pas peur de configurer des logiciels Open Source (tout l’environnement de xiRAID s’administre en ligne de commande, sans interface graphique), pour bâtir une solution aussi performante que des baies de grandes marques.

Selon Davide Villa, la prochaine grande étape de Xinnor sera de proposer une déclinaison de xiRAID adaptée aux besoins des hyperscalers, vraisemblablement pour motoriser à peu de frais leurs services de stockage en ligne.

Pour approfondir sur Disques durs, SSD et Unités de stockage

Close