你了解过Linux日志文件系统?.doc
《你了解过Linux日志文件系统?.doc》由会员分享,可在线阅读,更多相关《你了解过Linux日志文件系统?.doc(6页珍藏版)》请在三一文库上搜索。
1、你了解过Linux日志文件系统?在近代历史上,日志文件系统被认为十分奇特,主要是处于研究阶段。而如今,日志文件系统(ext3)已经成为 Linux 的缺省文件系统。本文向大家揭示了日志文件系统背后的一些思想,以及在电源故障或系统崩溃时,如何提供更好的完整性。此外本文还介绍了现行的几种日志文件系统和下一代日志文件系统。定义日志文件系统的方法有很多种,但是让我们抓住要点。日志文件系统就是专为那些厌倦了一直盯着启动时 fsck(即文件系统一致性检查)的人而设计的(日志文件系统同样适用于希望文件系统具有故障恢复能力的群体)。如果系统采用传统的未提供日志功能的文件系统,那么操作系统在检测到系统为非正常关
2、机时,会使用 fsck 应用程序执行一致性检验。该应用程序会扫描文件系统(这要花费很长的时间),并修复任何可安全修复的问题。而在某些情况下,当文件系统损坏严重时,操作系统会启动到单用户模式,由用户进行进一步的修复。fsck 问题更麻烦的是,为了确保文件系统元数据的正确性(即使未检测到损坏),操作系统会自动启动 fsck 进程。因此,避免对文件系统进行一致性检验正是需要改进的地方。那么现在您应该清楚日志文件系统针对的是哪类人群了,但是他们是如何取缔 fsck 的呢?笼统地说,日志文件系统就是通过维护一份日志来防止文件系统崩溃。所谓日志就是一种特殊的文件,它会在一个循环的缓冲区内记录文件系统的修改
3、,然后将其定期提交到文件系统。一旦系统发生崩溃,日志文件就会起到一个检查点的作用,用于恢复未保存的信息,防止损坏文件系统元数据。总之,日志文件系统就是一种具有故障恢复能力的文件系统,它利用日志来记录尚未提交到文件系统的修改,以防止元数据破坏(请参见图 1)。但是如众多其他 Linux 解决方案一样,日志文件系统有多种方案供您选择。下面就让我们一起简短回顾一下日志文件系统的历史,然后再看一看现行的几种文件系统,看看它们之间有什么区别。什么是元数据?元数据 指磁盘上的数据的管理结构。它表示文件的创建与删除、目录的创建与删除、扩充文件、截取文件等。图 1. 典型的日志文件系统Linux 日志文件系统
4、的历史最早的日志文件系统是 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 extend
5、ed file system)是 ext2 的扩展,它增加了记录日志的功能。从 2001 年起,Linux 系统中就开始支持 ext3fs。最终,ReiserFS 日志文件系统在其被引入之后,力压群雄,被广泛使用。但由于其原开发者的一些法律纠纷,ReiserFS 日志文件系统未能得到进一步的发展。日志的几种变体日志文件系统是使用日志来缓冲文件系统的修改(同时也可以应用于紧急故障恢复)的,但可以根据记录的时间与内容采取不同的策略。其中,三种常见的策略为:回写(writeback)、预定(ordered)和数据(data)。在回写模式 中,仅有元数据被记录到日志,数据块则被直接写入到磁盘位置上。这
6、样可以保存文件系统结构,防止崩溃,但却有可能发生数据崩溃(比如:在元数据记录到日志后,数据块写入磁盘前,系统崩溃)。要想解决这个问题,您可以使用预定模式。预定模式 只将元数据记录到日志,但是在此之前将数据写入到磁盘。这样就可以保证系统恢复后数据和文件系统的一致性。最后一种模式将数据也记录到了日志中。在数据模式 中,元数据和数据都被记录到日志中。这种模式可以最大限度地防止文件系统崩溃与数据丢失,但由于全部数据都写入了两次(先写入日志,再写入磁盘),系统性能可能会降低。日志的提交也有很多种不同的策略。比如,是在日志将满时,还是在超时后?日志文件系统的现状如今,有几种日志文件系统应用非常广泛。每一种
7、都有其自己的优缺点。下面介绍现存最普遍的四种日志文件系统。JFS2JFS2(又称 enhanced journaled file system)是最早期的日志文件系统,在植入 Linux 之前已被应用于 IBM AIX 操作系统多年。它是 64 位的文件系统,虽然它是在原来的 JFS 的基础上开发的,但却较之有所改进,即:JFS2 具有更优的扩展性能,而且支持多处理器架构。JFS2 支持预定的日志记录方式,可以提高较高的性能,并实现亚秒级文件系统恢复。JFS2 同时为提高性能提供了基于分区的文件分配(Extent-based allocation)。基于分区的分配 是指对一组连续的块而非单一的
8、块进行分配。由于这些块在磁盘上是连续的,其读取和写入的性能就会更好。这种分配的另外一个优势就是可以将元数据管理最小化。按块分配磁盘空间就意味着要逐块更新元数据。而使用分区,元数据则仅需按照分区(可以代表多个块)更新。JFS2 还使用了 B+ 树,以便更快地查找目录和管理分区描述符。JFS2 没有内部日志提交策略,而是在 kupdate 守护进程超时时提交。XFSXFS 是 Silicon Graphicsis 于 1995 年为 IRIX 操作系统开发的其他早期日志文件系统之一。它于 2001 年就已经被植入 Linux,因此,它已经成熟而且可靠。XFS 支持 64 位全地址寻址,并以 B+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 了解 Linux 日志 文件系统
链接地址:https://www.31doc.com/p-3381568.html