Linux日志文件系统剖析
在近代历史上,日志文件系统被认为十分奇特,主要是处于研究阶段.而如今,日志文件系统(ext3)已经成为 Linux 的缺省文件系统.本文向大家揭示了日志文件系统背后的一些思想,以及在电源故障或系统崩溃时,如何提供更好的完整性.此外本文还介绍了现行的几种日志文件系统和下一代日志文件系统. fsck 问题 更麻烦的是,为了确保文件系统元数据的正确性(即使未检测到损坏),操作系统会自动启动 fsck 进程.因此,避免对文件系统进行一致性检验正是需要改进的地方.
总之,日志文件系统就是一种具有故障恢复能力的文件系统,它利用日志来记录尚未提交到文件系统的修改,以防止元数据破坏(请参见图 1).但是如众多其他 Linux 解决方案一样,日志文件系统有多种方案供您选择.下面就让我们一起简短回顾一下日志文件系统的历史,然后再看一看现行的几种文件系统,看看它们之间有什么区别. 什么是元数据? 元数据 指磁盘上的数据的管理结构.它表示文件的创建与删除、目录的创建与删除、扩充文件、截取文件等.
图 1. 典型的日志文件系统
最早的日志文件系统是 IBM? Journaled File System(JFS).JFS 于 1990 年首次发行,而当前 Linux 支持的版本是后期开发的 JFS2.1994 年,Silicon Graphics 为 IRIX 操作系统引进了高性能的 XFS.XFS 于 2001 年被植入 Linux 系统中.1998 年开发的智能文件系统(SFS)起初是为 Amiga 开发的,但之后却在 GNU Lesser General Public License(LGPL)下发行,并于 2005 年获得了 Linux 的支持.最常用的日志文件系统 ext3fs (third extended file system)是 ext2 的扩展,它增加了记录日志的功能.从 2001 年起,Linux 系统中就开始支持 ext3fs.最终,ReiserFS 日志文件系统在其被引入之后,力压群雄,被广泛使用.但 日志的几种变体
日志文件系统是使用日志来缓冲文件系统的修改(同时也可以应用于紧急故障恢复)的,但可以根据记录的时间与内容采取不同的策略.其中,三种常见的策略为:回写(writeback)、预定(ordered)和数据(data). 在回写模式 中,仅有元数据被记录到日志,数据块则被直接写入到磁盘位置上.这样可以保存文件系统结构,防止崩溃,但却有可能发生数据崩溃(比如:在元数据记录到日志后,数据块写入磁盘前,系统崩溃).要想解决这个问题,您可以使用预定模式.预定模式 只将元数据记录到日志,但是在此之前将数据写入到磁盘.这样就可以保证系统恢复后数据和文件系统的一致性. |
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |