DwarFS,旨在减少冗余数据的文件系统

马库斯·霍兰德·莫里茨 (Facebook软件工程师) 广为人知 通过出版物 DwarFS的第一个版本, 一种旨在最大程度地压缩并减少冗余数据的只读文件系统。

该文件系统 使用FUSE机制并在用户空间中运行, 该代码是用C ++编写的,并根据GPLv3许可进行分发。

关于DwarFS

矮人FS 类似于SquashFS,cramfs和CromFS等文件系统 在您的任务中,可用于创建实时图像并减少具有大量重复项和重复数据的文件的大小(例如,存储虚拟机的图像或不同版本程序的集合)。

在速度方面 访问数据, DwarFS与SquashFS大致处于同一级别, 但在压缩效率和成像速度方面比该FS高出几倍。

开发该项目是为了解决使用不同版本的Perl优化存储的问题(DwarFS的作者参与了CPAN文件的维护)。

最初,我们尝试使用Cromfs进行压缩, 但是,建立图像花费了太长时间,并且稳定性还有很多不足之处。 SquashFS稳定运行 并以更快的速度呈现图像,但是压缩水平是不可接受的。

大多数DwarFS代码 写于2013年。 今年,作者抽出时间将代码公开发布并编写了文档。 DwarFS使用Boost和Folly库。

冻结的Thrift Facebook分支库用于存储元数据。 其他依赖项包括FUSE3和lz4,zstd和liblzma压缩库。

DwarFS在压缩率方面胜过SquashFS 8倍,并且在创建包含4个不同Perl安装的映像(其中有1139个Perl版本)的映像时,映像创建速度提高了284倍。

矮人FS 能够将基准从47GB缩小到582MB (原始大小的1,1%),而得到的SquashFS映像大小为4,7 GB。 SquashFS花了69分钟来创建映像,而DwarFS在15分钟内完成了该工作。

两个文件系统都使用ZSTD算法进行压缩。 使用LZMA,DwarFS图像的大小又减少了18%(约479MB),但是对该图像的访问速度却大大降低了。

使用重复数据较少的数据进行测试显示了一个优势 DwarFS并不那么重要,但仍然很出色。 例如,对于DwarFS,Paspberry Pi OS根FS的映像大小为298MB,对于SquashFS,映像大小为364MB,构建时间分别为1分36秒和1分54秒。

DwarFS的主要功能 以下突出:

  • 强大的功能通过使用LSH散列函数将相似的数据(无论文件边界如何)进行分组来标识相似的对象,从而消除了冗余。
  • 文件系统块分段分析可减少未压缩文件系统的大小,并由于需要输入更多数据而提高了处理器高速缓存的使用效率。
  • 映像实用程序和FUSE模块的多线程实现,可以在运行时使用所有可用的CPU内核。
  • 实验性支持连接Lua控制器的能力,该控制器可用于过滤和分类内容。
  • 重新打包模式,允许您更改已经创建的映像的压缩算法(例如,您可以使用LZMA或LZ4而不是ZSTD重新打包)。
  • 使用mkdwarfs实用程序创建映像,并使用dwarfs实用程序挂载映像。

最后,如果您想了解更多有关此文件系统的信息或对能够编译其源代码感兴趣,则可以查阅该信息或获取源代码。 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。