加载中...

OverlayFS 是 Linux 内核内置的一种联合挂载(union mount)文件系统,可以把多个目录层叠加为一个统一的文件系统视图,2014 年并入内核 3.18 版本。
OverlayFS 由三部分组成:一个或多个只读的下层(lowerdir)、一个可写的上层(upperdir)以及合并后的挂载点(merged)。读取文件时自上而下查找;修改下层文件时触发写时复制(copy-up),把文件复制到上层再修改;删除文件则在上层放置“白障”(whiteout)标记遮盖下层。
容器镜像天然是分层结构:基础镜像与每条构建指令各成一层,全部只读;容器启动时再叠加一个可写层。Docker 的 overlay2 存储驱动正是基于 OverlayFS 实现,这使得多个容器可以共享同一份镜像层,只为各自的改动占用空间,镜像分发与容器启动都因此高效。
优点是实现简单、性能好、内核原生支持;局限包括不完全符合 POSIX 语义(如某些 rename 行为)、大文件的首次修改会有整文件复制的开销。

登录 后参与讨论
暂无讨论,来发表第一条评论吧