温馨提示×

linux overlay是什么技术

小樊
45
2026-09-24 20:02:30
栏目: 智能运维

Linux Overlay(OverlayFS) 是一种 联合挂载(union mount)文件系统技术,用于把多个目录“叠加”在一起,形成一个统一的可读写视图。它常用于容器、Live CD、系统升级等场景。


一、核心思想

Overlay 把以下目录合并成一个“看起来像单个目录”的视图:

  • lower(下层,可多个):只读层(如基础镜像)
  • upper(上层):可读写层(如容器运行时修改)
  • work:内部临时目录(Overlay 自己用)
  • merged:最终挂载后看到的统一目录
lower (ro)  +  upper (rw)  =>  merged (看到的结果)

二、基本工作原理

  1. 读文件

    • 优先从 upper 读
    • 没有再去 lower 找
  2. 修改文件

    • 在 upper 中创建/修改(lower 不变)
  3. 删除文件

    • 在 upper 中创建“白障(whiteout)”标记,隐藏 lower 的文件
  4. lower 永远只读,安全


三、典型使用场景

1. Docker / Kubernetes

  • 镜像 = 多层 lower
  • 容器 = upper + lower
  • 容器删了,upper 没了,镜像不变

2. 系统升级(A/B 分区)

  • 原系统为 lower
  • 升级内容为 upper
  • 不破坏原始系统

3. Live CD / 只读系统

  • 光盘为 lower
  • 内存为 upper

四、简单示例

mkdir lower upper work merged
echo "base" > lower/file.txt

mount -t overlay overlay \
  -o lowerdir=lower,upperdir=upper,workdir=work \
  merged

cat merged/file.txt
# base

echo "changed" > merged/file.txt
cat upper/file.txt
# changed

五、与类似技术对比

技术 特点
OverlayFS 轻量、Linux 内核原生
AUFS 老牌,但不在主线内核
Btrfs 文件系统级快照
tmpfs 纯内存

六、一句话总结

Linux Overlay 是一种“多层目录叠加、上层可写、下层只读”的文件系统技术,是容器实现轻量隔离的核心基础。

如果你想了解 Docker 如何用 overlay、性能问题 或 whiteout 机制,可以继续问。

0 踩