温馨提示×

linux overlay与aufs区别

小樊
46
2026-09-27 17:07:21
栏目: 智能运维

在 Linux 中,OverlayFS(overlay) 和 AUFS(Another UnionFS) 都是联合文件系统(Union File System),常用于容器(如 Docker)中实现镜像分层和写时复制(Copy-on-Write)。二者目标类似,但在实现、性能和内核支持上有明显区别。

下面从多个维度对比说明:


一、基本概念

1. AUFS(Another UnionFS)

  • 最早用于 Docker 的存储驱动
  • 是 UnionFS 的一个实现分支
  • 通过多层目录“叠加”成一个统一视图
  • 支持多层只读层 + 一层可写层

2. OverlayFS(overlay)

  • Linux 内核原生支持的联合文件系统
  • 从 Linux 3.18 起合入主线内核
  • Docker 中称为 overlay 或 overlay2

二、内核支持

项目 AUFS OverlayFS
是否内核原生 ❌ 否(需打补丁) ✅ 是
内核版本 需第三方补丁 ≥ 3.18(推荐 ≥ 4.0)
发行版支持 较少(Ubuntu 曾支持) 广泛(RHEL/CentOS/Ubuntu)

✅ OverlayFS 是 Linux 官方推荐方案


三、性能对比

维度 AUFS OverlayFS
挂载速度 较慢 快
文件查找 多层扫描,慢 两层结构,快
写时复制 支持 支持(更优)
大规模镜像 性能下降明显 更好

OverlayFS(尤其是 overlay2)在 I/O 性能和可扩展性 上明显优于 AUFS。


四、层级结构差异

AUFS

  • 支持 任意多层
  • 层与层之间是“平铺”关系
  • 查找文件需逐层搜索

OverlayFS

  • 基本结构:
    • lowerdir(只读层,可多个)
    • upperdir(可写层)
    • workdir(内部使用)
  • overlay2 支持多层 lowerdir
  • 文件查找更高效

五、Docker 中的使用情况

Docker 存储驱动 状态
aufs 已弃用
overlay 旧版
overlay2 ✅ 当前默认 & 推荐

Docker 官方已明确 不再推荐 AUFS


六、稳定性与维护

  • AUFS:
    • 社区活跃度低
    • 维护困难
    • 新内核基本不支持
  • OverlayFS:
    • 内核主线维护
    • 稳定、持续演进

七、总结对比表

对比项 AUFS OverlayFS
内核支持 非主线 主线
性能 一般 优秀
层数支持 多 多(overlay2)
Docker 支持 已弃用 默认
推荐程度 ❌ ✅

结论(一句话)

AUFS 是历史方案,OverlayFS(尤其是 overlay2)是当前 Linux 容器存储的事实标准。

如果你愿意,我也可以:

  • 讲 overlay2 的工作原理图
  • 对比 overlay vs devicemapper / btrfs
  • 帮你查 当前系统用的是什么存储驱动

0 踩