当前位置:嗨网首页>书籍在线阅读

08-ReiserFS

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

9.5 ReiserFS

在一些桌面发行版中,比如SuSE和Gentoo,ReiserFS文件系统已经很流行了。Reiser4是这个日志文件系统的当前实现版本。和ext3文件系统一样,对于一个给定的文件系统操作,ReiserFS要么能够保证所有的操作全部完成,要么不执行任何操作。和ext3不同的是,Reiser4为系统程序员提供了一个API(应用程序接口),以保证文件系统事务的原子性。考虑下面这个例子:一个数据库程序正忙于更新数据库中的记录,并向文件系统发起了几个写操作。在第1个写操作完成后,断电了,此时最后一个写操作还没有完成。日志文件系统可以保证对元数据的修改已经记录到日志文件中了,所以当系统再次加电时,内核至少能够确立文件系统的一致性状态。也就是说,如果在供电故障前文件A的大小为16 KB,那么之后它的大小也是16 KB,并且代表这个文件的目录项(实际上是inode)也正确记录了文件的大小。然而,这并不意味着文件数据已经正确地写入文件中了;它只表示文件系统没有错误。实际上,在前面的场景中,数据有可能被数据库程序丢弃了,并且需要依靠数据库自身的逻辑来恢复丢失的数据(如果有可能恢复的话),实际上,有时确实可以恢复。

Reiser4实现了一组高性能的“原子”文件系统操作,这些操作用于保护文件系统的状态(它的一致性)以及文件系统操作中涉及的数据。Reiser4提供了一个用户层的API,使应用程序,比如数据库管理软件,能够向文件系统发起写命令,并保证这个命令要么完全成功要么失败。这不仅保证了文件系统的一致性,也保证了在系统崩溃后,文件中不会遗留不完整的数据或垃圾数据。

想要了解ReiserFS的更多细节和实际软件,请参考本章末尾的文献。