2022-06-12 23:10:15

by Gao Xiang

[permalink] [raw]
Subject: [ANNOUNCE] erofs-utils: release 1.5

Hi folks,

A new version erofs-utils 1.5 is available at:
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git tags/v1.5

It mainly includes the following changes:
- (fsck.erofs) support filesystem extraction (Igor Ostapenko);
- support ztailpacking inline feature for compressed files (Yue Hu);
- (dump.erofs) support listing directories;
- more liberofs APIs (including iterate APIs) (me, Kelvin Zhang);
- use mtime to allow more control over the timestamps (David Anderson);
- switch to GPL-2.0+ OR Apache-2.0 dual license for liberofs;
- various bugfixes and cleanups;


A little bit delay this time for more than half a year. This release
mainly includes ztailpacking feature by Yue Hu which can inline the
tail pcluster with its inode metadata thus save space and a tail I/O,
it's highly recommended to be enabled if possible.

Apart from that, fsck.erofs now supports extracting filesystem, thanks
to Igor Ostapenko. There are other changes listed above.


In the end, I'd like to update the roadmap of EROFS since the last
update for the coming year:

https://lore.kernel.org/r/20211009061150.GA7479@hsiangkao-HP-ZHAN-66-Pro-G1

Thankfully many of them are finished during the past year.


1. Common stuffs:

- Switch to folios and enable large folios if possible in the next
cycles;

- Get rid of PG_error flag in Linux 5.20 (pending review);

- Explore byte-addressed rolling hash compression + deduplication since
on-disk format already supports such way but needs runtime tuning;

- LZ4 range dictionary support. We don't have enough manpower on this
yet, but hopefully it can have some progress in the coming year;

- Further code cleanups.


2. Container image use cases:

- Recently, we posted a article to introduce erofs over fscache
feature working with CNCF Dragonfly Nydus image service and give
some performance numbers.

https://d7y.io/blog/2022/06/06/evolution-of-nydus/

Our Alibaba kernel team are still working on several stuffs about
Nydus image service and fscache, including:

- Better flexible cache management, including repacking and blob
GC in order to make better use to the local cache database;

- Convert and run (e)stargz and others on the fly with fscache
feature. In the future, different formats are also able to be
merged in one fs tree:
https://github.com/dragonflyoss/image-service/pull/486

- Runtime decompression support over fscache;

- Blob cache sharing within the same trusted domain;

- Page cache sharing between different files with the same chunk;

- Enhanced convergent encryption to share chunk data in a trusted
domain and runtime verification;

- And other fscache/cachefiles common improvements like fallback
format, multiple daemons/dirs, FSDAX, etc.

- Apart from Nydus, it's planned to introduce a native fscache daemon
integrated in erofs-utils to mount EROFS, (e)stargz images from
network as well as provide fscache interfaces as liberofs APIs.


3. Embedded devices

- Yue Hu is currently working on a fragment-likewise feature, which
can merged tails or the whole files into a special inode in order to
minimize the space;

- Multi-threaded mkfs, fsck.erofs. I know someone is working on this
but I'm not sure the current progress. It's a bit delay but needs
to be resolved anyway.


Thanks,
Gao Xiang