Chinaunix首页 | 论坛 | 博客
  • 博客访问: 40716
  • 博文数量: 9
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2015-06-17 14:56
文章分类

全部博文(9)

文章存档

2015年(9)

我的朋友

分类: LINUX

2015-06-17 14:58:45

    自从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也一样的,不过起点不一样,终点都一样的,所谓的殊途同归。
阅读(2137) | 评论(0) | 转发(0) |
0

上一篇:没有了

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

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