mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-01 02:36:02 +00:00
erofs: update documentation
- Refine highlights for main features; - Add multi-reference pclusters and fragment description. Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com> Reviewed-by: Yue Hu <huyue2@coolpad.com> Reviewed-by: Chao Yu <chao@kernel.org> Link: https://lore.kernel.org/r/20221130095605.4656-1-hsiangkao@linux.alibaba.com
This commit is contained in:
parent
27f2a2dcc6
commit
2109901d49
@ -30,12 +30,18 @@ It is implemented to be a better choice for the following scenarios:
|
||||
especially for those embedded devices with limited memory and high-density
|
||||
hosts with numerous containers.
|
||||
|
||||
Here is the main features of EROFS:
|
||||
Here are the main features of EROFS:
|
||||
|
||||
- Little endian on-disk design;
|
||||
|
||||
- 4KiB block size and 32-bit block addresses, therefore 16TiB address space
|
||||
at most for now;
|
||||
- Block-based distribution and file-based distribution over fscache are
|
||||
supported;
|
||||
|
||||
- Support multiple devices to refer to external blobs, which can be used
|
||||
for container images;
|
||||
|
||||
- 4KiB block size and 32-bit block addresses for each device, therefore
|
||||
16TiB address space at most for now;
|
||||
|
||||
- Two inode layouts for different requirements:
|
||||
|
||||
@ -50,28 +56,29 @@ Here is the main features of EROFS:
|
||||
Metadata reserved 8 bytes 18 bytes
|
||||
===================== ============ ======================================
|
||||
|
||||
- Metadata and data could be mixed as an option;
|
||||
- Support extended attributes as an option;
|
||||
|
||||
- Support extended attributes (xattrs) as an option;
|
||||
|
||||
- Support tailpacking data and xattr inline compared to byte-addressed
|
||||
unaligned metadata or smaller block size alternatives;
|
||||
|
||||
- Support POSIX.1e ACLs by using xattrs;
|
||||
- Support POSIX.1e ACLs by using extended attributes;
|
||||
|
||||
- Support transparent data compression as an option:
|
||||
LZ4 and MicroLZMA algorithms can be used on a per-file basis; In addition,
|
||||
inplace decompression is also supported to avoid bounce compressed buffers
|
||||
and page cache thrashing.
|
||||
|
||||
- Support chunk-based data deduplication and rolling-hash compressed data
|
||||
deduplication;
|
||||
|
||||
- Support tailpacking inline compared to byte-addressed unaligned metadata
|
||||
or smaller block size alternatives;
|
||||
|
||||
- Support merging tail-end data into a special inode as fragments.
|
||||
|
||||
- Support direct I/O on uncompressed files to avoid double caching for loop
|
||||
devices;
|
||||
|
||||
- Support FSDAX on uncompressed images for secure containers and ramdisks in
|
||||
order to get rid of unnecessary page cache.
|
||||
|
||||
- Support multiple devices for multi blob container images;
|
||||
|
||||
- Support file-based on-demand loading with the Fscache infrastructure.
|
||||
|
||||
The following git tree provides the file system user-space tools under
|
||||
@ -259,7 +266,7 @@ By the way, chunk-based files are all uncompressed for now.
|
||||
|
||||
Data compression
|
||||
----------------
|
||||
EROFS implements LZ4 fixed-sized output compression which generates fixed-sized
|
||||
EROFS implements fixed-sized output compression which generates fixed-sized
|
||||
compressed data blocks from variable-sized input in contrast to other existing
|
||||
fixed-sized input solutions. Relatively higher compression ratios can be gotten
|
||||
by using fixed-sized output compression since nowadays popular data compression
|
||||
@ -314,3 +321,6 @@ to understand its delta0 is constantly 1, as illustrated below::
|
||||
|
||||
If another HEAD follows a HEAD lcluster, there is no room to record CBLKCNT,
|
||||
but it's easy to know the size of such pcluster is 1 lcluster as well.
|
||||
|
||||
Since Linux v6.1, each pcluster can be used for multiple variable-sized extents,
|
||||
therefore it can be used for compressed data deduplication.
|
||||
|
Loading…
Reference in New Issue
Block a user