-
Notifications
You must be signed in to change notification settings - Fork 59
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
Switch live rootfs from squashfs to EROFS #1852
Comments
@jlebon asked me to drop a link to @Conan-Kudo 's work on Fedora Kiwi-built lives here, so see https://pagure.io/fedora-kiwi-descriptions/pull-request/105 . we do also already have an erofs image in the main compose, one of the FEX images for Asahi - https://pagure.io/fedora-kiwi-descriptions/blob/rawhide/f/teams/asahi.xml#_6 . |
Note that erofs is nowhere near as capable or performant as squashfs for compression right now, and erofs image builds take a lot longer than squashfs to reach closer to equivalent storage sizes (almost 3x the time). |
By the way, could you test I wonder the image sizes and build speed out of this combination. |
I've just added a commit to test it in my pull request. Let's see how it goes. |
I know that |
Unfortunately it looks like this one is taking way too long. |
It seems it finishes? |
ok, I didn't know how to parse the raw result. btw, what's the current squashfs build time, do you have some log so I could check too? |
From a recent job with the current settings: https://artifacts.dev.testing-farm.io/18600fee-4f88-4c4e-940b-97c98960f752/ It took 15 minutes based on this log. To test it locally, you can do so on any Fedora 41+ system:
If you want to test with squashfs, just switch to the |
Because I'm afraid -C1048576 will still time out, so try
Ok.
Let me try, thanks. |
btw, can it work in a container (e.g. docker) or VM? |
VM yes, Docker-style container environment no. |
Another question is that I wonder how many CPUs was this job used? I couldn't find any hint in the log though.
I've tried this configuration with a virtual cloud server of Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz * 32 cores, and the result is
I'm trying It seems the main bottleneck is although the main process of I think the build performance won't be improved with the latest mkfs soon, I have to work out a full multi-threaded |
Well, it took over an hour and a half on my Framework 16, which has an AMD Ryzen 9 7940HS (16 cores). |
I've fixed a bug which could cause slow image building if there is much incompressible data, and the time reduced to 20 mins on my test environment (Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz * 32 cores):
The result of image size is
The mkfs version can be checked out as need If you're interested, you could try out too. There is still some trick to reduce time even without working on multi-threaded |
@Conan-Kudo how do I check if the produced data is correct? |
Yes. |
But I could find a file(
and the timestamp of
Can this file be changed? |
The |
To state simply, it's nothing to worry about. 😄 |
...
Hi @Conan-Kudo! With the latest experimental branch( I could produce the following results, does it already meets the kiwi build requirements?
The result of image size is
If it can be tested on your side (if possible, many thanks! note that |
I've verified the improvements with the suggested options using HEAD of the experimental branch. Could you please make a release with that so that we can get it into Fedora and RHEL? |
Ok, as long as it's useful, I will try to do more tests and release this week. |
That would be amazing. Making it even smaller would be great. |
I released erofs-utils 1.8.4 yesterday, it seems it has been shifted to fedora 40, 41. Also I introduced another option |
I'm backporting it to the Fedora package too. |
@hsiangkao Thanks! Those improvements look great! Ideally this change happens across the board with the other Fedora live ISOs though I'm not sure if this constitutes a System-Wide Change (for which the deadline has already passed). @Conan-Kudo were you thinking of submitting something for that? If so, we can be co-owners to own the FCOS part of it. Otherwise, we might end up submitting a Change just scoped to FCOS. |
I'm planning on making a Self-Contained Change for this. Now that I'm satisfied, I can start writing up one. |
@Conan-Kudo Are you interested in some Co-Owners? |
Sure. |
Here's what I've got so far: https://fedoraproject.org/wiki/Changes/EROFSforLiveMedia |
Someone interested in being part of the FCOS side of this can add themselves as co-owners and add their own relevant bits to the Change document. |
FYI @supakeen to add osbuild relevant stuff to the change |
Another thing is to mention that currently |
Thank you, relevant people are: @dustymabe @jlebon @ravanelli which are all in this thread. If CoreOS wants to switch to EroFS. As far as I'm aware we do have all the bits and bobs available in Perhaps @bcl is interested too since they're working on a similar change for RHEL 10: osbuild/images#1117 |
osbuild should be all ready to go with the release of the next release (v138), images still needs osbuild/images@870e45f from osbuild/images#1117 but that could be split out from the RHEL10 changes (I don't want to switch RHEL10 until the boot.iso has been built with it for a bit). |
FYI: During the FCOS community meeting, @jlebon brought up this issue for our awareness, and we discussed the proposal and the benefits of this change. You can know more about it in the meeting logs. |
I can hold off on adjusting Calamares to use the erofs extract method until after you've implemented things to speed it up. |
Was playing around with this using our FCOS live rootfs content. Some results:
So with the new options, the sizes are definitely comparable. It's still about 5 times slower than Some additional notes:
|
Could you share a way with me to reproduce that too? I will look into that.
Will check, thanks for reporting. |
You can download the live rootfs from https://fedoraproject.org/coreos/download?stream=stable#download_section, unpack it using |
sigh.. I've fixed an issue which causes unexpected larger image sizes, and commit it to -expermental for testing.
mksquashfs command line: Anyway, just some update. |
Currently, we ship a
rootfs.img
CPIO (both as a separate artifact and as part of the live ISO) which contains the rootfs as a squashfs image.Let's switch it over to use EROFS instead. Since EROFS is already in use by composefs, this reduces the number of read-only filesystem image formats we have to care about.
This work would happen in osbuild since that's where our live ISO is now being built.
The text was updated successfully, but these errors were encountered: