BESTGREENSCREEN - Fotolia
Stockage : FlexFS, un concurrent de Lustre basé sur du mode objet
L’éditeur de logiciels pour chercheurs Paradigm4 se lance dans l’écriture d’un système de fichiers parallélisé bien moins cher que ce qui existe. Son secret ? Il se base sur du stockage objet, mais en contourne tous les défauts.
Comme JuiceFS, FlexFS est un nouveau système de partage de fichiers qui repose en réalité sur du stockage objet, dans le but de conjuguer à la fois la compatibilité avec les applications conventionnelles (qui lisent et écrivent des fichiers) et un coût le moins élevé possible. Mais là où JuiceFS se destine essentiellement aux données des entreprises, FlexFS vise plutôt une clientèle de chercheurs ou d’organisations qui exécutent des applications en cluster.
« Notre marché historique est l’édition de logiciels pour la gestion de données scientifiques. Et la problématique à laquelle nos clients nous ont confrontés et que le système de fichiers parallélisé qu’ils utilisaient jusque là – généralement Lustre – coûte une fortune au fur et à mesure qu’ils augmentent sa capacité. Surtout au regard des services de stockage objet en cloud, qui sont tout autant extensibles à volonté, mais qui ont le défaut de ne pas avoir d’interface POSIX pour lire ou écrire des fichiers », raconte Gary Planthaber, le directeur technique de Paradigm4. LeMagIT l’a rencontré à l’occasion d’un récent événement IT Press Tour consacré aux entreprises qui innovent dans le stockage.
« Et quand nous rencontrons un problème insurmontable que nous ne pouvons pas couvrir avec des solutions Open source ou avec un fournisseur dont les conditions tarifaires seraient acceptables pour notre clientèle de chercheurs, alors nous construisons nous-même la solution. Et c’est ainsi que nous avons lancé le chantier de FlexFS il y a quatre ans », raconte-t-il.
Parmi les clients de Paradigm4, l’un deux – il s’agirait d’un géant de la recherche pharmaceutique – avait tout de même sollicité l’hyperscaler AWS pour savoir s’il était possible, à partir de son service de stockage en mode objet S3, de bricoler un service similaire à Lustre, sans en coûter le prix. AWS avait répondu avec un montage où 25% de la capacité serait constituée du service S3, 40% viendraient de son service de stockage de fichiers élastique EFS, 25% reposeraient sur sa version de Lustre en ligne (FSx for Lustre) et 10% passeraient par son système de stockage en mode bloc EBS.
« Ce client a calculé que la solution d’AWS lui coûterait 274 000 dollars par mois. La nôtre lui revient à 110 000 $/mois et, ce, en comptant le prix du service en mode objet S3 qui est acheté à part, mais dont FlexFS a besoin pour fonctionner », lance Gary Planthaber. Il précise qu’il parle ici d’une capacité de stockage de 1,14 Po dans laquelle sont manipulés en moyenne plus de 160 millions de fichiers.
« FlexFX coûte 59% moins cher que les services natifs d’AWS. Et, en plus, vous n’avez pas à vous arracher les cheveux à piloter un salmigondis de services imbriqués les uns dans les autres », ajoute notre interlocuteur.
Mimer Lustre avec un pilote, des VM et du stockage peu cher
Lustre, le système que FlexFS mime, a le mérite de partager simultanément les fichiers qu’il contient à une multitude de serveurs de calcul. Sa parallélisation repose sur la présence d’un ou plusieurs serveurs de métadonnées qui servent uniquement à indiquer aux clients sur quels tiroirs de disques se trouvent les fichiers voulus. Cette approche permet ensuite à chaque serveur de calcul d’aller chercher lui-même, via d’autres liens réseau, les fichiers en communiquant directement avec les tiroirs de disques.
À la fin, la capacité de stockage est infinie, puisqu’il suffit de rajouter des tiroirs de disques sur le réseau. Et les performances sont optimales, puisque les accès se font sur une multitude de liens réseau qui désengorgent le trafic.
De leur côté, les très économiques solutions de stockage objet, en plus de ne pas être compatibles POSIX, ont aussi le défaut de ne pas être rapides. Pour profiter tout de même de leur coût attractif, mais en contournant tous les problèmes qu’elles posent, FlexFS consiste donc à mettre devant elles, comme dans Lustre, un ou plusieurs serveurs de métadonnées qui assurent la compatibilité en mode fichier, et aussi un ou plusieurs serveurs de cache pour garantir la performance des accès.
« Chaque serveur de métadonnées est responsable d'un ou plusieurs volumes ou espaces de noms FlexFS. Vous pouvez avoir autant de serveurs de métadonnées que vous le souhaitez, chacun avec un sous-ensemble de vos espaces de noms ou volumes totaux », détaille Gary Planthaber.
Dans la pratique, cela se passe comme sur un système de fichiers qui fonctionnerait directement sur les serveurs de calcul. Une fois que le serveur de métadonnées a indiqué où écrire un fichier, le pilote FlexFS installé sur la machine cliente découpe ce fichier en blocs de tailles identiques. Et ce sont ces blocs qui sont in fine stockés au format objet, chacun avec un identifiant objet dédié. Il est possible de compresser ces blocs depuis la machine cliente pour économiser du trafic réseau (qui, en cloud, est facturé).
On notera par ailleurs que ce pilote est par ailleurs capable de dédupliquer les contenus et d’enlever les portions vides des blocs avant de les transférer, réduisant d’autant les temps de transfert.
Les serveurs de cache en écriture – appelés ici proxys – sont réglables. « Les problèmes de performances d’un stockage objet sont dus à la latence élevée entre deux écritures ou deux lectures. Donc ces caches sont pertinents lorsque vous avez besoin d’écrire un très grand nombre de petits fichiers. En revanche, puisqu’il n’y pas de problème de latence avec les grands fichiers, vous pouvez dire au cache de laisser directement partir les fichiers de plus d’une certaine taille vers le stockage objet », précise Gary Planthaber, en expliquant que cela permet de réaliser des économies additionnelles.
En effet, si on parle toujours d’un déploiement chez un hébergeur de cloud, les serveurs de métadonnées et de cache de FlexFS sont alors des machines virtuelles que cet hébergeur facture à la quantité de traitements effectués.
Le stockage objet en lui-même, même s’il est nécessaire au fonctionnement de FlexFS, n’est en revanche pas proposé par Paradigm4. Ses clients sont invités à souscrire eux-mêmes à ce service auprès d’un hébergeur. Ou à le déployer eux-mêmes sur site, puisque FlexFS peut fonctionner indifféremment sur site comme en cloud.
La solution évolue en permanence. La déduplication citée plus haut est ainsi arrivée tout récemment, tout comme un outil de recherche qui sait utiliser les métadonnées du stockage objet pour indexer plus efficacement les contenus stockés.
Vers de nouveaux marchés
Fort du succès de FlexFS parmi les centres de recherche, Paradigm4 ambitionne désormais d’étendre sa clientèle aux entreprises qui exécutent des applications en cluster et bénéficieraient donc d’un système de fichiers supportant la parallélisation des accès. Gary Planthaber cite les services financiers, les industriels de l’énergie, ou encore tout ce qui avait trait au traitement central d’une multitude de relevés (télécoms, objets connectés).
« En plaçant notre système de fichiers entre un cluster analytique basé sur Apache Spark et un Data Lake stocké en mode objet, nous avons pu voir des phases de traitement qui durent d’ordinaire de 30 à 60 secondes s’exécuter en moins de 1 seconde », se félicite David Freund, consultant technique chez Paradigm4. Il présente un tableau comparatif reprenant divers résultats du benchmark TPC-H qui teste Spark seul, ou avec ses accélérateurs Comet et Gluten. Selon les cas, utiliser la parallélisation de FlexFS réduit les temps de transfert d’un facteur 1,5 à 2. Et utiliser, en plus, le proxy de cache de FlexFS, les réduit jusqu’à un facteur 4.
Quant aux bases de données qui fonctionnent habituellement avec un stockage en mode bloc, stocker leurs contenus en mode objet via FlexFS permettrait de réduire jusqu’à 60% la facture de leur infrastructure. Accessoirement, cela permettrait aussi de réaliser plus simplement des sauvegardes de ces bases de données, puisqu’un stockage objet conserve par défaut tous les blocs entretemps modifiés, plutôt que les écraser avec leur nouvelle version.
Et, évidemment, Paradigm4 espère aussi que FlexFS fera carrière dans les applications d’IA. Sa parallélisation résout les problèmes de performances lors de l’entraînement ou lors de l’inférence d’un modèle, tandis que le système objet qu’il utilise servirait, ici aussi, à restaurer rapidement des fichiers effacés par un agent d’IA incontrôlable. Et il est même possible d’installer le proxy de cache de FlexFS sur les SSD NVMe internes au serveur qui intègre les GPU, pour une accélération encore plus rapide. Une idée qu’avait déjà eue Hammerspace, lequel implémente plutôt pNFS, une variante plus légère, mais plus standard de Lustre.
