华为EROFS文件系统浅析
华为最近发布了一个新的linux文件系统,EROFS ( Extendable Read-Only File System ),是一个基于ROM的只读文件系统。目前已经并入内核主线4.19分支,代码可以在driver/staging/erofs目录上获取
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/staging/erofs?h=v4.19.8
支持xattr,支持LZ4文件压缩节约存储空间。目标针对的是android手机文件系统中的只读分区,当然也可以用于其他对存储和性能都有要求的嵌入式系统领域。
目前开放出来的mkfs tools可以在github上下载到
https://github.com/hsiangkao/erofs_mkfs_binary
maintainer贴的一段性能测试如下:
https://lkml.org/lkml/2018/5/31/306
Kirin970 (A73 Big-core 2361Mhz, A53 little-core 0Mhz, DDR 1866Mhz):
compression EROFS seq read EXT4 seq read EROFS random read EXT4 random read
ratio bw[MB/s] bw[MB/s] bw[MB/s] (20%) bw[MB/s] (20%)
4 546.7 544.3 157.7 57.9
10 535.7 521.0 152.7 62.0
15 529.0 520.3 125.0 65.0
26 418.0 526.3 97.6 63.7
35 367.7 511.7 89.0 63.7
48 415.7 500.7 78.2 61.2
53 423.0 566.7 72.8 62.9
66 334.3 537.3 69.8 58.3
76 387.3 546.0 65.2 56.0
85 306.3 546.0 63.8 57.7
94 345.0 589.7 59.2 49.9
100 579.7 556.7 62.1 57.7
测试结果上看低压缩比的下性能比传统EXT4要好近3倍,高压缩比的情况下性能也与EXT4相当。
下面对EROFS做一个简单的剖析
1. EROFS on-disk layout
由于是只读文件系统,因此省略掉了inode bitmap和block bitmap这种区域节省空间。inode table是变长的,里面包含了inode结构体体和少量的内联文件数据。xattr和压缩特性都是可选的,未选择的情况下inode table空间将进一步缩小。
EROFS目前基本以4K大小为block,一个文件4K不对齐的结尾的部分会作为内联文件数据和inode head连接在一起,以提高page cache的利用和命中率。
2. EROFS 目录项结构
EROFS的目录项每项12字节,文件名被联合在一起放在目录项的后面节约存储空间,inode number用64字节大小保存。紫色部分是一个inode结构体的启始,可以简单的通过inode number * 32 + super block offset = paddr来得到inode结构体的分区物理存放位置,缩小了dirent结构体的大小,因为不用保存inode结构体的位置。
3. 文件压缩
EROFS支持LZ4压缩,节约空间的同时能保证性能。按maintainer的说法,EROFS支持的是一种叫做fixed output文件压缩形式,与之对应的是fixed-sized input文件压缩形式。
fixed output压缩据说可以提高压缩率,提高缓存利用率,节省内存消耗。
- fixed-sized input压缩例子
fixed-size input就是总是以固定大小,如4K作为压缩输入,压缩输出是变长的。这样每4K的文件逻辑块对应的压缩后的文件块会小于或等于4K。如果文件随机访问block 2的话,物理块block 1和block 2的灰色部分的读取会造成写放大。
- fixed-sized outpu压缩例子
fixed-sized output就是压缩后的物理块的大小总是4K。压缩率要比fixed-sized input高些。
华为EROFS文件系统浅析相关推荐
- 华为EROFS文件系统的性能测试
为什么华为不直接使用squashfs,而是要另辟蹊径开发新的erofs. 1. Fio性能测试比较 测试环境:高通8核+eMMC. 测试对象:压缩erofs文件系统,压缩squashfs文件系统和标志 ...
- 浅谈华为EROFS文件系统的两个主要技术
EROFS(Extendable Read-Only File System)是华为最近发布的一个新的Linux文件系统,它是一个基于ROM的只读文件系统.目前已经并入内核主线4.19分支.该文件系统 ...
- LWN: 华为EROFS文件系统
点击上方蓝色"Linux News搬运工"关注我们~ erofs: promote erofs from staging 从LWN上看到,华为的Gao Xiang正在向文件系统维护 ...
- EROFS-华为超级文件系统浅析——(一)论文阅读
EROFS文件系统浅析--(一)论文阅读 注:本文参考<EROFS: A Compression-friendly Readonly File System for Resource-scarc ...
- 华为linux磁盘空间,华为推出EROFS文件系统,磁盘性能大提速
再过几天华为就要发布荣耀Play手机,其中最引人注目的就是华为将推出"很吓人"的新技术,从官方表述来看该技术将大幅提升华为手机的性能,号称是天上飞的感觉.这几天围绕这个吓人的技术有 ...
- LWN: 华为EROFS能应对好损坏的文件系统数据吗?
点击上方蓝色"Linux News搬运工"关注我们~ On-disk format robustness requirements for new filesystems By J ...
- linux虚拟文件系统浅析
linux虚拟文件系统浅析 虚拟文件系统(VFS) 在我看来, "虚拟"二字主要有两层含义: 1, 在同一个目录结构中, 可以挂载着若干种不同的文件系统. VFS隐藏了它们的实现细 ...
- linux最新内核4.19,Linux Kernel 4.19发布,初步支持Wi-Fi 6, 新EROFS文件系统
原标题:Linux Kernel 4.19发布,初步支持Wi-Fi 6, 新EROFS文件系统 著名的内核维护者Greg Kroah-Hartman宣布了Linux 4.19内核的发布和下载,这是一次 ...
- (转)linux内核虚拟文件系统浅析
转自http://hi.baidu.com/_kouu/item/4e9db87580328244ef1e53d0 ###### 虚拟文件系统(VFS) 在我看来, "虚拟"二字主 ...
最新文章
- 某头条程序员吐槽:前同事银行流水造假,背调也是找同事编的!工资翻了300%!自己老实巴交提供真实银行流水,却惨遭压薪!...
- md5加密用户登陆遇到的问题及解决办法
- .NET软件开发, 你应该知道 (整)
- 最小径集的算法_如何为数据集选择正确的聚类算法?
- linux中断响应时间太慢_linux+arm系统学习与基础学习
- fatal: unable to access 'xxxxxxxxxxxxx':The requested URL returned error: 403
- Wannafly挑战赛22 B	字符路径 ( 拓扑排序+dp )
- 16岁的蒙古摔跤手(狼行天下:追寻狼迹内蒙生态行第三天)
- 阿里的26款大神级的Java开源项目
- android websocket封装,Android WebSocket 方案选型OkHttp
- 大学生动漫网页设计模板 机动战士高达静态网页制作成品下载 HTML漫画网页作业带JS轮播图
- 前端解决跨域的九种方法
- Windows Embedded Webcast 2008年1月预告
- Web Application Projects的一个问题
- matlab分析矩阵与线性变换
- c语言资产管理系统,c语言图书资产管理系统.doc
- 无人机航拍VR全景图拍摄制作教程
- KVM虚拟化进阶--KVM设备高级管理
- python自动化交易_python 优矿自动化交易
- 华三,思科ACL命令解析