Linux的日志文件系统简要剖析

  在近代历史上,日志文件系统被认为十分奇特,主要是处于研究阶段。而如今,日志文件系统(ext3)已经成为 Linux 的缺省文件系统。本文向大家揭示了日志文件系统背后的一些思想,以及在电源故障或系统崩溃时,如何提供更好的完整性。此外本文还介绍了现行的几种日志文件 系统和下一代日志文件系统。

  定义日志文件系统的方法有很多种,但是让我们抓住要点。日志文件系统就是专为那些厌倦了一直盯着启动时 fsck(即文件系统一致性检查)的人而设计的(日志文件系统同样适用于希望文件系统具有故障恢复能力的群体)。如果系统采用传统的未提供日志功能的文件系统,那么操作系统在检测到系统为非正常关机时,会使用 fsck 应用程序执行一致性检验。该应用程序会扫描文件系统(这要花费很长的时间),并修复任何可安全修复的问题。而在某些情况下,当文件系统损坏严重时,操作系统会启动到单用户模式,,由用户进行进一步的修复。

  那么现在您应该清楚日志文件系统针对的是哪类人群了,但是他们是如何取缔 fsck 的呢?笼统地说,日志文件系统就是通过维护一份日志来防止文件系统崩溃。所谓日志就是一种特殊的文件,它会在一个循环的缓冲区内记录文件系统的修改,然后 将其定期提交到文件系统。一旦系统发生崩溃,日志文件就会起到一个检查点的作用,用于恢复未保存的信息,防止损坏文件系统元数据。

  总 之,日志文件系统就是一种具有故障恢复能力的文件系统,它利用日志来记录尚未提交到文件系统的修改,以防止元数据破坏(请参见图 1)。但是如众多其他 Linux 解决方案一样,日志文件系统有多种方案供您选择。下面就让我们一起简短回顾一下日志文件系统的历史,然后再看一看现行的几种文件系统,看看它们之间有什么 区别。

图 1. 典型的日志文件系统

  Linux 日志文件系统的历史

  最 早的日志文件系统是 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 日志文件系统未能得到进一步的发展。

用敬业的精神去面对每一份挑战,

Linux的日志文件系统简要剖析

相关文章:

你感兴趣的文章:

标签云: