LWN: 华为EROFS能应对好损坏的文件系统数据吗?

EROFS文件系统工具简介 1. EROFS工具安装 1.1. apt安装 在较新的Debian/Ubuntu系统上,可以直接使用apt命令安装。 apt install erofs-utils 1.2. 源码安装 https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git 1.2.1. 编译依赖 如果需要支持Lz4压缩,需要Lz4 1.8.0+,强烈建议Lz4 1.9.3+。 1.2.2. 编译方法 对于一些旧的lz4版本(lz4-1.8.0~1.8. 阅读详情

640

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

On-disk format robustness requirements for new filesystems

By Jonathan Corbet

译者按:在LWN这篇文章发表后的讨论中,疑似Gao Xiang(用户名hsiangkao,LWN付费订阅用户,不知道是自费的还是华为pay的,赞)也回应了大家的问题,展示了EROFS作者一方的积极态度,非常尽责smiley_79.png。欢迎大家到lwn.net围观。

"Extendable Read-Only File System" (即EROFS)是由Gao Xiang于2018年五月第一次发布出来的,后来合入了Linux 4.19的staging tree。此后EROFS一直不断进行完善,作者现在认为是时候从staging tree里拿出来作为kernel的正式支持的众多文件系统的一员了。不过看起来还有最后一个障碍:有内容损坏的磁盘文件系统镜像是否还依旧稳定可用。这也引出了一个有意思的问题:新的文件系统具体需要达到什么程度的稳定性水平?需要比目前正大范围使用的文件系统要容错性更加强吗?

正如它的名字所说,EROFS是一个只读文件系统,由华为开发,目的是用在Android系统上。EROFS跟目前在用的各种只读文件系统的一个主要差异是在性能方面,因为它使用了一个特别的压缩算法来创建固定长度的存储block,据作者说这样就能把对压缩过的数据的随机访问尽量优化,目标是做尽量少的I/O和解压缩动作。详情可以查看7月份发布的USENIX论文。

Gao最近提过几次希望能把EROFS移出staging状态,最近一次是8月17日发出的邮件:

过去一年里,EROFS作为一个staging状态的驱动,得到众多开发者的帮助,有了很大改善,也经过很多自测试,还有经过了华为内部用户的大量日常使用验证,已经成功的作为EMUI 9.1的一部分发布到所有市面上的华为智能手机中了,目前已经能证明足够稳定,应该结束staging状态了。

总体来说,mailing list上没有多少反对意见。在审查代码的时候,Richard Weinberger注意到一点,就是代码里对磁盘上读出来的数据都是完全信任拿来就用的,一般不检查这个数据是否合理。然后他很快就创造出一个特殊的磁盘内容把kernel引入死循环状态了,这倒是一个彻底的read-only了(作者意指系统读完就死)。这个问题很快被修复了,但是在此之前已经出现了一个争论,就是假如文件系统映像文件被恶意破坏之后,那么kernel起来之后文件系统是否需要保证稳定可靠,尤其是对EROFS这种希望能加入Linux的新文件系统。

大家都赞同希望文件系统能在哪怕面对一个恶意(或者只是有点损坏数据)文件系统映像的时候,仍能保证正常工作。只有达到这个目标,才有可能允许非特权用户(unprivileged user)来mount文件系统而不担心会导致整个系统被破坏。不过Ted Ts'o也指出,目前kernel里面已经在大量使用的文件系统,例如ext4或者XFS,也都没有达到这个目标,因此,如果我们对一个新文件系统提出这么高的要求,那么似乎是针对它们额外提高了门槛:

如果我们对EROFS这样的文件系统提出了更高的标准,甚至是ext4, xfs, btrfs都没法达到的标准,这样不太公平。咱们似乎有点倾向于对新文件系统提出更高的标准,甚至有些是很难达到的。而在我看来,给Linux加一个新的文件系统不应该是一个什么大事。

针对EROFS来说,正如Chao Yu指出,它所针对的应用场景其实不太在乎这种可靠性。Android系统映像文件如果用EROFS文件系统来发布的话,通常都会经过例如dm-verify这一类的验证流程,因此文件系统代码本身其实处理的都是签名并验证过的文件系统数据。尽管如此,EROFS开发者也赞同这类bug也应该得到积极分析和修复。

看起来针对恶意文件系统映像的可靠性处理,在各个文件系统的开发者看来观点也各不相同。对于ext4里面存在的类似bug,Ts'o回答说“虽然我会去解决这类问题,不过不是高优先级的工作。”他认为XFS开发者的看法也会类似。Christoph Hellwig很不赞同,他说XFS开发者会很重视修复损坏文件系统镜像场景下的问题,“虽然我们确实没法保证没bug”。Eric Biggers也认为这些可靠性问题是必须要处理的,“不过我理解我们之前这方面做的不够好,所以我们不应该用这样一个不公平的高标准来阻止一个新文件系统的合入”。

Hellwig的观点更加强烈,他觉得这个标准非常应该用在新文件系统上:

“我们没法强制什么人来修复旧文件系统的bug,不过我们能够用更高(一点点)的标准来阻止新的文件系统的合入。这是让文件系统部分的平均质量提升的唯一办法。就像代码风格格式一样,我们没法一下子修复所有旧的代码,但是我们通常都会确保新合入的代码是按照更高标准的。”

不过他没说清具体这些更高标准具体包含哪些,是不是应该要包含"在用了损坏的文件系统映像的情况下也要绝对可靠"。不过开发者看起来希望在这方面要有些作为了。就像Bigger说的:“如果开发者做得很仔细的话,通常来说代码都是很可靠的,并且他们也愿意修复这些报出来的问题,这已经就是咱们所能期望的最好结果了。”

EROFS能否满足了这个“看起来稳定”的标准?现在大家还没有达成一致。从另一个角度来说,大家也都相信EROFS开发者愿意尽快修复他们报出的bug。所以对于把EROFS从staging转为正式kernel支持的文件系统这件事来说,估计很快就能达成了。除非还有一些严重问题被报出来,否则如果只是当前这点小麻烦的话,应该很快能解决的。今后文件系统开发者都需要注意,reviewer会更加留意这类问题(针对磁盘上数据如果损坏情况下文件系统代码也要可靠)。

全文完

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

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

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

640?wx_fmt=jpeg

Linux 文件系统学习之 EROFS 源码阅读笔记 operation初始化 先看看 erofs 的 inode_operation 和 file_operation 以及 address_mapping_operation 分别初始化为结构体 static struct file_system_type erofs_fs_type = { .owner = THIS_MODULE, .name = "erofs", .init_fs_context = erofs_init_fs_context, .kill_ 阅读详情

相关推荐

华为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/d...

scnutiger的专栏 2万+

EROFS-华为超级文件系统浅析——(一)论文阅读

EROFS华为超级文件系统浅析之论文阅读

CongMingYi12306的博客 7263

ext4、ntfs、xfs、btrfs、zfs、f2fs和reiserFS文件系统性能对比

本文总结了文件系统 benchmark 的结果,给出各大文件系统的性能表现与对比,包含 ext4、ntfs、xfs、btrfs、f2fs、reiserFS 和 zfs 等常见文件系统在内,并给出文件系统性能结果分析,推理出各系统的适用场景。..................

林地宁宁的树洞 4万+

LWN:对EROFS的介绍!

关注了就能看到更多这么棒的文章哦~An introduction to EROFSBy Jake EdgeJune 7, 2023LSFMM+BPFDeepL assisted translationhttps://lwn.net/Articles/934047/Gao Xiang 在 2023 年 Linux 存储、文件系统、内存管理和 BPF 峰会的文件系统会议上对扩展只读文件系统 (EROF...

Linux News搬运工 2278

(Touch™)搭建 Windows 开发环境

> OpenHaptics 开发包参考文档。

置心一处,便无事不办 1500

别再为3D抓取发愁了!Halcon手眼标定保姆级教程(Eye-to-Hand模式,含完整代码)

本文提供Halcon手眼标定的保姆级教程,详细讲解Eye-to-Hand模式下的3D抓取实现方法。从硬件配置、坐标系系统到标定流程和核心算法,涵盖完整代码和实战经验,帮助用户快速掌握工业自动化中的精准抓取技术。

weixin_42523711的博客 269

05.Linux文件系统

◊基本框架: a) 什么是文件系统 b) 文件类型 c) Mount 与 umount d) 软连接 与 硬连接 1、 什么是文件系统 文件系统:磁盘组织文件的方法,比如 windows 下的 NTFS , FAT ...

weixin_30698297的博客 124

Python调用Google Trends官方数据接口实战指南

Google Trends作为全球最权威的搜索热度分析工具,其数据本质是公开、结构化、可编程访问的时序指标,而非需爬取的网页内容。其底层基于标准HTTP协议与JSON API交互,核心原理在于复现用户浏览器行为——通过/explore接口获取token,再凭token请求/widgetdata/multiline等端点获取归一化(0-100)时间序列数据。该技术路径规避了Selenium渲染依赖与非官方库的脆弱性,具备高稳定性、易调试、可监控等工程优势,广泛应用于竞品监测、内容选题验证、地域营销策略制定等业

weixin_29789925的博客 418

LWN:文件系统杂记:EROFS、NTFS 和 XFS

因此,在一个给定的机器上,一个 EROFS 文件系统通常会被挂载多次,并且可能存在同一个文件系统的多个细微差异的变体。针对新的 NTFS 实现,有用户质疑在安全意识日益增强的今天,是否有必要为了性能而放弃像 ntfs-3g 这样成熟的 FUSE 方案,转而使用可能增加攻击面的内核态驱动。EROFS 支持各种先进的文件系统特性,并提供高性能的数据压缩。在最近的消息中,EROFS 文件系统正朝着获得实用的页面缓存共享功能迈进,一个新的 NTFS 实现也即将问世,而 XFS 则可能很快就会获得一套自愈基础设施。

