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 日志文件系统在其被引入之后,力压群雄,被广泛使用.但其原开发者的一些法律纠纷,ReiserFS 日志文件系统未能得到进一步的发展. 日志的几种变体
日志文件系统是使用日志来缓冲文件系统的修改(同时也可以应用于紧急故障恢复)的,但可以根据记录的时间与内容采取不同的策略.其中,三种常见的策略为:回写(writeback)、预定(ordered)和数据(data). 在回写模式 中,仅有元数据被记录到日志,数据块则被直接写入到磁盘位置上.这样可以保存文件系统结构,防止崩溃,但却有可能发生数据崩溃(比如:在元数据记录到日志后,数据块写入磁盘前,系统崩溃).要想解决这个问题,您可以使用预定模式.预定模式 只将元数据记录到日志,但是在此之前将数据写入到磁盘.这样就可以保证系统恢复后数据和文件系统的一致性.一种模式将数据也记录到了日志中.在数据模式 中,元数据和数据都被记录 |
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |