如何在 btrfs 文件系统碎片整理中设置非默认 zstd 压缩级别?

如何在 btrfs 文件系统碎片整理中设置非默认 zstd 压缩级别?
# btrfs filesystem defragment -r -v -czstd:15 /
ERROR: unknown compression type zstd:15
# btrfs filesystem defragment -r -v -czstd_15 /
ERROR: unknown compression type zstd_15
# btrfs filesystem defragment -r -v -czstd15 /
ERROR: unknown compression type zstd15

Btrfs 手册页没有给出如何选择压缩级别的线索:

-c[算法]

在碎片整理时压缩文件内容。可选参数选择压缩算法、zlib(默认)、lzo 或 zstd。目前无法选择不压缩。另请参见示例部分。

如何选择非默认 zstd 压缩级别来重新压缩现有的 btrfs 文件系统?



笔记:btrfs filesystem defragment快照可能会导致更大的磁盘空间消耗:

警告:使用 Linux 内核版本 < 3.9 或 ≥ 3.14-rc2 以及 Linux 稳定内核版本 ≥ 3.10.31、≥ 3.12.12 或 ≥ 3.13.4 进行碎片整理将破坏 COW 数据的引用链接(例如使用 cp --reflink 复制的文件、快照或重复数据删除数据)。这可能会导致空间利用率大幅增加取决于断开的参考链接。

答案1

内核 5.1 添加了 ZSTD 级别支持。我今天使用 /etc/fstab 中的挂载选项 compress=zstd:12 使用 rc1 对其进行了测试。默认级别为 3。需要明确的是:更改仅影响在此 mount 命令之后写入的文件。一些基准测试结果:https://lkml.org/lkml/2019/1/28/1930

答案2

还不可能(2017 年 12 月 28 日):

问:我可以设置压缩级别吗?

答:……,ZSTD 级别的支持已计划。

来源:https://btrfs.wiki.kernel.org/index.php/压缩

答案3

尝试:

$> sudo mount -o 重新安装,compress=zlib:9,compress=zstd /

在该命令之后'发现'显示'压缩=zstd:9' 安装选项:)

相关内容