Linux News搬运工 181

解决Calibre中license的错误

本次解决了Calibre在Cadence 617 virtuoso版本中运行不了的错误,在遇到问题的时候,我也跟你们一样,首先是上网查询为什么运行不了呢?明明我安装了之后里面有Calibre的,我当时也是这样的疑惑,一点Calibre运行LVS的时候,一片空白,然后就出现了license的错误,后来点点点,看看看,搜搜搜,最终解决了这个问题。虚拟机是VMware16版本,cadence617,Calibre是2015版本。旨在记录遇到的实际问题。

yytu231的博客 1万+

伺服电机入门01

编码器输出 旋转信号 , 接收端: 使用ADC 捕捉旋转信号 ,转成数字信号,驱动器得到数字处理, 因为信号量是模拟信号, mcu mpu 等芯片通常内部处理是数字,通过adc 得到数字cpu 才能识别 传输过来的pos 等信息。IPM 芯片示例, IRAM256A 这个芯片已经停产,有换新的,,下面示例来自stmbl 高功率方案,4 步进电机 有全步控制,半步控制 ,微步控制,FOC控制,步进电机也是可以做伺服系统的。以下面几种信号是可以细分,也就是通过细分增加编码器的分辨率,

qq_25160559的博客 969

Huawei EROFS 初探

前言 华为作为中国代表性的技术型企业,一直在不断推出自己的技术实现,并努力推广到世界,这一点是非常值得称赞的。从大概上游Linux 4.19左右,邮件列表开始出现一个EROFS的东西,不断有邮件的往来。因为太小众,所以当时没有太留意,只是因为EROFS这个名字和写只读文件系统时返回的错误名字一样,所以就留下了印象,其实都没注意到是华为的人做的。最近华为推出新手机,并宣扬自己为手机系统新写的文件系...

Zorro Lang Red Space 3569

GPU运维工程师入门指南 (第九篇): 高性能网络 - InfiniBand与RDMA技术

本文介绍了支撑AI分布式训练的高性能网络技术InfiniBand和RDMA。传统TCP/IP网络因内核开销和内存拷贝成为性能瓶颈,而InfiniBand提供高带宽、低延迟的专用网络,RDMA则通过内核旁路和零拷贝技术实现节点间内存直接访问,显著提升通信效率。特别介绍了GPUDirect RDMA技术,使GPU显存可直接通信。文章还列举了运维人员在部署这些技术时需要考虑的硬件、驱动、配置和监控等关键点。这些技术共同构成了支撑大规模AI集群的"数据高速公路",为后续讨论存储性能瓶颈奠定了基础

weixin_42587823的博客 1096

华为发布EROFS文件系统

北京时间今日,XDA在援引自Phoronix的报道中表示,华为新发布了一个名为EROFS的Linux只读文件系统,将来可以用于安卓设备上。据悉,该文件系统是华为在文件系统上寻求的全新解决方案。EROFS全称为Extendable Read-Only File System(可译为“可扩展只读文件系统”),可提供比其他只读文件系统方案更好的性能,且可以节省存储空间。EROFS还提供了一种不同的压缩模...

qq_25660175的博客 3844

7.18 GART 与 GPUVM 对比:一颗 GPU 上两套页表的分工

本文横向对比AMD GPU上并存的GART与GPUVM两套页表。GART为内核专用,全局单一,线性单层结构,CPU同步直写;GPUVM为每进程48位地址空间,四级页表,含并发状态机,支持隔离与迁移。二者通过VMID区分,共享GMC硬件与PTE编码,分工互补。

图形/计算GPU的驱动与虚拟化技术分享园地 380

c#上位机最强教程之环境安装

本文介绍了.NET 6开发环境的安装配置指南。主要内容包括:1)安装.NET 6 SDK和Runtime的方法及验证步骤;2)Visual Studio 2022的安装流程;3)创建第一个.NET 6控制台项目;4)项目结构解析和配置文件说明。文章还提供了实践练习和常见问题解答,帮助初学者快速搭建开发环境并运行简单程序。适用于零基础开发者,学习时间约10分钟。

飞上云层 314

Linux内核5.4正式将华为EROFS超级文件系统合入主线

