精华内容
下载资源
问答
  • 华为EROFS文件系统浅析

    万次阅读 2018-12-09 17:13:18
    华为最近发布了一个新的linux文件系统EROFS ( Extendable Read-Only File System ),是一个基于ROM的只读文件系统。目前已经并入内核主线4.19分支,代码可以在driver/staging/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文件系统,压缩squashfs文件系统和标志ext4文件系统 测试项目:顺序读,随机读和分散读。(enwik9是标准测试数据,android是以android framework为主要内容的数据,两者差别主要是在压缩比上) ...

    为什么华为不直接使用squashfs,而是要另辟蹊径开发新的erofs。

    1. Fio性能测试比较

    测试环境:高通8核+eMMC。

    测试对象:压缩erofs文件系统,压缩squashfs文件系统和标志ext4文件系统

    测试项目:顺序读,随机读和分散读。(enwik9是标准测试数据,android是以android framework为主要内容的数据,两者差别主要是在压缩比上)

    顺序读表现最好的依然是老牌的ext4,但是erofs明显好于squashfs,但是squashfs在加上谷歌打patch之后,性能提升很多(红色柱子),但依然还是比erofs差。

     

    随机读上由于有缓存的作用,squashfs看起来表现更好,但实质会造成更大的读放大问题,特别是块比较大的128KB squashfs。4KB的erofs和ext4还是比较相当的。

    分散读主要是要排除掉读缓存的效果,测试方法是每128kb只读取前4kb,结果是显然squashfs因为读放大很多,导致了性能最差。但是erofs的表现没有比ext4差很多,考虑到它本身还压缩了,已经非常不错。

    2. 压缩比率测试

    如果作为android系统分区使用的话,erofs因为使用LZ4压缩算法,压缩比率在70%

    如果面对纯文本数据enwik9,erofs的压缩比率会更高一些达到56%

     

    3. 读放大测试

    测试内容:文件系统读取10MB文件内容,测试实际块设备读取数量。数值大于10表示有读放大,越大则读放大问题越明显。数值小于10则表示没有读放大问题。

    顺序读由于采用了压缩,因此压缩文件系统都没有读放大问题,所以顺序读是最有利于压缩文件系统

    随机读和分散读,压缩文件系统都有不同程度的读放大,但是erofs表现明显好于squashfs。

    10MB size seq read (MB) rand read (MB) stride read (MB)
    squashfs 8K android 7.39  23.98  22.24 
    squashfs 8K enwik9 6.39  21.12  21.83 
    squashfs 128K android 6.52  177.36  169.75 
    squashfs 128K enwik9 4.51  114.72  141.86 
    erofs android 7.72  15.82  15.87 
    erofs enwik9 6.84  17.09  16.38 
    ext4 10.96  10.01 

    10.02 

    展开全文
  • LWN: 华为EROFS文件系统

    2019-08-26 19:31:00
    点击上方蓝色“Linux News搬运工”关注我们~erofs: promote erofs from staging从LWN上看到,华为的Gao Xiang正在向文件系...
        

    640

    点击上方蓝色“Linux News搬运工”关注我们~

    erofs: promote erofs from staging

    从LWN上看到,华为的Gao Xiang正在向文件系统维护者申请正式把erofs从staging(候选)状态转为正式支持的文件系统。

    他在mailing list里面提到,EROFS的目标是希望能够在不太影响对只读文件的读取速度的情况下,能减少文件所占用的存储空间。尤其是对那些压缩率很高的文件来说,比起未压缩的文件,读取的performance会更有优势,唯一的代价的就是一些CPU算力而已。华为内部非常看好这个方向,一直安排了一个专门的kernel团队来持续改进EROFS,包括安排了大量的测试。

    自从Huawei P30引入EROFS之后,目前EROFS已经在几乎所有的最新Huawei手机里面都应用起来了,目前为止看起来非常成功。华为认为可以在更多场景下使用EROFS来从它的高压缩率以及高速读取等方面获得收益。因此Gao Xiang向mailing list提出让EROFS成为一个正式的Linux文件系统。

    P30发布时宣称的性能对比如下:

    640

    最新稳定版的mkfs.erofs可以从这里拿到,内含README文件。

    git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git -b dev

    华为内部仍然在继续调优一些高速NVME SSD(例如Samsung 970PRO固态硬盘)上的顺序读取的速度。目前只要使用最新Linux kernel,配上一个U盘,就能体验EROFS了。

    EROFS已经很完善了,华为也承诺会随着Linux kernel发展来继续开发和改善EROFS。

    邮件最后,Gao Xiang特地指出,他非常希望能直接使用Linux kernel内置的文件系统,而不希望背负一些kernel tree之外的代码,因此合入mainline对华为kernel团队也是非常期待的事情。

    具体实现也可以参考Gao Xiang的演示材料:https://www.usenix.org/conference/atc19/presentation/gao

    全文完

    LWN文章遵循CC BY-SA 4.0许可协议。

    极度欢迎将文章分享到朋友圈 

    长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~

    640?wx_fmt=jpeg

    展开全文
  • EROFS(Extendable Read-Only File System)是华为最近发布的一个新的Linux文件系统,它是一个基于ROM的只读文件系统。目前已经并入内核主线4.19分支。该文件系统因为其所宣传的“可提升随机读写速度数倍”引起了业...

    EROFS(Extendable Read-Only File System)华为最近发布一个新的Linux文件系统,是一个基于ROM的只读文件系统。目前已经并入内核主线4.19分支该文件系统因为其所宣传的“可提升随机读写速度数倍”引起了业内外广泛关注。下面将从两个方向对该文件系统取得如此成效的原因进行解读。

     

    通过fixed output压缩缓解读放大问题

    一般存储器以4K为最小的读写单元,要找到一个读写单元就要寻址。如果有一组数据大小在5K左右,压缩后占用3.5K的空间。当这3K的数据全部在一个单元内时,一次读写就能完成我们的操作,但是如果这3K的数据前1.5K在第一个存储单元内,后2K在另一个存储单元内,就需要进行至少两次读写会导致性能下降

    在以往Linux内核使用的压缩只读文件系统squashfs中,每4K数据进行一次压缩。数据不同,压缩率也不一样,有的数据可以压缩到很,有的数据几乎没办法压缩。这样就会压缩出很多大小不一的数据块。尽管这些数据块全部小于4K,然而可以说,这些数据块几乎完全不能和4K单元对齐,因此读写时会造成很多的额外消耗。

    例如一个128k的文件, squashfs会采用固定大小(比如32K)为输入,即会将每32k数据压缩成不确定的大小,如可能是12K;那么读取文件中的任意4k数据,都需要至少读取完整的12k压缩数据,然后解压再读取其中的4k,这多读取的8K就是所谓的读放大问题

     

    EROFS是一种压缩文件系统,采用了一种叫做fixed-sized output文件压缩算法该算法在EROFS中应用的示意图如下:

    一个文件4K不对齐的结尾的部分会作为内联文件数据和inode head连接在一起压缩后的物理块大小为固定值(4K)。相比于以固定大小为输入,变长输出的fixed-size input能够有效的缓解读放大问题,降低I/O读取量。对于上面的情况,EROFS采用的是固定大小为压缩输出,即可能会将这128k数据的0-7k压缩成4k,7-25k也压缩成4k,25-32k也压缩成4k,以此类推那么读取文件中的任意4k数据,只要读取最少4k,最多8k(任意4k数据压缩后最多分布到两个block中的压缩数据相比squashfs读放大问题明显减少了。

     

    只读特性

    EROFS被应用于Android的只读系统分区。以往Android只读系统分区使用ext4文件系统的只读挂载参数和挂载dm-verity虚拟块设备(用于文件系统校验)来配合实现只读。这并非是一种结构上的限制,通过去除Ext4只读挂载选项并且不挂载dm-verity设备,就可以对系统分区进行写操作。

    而EROFS在结构上即为天然只读,由于时间有限,其具体实现我还没有了解的很清楚,但根据网络上的一些讲解,EROFS存储单元间通过一种类似链表的结构进行连接,前面的存储单元保存着其后一个存储单元的位置,不通过全局bitmap管理所有可写区域。因此外来者无法知道哪个区域是有效可写入的,即使强行写入,其内容也不会被其它存储单元承认。

     

    保障只读为整个系统的设计带来了很多好处,由于数据空间大小已经事先确定,文件系统可以消除直接inode/间接inode这样的设计,也省略掉了inode bitmap和block bitmap(记录空的block)这种区域来节省空间。直接把每个文件压缩后的数据顺序储存,然后保留压缩后每个簇对应的原始数据范围作为元数据即可。这样一来对文件的顺序访问变成了顺序读取,性能得到了很大提升。EROFS磁盘层数据结构示意图如下:

    实现细节上,EROFS的inode table是变长的,里面包含了inode结构体和少量的内联文件数据。xattr和压缩特性都是可选的,未选择的情况下inode table空间将进一步缩小。

    展开全文
  • 华为发布EROFS文件系统

    千次阅读 2018-06-09 19:27:00
    北京时间今日,XDA在援引自Phoronix的报道中表示,华为新发布了一个名为EROFS的Linux只读文件系统,将来可以用于安卓设备上。据悉,该文件系统华为文件系统上寻求的全新解决方案。EROFS全称为Extendable Read-...
  • 导读 近期,Linux内核5.4系列宣布全面可用,添加了许多新功能,更强的安全性和更新的驱动程序,以提供更好...根据最新消息,Linux内核5.4中也正式将华为EROFS超级文件系统合入了主线。 Linux 5.4将成为文件系统...
  • 华为于5月9日晚间正式向内测用户推送了华为Mate 20/Mate 20 Pro/Mate 20 RS保时捷...据华为在线客服介绍,华为Mate 20系列将在下个版本的EMUI 9.1版本中支持EROFS文件系统,预计推送时间为5月底。此外,与之一同推...
  • IT之家 10 月 30 日消息 感谢网友投递,据数码博主 @小白测评 数据,华为 Mate 40 Pro 在华为自研的 EROFS 文件系统加持下,闪存读写性能可达普通 UFS3.1 约两倍的速度。众所周知,UFS 3.1 相较于 UFS 3.0 最明显的...
  • Android系统映像文件如果用EROFS文件系统来发布的话,通常都会经过例如dm-verify这一类的验证流程,因此文件系统代码本身其实处理的都是签名并验证过的文件系统数据。尽管如此,EROFS开发者也赞同这类bug也应该得到...
  • 其中特别亮眼的是P30系列使用了EROFS文件系统,据称能显著提升文件访问性能,那其中究竟有何玄机呢?1. EROFS文件系统 是什么gui文件系统,听上去是个很专业的词汇。即使是最资深的科技粉,在看手机规格的时候,可能...
  • EROFS超级文件系统华为自研三大黑科技之一,荣耀20 PRO自然也少不了这项最新的技术。EROFS全称为Extendable Read-Only File System(可译为“可扩展只读文件系统”),可提供比其他只读文件系统方案更好的性能,且...
  • EROFS——扩展只读文件系统 EROFS 文件系统,元数据部分采用高内聚数据结构存储,数据部分采用普通、inline和压缩模式存储。 在支持完整读取功能情况有效降低存储空间,特别适合存储空间敏感的领域,如手机、...
  • IT之家4月25日消息 根据华为EMUI官方的消息,4月25日14:00,华为在解读了方舟编译器之后,又介绍了超级文件系统,称该系统天然只读设计,系统分区不可被三方改写,一起来...而超级文件系统(EROFS)采用专利压缩算法加...
  • 2019年开年,智能手机市场异常...从2016年Mate9发布以来,“天生快一生快”一直作为华为手机的优良基因,集结了众多的先进技术,其中之一就是文件系统的持续进化。而刚刚发布的P30系列使用了全新的超级文件系统(EROF...
  • 2019年开年,智能手机市场异常...从2016年Mate9发布以来,“天生快一生快”一直作为华为手机的优良基因,集结了众多的先进技术,其中之一就是文件系统的持续进化。而刚刚发布的P30系列使用了全新的超级文件系统(EROF...
  • 相比EMUI9.0以及其他安卓手机厂商的系统,EMUI9.1通过两大革命性创新——EROFS超级文件系统和方舟编译器,真正实现从系统底层提升运行速度,让安卓彻底摆脱“一年卡成狗”的帽子。文件管理系统影响系统运行速度手机...
  • 华为鸿蒙系统是一款由华为自主研发的手机操作系统,华为鸿蒙系统手机版为用户提供前所未有的...此前,华为推出自研EROFS超级文件系统、仅是基于华为方舟编译器开发的应用,就能够让安卓系统性能提升数倍来看,底层整...
  • Huawei EROFS 初探

    千次阅读 2019-03-28 00:59:11
    因为太小众,所以当时没有太留意,只是因为EROFS这个名字和写只读文件系统时返回的错误名字一样,所以就留下了印象,其实都没注意到是华为的人做的。最近华为推出新手机,并宣扬自己为手机系统新写的文件系...
  • 7月13日消息,华为发布“P20/P20 Pro EMUI 9.1适配...值得注意的是,预计7月下旬发布合入方舟编译器和超级文件系统(EROFS)的EMUI 9.1正式版,并开放服务不限量报名升级。官方介绍,方舟编译器从底层改变安卓系统的...
  • 倒是发布会上两个一带而过的细节,搅动了行业舆论——华为推出EROFS超级文件系统和方舟编译器。这被认为华为离推出自己的系统又近了一步。这些年来,华为努力从底层入手,不断魔改安卓,使得EMUI的体验经历了脱胎...
  • 华为手机一直以来注重的不仅仅是拍照,还有系统的流畅度、稳定性,标志性...而率先升级的是华为的顶端旗舰系列:华为Mate 20 Pro,近日更新EMUI9.1新版本,加入了根治安卓手机卡顿通病的方舟编译器,和EROFS超级文件...
  • 华为EMUI得益于华为强大的开发整合能力,EROFS超级文件系统、方舟编译器,不但实现对其他安卓系统的流畅度超越,更是对安卓进行了手术式动刀,从系统底层确保了EMUI的流畅。华为EMUI一路走来,不断提升用户体验,...
  • 除了感光徕卡四摄带来的“彩色夜视仪“+“望远镜”的震撼拍照效果,P30还带来了诸如磁悬发声屏、EROFS文件系统、4大AI智慧体验等多项“黑科技”。 事实上,P30系列的“无线投屏”功能也相当好用,有效解决了手机...
  • 鸿蒙的技术特征:微内核、方舟静态编译器、EROFS 文件系统 。我们预计,鸿蒙系统将采用微内核架构提升系统稳定性,借助方舟编译器提升鸿蒙性能,通过 EROFS 稳健系统从系统底层提升系统流畅度,三大底层技术支持与...
  • 超级文件系统方舟编译器和超级文件系统(EROFS),很多小伙伴们可能早已耳熟能详。鉴于方舟编译器和超级文件系统(EROFS)主要提升系统性能、应用运行速度和流畅度,而这些体验上的变化需要通过一定的手段量化,故此选用...
  • 在发布会上,华为推出了方舟编译器和超级文件系统EROFS两大创新亮点。由于发布会时间限制,当时华为仅仅用两页PPT粗略地介绍了这两项技术作用。据华为方面表示,自发布会后,华为软件OpenLab团队的电话几乎要被打爆...
  • 2019 年 4 月 11 日,在上海的华为新品发布会上,除了可以拍月亮的华为 P30 系列,余承东还亲自抛出了两项软件层面的“重磅炸弹”,分别是方舟编译器和 EROFS 超级文件系统;其中,华为方舟编译器可以实现“架构级...
  • 文| I/O2019 年 4 月 11 日,在上海的华为新品发布会上,除了可以拍月亮的华为 P30 系列,余承东还亲自抛出了两项软件层面的“重磅炸弹”,分别是方舟编译器和 EROFS 超级文件系统;其中,华为方舟编译器可以实现...

空空如也

空空如也

1 2
收藏数 35
精华内容 14
关键字:

华为erofs文件系统