EROFS

智慧型手機的唯讀檔案系統

EROFSEnhanced Read-Only File System)是高翔等開發者為Linux內核開發的輕量級只讀文件系統,旨在為各種只讀使用場景(嵌入式設備、容器等)提供通用的只讀文件系統解決方案。[2]EROFS著重優化了運行時性能,同時實現了存儲空間節省。[2]EROFS也可以用於替代tar或cpio作為歸檔格式使用,擁有更好的隨機讀取性能。[2]

EROFS
開發者Gao Xiang, 華為, 阿里雲, Google, OPPO, 字節跳動
全稱增強型只讀文件系統 Enhanced Read-Only File System
發布2019年11月24日 (2019-11-24) (Linux 5.4)
限制
最大文件尺寸
  • 4 GiB (緊湊模式)
  • 16 EiB (擴展模式, 也受到卷大小限制)[1]
最大文件數量取決於卷大小
最長文件名255 字節
最大卷容量16 TiB
功能
日期記錄文件更改時間 (僅擴展模式)[1]
日期解析度1 奈秒
屬性POSIX, xattr
文件系統權限POSIX, ACL
透明壓縮Yes (LZ4; LZMA 自Linux 5.16)[1]
作業系統支持Linux

EROFS針對Android、HarmonyOS智慧型手機或嵌入式設備等硬體資源有限的設備上的高性能只讀需求,提供了透明壓縮節省存儲空間的解決方案。[3][4] 華為所有搭載EMUI 9.0.1或更高版本的新產品均使用EROFS,[5] EMUI 9.1還將EROFS作為關鍵功能推廣。[6] Oppo小米和部分三星產品也使用EROFS。[7][8]

EROFS在Linux 5.4中正式合併到主線。[9]

特性

編輯

EROFS文件系統有兩種不同的inode磁碟布局。一種是緊湊模式,另一種是擴展模式。[1]

  • 小端設計[1]
  • 32位塊地址空間,默認4 KiB塊大小,在此配置下的最大文件系統大小為16 TiB[1]
  • 可以通過尾封裝內聯技術混合元數據和數據[1]
  • 支持POSIX屬性和權限、xattr拓展屬性和POSIX訪問控制表[1]
  • 支持使用LZ4或MicroLZMA(自Linux 5.16起)進行固定輸出透明壓縮,以實現相對較高的壓縮比[10] [1]
  • 原位解壓,實現了更高的順序讀取速率
  • 自Linux 5.13起,支持更大的簇大小,以提供更好的壓縮率[11][12]
  • 自Linux 5.15起,支持直接I/O、直接訪問(DAX)[1][13]
  • 自Linux 5.15起,支持塊層面的重複數據刪除[1][14]
  • 自Linux 5.16起,多設備支持多層容器映像[1]
  • 自Linux 5.17起,支持尾部打包(Ztailpacking),節省更多的磁碟空間和尾部I/O
  • 自 Linux 5.19 起,基於文件的Fscache後端支持「按需模式」[15][16]
  • 自Linux 6.1起,支持滾動哈希重複數據刪除和碎片化[1]

參見

編輯

參考文獻

編輯
  1. ^ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 Gao Xiang. erofs.html. www.kernel.org. [2022-08-04]. (原始內容存檔於2023-06-05). 
  2. ^ 2.0 2.1 2.2 An introduction to EROFS [LWN.net]. lwn.net. [2023-10-21]. (原始內容存檔於2023-07-22). 
  3. ^ Michael Larabel. There Is Finally A User-Space Utility To Make EROFS Linux File-Systems. Phoronix. 2018-11-19 [2018-12-13]. (原始內容存檔於2022-05-22). 
  4. ^ Xiang, Gao. erofs: introduce erofs file system. Linux kernel (郵件列表). 2018-05-31 [2018-12-13]. (原始內容存檔於2023-07-18). 
  5. ^ Xiang, Gao. erofs: promote erofs from staging. Linux kernel (郵件列表). 2019-07-04 [2019-09-03]. (原始內容存檔於2023-04-29). 
  6. ^ EMUI 9.1, the Intelligent Android OS. HUAWEI Global. Huawei Technologies. [2022-01-10]. (原始內容存檔於2023-06-09). 
  7. ^ Google's plan to use EROFS on Android. 20 May 2022 [2022-08-04]. (原始內容存檔於2022-05-20). 
  8. ^ The Galaxy S23 might be Samsung's first Android device to use EROFS. 2023-02-07 [2023-07-22]. (原始內容存檔於2023-07-22). 
  9. ^ corbet. The 5.4 kernel has been released. LWN.net. 2019-11-25 [2019-12-01]. 
  10. ^ Michael Larabel. EROFS File-System Adding LZMA Compression Support Via New MicroLZMA. Phoronix. [2022-01-10]. (原始內容存檔於2022-01-10). 
  11. ^ Michael Larabel. EROFS Sends In "Big Pcluster" Support For Linux 5.13, Other Improvements. Phoronix. [2021-07-11]. (原始內容存檔於2022-05-25). 
  12. ^ erofs: add big pcluster compression support. [2021-07-11]. (原始內容存檔於2023-05-01). 
  13. ^ Michael Larabel. XFS & EROFS File-Systems Have Big Changes For Linux 5.15. Phoronix. [2021-11-02]. (原始內容存檔於2021-11-02). 
  14. ^ Michael Larabel. XFS & EROFS File-Systems Have Big Changes For Linux 5.15. Phoronix. [2021-11-02]. (原始內容存檔於2021-11-02). 
  15. ^ Jonathan Corbet. 5.19 Merge window, part 1. [2022-08-04]. (原始內容存檔於2023-04-25). 
  16. ^ Marius Nestor. Linux Kernel 5.19 Officially Released, Linus Torvalds Teases Linux 6.0 as Next Kernel Series. 31 July 2022 [2022-08-04]. (原始內容存檔於2023-05-29).