导读 近期,Linux内核5.4系列宣布全面可用,添加了许多新功能,更强的安全性和更新的驱动程序,以提供更好的硬件支持。Linux内核5.4增加对微软exFAT文件系统的支持,另外还支持内核锁定功能,该功能被实现为 Linux 安全模块,以限制某些应用程序访问内核。 根据最新消息,Linux内核5.4中也正式将华为EROFS超级文件系统合入了主线。 Linux 5.4将成为文件系统...

llawliet0001的专栏 1513

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

emmc dsp文件系统挂载_EMUI这项黑科技一定要细说!华为P30系列EROFS文件系统解密...

3月26号华为在法国巴黎发布了年度最新旗舰P30系列,除了花式逆天的拍照功能之外,系统本身的升级也值得一提。其中特别亮眼的是P30系列使用了EROFS文件系统,据称能显著提升文件访问性能,那其中究竟有何玄机呢?1. EROFS文件系统 是什么gui文件系统,听上去是个很专业的词汇。即使是最资深的科技粉,在看手机规格的时候,可能也不会注意到文件系统,顶多关注到闪存的接口是eMMC还是UFS,UFS又...

weixin_34357697的博客 1021

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ARM-Linux驱动--MTD驱动分析(三)

主机:Gentoo Linux 11.2 with linux kernel 3.0.6 硬件平台:FL2440(S3C2440)with linux kernel 2.6.35 原创作品,转载请标明出处http://blog.youkuaiyun.com/yming0221/article/details/7207908 *接上文ARM-Linux驱动--MTD驱动分析(二)

keep moving 1356

linux看物流内核命令,Linux内核5.4正式将华为EROFS超级文件系统合入主线

当前位置:主页 > 新闻快递 > 正文Linux内核5.4正式将华为EROFS超级文件系统合入主线11月28日消息 近期,Linux内核5.4系列宣布全面可用,添加了许多新功能,更强的安全性和更新的驱动程序,以提供更好的硬件支持。Linux内核5.4增加对微软exFAT文件系统的支持,另外还支持内核锁定功能,该功能被实现为 Linux 安全模块,以限制某些应用程序访问内核。根据最新消息...

weixin_29282577的博客 220

华为 linux文件系统,华为EROFS文件系统是什么

最近华为发布了其P30系列的手机,在发布会上宣称其采用了EROFS文件系统,那么华为EROFS文件系统是什么呢?下面小编就为大家带来华为EROFS文件系统介绍,感兴趣的小伙伴快来看看吧。华为EROFS文件系统介绍:打个比方,家里面有不同的储物空间,衣柜,储物柜,床头柜,橱柜等等。文件系统就是一个记录本,既知道什么东西存储在哪里,也知道哪里还有空间可以储藏什么物品,取东西就相当于读取数据,放东西就相...

weixin_39538962的博客 2506

LWN: mount文件系统后对ID重映射!

关注了就能看到更多这么棒的文章哦~ID mapping for mounted filesystemsBy Jonathan CorbetNovember 19, 2020DeepL a...

Linux News搬运工 824

EROFS 和 方舟 辩证的看 —— EROFS

EROFS 和 方舟 用辩证的来看 —— EROFS——唯物辩证法说:关于 EROFS 和 方舟文件系统说到 EROFS速度提升 ——唯物辩证法说: 一、新事物必然战胜旧事物 二、前途是光明的,道路是曲折的 注:因为唯物辩证法原文对新事物有定义,并不光是字面的意思。所以我们简单改成被字句更接近原意 —— 旧事物必然被新事物战胜。 回到技术角度来说,就是总会有新的技术取代旧的技术。 关于 ER...

kaisoft的专栏 1414

安卓EROFS (Read-only file system)的解决

  这几天测试后台待机,因为不能插电,所以要把信息记录到文件中。   然后反复出错。心里就纳闷了,因为图片是可以写的。   后来对比图片代码,找到了问题所在: new BufferedOutputStream(new FileOutputStream(file, true)) 这里的file,不能是String, 必须是File。  ...

柳鲲鹏 8723

linux提示 “软件包系统已损坏” 问题解决

今天启动ubuntu,发现无法安装软件,系统提示错误“软件包系统已损坏,检查您是否使用了第三方源。如果是就禁用它们,它们常常导致问题。 然后在终端中运行以下命令:apt-get install -f “。 执行apt-get install -f  后依然无法解决 后来检查发现之前下载更新系统的时候没有更新完就关机了 sudo apt-get clean  sudo ap

Super涌 9580

hadoop2.4.1格式化文件系统

hadoop2.4.1格式化文件系统失败原因之一

botaosin的专栏 686
上一篇: LWN: 要继续做unprivileged BPF这个方向吗?
下一篇: LWN: 让container更加安全
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值