带你读《2022龙蜥社区全景白皮书》——5.3.1 跨云-边-端的只读文件系统EROFS

简介: 带你读《2022龙蜥社区全景白皮书》——5.3.1 跨云-边-端的只读文件系统EROFS

5.3 内核技术


5.3.1 跨云-边-端的只读文件系统EROFS


背景概述


在云原生、桌面、终端等应用领域,为了高效可信构建,分发和运行镜像,解决方案一般倾向选择只读方案,其优势在于分发和签 名校验、写保护、器件故障可靠恢复等。通用文件系统如EXT4和XFS往往不能充分满足镜像极致大小,压缩,去重及可复现构建等 需求,且通用文件系统冷门特性会增加格式复杂度,影响分发和执行环节的安全性和可控性,因此打造Linux下高性能自包含内核只 读文件系统能更好地服务容器、终端、集群OS等业务场景。


技术方案


EROFS是为高性能只读场景量身打造的内核文件系统,提供了多层镜像、透明压缩、块去重、原生按需加载、FSDAX内存直接访问 等特性,于Linux 5.4正式合入Linux主线。在容器镜像领域,通过与CNCF Dragonfly的Nydus镜像服务深度融合,打造了RAFS v6、FS-Cache等技术,服务容器runC、Kata等场景,未来还将发力page cache内存去重进一步提供内存超卖能力。在终端领域,已成为Android Open Source Project推荐的系统分区文件系统格式。


技术优势:

(1)Linux内核原生,通过压缩,块去重,字节滚动压缩去重节省镜像存储空间;

(2)原地解压等技术进一步优化运行态内存占用,提升性能;

(3)提供内核原生按需加载能力,从源头解决FUSE额外拷贝和上下文切换开销。

应用场景:容器/App/系统镜像,软件包管理,AI数据分发,函数计算,机密计算,无盘启动,安装器等。


基于EROFS + FS-Cache优化Nydus镜像按需加载


EROFS over FS-Cache是龙蜥社区牵头为Nydus和EROFS开发的下一代容器镜像按需加载技术,同时也是Linux内核原生的镜像按需加载特性,于5.19合入内核社区主线。


该方案将按需加载的缓存管理通过FS-Cache框架下沉到内核态执行,当镜像已在本地缓存时,相比用户态方案可有效避免内核态/用户态上下文切换和内存拷贝;当缓存未命中时,再通知用户态通过网络获取数据,做到真正的“按需”,非按需场景下实现几乎无损的性能和稳定性。



image.png


在按需加载场景,EROFS over FS-Cache相比FUSE性能更优(注:数据为三次测试取平均值):


image.png


在非按需场景,EROFS over FS-Cache相比FUSE性能也更优:


image.png








相关文章
|
存储 缓存 Kubernetes
秒级启动万个容器,探秘阿里云容器镜像加速黑科技
阿里云容器与存储团队展开合作,利用DADI加速器支持镜像按需读取和P2P分发,实现3.01秒启动10000个容器,完美杜绝容器冷启动的数分钟漫长等待,以及镜像仓库大规模并行分发场景下的网络拥堵。
6100 0
秒级启动万个容器,探秘阿里云容器镜像加速黑科技
|
8月前
|
人工智能 算法 开发者
一个提示词模板,搞定抖音短视频脚本创作
专为技术人打造的抖音脚本提示词模板,结构化拆解短视频创作套路,结合DeepSeek、通义千问等AI工具,快速生成可执行脚本框架,助力技术分享、产品演示高效落地,30秒讲清重点,开头抓人、节奏紧凑、完播率提升。
5902 13
|
10月前
|
缓存 前端开发 BI
如何开发门店业绩上报管理系统中的门店数据板块?(附架构图+流程图+代码参考)
门店业绩上报管理是将门店营业、动销、人效等数据按标准化流程上报至企业中台或BI系统,用于考核、分析和决策。其核心在于构建“数据底座”,涵盖门店信息管理、数据采集、校验、汇总与对接。实现时需解决数据脏、上报慢、分析无据等问题。本文详解了实现路径,包括系统架构、数据模型、业务流程、开发要点、三大代码块(数据库、后端、前端)及FAQ,助你构建高效门店数据管理体系。
|
存储 负载均衡 NoSQL
Tomcat 9.X(9.0.74)集群实现Session共享(基于redisson)
本文主要介绍了tomcat集群环境下基于redis+Redisson实现session共享,分享给大家,供广大从业者学习和参考。
13529 4
|
Unix 程序员 Go
5分钟撸一个时间转换器,Go语言教你如何开挂
5分钟撸一个时间转换器,Go语言教你如何开挂
422 0
|
网络协议 Go
golang判断ip地址是ipv4还是ipv6
golang判断ip地址是ipv4还是ipv6
|
数据采集 数据可视化 数据挖掘
【优秀python案例】基于python爬虫的深圳房价数据分析与可视化实现
本文通过Python爬虫技术从链家网站爬取深圳二手房房价数据,并进行数据清洗、分析和可视化,提供了房价走势、区域房价比较及房屋特征等信息,旨在帮助购房者更清晰地了解市场并做出明智决策。
1131 2
|
机器学习/深度学习 并行计算 Linux
环境安装(二):不同平台皆可安装Paddle
这篇文章介绍了如何在不同操作系统平台上安装PaddlePaddle,包括Windows和Linux,以及如何使用Paddle Lite在AMD64和ARM架构上部署模型,并提供了官方安装命令和进一步学习资源。
1260 0
|
Java 程序员 数据处理
从软件危机中处理软件工程问题
【6月更文挑战第28天】本文介绍软件危机及其处理方式。1968年的北约会议首次提出“软件危机”,指软件开发的复杂性和成本超支问题。现代解决策略包括多种方法和模型,如OO、结构化、RUP和SOA,旨在提高效率和适应性。
1472 0
从软件危机中处理软件工程问题
|
存储 缓存 人工智能
龙蜥白皮书精选:跨云-边-端的只读文件系统 EROFS
EROFSEROFS是为高性能只读场景量身打造的内核文件系统,提供了多层镜像、透明压缩等特性,于Linux 5.4正式合入Linux主线。
龙蜥白皮书精选:跨云-边-端的只读文件系统 EROFS