总裁兼 CEO, Gentoo Technologies, Inc.
2001 年 11 月
Linux 的 2.4 发行版带来了使用多种新文件系统的可能性,包括 Reiserfs、XFS、GFS 以及其它文件系统。这些文件系统听起来很酷,但是它们到底能做什么,它们擅长于什么,还有,您到底如何着手在 Linux 生产环境下安全地使用它们呢?Daniel Robbins 通过向您展示如何在 Linux 2.4 上设置这些新的高级文件系统来回答这些问题。在这一部分,Daniel 研究了 ext3,它是 ext2 的新改进版,具有日志记录能力。
在前面几部分中,我们花费了一些精力去研究非传统文件系统(譬如 tmpfs 和 devfs)。现在,是时候回到基于磁盘的文件系统上来了,我们将通过研究 ext3 来实现这个目的。ext3 文件系统(由 Stephen Tweedie 博士设计)构建在现有的 ext2 文件系统的框架上;实际上,除了一个微小(但重要)的区别 ― ext3 支持日志记录以外,ext3 和 ext2 非常相似。但正是因为具有了这个小小的增加,您会发现 ext3 具有几种令人惊讶和富有吸引力的能力。在本文中,我将让您充分了解与当前可用的其它日志记录文件系统相比,ext3 有哪些优缺点。在我的下一篇文章中,我们将设置和运行 ext3。
理解 Ext3
那么,与 ReiserFS 相比,ext3 到底如何呢?在以前的文章中,我解释了 ReiserFS 是如何充分适合处理小文件的(4K 以下),并且,在某些情况下,ReiserFS 处理小文件的能力比 ext2 和 ext3 强十到十五 倍。但尽管 ReiserFS 有许多长处,它还是有弱点。在当前的 ReiserFS(版本 3.6)实现中,与 ext2 和 ext3 相比,尤其是读取大的邮件目录时,特定文件访问模式实际上可能导致 特别糟糕的性能。还有,ReiserFS 没有好的 NFS 兼容性跟踪记录,同时稀疏文件性能也较差。 相反,ext3 是一个非常 全面的文件系统。ext3 很象 ext2;它不会为您提供象 ReiserFS 那样特别快的小文件性能,但是,它也不会给您带来意外的性能或功能性瓶颈。
ext3 最妙的特性之一是:因为 ext3 基于 ext2 的代码,所以它的磁盘格式和 ext2 的相同;这意味着,一个干净卸装的 ext3 文件系统可以作为 ext2 文件系统毫无问题地重新挂装。并且不仅如此。应该感谢 ext2 和 ext3 都使用相同的元数据,因而有可能执行 ext2 到 ext3 文件系统的现场升级。是的,您的理解是正确的。通过升级一些关键系统实用程序、安装新的 2.4 内核,并在每个文件系统上输入单条 tune2fs 命令,就可以把现有的 ext2 服务器转换成日志记录 ext3 系统。甚至可以在 ext2 文件系统 已挂装的情况下进行这些操作。转换是安全的、可逆的、并且令人难以置信地简单,和到 XFS、JFS 或 ReiserFS 的转换不同,您不必备份和从头创建文件系统。现在花一些时间思考一下,有数以千计的 ext2 生产服务器,只要几分钟时间就能升级到 ext3;那么,您就会充分理解 ext3 对于 Linux 社区的重要性了。
如果非要用一个词来描述 ext3,我会说“舒适”。在已有的 ext2 系统上安装启用 ext3 的过程轻松得令人难以置信,并且升级以后,也不会导致任何意外的性能急剧下降。并且,ext3 在舒适方面还有一个优点,那就是,ext3 恰巧又是 Linux 可用的最 可靠的日志记录文件系统之一,我将在下面解释这一点。