6
# 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

The btrfs manual page doesn't give the clue on how to select a compression level:

-c[algo]

compress file contents while defragmenting. Optional argument selects the compression algorithm, zlib (default), lzo or zstd. Currently it’s not possible to select no compression. See also section EXAMPLES.

How to select a non-default zstd compression level to re-compress existing btrfs filesystems?



Note: btrfs filesystem defragment on snapshots might result in much larger disk space consumption:

Warning: Defragmenting with Linux kernel versions < 3.9 or ≥ 3.14-rc2 as well as with Linux stable kernel versions ≥ 3.10.31, ≥ 3.12.12 or ≥ 3.13.4 will break up the ref-links of COW data (for example files copied with cp --reflink, snapshots or de-duplicated data). This may cause considerable increase of space usage depending on the broken up ref-links.

6

Kernel 5.1 added ZSTD level support. I tested it with rc1 today using a mount option compress=zstd:12 in /etc/fstab. The default level is 3. To be clear: The change affects only files that are written after this mount command. Some benchmark results: https://lkml.org/lkml/2019/1/28/1930

5

Not yet (December 28th, 2017) possible:

Q: Can I set the compression level?

A: …, ZSTD level support is planned.

source: https://btrfs.wiki.kernel.org/index.php/Compression

2

Try:

$> sudo mount -o remount,compress=zlib:9,compress=zstd /

After that command 'findmnt' displays 'compress=zstd:9' mount option :)

  • 1
    I am wondering, does this also better zstd compress files then default zstd? And how was that verified? Or is this only a display glitch? – Pro Backup Jan 16 at 13:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.