EROFS 是 Enhanced Read-Only File System 的首字母缩写,是由华为开发的增强型只读文件系统。在 2018 年年中,EROFS 就首次被引入到 Linux 内核 4.14 版本的暂存区,随后经过一年的持续开发,EROFS 文件系统驱动程序在 Linux 内核 5.4 版本中被合并进了主线。
EROFS 与其他只读文件系统不同,该系统旨在构建一个新的文件管理系统,从而提高磁盘性能和速度,同时节省磁盘空间以减少不必要的占用。据华为介绍,EROFS 文件系统的随机读取速度平均可以提升 20%,最高甚至可达 200%,与传统的 EXT4 相比大幅提升了系统效率。
作为一项最初为 Android 设备所准备的只读文件系统,如今该技术则是扩大了其适用范围。近日工程师(看邮箱是来自于阿里、字节)为 EROFS 提供了代码更新,此次更新带来了基于 FSCache 的共享域支持,目的是为了能够在 EROFS 文件系统镜像之间共享数据 blob(同一个 blob 在多个 EROFS 文件系统中共享)。
对于 EROFS 和 Linux 6.1 来说,这个基于 FSCache 的共享域支持主要是针对容器使用而添加的。有了这种基于 FSCache 的共享域支持,现在可以对同一域中的数据块进行存储重复数据删除,并且还将在以后使用它进行页面缓存共享(在多个 EROFS inode 间共享)。
此外,此次代码更新还支持在一个特殊的打包 inode 中记录片段,以及支持部分引用的 pclusters,用于全局压缩的重复数据删除。开发者在邮件列表中表示,希望 Linus 可以在 6.1-rc1 中合并这个 PR。