关于android文件系统ext4模式ordered,journal,writeback

来源:互联网 发布:网络应急预案演练过程 编辑:程序博客网 时间:2024/05/17 08:46

对于android的内部存储, 比如格式化为private模式,即sm partition disk private,默认这种格式化是不带日志的)但是可以更改vold的源代码里面的fs/ext4.cpp文件,注释掉cmd.push_back("-J");这句即可带上日志。(-J表示不带日志)这种情况下,会以ordered mode模式格式化。

在android 系统中ext4有三种模式:ordered,journal,writeback。

明白这三种模式的区别前,首先应该了解ext4格式的原理。

文件在ext4中分两部分存储,一部分是文件的metadata,另一部分是data。
metadata和data的操作日志journal也是分开管理的。你可以让ext4记录metadata的journal,而不记录data的journal。
这取决于mount ext4时的data参数
因此,这三种mode的区别是:
1. data=journal
在将data写入文件系统前,必须等待metadata和data的journal已经落盘了。性能最差,并且不支持文件操作的delalloc,O_DIRECT flag (参考 man open)。
2. data=ordered
这个模式不记录data的journal,只记录metadata的journal日志,但是在写metadata的journal前,必须先确保data已经落盘。

3. data=writeback
不记录data journal,仅记录metadata journal。并且不保证data比metadata先落盘。


原创粉丝点击