文 / 徐静波
01 背景概述
在云原生、桌面、终端等应用领域,为了高效可信构建,散发和运行镜像,解决方案个别偏向抉择只读计划,其劣势在于散发和签名校验、写爱护、器件故障牢靠复原等。通用文件系统如 EXT4 和 XFS 往往不能充沛满足镜像极致大小、压缩、去重及可复现构建等需要,且通用文件系统冷门个性会减少格局复杂度,影响散发和执行环节的安全性和可控性,因而打造 Linux 下高性能自蕴含内核只读文件系统能更好地服务容器、终端、集群 OS 等业务场景。
02 技术计划
EROFS 是为高性能只读场景量身打造的内核文件系统,提供了多层镜像、通明压缩、块去重、原生按需加载、FSDAX 内存间接拜访等个性,于 Linux 5.4 正式合入 Linux 主线。在容器镜像畛域,通过与 CNCF Dragonfly 的 Nydus 镜像服务深度交融,打造了 RAFSv6、FS-Cache 等技术,服务容器 runC、Kata 等场景,将来还将发力 page cache 内存共享进一步提供内存超卖能力。在终端畛域已成为 Android Open Source Project 举荐的零碎分区文件系统格局。
技术劣势:
- Linux 内核原生,通过压缩,块去重,字节滚动压缩去重节俭镜像存储空间。
- 原地解压等技术进一步优化运行态内存占用,晋升性能。
- 提供内核原生按需加载能力,从源头解决 FUSE 额定拷贝和上下文切换开销。
利用场景:容器 /App/ 零碎镜像、软件包治理、AI 数据散发、函数计算、秘密计算、无盘启动、装置器等。
03 基于 EROFS + FS-Cache 优化 Nydus 镜像按需加载
EROFS over FS-Cache 是龙蜥社区牵头为 Nydus 和 EROFS 开发的下一代容器镜像按需加载技术,同时也是 Linux 内核原生的镜像按需加载个性,于 5.19 合入内核社区主线。该计划将按需加载的缓存治理通过 FS-Cache 框架下沉到内核态执行,当镜像已在本地缓存时,相比用户态计划可无效防止内核态 / 用户态上下文切换和内存拷贝;当缓存未命中时,再告诉用户态通过网络获取数据,做到真正的“按需”,非按需场景下实现简直无损的性能和稳定性。
在按需加载场景,EROFS over FS-Cache 相比 FUSE 性能更优(注:数据为三次测试取平均值):
在非按需场景,EROFS over FS-Cache 相比 FUSE 性能也更优:
高性能存储 SIG 主页:
https://openanolis.cn/sig/high-perf-storage
附:
2022 龙蜥社区全景白皮书(或公众号回复关键字“白皮书”获取)
https://openanolis.cn/openanoliswhitepaper
—— 完 ——