作为ext2的改进版本,ext3和ext2文件系统相比,最大的改进就是引入了journal功能,这在既提高了文件系统数据和元数据的一致性,又大大缩短了数据一致性检查和恢复的时间。
ext3文件系统的mount 选项
只读模式:ro
journal选项: journal=update/inum
journal_dev=devmum
norecovery/noload:不挂载日志分区,可能会挂载上inconsistent file-system.
数据模式:data=journal/ordered/writeback
writeback:
data/meta-data同步间隔:commit=nrsec
默认是5秒,表示每隔5s sync 它所有的data和meta-data ,这个5s间隔是指把journal里面的内容每刷一次的间隔.
JBD (journal block device laywer)设置: barrier=<0/1> or nobarrier
Write barriers enforce proper on-disk ordering of journal commits, making volatile disk write caches safe to use, at some performance penalty.
其他选项:
acl/noacl/data_err=ignore/abort/quota
ext3的Journaling Block Device layer (JBD)
非ext3专有,它的功能是为了支持块设备的日志功能。ext3 file-system会高速JBD它正在做的修改,JBD的日志支持日志记录的开始、停止和重放操作。
ext3的data mode
Ext3 journal中有详细的介绍,根据kernle里的文档,可以归纳为下面三种:
Jouranl 内容 | Replay 策略 | 数据可靠性 | 性能 | |
data=writeback | No | No | 差 | 好 |
data=journal | Metadata + data | 新数据先被记录到Journal, 最后才写到它的最终位置 | 好 | 差 |
data=ordered | metadata | 记录metadata和其对应的data作为一个transaction; 重放的时机到,先把data 落盘 | 较好 | 较好 |
工具和参考
Tool
tune2fs: create a ext3 journal on a ext2 partition with the -j flag.
mke2fs: create a ext3 partition with the -j flag.
debugfs: ext2 and ext3 file system debugger.
ext2online: online (mounted) ext2 and ext3 filesystem resizer
References
kernel source: <file:fs/ext3/>
<file:fs/jbd/>
programs: http://e2fsprogs.sourceforge.net/
http://ext2resize.sourceforge.net
useful links: http://www.ibm.com/developerworks/library/l-fs7/index.html
http://www.ibm.com/developerworks/library/l-fs8/index.html
转载于:https://blog.51cto.com/xiamachao/1918605