Debian Overlay通过OverlayFS联合文件系统实现文件系统隔离,核心原理基于分层叠加+写时复制机制,具体如下:
-
分层结构设计
- Lowerdir(只读层):存放基础文件系统(如宿主机镜像层),内容不可修改。
- Upperdir(可写层):用于存储用户修改的文件,所有写操作直接作用于该层。
- Merged(合并层):最终呈现给用户的统一视图,由Lowerdir和Upperdir合并而成,隐藏底层细节。
- Workdir(工作目录):临时存储文件系统操作中间数据,确保操作原子性。
-
文件操作隔离规则
- 读取文件:优先从Upperdir查找,若不存在则回溯Lowerdir。
- 修改文件:若文件来自Lowerdir,先复制到Upperdir(写时复制),再在Upperdir中修改,实现“修改不影响原始层”。
- 删除文件:在Upperdir创建“whiteout”文件标记删除,Lowerdir原始文件保持不变。
-
挂载与隔离实现
- 通过
mount -t overlay
命令指定Lowerdir、Upperdir、Workdir和Merged路径,将多层目录挂载为统一视图。
- 每个容器/环境使用独立的OverlayFS实例,通过不同的挂载点实现文件系统隔离。
关键优势:
- 轻量级隔离:仅复制修改的文件,节省存储空间。
- 动态更新:支持运行时修改文件,无需重建整个文件系统。
- 容器友好:是Docker等容器技术的底层存储驱动,确保容器间文件系统独立。
参考来源: