Re: 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]

 



On Wed, 30 Dec 2020 at 14:53, Ben Cotton <bcotton@xxxxxxxxxx> wrote:
>
> 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`

Update `/etc/fstab` how? Please be more explicit.

> 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



-- 
Elliott
_______________________________________________
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