在 Linux 中使用 ReiserFS 文件系统为敢于冒险者设计的替代型高级文件系统 |
级别: 中级 Chris Herborth ([email protected]), 顾问, 自由作家 2006 年 5 月 25 日 查 看 ext2(第二版扩展文件系统)、ext3(第三版扩展文件系统)和 Reiser4 文件系统,并研究如何创建您自己的 Reiser4 文件系统。ext2 是最常用的文件系统,也是传统 UNIX® 风格的文件系统,它对最新式硬盘大小的兼容性不是很好。ext3 文件系统添加了日记记录功能,而其他方面并没有多大变化。如果您想获得真正的高级技术,那么您可能打算研究最近的 Reiser4 文件系统。 引言 九十年代早期我曾为当时所使用的计算机花了很多钱购买了一块 80MB 的大容量(在当时是这样)硬盘,从那时起,文件系统和硬盘就总是很令我着迷。让我乐在其中的事情就是通过总线来回传输大块的数据,读取和写入大量的文件,并进行标准检查。 也许您并不像我这样沉迷于硬盘和那些跟踪文件、目录的软件,但是您至少会关心如何保护数据安全、高效地使用驱动器、以及从系统贫瘠的 I/O 子系统中设法挤出尽可能多的性能。 是的,我把它称作“贫瘠”。除非您有大笔的资金用来购买非同一般的硬件,否则与 CPU、RAM 和显示卡等设备相比,磁盘 I/O 子系统方面取得的进步非常之小。著名的摩尔定律在这里并不适用,它仅适用于微型磁学和高级制造过程。 作为使用最广泛的操作系统,Linux® 具有对各种不同文件系统最好的支持。Linux 在这方面和其他的 UNIX® 系统不同,这些 UNIX 系统传统上只支持它们的本机文件系统和在标准的 CD-ROM 中使用的 ISO-9660 文件系统。我的 Fedora Core 4 系统具有支持二十几种文件系统的可加载式内核模块。它们主要用来提供良好的兼容性。您可以将磁盘插入到几乎任何其他的系统中,并在 Linux 中对其进行操作。但是如果您正在向 Linux 系统添加另一块磁盘,并且不打算让它和 Windows®、QNX、Mac OS X 或者 Minix 通信,那么应该怎么办呢? 您至少需要了解一些关于常用的 Linux 文件系统的基本知识,如 ext2(第二版扩展文件系统)、ext3(第三版扩展文件系统)和 ReiserFS 4(一种支持许多独特特性的有趣的、高级的文件系统,这些特性可以提高系统的文件处理能力)。
开始之前 如果您所运行的 Linux 分发版恰好不支持 Reiser4(如 Arch、Linspire 或 SUSE),那么您需要完成下列这些可能很棘手的工作:重新编译您的内核。如何对内核进行重新编译,这本身就可以作为一个单独的教程,您需要查找所使用的 分发版的“How-to”文章,它将引导您完成重新编译内核所需的步骤。 在您实际开始编译全新的 Linux 内核之前,还需要访问 Reiser4 在 Namesys 的主页(请参阅参考资料)并为您的内核下载 Reiser4 修补程序。这些修补程序中说明了在配置和编译内核之前应该如何应用它们。 所以,您将可以创建和操作 Reiser4 文件系统,请确保已经安装了 Reiser4progs 包。此外,如果您的分发版中没有 Resier4progs,请浏览 Namesys 站点以下载这个软件包(请参阅参考资料)。 如果您想对 Reiser4 进行简单的试验,可以使用支持 Reiser4 的优秀的 Gentoo Linux Live CD。请参阅参考资料部分中相应的链接。
Linux 文件系统 在 Linux 诞生之初(实际上是在 1993 年末),其内核只支持一种文件系统,即非常微型的 Minix 文件系统的入口。这种文件系统有一些缺点,包括 14 个字符的文件名和最大 64MB 的文件系统大小。它甚至不支持 UNIX 文件系统属性全集,特别是符合 POSIX(可移植操作系统接口)文件系统的全集中所需的创建、修改和访问时间戳。 因为 Minix 文件系统的这些局限性,所以人们开始研究替代的文件系统,并产生了附加的虚拟文件系统 (VFS) 抽象层,该抽象层使得 Linux 能够更容易地读取文件系统中的数据。使用新的 VFS,Minix 文件系统允许使用更长的文件名和更大的文件系统容量(最大可到 2 GB)。这就成为了扩展文件系统 (ext),但它仍然具有其局限性。 相应的解决方案是 ext2,现在许多系统中仍然使用这种文件系统,它在相当长的时间内一直作为 Linux 中缺省的文件系统。通过在 ext2 文件系统中添加日记记录功能以对其进行改进,这样就创建了 ext3 文件系统作为其后继文件系统。 ReiserFS(也称为 Reiser3 文件系统)是 Linux 中第一种支持日记记录和更高效磁盘使用率的高级文件系统,它比 Linux 中使用的任何其他进行日记记录的文件系统都早。它的后继文件系统 Reiser4,对其进行了彻底的重新设计和重新编写,在维护数据安全和高效的同时,主要关注于扩展性、安全性和性能。Reiser4 目前尚未集成到 Linux 2.6 内核中,这表示了可能存在不稳定性或其他需要逐步过渡的原因。无论您所使用的是何种文件系统,请记住对重要的数据进行备份。 让我们来简单地看一下 ext2、ext3 和 Reiser4 文件系统。 传统的文件系统:ext2 ext2 文件系统是 Linux 的缺省文件系统,也是传统的 UNIX 文件系统(即基于 Berkeley 的快速文件系统,FFS)。在 ext2 中,文件名最大长度为 255 个字符,并且理论上的最大文件系统大小为 4 TB。(Linux 的块设备驱动器则不能超过 2047 GB,什么时候可以买到具有如此之大的存储空间的单块磁盘,别忘了告诉我一声)。 由于其使用广泛,市场上出现了针对 Windows 和 Mac OS X 的 ext2 驱动器,允许您直接从这些操作系统中读取和写入 ext2 文件系统,这使它成为了共享设备(如移动硬盘)极好的格式。 ext2 文件系统支持所有的标准 UNIX 特性:
ext2 文件系统的最大缺点在于,与其最初的设计相比,硬盘的大小变大了许多。系统崩溃或出现电源故障后,需要使用 传统的但包括日记记录功能的文件系统:ext3 Linux 的 ext3 文件系统是大部分流行分发版的新的缺省文件系统。与 ext2 相比,它增加了:
尽管与其竞争者(如 Reiser3 或 SGI 优秀的 XFS)相比,ext3 速度并不块,并且可伸缩性也不是很好,但是因为大量成熟的 ext2 维护和管理实用工具的存在,所以对 ext2 的良好兼容性使得它更具有吸引力。 蝙蝠侠跑车式的选择:Reiser4 在 Reiser3 文件系统因为其速度和日记记录支持(甚至到现在,它仍是许多 Linux 分发版的缺省文件系统)而获得普遍认可之后,它的设计人员并不满足。于是对其进行了重写,从而得到了 Reiser4,其中添加了一些附加的并且有趣的特性:
但请稍等,为什么我把它称为蝙蝠侠跑车式的选择呢?Reiser4 支持许多有趣的特性,但这些特性您可能根本不需要使用或者甚至无法使用,因为 Linux 的 VFS 层并没有公开其功能,这就像蝙蝠侠跑车,虽然它具有各种各样的功能,但是您在上班途中根本用不上这些功能。
开始使用 Reiser4 在使用 Reiser4 文件系统进行任何有趣的工作之前,首先您需要用它来格式化一个分区。如图 1 所示,我有一个专门用于该用途的空闲分区: 图 1. 等待进行格式化的分区 您需要在这个分区上创建新的 Reiser4 文件系统,并且将它装入。 创建 Reiser4 文件系统 要创建该文件系统,您需要以 root 用户登录(或使用sudo 命令来模拟 root 用户),并使用 mkfs.reiser4 命令:
这个命令在指定分区(在我的示例中是 /dev/hda1)上创建了 Reiser4 文件系统,并且具有卷标“myLabel”和一个随机的唯一标识符,如图 2 所示。 图 2. 创建 Reiser4 文件系统 等待着我们的是一个全新的、空白的 Reiser4 文件系统!让我们将它装入,以便可以真正地使用它。 将它装入 要装入这个新的文件系统,您需要以 root 用户登录(或使用
首先使用 您可以使用不带参数的 图 3. 已装入的文件系统,包括 Reiser4 既然已经装入了新的文件系统,您应该确保系统能够自动地装入这个文件系统。 自动地装入该文件系统 要让系统自动地装入新的 Reiser4 卷,您需要在 /etc/fstab 文件中对其进行描述。 以 root 用户登录(或使用
在 /etc/fstab 中,需要为您的文件系统使用合适的设备和装入点。在设备和装入点之后,需要指定文件系统类型和文件系统选项(缺省的通常是最好的,除非您真正地了解您所进 行的工作,并且可以找到针对您的文件系统的很好的文档资料)。最后的两个参数是用于历史原因所需的“转储频率”和“并行 fsck 传递数值”。 通过卸载该文件系统并使用
现在,当您使用不带参数的
对性能和行为进行调整 与大部分其他的 Linux 文件系统一样,可以通过一些选项来提高 Reiser4 的整体性能并修改它的行为。这些选项可以在
可以在该命令中包括以逗号分隔的多个文件系统选项。 这样一来,系统就可以在启动的时候读取这些参数,也可以在 /etc/fstab 文件中包含这些文件系统选项:
最常用的选项包括:
通常情况下,您可以使用这些选项的缺省值,但可以添加
总结 向 Linux 集合中添加一种文件系统可能令人生畏,特别当您想要试用 Linux 所支持的许多不同文件系统之一时。了解常用的文件系统的相关特性和设计上的局限性,这将帮助您对文件系统作出明智地选择。 Reiser4 目前仍被认为处于试验阶段(即使许多人正在使用它,并且没有出现什么问题),因为它尚未集成到 Linux 内核中。Namesys 的工作人员正在努力地让他们的代码成为内核中的一部分,因此基于 Reiser4 的分发版的出现只是个时间问题。 使用 参考资料 学习
获得产品和技术
讨论
关于作者
|