EROFS
智慧型手機的唯讀檔案系統
EROFS(Enhanced Read-Only File System)是高翔等开发者为Linux内核开发的轻量级只读文件系统,旨在为各种只读使用场景(嵌入式设备、容器等)提供通用的只读文件系统解决方案。[2]EROFS着重优化了运行时性能,同时实现了存储空间节省。[2]EROFS也可以用于替代tar或cpio作为归档格式使用,拥有更好的随机读取性能。[2]
开发者 | Gao Xiang, 华为, 阿里云, Google, OPPO, 字节跳动 |
---|---|
全称 | 增强型只读文件系统 Enhanced Read-Only File System |
发布 | 2019年11月24日 | (Linux 5.4)
限制 | |
最大文件尺寸 | |
最大文件数量 | 取决于卷大小 |
最长文件名 | 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.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.0 2.1 2.2 An introduction to EROFS [LWN.net]. lwn.net. [2023-10-21]. (原始内容存档于2023-07-22).
- ^ 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).
- ^ Xiang, Gao. erofs: introduce erofs file system. Linux kernel (邮件列表). 2018-05-31 [2018-12-13]. (原始内容存档于2023-07-18).
- ^ Xiang, Gao. erofs: promote erofs from staging. Linux kernel (邮件列表). 2019-07-04 [2019-09-03]. (原始内容存档于2023-04-29).
- ^ EMUI 9.1, the Intelligent Android OS. HUAWEI Global. Huawei Technologies. [2022-01-10]. (原始内容存档于2023-06-09).
- ^ Google's plan to use EROFS on Android. 20 May 2022 [2022-08-04]. (原始内容存档于2022-05-20).
- ^ The Galaxy S23 might be Samsung's first Android device to use EROFS. 2023-02-07 [2023-07-22]. (原始内容存档于2023-07-22).
- ^ corbet. The 5.4 kernel has been released. LWN.net. 2019-11-25 [2019-12-01].
- ^ Michael Larabel. EROFS File-System Adding LZMA Compression Support Via New MicroLZMA. Phoronix. [2022-01-10]. (原始内容存档于2022-01-10).
- ^ Michael Larabel. EROFS Sends In "Big Pcluster" Support For Linux 5.13, Other Improvements. Phoronix. [2021-07-11]. (原始内容存档于2022-05-25).
- ^ erofs: add big pcluster compression support. [2021-07-11]. (原始内容存档于2023-05-01).
- ^ Michael Larabel. XFS & EROFS File-Systems Have Big Changes For Linux 5.15. Phoronix. [2021-11-02]. (原始内容存档于2021-11-02).
- ^ Michael Larabel. XFS & EROFS File-Systems Have Big Changes For Linux 5.15. Phoronix. [2021-11-02]. (原始内容存档于2021-11-02).
- ^ Jonathan Corbet. 5.19 Merge window, part 1. [2022-08-04]. (原始内容存档于2023-04-25).
- ^ 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).