L'entreprise Cisco a proposé le système de fichiers PuzzleFS pour le noyau Linux.

La société Cisco a proposé un nouveau système de fichiers PuzzleFS, réalisé sous forme de module pour le noyau Linux, écrit en langage Rust. Ce système de fichiers est conçu pour être utilisé dans le déploiement de conteneurs isolés et poursuit le développement des idées proposées dans le système de fichiers Atomfs. La mise en œuvre est encore au stade de prototype, prend en charge la construction avec la branche du noyau Linux rust-next et est distribuée sous les licences Apache 2.0 et MIT.

Le projet vise à contourner les limitations rencontrées lors de l'utilisation d'images de conteneurs au format OCI (Open Container Initiative). PuzzleFS résout des problèmes tels que le stockage efficace des données dupliquées, la possibilité de montage direct, la reconstruction répétée des images et une gestion sécurisée de la mémoire.

Pour la déduplication des données répétées dans différents conteneurs, l'algorithme FastCDC (Fast Content-Defined Chunking) est utilisé, fonctionnant par découpage des données en fragments de taille variable et en tenant un index avec des hachages des fragments traités. Les fragments répétés sont stockés une seule fois et indexés conjointement pour tous les niveaux du système de fichiers, c'est-à-dire que la déduplication peut s'étendre sur différents points de montage (un nouveau niveau de système de fichiers peut être lancé sur la base d'un existant et utiliser les fragments de données qu'il contient lors de la déduplication).

La reconstruction répétée des images de conteneurs est réalisée par la définition d'une représentation canonique des formats d'images de conteneurs. Le montage direct permet de monter une image de conteneur au format OCI depuis un stockage partagé global sans décompression préalable, en utilisant comme identifiant le hachage du contenu provenant du manifeste du conteneur. Pour vérifier l'intégrité des données dans un environnement d'utilisation d'un stockage partagé, un mécanisme fs-verity peut être appliqué, qui vérifie que les hachages spécifiés dans l'index binaire correspondent au contenu réel lors de l'accès aux fichiers.

Le langage Rust a été choisi pour allier des performances élevées du code résultant aux capacités de gestion sécurisée de la mémoire, ce qui permet de réduire le risque d'exploits dus à des problèmes comme l'accès à des zones de mémoire après leur libération et le dépassement de tampon. L'utilisation de Rust pour le module du noyau a également permis un partage de code entre le noyau et les composants fonctionnant dans l'espace utilisateur, créant ainsi une implémentation sécurisée unifiée.

Parmi les autres objectifs du projet : compilation et montage d'images très rapides, possibilité d'utiliser une étape intermédiaire optionnelle pour la transformation (canonicalisation) des images, non-obligation de parcours complet de l'arborescence du système de fichiers de type mtree lors de l'utilisation d'une structure multicouche, applications de modifications de style casync et une architecture simple à réaliser.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster