Chinaunix

标题: JBD2(journaling block device 2)系统分析(一) [打印本页]

作者: dessasic    时间: 2009-09-08 23:41
标题: JBD2(journaling block device 2)系统分析(一)
    自从Linux系统引入了Ext4文件系统了,就有一个JBD2为之服务,其实JBD2也可以为其它的文件系统服务,但是目前来说只有Ext4和OCFS2文件系统用它。JBD2作用的原理是在Ext4文件系统把数据提交到驱动前先调用它,JBD2根据系统的不同设置来完成数据或是操作的备份后,再让Ext4系统提交数据,当文件系统把数据写入了设备后,就通过JBD2把刚才数据或是操作备份删除,这样来保证数据的一致性。作用的流程如下:

如果没有JBD2,Ext4的流程是红线;如果有则是绿线。下面对图的1-5阶段做介绍。

1、  在数据准备提交的时候,先由JBD2根据系统设置的不同(writeback, ordered, journal)把对数据的操作写入备份,如果在这之前或是还没写完的时候系统发生了故障(如断电),那么在系统下次完整性检查时就把这些日志数据删除,而不对文件系统做任何改变。

2、  如果到这一步,说明备份数据已经写完,在以后的任何一步发生故障,系统都能根据日志把完整的备份数据写到相应的文件系统里去。当然这些完整情只能保证一个原子操作不完整性。假如你在拷贝一个600M的电影,一个原子操作是10M,那么JBD2系统只能保证下在提交的10M的数据的完成性,页不能保证这个电影的完整性。

3、如果到这一步发生故障,那么数据还没有写入设备,或是没有完全写入设备,那么下次进行完整性检查时就会把数据补全,然后执行4-5这个两个。4、5也一样的,不过起点不一样,终点都一样的,所谓的殊途同归。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/95949/showart_2048632.html
作者: disaster513    时间: 2015-07-14 14:13
原链接的流程图看不到了,达人再发一次吧




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2