L’actuelle version 2.6 du système de stockage Open source DAOS, pour applications critiques, sera la dernière à être estampillée de la marque Intel. Toutes les versions suivantes, dont la 2.8 qui doit être lancée d’ici à la fin de l’année, seront éditées par une fondation éponyme, la DAOS Foundation, qui se met en place depuis fin 2023 pour mieux promouvoir le système dans le milieu des produits de stockage.

Que ce soit dans l’IA, comme dans les supercalculateurs, DAOS a semble-t-il une carte à jouer face à des systèmes de stockage commerciaux qui se positionnent comme extrêmement performants. On pense en particulier à WekaFS de Weka ou EXAscaler de DDN. Mais encore faut-il le savoir : développé par Intel en marge de ses mémoires Optane, DAOS avait plus ou moins disparu des radars depuis que ces composants électroniques ont brutalement cessé d’être commercialisés.

« DAOS mûrit depuis 2012. Au fil du temps et de ses succès dans les tests de performances, nous avons vu de plus en plus d’acteurs intéressés par la possibilité de construire des produits commerciaux à partir de lui », explique le français Johann Lombardi, responsable du comité de pilotage technique de la nouvelle fondation (en photo en haut de cet article).

« Nous avons donc décidé de créer une fondation qui puisse maintenir un code central en Open source, avec une organisation pour contribuer à son extension, pour donner des directions techniques, pour mutualiser les efforts et pour s’engager sur un calendrier de publications », ajoute cet interlocuteur, que LeMagIT a rencontré lors d’un récent évènement IT Press Tour consacré aux acteurs du stockage qui innovent en Europe.

DAOS est revendiqué par ses développeurs comme le plus rapide des systèmes de stockage. Parmi ses faits d’armes, c’est lui qui apporte à Aurora, le deuxième plus puissant supercalculateur du monde, une capacité de stockage de 230 Po, accessible à la vitesse record de 25 To/s.

GCP, le cloud public de Google, vient également de le choisir pour un nouveau service Parallelstore qui se veut plus rapide que le service FSx for Lustre de son concurrent AWS. Ces deux services de stockage sont conçus pour héberger les données qui serviront à entraîner des modèles d’IA ou à calculer des simulations, en conjugaison avec des serveurs hautement performants qui ont besoin d’avaler des fichiers à toute vitesse.

LeMagIT avait précédemment rencontré la startup allemande Croit qui s’était lancée dans la commercialisation de solutions de stockage DAOS pour les entreprises, pour un prix et des performances bien meilleurs que ceux affichés par les ténors Dell, HPE, ou Pure Storage. Et aussi avec un environnement d’administration développé sur mesure. Parce que c’est aussi une caractéristique de DAOS : il s’agit d’une solution purement technico-technique, encore dépourvue de toute interface de pilotage de haut niveau pour les professionnels.

Un système de stockage clé-valeur

L’architecture de DAOS est originale : il s’agit d’un magasin clés-valeurs. Cela ressemble un peu à du stockage en mode bloc, où les données (les valeurs) sont stockées dans des cellules numérotées (les clés). À la différence cependant que les cellules n’ont pas ici une taille uniforme. Leur taille dépend de la donnée, qui est le plus souvent un fichier.

Le mode bloc est historiquement lié aux secteurs formatés de manière uniforme sur les disques durs rotatifs. DAOS, lui, a été développé par Intel en marge de ses mémoires Optane. Sortes de mémoires Flash, qui résistent à une extinction de courant comme les mémoires NAND des SSD, les mémoires Optane étaient presque aussi rapides que des barrettes de DRAM. Elles étaient vendues sous la forme de barrettes PMEM (Persistent Memory) ou d’unités NVMe. Les données n’y étaient pas stockées dans des secteurs, mais à des adresses directement accessibles par le processeur.

De nos jours, Intel ne vend plus de mémoires Optane, mais l’utilisation de mémoire RAM (à hauteur de 1% de la capacité de stockage) et de SSD NVMe reste compatible avec le fonctionnement de DAOS. Un fonctionnement direct qui garantit donc une latence minimale pour lire ou écrire les données.

La RAM est en l’occurrence utilisée pour stocker les métadonnées qui serviront à indexer le contenu des cellules, soit une sorte de carte de la mémoire avec les adresses de chaque donnée individuelle. Cet index peut être utilisé par un système de fichiers ou de stockage en mode objet. Voire directement depuis une application programmée pour gérer ce format d’index.

« Nous proposons une bibliothèque LibDAOS pour accéder directement à cette carte mémoire. Mais il faut bien reconnaître que personne n’a vraiment eu le courage de reprogrammer son application pour qu’elle accède à des données via une carte mémoire. La plupart des gens veulent ouvrir des fichiers. Donc, nous avons ajouté par-dessus notre propre système de fichiers qui prend la forme d’une bibliothèque que nous appelons LibDFS. »

« Mais même ainsi, les gens nous ont demandé de plutôt proposer un pilote Fuse pour Linux, qui monte tout simplement un volume. C’est que nous avons fait, avec un pilote DFuse (DAOS-Fuse) qui s’interface avec LibDFS », raconte Johann Lombardi.

« Le problème de Fuse, cependant, est qu’il s’agit d’un pilote au niveau du noyau, qui entre donc dans la manière du noyau d’orchestrer les flux entre ses périphériques. Cela n’est pas optimal pour la latence. Donc nous avons mis au point une bibliothèque d’interception. C’est-à-dire qu’au lieu de passer par le pilote Fuse, cette bibliothèque redirige et interprète à la volée toutes les commandes Posix d’une application pour qu’elles soient directement exécutées par LibDFS. »

Outre les accès Posix, les développeurs de DAOS ont aussi mis au point des systèmes similaires pour rediriger les accès à un volume Hadoop HDF, via une bibliothèque Java, vers LibDFS. Ces développements auraient notamment été utilisés au Cern, pour capturer à toute vitesse les données issues de l’accélérateur de particules Atlas, et au Centre européen pour les prévisions météorologiques à moyen terme (ECMWF).

« Dans ces cas d’usage, il n’a donc pas même pas été nécessaire de modifier les applications d’origine. Nous avons juste mis DAOS en dessous et cela a suffi à accélérer l’accès aux données ».

La version 2.8 de DAOS qui arrive en fin d’année doit aussi apporter une telle redirection à PyTorch et TensorFlow, via une bibliothèque Python. Celle-ci pourrait même convertir directement les structures clé-valeur d’origine au format de LibDAOS, c’est-à-dire sans même passer par LibDFS.

Précisons que Lustre, le système de stockage Open source historique des supercalculateurs et sur lequel est basé EXAscaler de DDN, fonctionne, lui, depuis le noyau Linux. Ce qui pénalise donc la latence de ces systèmes comparativement à DAOS.

De multiples dispositifs pour éliminer la latence

Même s’il peut fonctionner depuis le serveur qui exécute lui-même une application (par exemple SAP Hana, qui fut un cas d’usage des mémoires Optane), le but de DAOS est d’être exécuté sur des nœuds de stockage partagés entre plusieurs serveurs de calcul. L’enjeu est de concurrencer Lustre, EXAscaler, WekaFS ou pNFS. Soit des systèmes NAS où les accès sont parallélisés grâce à un système de routage, lequel s’appuie notamment sur un pilote dédié installé sur les serveurs de calcul. À la différence, donc, qu’il n’y a pas de protocole fichier qui circule sur les liens réseau dans un cluster DAOS, juste des adresses de clés pour lire ou écrire des données.

« Le point de départ de notre architecture est similaire à l’approche de Ceph, où tous les accès sont convertis en couples clé-valeur en amont des nœuds qui stockent les données, depuis la machine cliente. Entre la machine cliente et les nœuds de stockage, nous utilisons des protocoles de communication en P2P et en RDMA qui garantissent aussi un minimum de latence. Il s’agit en l’occurrence d’UCX pour les serveurs de calculs équipés de GPU Nvidia, ou d’OFI libfabric pour les autres », détaille Johann Lombardi.

Du côté du nœud de stockage, chaque processeur s’occupe d’un groupe de SSD et d’un connecteur réseau. Il fractionne sa bande passante et sa capacité en autant d’entités virtuelles dédiées à un certain nombre de serveurs de calculs.

« C’est-à-dire que nous permettons à plusieurs clients d’écrire chacun de leur côté le même fichier et nous nous occupons après coup de rétablir la cohérence entre les différentes versions. Cela nous évite de poser des verrous pendant les opérations, ce qui nuirait à la vitesse. Pour la cohérence a posteriori, nous nous sommes inspirés d’un dispositif inventé sur les bases de données et appelé MVCC (Multiversion Concurrency Control). »

« Alors, bien entendu, vous pourriez penser que le MVCC va générer beaucoup de charges de travail après coup. Mais en réalité, nous constatons qu’il n’y a jamais de conflit 99,9% du temps. Donc nous avons raison de ne pas poser de verrou lors des accès, car cela nous permet d’atteindre des vitesses incroyables par rapport à nos concurrents », argumente Johann Lombardi, en exposant des résultats de tests de performances IO500 qui avantagent largement DAOS face à Lustre, WekaFS et EXAscaler.

Des fonctions entreprise à venir en 2026

La fondation DAOS, qui est chapeautée par la fondation Linux, comprend à l’heure actuelle Intel, le laboratoire de recherche américain Argonne qui exploite le supercalculateur Aurora, HPE qui a construit Aurora, Google, ainsi que Vdura (ex-Panasas) qui fabrique des NAS pour supercalculateurs. On suppose que ces derniers, qui fonctionnent d’ordinaire avec leur propre système de fichiers parallélisé (PanFS), adopteront DAOS.

La première version de DAOS dont elle aura la charge, la 2.8, devrait apporter des fonctions de télémétrie et une meilleure résistance aux pannes. Par exemple, les copies redondantes des données, qui ne sont déjà pas stockées dans le même serveur, ne seront plus stockées non plus dans la même étagère rack, pour éviter qu’une panne de son alimentation générale empêche d’accéder à des fichiers.

Une version 3.0 est prévue d’ici à un an. Elle devrait supporter l’extraction à chaud des SSD sans que cela cause de ralentissement, les données immuables que les ransomwares ne peuvent abîmer ou encore le chiffrement à la volée des SSD.

Il faudra attendre la fin de l’année 2026 pour voir arriver toutes les fonctions de haut niveau qui plaisent tant aux entreprises : la compression et le chiffrement à la volée, le support direct des bases SQL, le redimensionnement à la volée des volumes. C’est aussi à ce moment-là que DAOS commencera à supporter les tiroirs de SSD NVMe reliés en CXL et l’utilisation de plusieurs cartes réseau pour communiquer entre un serveur de calcul et un serveur de stockage.



Plus de détails sur l’article original.