首页主机资讯CentOS Overlay技术原理是什么

CentOS Overlay技术原理是什么

时间2025-12-02 15:49:03发布访客分类主机资讯浏览583
导读: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(可多层),容器运行时可写层为upperdirmerged作为容器的 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
  • 验证与持久化
    • 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
CentOS Overlay能提升系统性能吗 centos overlay配置如何日志查看

游客 回复需填写必要信息