Curvine : une couche sémantique POSIX sur le stockage objet pour les charges de travail IA
AI-Native & Cloud-Native FS : une couche sémantique de fichiers hautes performances pour le stockage d'objets dans le cloud, intégrée à un cache haute vitesse. Projet bac à sable CNCF.
En bref
- De quoi s’agit-il ?
- Un système de fichiers écrit en Rust qui superpose un cache distribué et des sémantiques POSIX sur le stockage objet cloud, avec un pilote CSI Kubernetes et des interfaces S3/HDFS.
- À qui s’adresse-t-il ?
- Le README rapporte une validation de 10 000 pods sur Amazon EKS et des affirmations de latence de l'ordre de 100 microsecondes et de 5 milliards de fichiers par cluster, mais ne fournit pas de benchmarks indépendants, d'examens de sécurité ou de politiques de support. Curvine est un projet Apache-2.0 dans le bac à sable CNCF avec 881 étoiles et 157 problèmes ouverts au moment de l'instantané des métadonnées.
- Puis-je l’utiliser commercialement ?
- Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 2 jours.
- En quel langage est-il écrit ?
- Principalement Rust, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Un système de fichiers qui traite le stockage objet comme un niveau durable
Curvine est un système de fichiers écrit en Rust qui superpose une interface compatible POSIX sur le stockage objet cloud. Le README le décrit comme une couche sémantique de fichiers haute performance avec un cache distribué multicouche intégré, conçu pour les charges de travail IA à grande échelle et les plateformes d'agents IA. Le nom vient du 'moteur de courbure', un dispositif de propulsion supraluminique dans le roman de science-fiction de Liu Cixin, Le Problème à trois corps, choisi pour symboliser l'accélération de l'accès aux données. Le projet est un projet du bac à sable CNCF et est sous licence Apache-2.0. Les métadonnées du dépôt listent 881 étoiles et 101 forks, mais le README ne fournit aucune statistique d'adoption ou d'utilisation au-delà du scénario de validation décrit plus loin.
Pourquoi le README dit que le stockage objet seul ne suffit pas
Le README soutient que le passage d'une seule grande instance de modèle à des dizaines de milliers d'agents IA indépendants change les exigences de stockage. Chaque agent est un processus avec état avec son propre répertoire de travail, des fichiers de contexte persistants, node_modules et historique git, nécessitant un espace de travail POSIX isolé. Il compare trois options de stockage existantes : le stockage par blocs (comme EBS) a des limites d'attachement de volume par nœud et une liaison à une seule zone de disponibilité ; le NFS géré (comme EFS) est limité par les taux d'API cloud ; et le stockage objet (comme S3) n'a pas de sémantiques POSIX pour la mutation sur place, le renommage atomique et la liste de répertoires cohérente. Curvine est positionné pour combler cette lacune en fournissant un système de fichiers distribué sur le stockage objet, bien que le README ne contienne pas de benchmark formel comparant ces options.
La validation Amazon EKS avec 10 000 pods
Le README rapporte une validation en production sur Amazon EKS où Curvine a soutenu 10 000 pods avec état indépendants. Le tableau liste 10 000 PVC tous Bound avec zéro Pending ou Failed, 10 000 pods en cours d'exécution sans CrashLoopBackOff, une empreinte de cluster de stockage d'un maître et trois travailleurs (quatre pods principaux), environ 100 pods d'agent par nœud r6g.4xlarge contre environ 28 avec EBS, CPU à 88% et mémoire à 98%, une latence de provisionnement en millisecondes car il s'agit d'un mkdir local, et la survie des données après redémarrage de pod et replanification inter-nœuds. Le README renvoie à un article de blog AWS en chinois décrivant l'histoire complète, mais les détails de cet article ne sont pas reproduits dans le README lui-même. Les chiffres de validation sont énoncés sans méthodologie ni script de test, donc ils ne peuvent pas être confirmés indépendamment à partir de la source.
Fonctionnalités clés : cache, CSI, compatibilité de protocole, métadonnées
La liste des fonctionnalités de Curvine comprend un cache multicouche qui promeut automatiquement les données chaudes de la mémoire au SSD puis au HDD ; un pilote CSI Kubernetes natif qui permet le provisionnement dynamique de PVC, la liaison Immediate, l'expansion de volume et le déploiement basé sur Helm ; des sémantiques POSIX complètes via FUSE afin que des outils comme Vite, inotify, fswatch et git fonctionnent sans modification ; une compatibilité de protocole S3 et HDFS pour l'intégration avec les écosystèmes IA et big data ; un noyau Rust avec runtime asynchrone Tokio et chemins de données zéro copie ; le support de 5 milliards de petits fichiers par cluster ; et une conception de métadonnées qui mappe 1:1 aux chemins d'objets S3, de sorte que les objets restent accessibles même si Curvine est en panne. Le README mentionne également le consensus Raft pour les métadonnées et un système de métriques intégré avec interface Web. Ces fonctionnalités sont décrites à un niveau élevé, et le README ne spécifie pas les paramètres de configuration ou les détails de réglage.
Architecture : maître, travailleur, client
Curvine utilise une architecture maître-travailleur. Le nœud maître gère les métadonnées, la coordination des nœuds travailleurs et l'équilibrage de charge, en utilisant Raft pour la cohérence et la haute disponibilité. Les nœuds travailleurs fournissent la mise en cache et le service de données, avec un cache multicouche et une promotion automatique des données chaudes. Les clients communiquent via RPC et accèdent aux données via des interfaces compatibles FUSE, S3 ou HDFS. L'idée centrale est de superposer un cache de système de fichiers distribué sur le stockage objet cloud, exposant les sémantiques POSIX vers le haut et utilisant le stockage objet comme couche de persistance durable. Pour Kubernetes, le pilote CSI monte le système de fichiers comme PVC sans appeler les API cloud, car le provisionnement consiste simplement à créer un répertoire. Le README ne décrit pas le protocole RPC ni le mécanisme de cohérence du cache en détail.
Construction et exécution : dépendances, étapes de construction, cluster à nœud unique
Le README liste les prérequis : GCC 10+, Rust 1.86+, Protobuf 3.x, Maven 3.8+, LLVM 12+, paquets de développement libfuse2 ou libfuse3, JDK 1.8+, npm 9+ et Python 3.7+. Les commandes de construction incluent `make all` ou `bash build/build.sh`, avec des options pour construire les modules principaux, FUSE et le serveur avec support SPDK/RDMA. Les images Docker peuvent être construites via `make docker-build` ou `make docker-build-cached`. Après la construction, le paquet d'installation apparaît dans build/dist. Pour démarrer un cluster à nœud unique, le README montre `bin/curvine-master.sh start` et `bin/curvine-worker.sh start`, puis `bin/curvine-fuse.sh start` pour monter le système de fichiers à /curvine-fuse, `bin/cv report` pour la vue d'ensemble du cluster, et `bin/cv fs mkdir /a` pour les commandes compatibles HDFS. La configuration utilise des fichiers TOML, avec un exemple à conf/curvine-cluster.toml. Windows a un support limité ; Linux et macOS sont les cibles documentées. Le README n'explique pas comment configurer les adresses du maître et du travailleur au-delà d'une note indiquant que le fichier d'exemple contient les paramètres réseau.
Affirmations de performance, échelle des métadonnées et ce que le README ne dit pas
Le README revendique une latence de l'ordre de ~100 μs et un QPS stable de 100K+, ainsi que 5 milliards de petits fichiers par cluster. Ces affirmations sont faites sans benchmarks indépendants ni méthodologie. Le README ne fournit pas non plus de garanties de sécurité, de garantie ou de détails de support au-delà de la licence Apache-2.0, qui accorde des droits d'auteur et de brevet mais ne fait aucune garantie. Le projet est dans le bac à sable CNCF, mais le README ne décrit pas le processus du bac à sable ni aucune certification de préparation à la production. Pour une évaluation détaillée, les utilisateurs devraient exécuter leurs propres tests ou consulter la documentation de benchmark liée, qui n'est pas reproduite dans le README. Les métadonnées du dépôt montrent 157 problèmes ouverts, mais le matériel source ne les catégorise pas. L'extrait de licence accorde des licences perpétuelles, mondiales, non exclusives de droit d'auteur et de brevet, mais refuse explicitement les garanties.
Conclusion éditoriale
Le README rapporte une validation de 10 000 pods sur Amazon EKS et des affirmations de latence de l'ordre de 100 microsecondes et de 5 milliards de fichiers par cluster, mais ne fournit pas de benchmarks indépendants, d'examens de sécurité ou de politiques de support. Curvine est un projet Apache-2.0 dans le bac à sable CNCF avec 881 étoiles et 157 problèmes ouverts au moment de l'instantané des métadonnées. Le matériel source n'explique pas la nature de ces problèmes, donc la vérification par rapport à une charge de travail spécifique est le seul moyen d'évaluer le projet.
Notes de la communauté