DwarFS, un système de fichiers conçu pour réduire les données redondantes

Marcus Holland Moritz (un ingénieur logiciel Facebook) dévoilé à travers une publication les premières versions de DwarFS, un système de fichiers en lecture seule conçu pour maximiser la compression et réduire les données redondantes.

Ce système de fichiers utilise le mécanisme FUSE et s'exécute dans l'espace utilisateur, le code est écrit en C ++ et est distribué sous la licence GPLv3.

À propos de DwarFS

Nains ressemble à des systèmes de fichiers comme SquashFS, cramfs et CromFS dans vos tâches, et peut être utilisé pour créer des images en direct et réduire la taille des fichiers avec un grand nombre de doublons et de données en double (par exemple, stockage d'images de machines virtuelles ou collections de différentes versions de programmes).

En termes de vitesse accès aux données, DwarFS est à peu près au même niveau que SquashFS, mais plusieurs fois en avance sur ce FS en termes d'efficacité de compression et de vitesse d'imagerie.

Le projet a été développé pour résoudre le problème de l'optimisation du stockage avec différentes versions de Perl (l'auteur de DwarFS participe à la maintenance du fichier CPAN).

Au départ, nous avons essayé d'utiliser Cromfs pour la compression, Mais la construction de l'image a pris trop de temps et la stabilité laissait à désirer. SquashFS a fonctionné de manière stable et il a rendu les images sensiblement plus rapidement, mais le niveau de compression était inacceptable.

La plupart du code DwarFS a été écrit en 2013. Cette année, l'auteur a trouvé le temps de présenter le code au public et d'écrire de la documentation. DwarFS utilise les bibliothèques Boost et Folly.

La bibliothèque de succursales Facebook gelée de Thrift est utilisée pour stocker les métadonnées. D'autres dépendances incluent FUSE3 et les bibliothèques de compression lz4, zstd et liblzma.

DwarFS a surpassé SquashFS en termes de taux de compression de 8 fois, et en termes de vitesse de création d'image 4 fois lors de la création d'une image qui comprend 1139 installations Perl différentes, dont il existe 284 versions de Perl.

Nains a pu réduire l'indice de référence de 47 Go à 582 Mo (1,1% de la taille d'origine), tandis que la taille de l'image SquashFS résultante était de 4,7 Go. SquashFS a mis 69 minutes pour créer l'image, tandis que DwarFS a terminé le travail en 15 minutes.

Les deux systèmes de fichiers utilisaient l'algorithme ZSTD pour la compression. En utilisant LZMA, la taille de l'image DwarFS a été réduite de 18% supplémentaires (environ 479 Mo), mais la vitesse d'accès à cette image a été considérablement réduite.

Les tests avec des données avec moins de doublons ont montré un avantage pas aussi important, mais toujours remarquable, de DwarFS. Par exemple, la taille de l'image pour le FS racine du système d'exploitation Paspberry Pi était de 298 Mo pour DwarFS et 364 Mo pour SquashFS, et le temps de construction était de 1 minute 36 secondes et 1 minute 54 secondes, respectivement.

Des principales caractéristiques de DwarFS les suivants se démarquent:

  • La capacité d'alimentation élimine la redondance en regroupant des données similaires (quelles que soient les limites du fichier) à l'aide des fonctions de hachage LSH pour identifier des objets similaires.
  • Analyse de segmentation des blocs du système de fichiers pour réduire la taille du système de fichiers non compressé et augmenter l'efficacité de l'utilisation du cache du processeur en raison du fait que davantage de données requises entrent.
  • Implémentation multi-thread de l'utilitaire de création d'image et du module FUSE, qui peut utiliser tous les cœurs de processeur disponibles lors de l'exécution.
  • Prise en charge expérimentale de la possibilité de connecter des contrôleurs Lua pouvant être utilisés pour filtrer et trier le contenu.
  • Mode de reconditionnement qui vous permet de modifier l'algorithme de compression d'une image déjà créée (par exemple, vous pouvez reconditionner en utilisant LZMA ou LZ4 au lieu de ZSTD).
  • Les images sont créées à l'aide de l'utilitaire mkdwarfs et montées à l'aide de l'utilitaire nain.

Enfin, si vous souhaitez en savoir plus sur ce système de fichiers ou souhaitez pouvoir compiler son code source, vous pouvez consulter les informations ou obtenir le code source dans le lien suivant.


Le contenu de l'article adhère à nos principes de éthique éditoriale. Pour signaler une erreur, cliquez sur c'est par ici !.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.