当前位置: 首页 > news >正文

OverlayFS

OverlayFS(叠加文件系统),就是我们刚才提到的AUFS现代正统继承者。在现在的 Linux 和 Docker(overlay2驱动)生态里,AUFS 因为代码太复杂、性能不够极致,已经基本被淘汰了,取而代之的绝对霸主就是 OverlayFS。

如果说 AUFS 是那个能叠好几十层、玩法复杂的 PS 图层魔术师,那么 OverlayFS 就是一个极其干练、只留核心、速度极快的现代视觉大师


1. 为什么有了 AUFS,还要搞 OverlayFS?

AUFS 虽然好用,但它有一个致命弱点:太重、太复杂了。它的核心代码量巨大,导致 Linux 官方(内核社区)一直嫌弃它,拒绝把它合进 Linux 内核的主线里。这意味着早年用 AUFS,你得自己单独给内核打补丁。

而 OverlayFS 痛定思痛,把架构极度简化,在 2014 年被正式合并进了 Linux 内核主线。它最大的特点就是:快,省,结构简单。


2. 核心架构:化繁为简的“四合一”

AUFS 可以叠任意多的层(Layer 1, Layer 2, Layer 3…),而 OverlayFS 觉得没必要搞那么花哨,它把世界简化成了四个核心目录

  1. Lowerdir(底层/只读层):对应 Docker 镜像的那些基础层。它可以是好几个目录的叠加,但在 OverlayFS 眼里,它们统一都算“只能看不能动”的底层。
  2. Upperdir(顶层/可写层):对应容器的读写层。你在容器里干的所有增删改查,第一落脚点全在这里。
  3. Mergedir(挂载点/视图层):楚门的世界。用户和容器内的进程真正看到的、用到的就是这个目录。它是 Lowerdir 和 Upperdir 融合后的结果。
  4. Workdir(工作工作空间):内核自己默默使用的一个空目录,用来在原子操作(比如正准备做 Copy-on-Write 复制文件)时当临时中转站,用户一般感知不到。

3. OverlayFS 是怎么把速度变快的?

比起 AUFS,OverlayFS 在性能上有两个逆天的优化:

① 找文件不再“层层套娃”

  • AUFS:如果你叠了 10 层镜像,找一个文件时,它得从第 10 层、第 9 层、第 8层……一层一层往下探,像套娃一样,非常低效。
  • OverlayFS:只有UpperLower。内核一瞬间就能判断出文件是在可写层还是在只读层,省去了中间大量的遍历时间。

② 完美的内存复用(页缓存共享)

这是 OverlayFS 打败虚拟机和 AUFS 的终极杀招。
在 Linux 中,打开文件会占用内存的Page Cache(页缓存)。

  • 如果用虚拟机,100 个虚拟机打开同一个文件,内存里会有 100 份缓存。
  • 如果用 AUFS,因为实现机制问题,不同的容器打开同一个底层只读文件,内核有时也会卡在虚拟节点上,无法完美共享缓存。
  • 而在 OverlayFS 中:因为它直接贴合 Linux 内核的 VFS(虚拟文件系统),100 个容器如果仅仅是读取底层的同一个文件(比如某个公共运行库),整个物理机内存里真的就只有一份页缓存。这不仅省下了海量的内存,更让文件读取速度直接拉满。

4. 在 OverlayFS 里,Whiteout 和 CoW 是怎么玩的?

它的底层逻辑和我们前面讲的一脉相承,只是动作更干净:

  • 修改文件(CoW):当你试图修改Lowerdir里的文件时,OverlayFS 直接触发copy_up操作,把文件瞬间复制到Upperdir,后续的读写直接在Upperdir爆发,Merged 视图无缝切换。
  • 删除文件(Whiteout):当你在容器里删除了底层文件,OverlayFS 会在Upperdir里创建一个主次设备号为 0:0 的特殊字符设备。当视图层(Mergedir)看到这个无字天碑时,就会自动忽略底层对应的同名文件。

总结

Namespace(空间隔离)→\rightarrowHypervisor(硬件虚拟)→\rightarrowUFS(硬件闪存)→\rightarrowAUFS(初代分层)→\rightarrowOverlayFS(现代分层),这一路看下来,你会发现:

容器技术的精髓,就是不断地剔除掉中间商(比如 Hypervisor、多余的 Guest OS、繁琐的系统层),用最轻量的内核障眼法(Namespace + OverlayFS),让进程跑在最接近物理硬件的速度上。

http://www.zskr.cn/news/1501469.html

相关文章:

  • Shairport4w完整教程:3分钟将Windows电脑变成免费AirPlay接收器
  • OpCore-Simplify:让黑苹果配置从8小时缩短到30分钟的智能助手
  • AI 重塑攻防格局!解读网络安全全新范式|算泥MVP直播
  • AWS ALB + Cognito 实现零代码身份认证(完整实战)
  • 数据的加密与解密(03:43)
  • 如何用VDesk实现Windows虚拟桌面效率翻倍:终极指南
  • 3步掌握B站视频AI智能总结:用BiliTools高效提取视频精华
  • Java实现阶乘的三种写法:for循环、while循环和递归函数源码
  • 别再硬解方程了!用Python+NumPy实现RBF曲面重建,处理百万点云也不怕
  • 论文双审难题破解:兼顾重复率与AIGC检测,百考通AI实操指南
  • 别再只收藏了!用这197个SOTA模型源码,手把手教你复现经典论文(附保姆级环境配置)
  • Python工程师如何选择适合自己水平的AI工程化工具链?
  • 设计师和前端必看:Figma、Photoshop里那些让你困惑的RGB颜色模式到底怎么选?
  • 论文双重审核常态化?百考通AI分层优化解决降重与去AI痕迹两难问题
  • 绵阳育儿嫂品牌服务能力深度分析:本土机构对比与选择参考 - 优质品牌商家
  • 论文双审困境破解:百考通AI兼顾查重与AIGC检测的实用方案
  • Go语言为何成为TVA的“血液循环系统”(5)
  • 如何用Unlock Music Electron打破数字音乐的所有权枷锁:终极完整指南
  • 数据的加密与解密(03:20)
  • 如何用BiliTools免费快速下载B站视频:完整指南
  • 2026年 东莞WMS/WMS系统十大品牌最新推荐榜单,智能仓储管理系统/仓库软件/源头服务商口碑精选 - 品牌发掘
  • 数字接口传感器 + 嵌入式硬件架构 + 预训练模型和云端大模型 + LCD显示 + 无线通信
  • 如何快速掌握Python静态类型检查:MyPy终极入门指南
  • 2026年新发布:青岛专业儿童房定制优选,乐住家居以科技与匠心守护成长空间 - 品牌鉴赏官2026
  • 【课程设计/毕业设计】基于jspm自行车个性化改装推荐系统【附源码、数据库、万字文档】
  • 纯前端JS农历转换工具:阳历转阴历、查节日、得干支生肖一键搞定
  • 社交媒体数据采集终极指南:用snscrape轻松抓取8大平台内容
  • 【Zephyr|ESP32-S3】基础学习:用UART串口中断+命令解析控制WS2812变色
  • 个人博客系统的设计与实现 | 毕业设计完整源码
  • 考研教材电子版|pdf|下载|资料已整理