精华内容
下载资源
问答
  • 测试对象:压缩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 

    展开全文
  • 华为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文件系统

    千次阅读 2018-06-09 19:27:00
    北京时间今日,XDA在援引自Phoronix的报道中表示,华为新发布了一个名为EROFS的Linux只读文件系统,将来可以用于安卓设备上。据悉,该文件系统是华为在文件系统上寻求的全新解决方案。EROFS全称为Extendable Read-...

    北京时间今日,XDA在援引自Phoronix的报道中表示,华为新发布了一个名为EROFS的Linux只读文件系统,将来可以用于安卓设备上。据悉,该文件系统是华为在文件系统上寻求的全新解决方案。

    EROFS全称为Extendable Read-Only File System(可译为“可扩展只读文件系统”),可提供比其他只读文件系统方案更好的性能,且可以节省存储空间。EROFS还提供了一种不同的压缩模式设计。

    EROFS目前仍在持续开发中,因此磁盘上的布局格式未最终确定。因此我们还难以判断这项技术将于何时出现在安卓手机上。“吓人”技术会是它?华为发布EROFS文件系统,可提升设备性能
    华为发布EROFS文件系统华为发布EROFS文件系统

    IT之家的读者们对于文件系统想必不会感到陌生。文件系统是一种用于向用户提供底层数据访问的机制,常见的文件系统有“FAT、exFAT、NTFS、HFS、HFS+、ext2、ext3、ext4”等。但考虑到文件系统对于设备的性能表现有所关联,因此我们很容易将文中的技术与华为近期宣传的“很吓人的”技术联系起来。华为声称,有这项技术的加持,其他手机速度跟华为旗下手机的速度相比,就如同“地上跑”和“天上飞”的区别。

    展开全文
  • 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分支。该文件系统因为其所宣传的“可提升随机读写速度数倍”引起了业...
  • 导读 近期,Linux内核5.4系列宣布全面可用,添加了许多新功能,更强的安全性和更新的驱动程序,以提供更好...根据最新消息,Linux内核5.4中也正式将华为EROFS超级文件系统合入了主线。 Linux 5.4将成为文件系统...
  • EROFS——扩展只读文件系统 EROFS 文件系统,元数据部分采用高内聚数据结构存储,数据部分采用普通、inline和压缩模式存储。 在支持完整读取功能情况有效降低存储空间,特别适合存储空间敏感的领域,如手机、...
  • Android系统映像文件如果用EROFS文件系统来发布的话,通常都会经过例如dm-verify这一类的验证流程,因此文件系统代码本身其实处理的都是签名并验证过的文件系统数据。尽管如此,EROFS开发者也赞同这类bug也应该得到...
  • 原标题:Linux内核5.4正式将华为EROFS超级文件系统合入主线11月28日消息 近期,,添加了许多新功能,更强的安全性和更新的驱动程序,以提供更好的硬件支持。Linux内核5.4增加对微软exFAT文件系统的支持,另外还支持...
  • IT之家11月28日消息近期,Linux内核5.4系列宣布全面可用,添加了许多新功能,更强的安全性和更新的驱动程序,以...根据最新消息,Linux内核5.4中也正式将华为EROFS超级文件系统合入了主线。Linux 5.4将成为文件系统...
  • EROFS 和 方舟 用辩证的来看 —— EROFS——唯物辩证法说:关于 EROFS 和 方舟文件系统说到 EROFS速度提升 ——唯物辩证法说: 一、新事物必然战胜旧事物 二、前途是光明的,道路是曲折的 注:因为唯物辩证法原文...
  • Huawei EROFS 初探

    千次阅读 2019-03-28 00:59:11
    因为太小众,所以当时没有太留意,只是因为EROFS这个名字和写只读文件系统时返回的错误名字一样,所以就留下了印象,其实都没注意到是华为的人做的。最近华为推出新手机,并宣扬自己为手机系统新写的文件系...
  • I have tried this with and without the WRITE_INTERNAL_STORAGE permission.Android中没有WRITE_INTERNAL_STORAGE权限。How do I create this file for writing?你不会,除非可能在有根的设备上,如果你的应用程序...
  • 最近的一个项目中,涉及到图片的本地保存,刚开始,啪,报一个...这样的文件名在创建文件时根本找不到路径,系统不知道把文件创建在哪,所以后来,把代码改成了: 这样就好了。 2016-08-01 转载于:https://ww...
  • 鸿蒙的技术特征:微内核、方舟静态编译器、EROFS 文件系统 。我们预计,鸿蒙系统将采用微内核架构提升系统稳定性,借助方舟编译器提升鸿蒙性能,通过 EROFS 稳健系统从系统底层提升系统流畅度,三大底层技术支持与...
  • 除了感光徕卡四摄带来的“彩色夜视仪“+“望远镜”的震撼拍照效果,P30还带来了诸如磁悬发声屏、EROFS文件系统、4大AI智慧体验等多项“黑科技”。 事实上,P30系列的“无线投屏”功能也相当好用,有效解决了手机...
  • 华为手机一直以来注重的不仅仅是拍照,还有系统的流畅度、稳定性,标志性...而率先升级的是华为的顶端旗舰系列:华为Mate 20 Pro,近日更新EMUI9.1新版本,加入了根治安卓手机卡顿通病的方舟编译器,和EROFS超级文件...
  • 手机上的任何程序都必须用高级程序员能够理解的语言来开发。 为了在手机上运行程序,必须将程序转换为...同时,将手机文件系统由EXT4转换为EROFS,将系统分区转换为只读属性,提高了系统的安全性和读取速度。 华为方
  • C语言truncate()函数:改变文件大小 头文件: #include 定义函数: int truncate(const char * path, off_t length); 函数说明:truncate()会...2、EROFS 欲写入的文件存在于只读文件系统内。 3、EFAULT 参数path
  • 2021-06-16

    2021-06-16 20:38:56
    最近在用小熊派做一个鸿蒙系统的小玩意,按照官方说明一步一步做,都比较顺利,但是的用VS CODE编辑代码,新建文件夹时报错:Error: EROFS: read-only file system;一直以为是UBUNTU里文件权限的问题,结果用root...
  • 2019 年 4 月 11 日,在上海的华为新品发布会上,除了可以拍月亮的华为 P30 系列,余承东还亲自抛出了两项软件层面的“重磅炸弹”,分别是方舟编译器和 EROFS 超级文件系统;其中,华为方舟编译器可以实现“架构级...
  • linux编程中使用errno

    2011-05-29 14:58:00
    查看函数int creat(const char * pathname, mode_tmode); 返回值 creat()会返回新的文件描述词,若有错误发生则会返回-1,并把错误代码设给errno。... EROFS 欲打开写入权限的文件存在于只读文件系统
  • 在发布会上,华为推出了方舟编译器和超级文件系统EROFS两大创新亮点。 由于发布会时间限制,当时华为仅仅用两页PPT粗略地介绍了这两项技术作用。 据华为方面表示,自发布会后,华为软件OpenLab团队的电话几乎要被...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

erofs文件系统