
背景概述
在云原生、桌面、终端等应用领域,为了高效可信构建,分发和运行镜像,解决方案一般倾向选择只读方案,其优势在于分发和签名校验、写保护、器件故障可靠恢复等。通用文件系统如 EXT4 和 XFS 往往不能充分满足镜像极致大小、压缩、去重及可复现构建等需求,且通用文件系统冷门特性会增加格式复杂度,影响分发和执行环节的安全性和可控性,因此打造 Linux下高性能自包含内核只读文件系统能更好地服务容器、终端、集群 OS 等业务场景。
技术方案
技术优势:
Linux 内核原生,通过压缩,块去重,字节滚动压缩去重节省镜像存储空间。
原地解压等技术进一步优化运行态内存占用,提升性能。
-
提供内核原生按需加载能力,从源头解决 FUSE 额外拷贝和上下文切换开销。
基于 EROFS + FS-Cache 优化 Nydus 镜像按需加载
EROFS over FS-Cache 是龙蜥社区牵头为 Nydus 和 EROFS 开发的下一代容器镜像按需加载技术,同时也是 Linux 内核原生的镜像按需加载特性,于 5.19 合入内核社区主线。该方案将按需加载的缓存管理通过 FS-Cache 框架下沉到内核态执行,当镜像已在本地缓存时,相比用户态方案可有效避免内核态/ 用户态上下文切换和内存拷贝;当缓存未命中时,再通知用户态通过网络获取数据,做到真正的“按需”,非按需场景下实现几乎无损的性能和稳定性。

在按需加载场景,EROFS over FS-Cache 相比 FUSE 性能更优(注:数据为三次测试取平均值):
OCI |
EROFS + FUSE |
EROFS + FS-Cache |
|
wordpress E2E 启动时间 |
11.562s | 5.263s | 4.619s |
OCI | EROFS + FUSE | EROFS + FS-Cache | |
本地cache 4K顺序读 |
387068KB/s | 211767 KB/s | 366291KB/s |
本地cache 4K随机读 |
6153KB/s | 5450KB/s | 6170KB/s |
高性能存储 SIG 主页:
https://openanolis.cn/openanoliswhitepaper
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。
5.活动回顾|龙蜥社区云原生 SIG 首届 MeetUp 圆满落幕 持续打造面向云时代的竞争力

本文分享自微信公众号 - OpenAnolis龙蜥(OpenAnolis)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。