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

Pro*_*kup 12 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
Run Code Online (Sandbox Code Playgroud)

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 数据的 ref-links(例如使用 cp --reflink 复制的文件、快照或去重数据)。根据断开的引用链接,这可能会导致空间使用量的显着增加

小智 13

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


Pro*_*kup 5

尚未(2017 年 12 月 28 日)可能:

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

A:……,ZSTD 级别的支持是计划中的。

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