ext3文件系统的日志.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ext3文件系统的日志

EXT3文件系统的日志 TOC \o 1-4 \h \z \u HYPERLINK \l _Toc269916324 1 基本概念和作用 PAGEREF _Toc269916324 \h 1 HYPERLINK \l _Toc269916325 2 日志的基本原理 PAGEREF _Toc269916325 \h 1 HYPERLINK \l _Toc269916326 3 日志的三种模式 PAGEREF _Toc269916326 \h 2 HYPERLINK \l _Toc269916327 4 日志的数据结构 PAGEREF _Toc269916327 \h 4 HYPERLINK \l _Toc269916328 4.1 概述 PAGEREF _Toc269916328 \h 4 HYPERLINK \l _Toc269916329 4.2 日志超级块 PAGEREF _Toc269916329 \h 5 HYPERLINK \l _Toc269916330 4.3 描述块 PAGEREF _Toc269916330 \h 7 HYPERLINK \l _Toc269916331 4.4 提交块 PAGEREF _Toc269916331 \h 8 HYPERLINK \l _Toc269916332 4.5 撤消块 PAGEREF _Toc269916332 \h 8 HYPERLINK \l _Toc269916333 5 实例分析 PAGEREF _Toc269916333 \h 8 基本概念和作用 文件系统的一致性:块位图、inode位图、inode指向的数据块、实际的数据块,这些元素要保持一致。 向文件中写进新的内容,文件占用了更多的块,块位图更新了,但inode还没有来得及更新,导致一些块被标明已使用,但不知道是哪个文件占用的。 作用:日志文件系统在系统崩溃恢复方面更加有效率,只是简单的扫描日志文件并重做那些未完成的文件操作,就可以把文件系统恢复至一致的状态。 日志的基本原理 Ext3 文件系统本身不处理日志,而是利用日志块设备层(Journaling Block Device Layer)或叫JBD 的通用内核层提供的API。JBD致力于提供各种块设备上的日志实现,目前仅有Ext3文件系统使用它来管理日志,Ext3通过调用JBD的API来实现日志功能。举例来说,Ext3代码会将它正在执行的修改操作通知给JBD,在修改磁盘上特定数据之前要取得JBD的许可。作为对Ext3驱动所做操作的回应,JBD会在适当的时候来管理日志。Ext3 与JDB 之间的交互本质上基于三个基本单元:日志记录,原子操作和事务。 日志记录本质上是文件系统将要发出的低级操作的描述。在某些日志文件系统中,日志记录只包括操作所修改的字节范围及字节在文件系统中的起始位置。然而,JDB 层使用的日志记录由低级操作所修改的整个缓冲区组成。这种方式可能浪费很多日志空间(例如,当低级操作仅仅改变位图的一个位时),但是,它还是相当快的,因为JBD 层直接对缓冲区和缓冲区首部进行操作。 修改文件系统的任一系统调用都通常划分为操纵磁盘数据结构的一系列低级操作。如果这些低级操作还没有全部完成系统就意外宕机,就会损坏磁盘数据。为了防止数据损坏,Ext3文件系统必须确保每个系统调用以原子的方式进行处理。原子操作是对磁盘数据结构的一组低级操作,这组低级操作对应一个单独的高级操作。 出于效率的原因,JBD 层对日志的处理采用分组的方法,即把属于几个原子操作处理的日志记录分组放在一个单独的事务中。此外,与一个处理相关的所有日志记录都必须包含在同一个事务中。一个事务的所有日志记录都存放在日志的连续块中。JBD层把每个事务作为整体来处理。例如,只有当包含在一个事务的日志记录中的所有数据提交给文件系统时才回收该事务所使用的块,因此日志是循环使用的。 如果事务数据已经写进日志之后,但在实际操作之前或期间发生系统错误,那么在下一次装载文件系统时,将会继续执行未作的操作。如果事务数据尚未写进日志就发生系统错误,则数据会丢失,但文件系统会继续保持一致性。 日志的三种模式 在Ext3文件系统中,日志由三种模式:完全、顺序、写回。 完全:将元数据和数据先写进日志,然后在写进相应的磁盘位置。既这种模式需要把数据写进磁盘两次。 顺序:先将数据写进磁盘,在把元数据写进日志、再把元数据写进磁盘。 写回:把数据写进磁盘、元数据先写进日志,再写进磁盘,但数据和元数据的写入没有固定的先后顺序。这种形式可以保证元数据的一致性,但不能保证数据的一致性。 一般情况下,性能最好的是写回,最差的是完全。但在异步随机写时,完全日志的性能会最好。因为写进日志时不需要随机写

文档评论(0)

word.ppt文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档