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

更新时间:
复制 MD 格式

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

特性对比

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

特性

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、DEFLATE和Zstd算法。例如-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