Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95190
  • 博文数量: 14
  • 博客积分: 601
  • 博客等级: 中士
  • 技术积分: 247
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-05 14:26
文章分类

全部博文(14)

文章存档

2010年(3)

2009年(11)

我的朋友

分类: LINUX

2009-09-08 23:41:22

    自从Linux系统引入了Ext4文件系统了,就有一个JBD2为之服务,其实JBD2也可以为其它的文件系统服务,但是目前来说只有Ext4OCFS2文件系统用它。JBD2作用的原理是在Ext4文件系统把数据提交到驱动前先调用它,JBD2根据系统的不同设置来完成数据或是操作的备份后,再让Ext4系统提交数据,当文件系统把数据写入了设备后,就通过JBD2把刚才数据或是操作备份删除,这样来保证数据的一致性。作用的流程如下:

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

 

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

 

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

 

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

上一篇:没有了

下一篇:JBD2(journaling block device 2)系统分析(二)

给主人留下些什么吧!~~