Jump to content

EROFS: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Tags: Mobile edit Mobile web edit Advanced mobile edit
Psc edits (talk | contribs)
m wiki Oppo and Xiaomi
Line 35: Line 35:
For example, it provides a solution to save storage space by using transparent compression for scenarios which need high-performance read-only
For example, it provides a solution to save storage space by using transparent compression for scenarios which need high-performance read-only
requirements on their devices with limited hardware resources, e.g. smartphones like [[Android (operating system)|Android]] and [[HarmonyOS]].<ref>{{Cite web|title=There Is Finally A User-Space Utility To Make EROFS Linux File-Systems|url=https://www.phoronix.com/scan.php?page=news_item&px=Linux-EROFS-User-Space|publisher=Phoronix|website=Phoronix|author=Michael Larabel|date=2018-11-19|access-date=2018-12-13}}</ref><ref>{{Cite mailing list|title=erofs: introduce erofs file system|url=https://lkml.org/lkml/2018/5/31/306|date=2018-05-31|access-date=2018-12-13|mailing-list=Linux kernel|last=Xiang|first=Gao}}</ref>
requirements on their devices with limited hardware resources, e.g. smartphones like [[Android (operating system)|Android]] and [[HarmonyOS]].<ref>{{Cite web|title=There Is Finally A User-Space Utility To Make EROFS Linux File-Systems|url=https://www.phoronix.com/scan.php?page=news_item&px=Linux-EROFS-User-Space|publisher=Phoronix|website=Phoronix|author=Michael Larabel|date=2018-11-19|access-date=2018-12-13}}</ref><ref>{{Cite mailing list|title=erofs: introduce erofs file system|url=https://lkml.org/lkml/2018/5/31/306|date=2018-05-31|access-date=2018-12-13|mailing-list=Linux kernel|last=Xiang|first=Gao}}</ref>
All of Huawei's new products shipped with [[EMUI]] 9.0.1 or later used EROFS,<ref>{{Cite mailing list|title=erofs: promote erofs from staging|url=https://lkml.org/lkml/2019/7/4/435|date=2019-07-04|access-date=2019-09-03|mailing-list=Linux kernel|last=Xiang|first=Gao}}</ref> and it was promoted as one of the key features of EMUI 9.1.<ref name="emui_9.1">{{Cite web|title=EMUI 9.1, the Intelligent Android OS|url=https://consumer.huawei.com/levant/emui-9-1/|publisher=Huawei Technologies|website=HUAWEI Global|access-date=2022-01-10}}</ref> OPPO and Xiaomi products also use EROFS.<ref>{{Cite web|title=Google's plan to use EROFS on Android|date=20 May 2022 |url=https://blog.esper.io/android-dessert-bites-25-erofs-in-android-13-47987123/|access-date=2022-08-04}}</ref>
All of Huawei's new products shipped with [[EMUI]] 9.0.1 or later used EROFS,<ref>{{Cite mailing list|title=erofs: promote erofs from staging|url=https://lkml.org/lkml/2019/7/4/435|date=2019-07-04|access-date=2019-09-03|mailing-list=Linux kernel|last=Xiang|first=Gao}}</ref> and it was promoted as one of the key features of EMUI 9.1.<ref name="emui_9.1">{{Cite web|title=EMUI 9.1, the Intelligent Android OS|url=https://consumer.huawei.com/levant/emui-9-1/|publisher=Huawei Technologies|website=HUAWEI Global|access-date=2022-01-10}}</ref> [[Oppo]] and [[Xiaomi]] products also use EROFS.<ref>{{Cite web|title=Google's plan to use EROFS on Android|date=20 May 2022 |url=https://blog.esper.io/android-dessert-bites-25-erofs-in-android-13-47987123/|access-date=2022-08-04}}</ref>


Also, it provides a content-addressable chunk-based container image solution together with lazy pulling feature to accelerate container startup speed by using new file-based fscache backend since [[Linux kernel]] v5.19.<ref>{{Cite web|url=https://d7y.io/blog/2022/06/06/evolution-of-nydus/|title=The Evolution of the Nydus Image Acceleration|date=6 June 2022 |access-date=2022-08-04}}</ref>
Also, it provides a content-addressable chunk-based container image solution together with lazy pulling feature to accelerate container startup speed by using new file-based fscache backend since [[Linux kernel]] v5.19.<ref>{{Cite web|url=https://d7y.io/blog/2022/06/06/evolution-of-nydus/|title=The Evolution of the Nydus Image Acceleration|date=6 June 2022 |access-date=2022-08-04}}</ref>

Revision as of 08:08, 25 April 2023

EROFS
Developer(s)Huawei, Alibaba Cloud
Full nameEnhanced Read-Only File System
IntroducedNovember 24, 2019 (2019-11-24) with Linux 5.4
Limits
Max file size
Max no. of filesDepends on volume size
Max filename length255 bytes
Features
Dates recordedFile change time (extended only)[1]
Date resolution1 ns
AttributesPOSIX, xattr
File system
permissions
POSIX, ACL
Transparent
compression
Yes (LZ4; LZMA since 5.16)[1]
Other
Supported
operating systems
Linux

EROFS (Enhanced Read-Only File System) is a lightweight read-only file system initially developed by Huawei for the Linux kernel.

EROFS aims to form a generic read-only filesystem solution for various read-only use cases (embedded devices, containers and more) instead of just focusing on storage space saving without considering any side effects of runtime performance.[1]

For example, it provides a solution to save storage space by using transparent compression for scenarios which need high-performance read-only requirements on their devices with limited hardware resources, e.g. smartphones like Android and HarmonyOS.[2][3] All of Huawei's new products shipped with EMUI 9.0.1 or later used EROFS,[4] and it was promoted as one of the key features of EMUI 9.1.[5] Oppo and Xiaomi products also use EROFS.[6]

Also, it provides a content-addressable chunk-based container image solution together with lazy pulling feature to accelerate container startup speed by using new file-based fscache backend since Linux kernel v5.19.[7]

The file system was formally merged into the mainline kernel with Linux kernel v5.4.[8]

Features

The file system has two different inode on-disk layouts. One is compact, and the other is extended.[1]

  • Little-endian on-disk design[1]
  • 4 KB block size and 32-bit block address, which limits the total possible capacity of an EROFS filesystem to 16 TB.[1]
  • Metadata and data could be mixed by tail-packing inline data technology[1]
  • Support POSIX attributes and permissions, xattr and ACL[1]
  • Fixed-output transparent compression with LZ4 for relative higher compression ratios[1]
  • In-place decompression for higher sequential read [9][10]
  • Big pcluster feature allowing up to 1 MiB big pclusters for better compression ratios since Linux 5.13.[11][12]
  • Direct I/O, Direct Access (DAX) support, chunk-based data de-duplication for uncompressed files since Linux 5.15.[1][13]
  • Multiple device support for multiple layer container images since Linux 5.16.[1]
  • MicroLZMA algorithm support since Linux 5.16.[14]
  • Ztailpacking support since Linux 5.17.[15]
  • File-based Fscache backend support since Linux 5.19 with "on-demand mode".[16][17]

See also

References

  1. ^ a b c d e f g h i j k l Gao Xiang. "erofs.html". www.kernel.org. Retrieved 2022-08-04.
  2. ^ Michael Larabel (2018-11-19). "There Is Finally A User-Space Utility To Make EROFS Linux File-Systems". Phoronix. Phoronix. Retrieved 2018-12-13.
  3. ^ Xiang, Gao (2018-05-31). "erofs: introduce erofs file system". Linux kernel (Mailing list). Retrieved 2018-12-13.
  4. ^ Xiang, Gao (2019-07-04). "erofs: promote erofs from staging". Linux kernel (Mailing list). Retrieved 2019-09-03.
  5. ^ "EMUI 9.1, the Intelligent Android OS". HUAWEI Global. Huawei Technologies. Retrieved 2022-01-10.
  6. ^ "Google's plan to use EROFS on Android". 20 May 2022. Retrieved 2022-08-04.
  7. ^ "The Evolution of the Nydus Image Acceleration". 6 June 2022. Retrieved 2022-08-04.
  8. ^ corbet (2019-11-25). "The 5.4 kernel has been released". LWN.net. Retrieved 2019-12-01.
  9. ^ "staging: erofs: introduce LZ4 decompression inplace". Retrieved 2020-12-03.
  10. ^ "staging: erofs: integrate decompression inplace". Retrieved 2020-12-03.
  11. ^ Michael Larabel. "EROFS Sends In "Big Pcluster" Support For Linux 5.13, Other Improvements". Phoronix. Phoronix. Retrieved 2021-07-11.
  12. ^ "erofs: add big pcluster compression support". Retrieved 2021-07-11.
  13. ^ Michael Larabel. "XFS & EROFS File-Systems Have Big Changes For Linux 5.15". Phoronix. Phoronix. Retrieved 2021-11-02.
  14. ^ Michael Larabel. "EROFS File-System Adding LZMA Compression Support Via New MicroLZMA". Phoronix. Phoronix. Retrieved 2022-01-10.
  15. ^ "EROFS-Utils 1.5 Released With ZTailPacking, FSCK Extraction". Retrieved 2022-08-04.
  16. ^ Jonathan Corbet. "5.19 Merge window, part 1". Retrieved 2022-08-04.
  17. ^ Marius Nestor (31 July 2022). "Linux Kernel 5.19 Officially Released, Linus Torvalds Teases Linux 6.0 as Next Kernel Series". Retrieved 2022-08-04.