Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFE] Compress USR-A/USR-B partitions #1187

Closed
krnowak opened this issue Sep 22, 2023 · 2 comments
Closed

[RFE] Compress USR-A/USR-B partitions #1187

krnowak opened this issue Sep 22, 2023 · 2 comments
Labels
kind/feature A feature request

Comments

@krnowak
Copy link
Member

krnowak commented Sep 22, 2023

Current situation

Currently we have 1GB allocated for /usr, 10% of which is still free. Package updates and new features slowly but surely are eating up the free space, so we need to think about options for not running out of the free space eventually.

Impact

More breathing space for future package updates and features.

Ideal future situation

Moar free space.

Implementation options

  • switch to btrfs with compression enabled
  • use squashfs
    • citing myself from matrix: I was thinking about /usr being ext2 that contains a squashfs image that would be mounted on top of /usr.
  • use erofs
    • may have faster reads than squashfs
  • built-in sysext image for /usr?
  • some hybrid setup, ext4 + some parts in an embedded sysext (btrfs/squashfs)

Additional information

@pothos
Copy link
Member

pothos commented Sep 22, 2023

#1185 will help to have an easier migration path

@pothos
Copy link
Member

pothos commented Sep 25, 2023

I've looked into the minimal required version and 2983.2.0 was the first Stable release with btrfs support for /usr. Unfortunately update-engine has does not use libmount but direct syscalls with a fixed list of supported filesystems. We could switch to btrfs if we either document the minimal required version or better, add the "intermediate update" feature to Nebraska (mentioned above).

For squashfs we would also need to make update-engine support it and make enough changes to our build system to allow creating the /usr contents in a temporary folder first and then run mksquashfs and copy the resulting image file over to the partition. And we should wait for the update-engine change to be part of all channels before we can switch (even with the "intermediate update" feature)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature A feature request
Projects
None yet
Development

No branches or pull requests

2 participants