在 Linux 中,OverlayFS(overlay) 和 AUFS(Another UnionFS) 都是联合文件系统(Union File System),常用于容器(如 Docker)中实现镜像分层和写时复制(Copy-on-Write)。二者目标类似,但在实现、性能和内核支持上有明显区别。
下面从多个维度对比说明:
overlay 或 overlay2| 项目 | AUFS | OverlayFS |
|---|---|---|
| 是否内核原生 | ❌ 否(需打补丁) | ✅ 是 |
| 内核版本 | 需第三方补丁 | ≥ 3.18(推荐 ≥ 4.0) |
| 发行版支持 | 较少(Ubuntu 曾支持) | 广泛(RHEL/CentOS/Ubuntu) |
✅ OverlayFS 是 Linux 官方推荐方案
| 维度 | AUFS | OverlayFS |
|---|---|---|
| 挂载速度 | 较慢 | 快 |
| 文件查找 | 多层扫描,慢 | 两层结构,快 |
| 写时复制 | 支持 | 支持(更优) |
| 大规模镜像 | 性能下降明显 | 更好 |
OverlayFS(尤其是 overlay2)在 I/O 性能和可扩展性 上明显优于 AUFS。
lowerdir(只读层,可多个)upperdir(可写层)workdir(内部使用)overlay2 支持多层 lowerdir| Docker 存储驱动 | 状态 |
|---|---|
| aufs | 已弃用 |
| overlay | 旧版 |
| overlay2 | ✅ 当前默认 & 推荐 |
Docker 官方已明确 不再推荐 AUFS
| 对比项 | AUFS | OverlayFS |
|---|---|---|
| 内核支持 | 非主线 | 主线 |
| 性能 | 一般 | 优秀 |
| 层数支持 | 多 | 多(overlay2) |
| Docker 支持 | 已弃用 | 默认 |
| 推荐程度 | ❌ | ✅ |
AUFS 是历史方案,OverlayFS(尤其是 overlay2)是当前 Linux 容器存储的事实标准。
如果你愿意,我也可以: