Fedora 34 Change: Enable btrfs transparent zstd compression by default (System-Wide Change proposal)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://fedoraproject.org/wiki/Changes/BtrfsTransparentCompression

== Summary ==

On variants using btrfs as the default filesystem, enable transparent
compression using zstd. Compression saves space and can significantly
increase the lifespan of flash-based media by reducing write
amplification. It can also increase read and write performance.

== Owners ==

* Name: [[User:salimma|Michel Salim]], [[User:dcavalca|Davide
Cavalca]], [[User:josef|Josef Bacik]]
* Email: michel@xxxxxxxxxxxxxxx, dcavalca@xxxxxx, josef@xxxxxxxxxxxxxx


== Detailed description ==

Transparent compression is a btrfs feature that allows a btrfs
filesystem to apply compression on a per-file basis. Of the three
supported algorithms, zstd is the one with the best compression speed
and ratio. Enabling compression saves space, but it also reduces write
amplification, which is important for SSDs. Depending on the workload
and the hardware, compression can also result in an increase in read
and write performance.

See https://pagure.io/fedora-btrfs/project/issue/5 for details. This
was originally scoped as an optimization for
https://fedoraproject.org/wiki/Changes/BtrfsByDefault during Fedora
33.


== Benefit to Fedora ==

Better disk space usage, reduction of write amplification, which in
turn helps increase lifespan and performance on SSDs and other
flash-based media. It can also increase read and write performance.

== Scope ==

* Proposal owners:
** Update anaconda to perform the installation using <code>mount -o
compress=zstd:1</code>
** Set the proper option in fstab (alternatively: set the XATTR)
** Update disk image build tools to enable compression:
*** lorax
*** appliance-tools
*** osbuild
*** imagefactory
** [optional] Add support for
[https://github.com/kdave/btrfs-progs/issues/328 setting compression
level when defragmenting]
** [optional] Add support for
[https://github.com/kdave/btrfs-progs/issues/329 setting compression
level using `btrfs property`]
* Other developers:
** anaconda: review PRs as needed
* Release engineering: https://pagure.io/releng/issue/9920
* Policies and guidelines: N/A
* Trademark approval: N/A

== Upgrade/compatibility impact ==

This Change only applies to newly installed systems. Existing systems
on upgrade will be unaffected, but can be converted manually with
<code>btrfs filesystem defrag -czstd -r</code>, updating `/etc/fstab`
and remounting.

== How to test ==

Existing systems can be converted to use compression manually with
<code>btrfs filesystem defrag -czstd -r</code>, updating `/etc/fstab`
and remounting.

== User experience ==

Compression will result in file sizes (e.g. as reported by du) not
matching the actual space occupied on disk. The
[https://src.fedoraproject.org/rpms/compsize compsize] utility can be
used to examine the compression type, effective compression ration and
actual size.

== Dependencies ==

Anaconda will need to be updated to perform the installation using
<code>mount -o compress=zstd:1</code>

== Contingency plan ==

* Contingency mechanism: will not include PR patches if not merged
upstream and will not enable
* Contingency deadline: Final freeze
* Blocks release? No
* Blocks product? No

== Documentation ==

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

== Release Notes ==

Transparent compression of the filesystem using zstd is now enabled by
default. Use the compsize utility to find out the actual size on disk
of a given file.


-- 
Ben Cotton
He / Him / His
Senior Program Manager, Fedora & CentOS Stream
Red Hat
TZ=America/Indiana/Indianapolis
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux