增强型只读文件系统(EROFS)使用说明

增强型只读文件系统(EROFS)是为高性能只读场景量身打造的Linux内核文件系统。Alibaba Cloud Linux操作系统将EROFS应用于云计算场景,从而更好地满足容器镜像、操作系统镜像、软件包及AI模型数据集的分发和存储需求。本文将介绍EROFS的常见特性及使用方法。

特性对比

以下对比了EROFS、EXT4SquashFS文件系统的常见特性:

特性

EROFS

EXT4

SquashFS

最小块大小

512字节

1 KiB

不对齐

Inode大小

32字节或64字节

128字节或256字节

不固定,取决文件类型

UID/GID总数限制

无限制

无限制

最多65536

纳秒时间戳

UUID和卷标

支持

支持

不支持

数据压缩

支持

不支持

支持

数据去重

支持

不支持

不支持

通过文件挂载

支持

不支持

不支持

外部数据引用

支持

不支持

不支持

POSIX.1e ACL支持

支持

支持

不支持

Direct I/O支持

支持

支持

不支持

FSDAX支持

支持

支持

不支持

FIEMAP支持

支持

支持

不支持

SEEK_{DATA,HOLE}支持

支持

支持

不支持

创建使用文件系统镜像

  1. 确认是否安装erofs-utils包。

    mkfs.erofs -V
    • 如果输出对应的版本号,则说明已经安装。

    • 否则,执行以下命令安装erofs-utils包。

      sudo yum install -y erofs-utils
  2. 执行mkfs.erofs命令生成文件系统镜像。

    foo目录生成foo.erofs为例。

     mkfs.erofs foo.erofs foo

    输出结果如下所示。

    mkfs.erofs 1.8.4
    Build completed.
    ------
    Filesystem UUID: c11813b0-b657-439c-8484-2196703035b7
    Filesystem total blocks: 1 (of 4096-byte blocks)
    Filesystem total inodes: 1
    Filesystem total metadata blocks: 1
    Filesystem total deduplicated bytes (of source files): 0

    mkfs.erofs常用参数说明:

    参数

    说明

    -zX[,level]

    指定压缩算法(X,全小写)及可选的压缩级别(level)。支持LZ4、LZ4HC、LZMA、DEFLATEZstd算法。例如-zlz4hc,12表示使用LZ4HC算法,并将压缩级别设置为12。若未指定压缩算法,则生成非压缩镜像。

    -C <size>

    设置物理簇大小(单位:字节)。例如,-C 65536指定64 KiB簇大小。适当增加物理簇大小以减小镜像体积并提升顺序读性能,但可能影响随机读性能。

    -T <time>

    为所有文件设置固定UNIX时间戳。

    -U <UUID>

    指定文件系统UUID。

    -L <label>

    指定文件系统卷标。

  3. 执行以下命令,挂载生成的文件系统镜像。

    foo.erofs挂载到/mnt/erofs目录为例。

    sudo mkdir -p /mnt/erofs
    sudo mount -t erofs -o loop foo.erofs /mnt/erofs

    若您不再使用该文件系统,可执行以下命令,卸载该文件系统。

    /mnt/erofs目录为例。

    sudo umount /mnt/erofs