CentOS Overlay技术原理是什么
导读:CentOS Overlay技术原理 一 概念与定位 在CentOS环境中,Overlay通常指OverlayFS(联合文件系统),用于把多个目录/文件系统层叠为一个统一的merged视图。它依赖Linux VFS在内核态完成层的合并与分...
CentOS Overlay技术原理
一 概念与定位
- 在CentOS环境中,Overlay通常指OverlayFS(联合文件系统),用于把多个目录/文件系统层叠为一个统一的merged视图。它依赖Linux VFS在内核态完成层的合并与分发,常见于容器镜像分层与运行时可写层叠加。主流内核自3.18起已合入并稳定支持,容器生态(如 Docker/Containerd)广泛采用。OverlayFS具备写时复制(Copy-on-Write, CoW)、层共享、视图统一等特性,既节省存储又便于快速分发与回滚。
二 核心组成与合并规则
- 组成目录
- lowerdir:只读层(可多层,按顺序从低到高叠加,如 lower1:lower2:lower3)。
- upperdir:可写层,所有修改落在此处。
- workdir:工作目录,必须与 upperdir 位于同一文件系统,且为空,供内核内部元数据操作使用。
- merged:合并视图,呈现给用户的最终目录。
- 合并与可见性规则
- 读取:先在upperdir查找,未命中再按lowerdir自左向右查找。
- 同名文件:以upperdir为准,隐藏 lower 层同名文件。
- 同名目录:内容合并呈现。
- 删除:对来自 lower 的文件/目录,在 upper 中创建whiteout(特殊字符设备,主次设备号均为0)以“隐藏”之;删除目录时设置opaque属性以阻止与 lower 继续合并。
- 重命名:跨层或跨分支的 rename 默认受限,需内核启用CONFIG_OVERLAY_FS_REDIRECT_DIR才支持重定向。
三 读写与删除的工作机制
- 写时复制 CoW
- 修改来自 lower 的文件时,OverlayFS会将该文件完整拷贝到 upper 后再修改(对用户透明);若底层文件系统支持reflink(如 XFS),可显著降低拷贝开销。
- 删除与 Whiteout
- 删除 lower 层文件:在 upper 生成whiteout,merged 视图中表现为“已删除”,但 lower 层数据不被破坏。
- 删除 lower 层目录:在 upper 设置opaque目录属性,使该目录不再与 lower 同名目录合并。
- 性能要点
- 读多写少、共享层多的场景收益显著;对大文件改写或海量小文件改写会触发拷贝,可能成为瓶颈(reflink 可缓解)。
四 容器中的典型挂载形态
- 容器镜像分层:镜像各只读层作为lowerdir(可多层),容器运行时可写层为upperdir,merged作为容器的 rootfs。
- 实际挂载示例(containerd 场景)
- mount 信息中可见:lowerdir 指向多个只读快照层,upperdir 指向可写快照层,workdir 为其工作目录;merged 作为容器根文件系统挂载点。
- 示例(简化展示):
- lowerdir=/snapshots/20/fs:/snapshots/19/fs:…
- upperdir=/snapshots/22/fs
- workdir=/snapshots/22/work
- merged=/run/containerd/…/rootfs
五 快速上手与最小示例
- 准备目录
- mkdir -p /mnt/overlay/{ lower,upper,work,merged}
- 挂载命令
- mount -t overlay overlay
-o lowerdir=/mnt/overlay/lower,
upperdir=/mnt/overlay/upper,
workdir=/mnt/overlay/work
/mnt/overlay/merged
- mount -t overlay overlay
- 验证与持久化
- df -h /mnt/overlay/merged 查看类型为 overlay
- /etc/fstab 追加:
- overlay /mnt/overlay/merged overlay defaults,lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work 0 0
- 行为验证
- 在 merged 中修改来自 lower 的文件,会在 upper 生成副本;删除 lower 文件会在 upper 生成 whiteout。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Overlay技术原理是什么
本文地址: https://pptw.com/jishu/761352.html
