文章/徐静波01背景概述在云原生、桌面、终端等应用领域,为了构建、分发和高效可信地运行镜像,解决方案一般倾向于选择只读方案,其优势在于分发和签名验证、写保护、设备故障的可靠恢复。EXT4、XFS等常用文件系统往往不能完全满足极端图片尺寸、压缩、去重、可重现构建等要求,而常用文件系统的冷门特性会增加格式的复杂性,影响分发的安全性和可控性因此,在Linux下构建一个高性能的自包含内核只读文件系统,可以更好地服务于容器、终端、集群OS等业务场景。02技术方案EROFS是为高性能只读场景量身打造的内核文件系统。它提供了多层镜像、透明压缩、块重复数据删除、本机按需加载和FSDAX内存直接访问等功能。它被正式纳入Linux5.4Linux主线。在容器镜像领域,通过与CNCFDragonfly的Nydus镜像服务深度集成,打造了RAFSv6、FS-Cache等技术,服务于容器runC、Kata等场景。未来还将使用pagecache内存共享,进一步提供内存超卖能力。在终端领域,成为Android开源项目推荐的系统分区文件系统格式。技术优势:Linux内核原生,通过压缩、块去重、字节滚动压缩去重节省图像存储空间。原地解压等技术进一步优化运行状态的内存占用,提升性能。提供内核原生的按需加载能力,从源头解决FUSE额外拷贝和上下文切换开销。应用场景:容器/应用/系统镜像、软件包管理、AI数据分发、函数计算、机密计算、无盘启动、安装程序等03基于EROFS+FS-Cache优化Nydus镜像按需加载EROFSoverFS-Cache是DragonLizard社区主导的为Nydus和EROFS开发的下一代容器镜像按需加载技术,也是Linux内核原生的镜像按需加载特性。5.19并入内核社区主线。该方案通过FS-Cache框架将按需加载的缓存管理下沉到内核态。图片缓存到本地时,相比用户态方案,可以有效避免内核态/用户态上下文切换和内存拷贝;当缓存未命中时,通知用户态通过网络获取数据,实现真正的“按需”和非按需场景下几乎无损的性能和稳定性。在按需加载场景下,EROFSoverFS-Cache的性能优于FUSE(注:数据为三个测试的平均值):在非按需场景下,EROFSoverFS-Cache的性能优于FUSE:高性能存储SIG主页:https://openanolis.cn/sig/high-perf-storage附件:2022龙蜥社区全景白皮书(或公众号回复关键词“白皮书”获取)https://openanolis.cn/openanoliswhitepaper—-over--
