随着 Linux 2.4的发行,出现了使用很多新的文件系统的可能性, 包括ReiserFS、XFS、GFS和另外一些文件系统。这些文件系统听起来很“酷”,但是它们到底能做些什么呢,它们擅长什么,还有您究竟怎样才能在一个产品Linux 环境中安全地使用它们呢?在本系列文章中,Daniel Robbins通过向您展示怎样在 Linux 2.4下安装这些新的高级文件系统,回答了这些问题。在他的 本系列前面的文章中,Daniel 介绍了日志和 ReiserFS 的好处。在本文中 Daniel将教您安装一个非常稳定的基于 Linux 2.4 的 ReiserFS系统。
在本文中,我会向您展示如何让 ReiserFS 运行在 2.4 系列的内核下。我还会和您分享很多关于不同主题的技术信息,包括使用 ReiserFS 最好的 2.4 内核,性能注意事项等等。因为我首先会谈到安装,所以我建议您先通读本文,然后再遵循安装指示。这样,您开始在自己的系统上运行 ReiserFS 的时候,脑子里就会有所有的技术注解,这样您就可以在各个步骤作必要的调整。
寻找好的内核
要在您的系统上使用 ReiserFS,您首先需要找到一个合适的内核。如果您已经熟悉 2.4 内核的发展,您就会知道这个过程比它听起来要复杂。本文完成时,最新的内核是 2.4.6-pre2;但是我建议您在自己的 ReiserFS 系统上还是使用 2.4.4(标准的 Linus 内核)或者 2.4.4-ac9(稍作改进的 Alan Cox 内核)。从我的测试看来,2.4.5 似乎很不稳定,所以我不推荐将这个内核作为产品使用;让我们希望 2.4.6 会比它好很多吧。
如果您想在自己的产品 ReiserFS 系统中使用除 2.4.4 或 2.4.4-ac9 以外的其它内核, 一定要作必要的检查以确保 ReiserFS(和内核大体上)是稳定的。当然,如果您是在一个测试服务器上安装 ReiserFS,只要不会丢失重要的数据,您就可以随意使用任一种内核。
总的来说,要注意内核稳定性问题,特别是 ReiserFS 的稳定性问题,这有两个原因。因为 ReiserFS 是一个“实验的”内核功能,您不能假定一个使用新内核的 ReiserFs 实现刚刚从 tarball 中解出就能够很好地运行。第二个原因(也许在目前是更重要的问题)在于大部分的 2.4 内核发行版和补丁都有一点不稳定,所以目前您行动时还是需要谨慎一点。理论上,所有的 2.4 发行版都应该是准产品化的,因为 2.4 版本应该是一个稳定的系列;但是,实际上它们(还)不是,所以强烈鼓励您小心使用新的、没有测试过的内核。
这段信息的意思不是要吓得您不敢使用 ReiserFS 或者 Linux 2.4,而是要给那些更敢于冒险的人一点理性。不要总是在重要的系统上使用各种还处于测试期的内核;如果这样,您 会吃到苦头的。当您使用一个不可靠的内核时,您不仅仅面临着系统锁定的危险;您还面临着丢失数据和文件系统崩溃的危险,这是您绝对不希望发生的。即便 ReiserFS 实现本身是稳定的,内核其他部分的主要错误也很可能引起文件系统崩溃的产生。
如果您没有最新的内核稳定性信息来源,我建议您定期地访问 Linux 每周新闻(请参阅本文后面的 参考资料),及时了解最新的可能出现的内核问题(信息每个星期四更新)。希望现在我已经说服了更多喜欢冒险的读者坚持使用 2.4.4 或 2.4.4-ac9 内核作为产品 ReiserFS 的配置,让我们继续吧。
标准内核
OK,我们现在可以谈谈安装和运行一个准产品化的 ReiserFS 系统的三种选择。第一种选择是只用标准 2.4.4 Linux 内核。第二种选择是使用 2.4.4 内核,同时使用 ReiserFS 大补丁,它包括了一些专门的补丁,使 ReiserFS 达到配额兼容,并与在本机运行的 NFS 服务器更加兼容。第三种选择是,我们可以使用 2.4.4 内核和 ac9 补丁(即 2.4.4-ac9),再加上或不加大补丁。通常我推荐使用 2.4.4-ac9 和大补丁,因为大补丁并没有任何负作用,而且您可能会需要它,而且 ac9 比标准内核执行得好多了。但是,如果您不愿意使用 ac 内核,标准 2.4.4 也不错了。我会简单地向您介绍设置 2.4.4-ac9 和大补丁的步骤,但是如果因为某些原因您不愿安装这两个补丁或其中之一,只要跳过这个步骤即可。现在,让我们开始吧。
首先,从 kernel.org 下载 2.4.4 内核源码并进入您的 /usr/src 目录。 移去该处的任何 linux 目录或者符号连接,如果是目录就将其改名,如果是符号连接就只需删除它。然后:
# cd /usr/src
# cat /path/to/linx-2.4.4.tar.bz2 | bzip2 -d | tar xvf -
|
ac9 补丁和大补丁
如果您计划只用标准 2.4.4 内核,您就已经拥有全部所需的资源了,可以跳过其余的补丁。然而,我推荐您继续使用下面的 ac 补丁和大补丁。
要使用 ac9 补丁,请从 kernel.org 下载 Alan Cox ac9 补丁。然后键入:
# cd /usr/src/linux
# bzip2 -dc /path/to/patch-2.4.4-ac9.bz2 | patch -p1
|
一旦标准内核安装完毕,就到 DiCE 网站去下载 DiCE 的 ReiserFS 大补丁。这个步骤还是可选的,不过也是推荐的,特别是如果您将在此系统上运行 NFS 服务器或者需要配额(如果不是这样,无论如何这个补丁也不会有什么坏处)。要使用大补丁请遵循以下步骤:
# cd /usr/src/linux
# bzip2 -dc /path/to/bigpatch-2.4.4.diff.bz2 | patch -p1
|
一旦所有可选的修正和大补丁安装完毕,您就可以为 ReiserFS 配置内核了。
注意:如果您需要更多关于如何编译 Linux 内核的指导,可参阅 developerWorks上的 编译 Linux 内核免费教程。下面是一个简单的摘要。
配置内核非常简单。首先,键入“make menuconfig”。在“Code maturity level options”部分,确保启用了“Prompt for development and/or incomplete code/drivers”选项。然后到“File systems”部分,启用“ReiserFS support”选项。 您将 ReiserFS 设置为直接编译到内核中(而不是作为一种模块);而且通常启用“Have reiserFS do extra internal checking”这个选项不是什么好主意。现在,保存您的设置,编译您的内核(“make dep;make bzImage;make modules;make modules_install”),然后配置您的引导装载器(boot loader)来装载新的配置了 ReiserFS 的内核。
重点:保存当前内核并配置引导装载器(boot loader)总是个好主意,这样万一您的新内核无法工作,您就可以用原来的内核启动。
使用 ReiserFS
安装工具
在重新启动之前,我们需要安装“reiserfsprogs”工具,它包括了“mkreiserfs”、“resize_reiserfs”(对 LVM 用户很有用),还有“fsck.reiserfs”。您可以从 Namesys.com 下载页下载最新版本的“reiserfsprogs”(目前是“3.x.0j”)。一旦这些工具下载完毕,您就可以按以下步骤编译和安装“reiserfsprogs”了:
# cd /tmp
# tar xzvf reiserfsprogs-3.x.0j.tar.gz
# cd reiserfsprogs-3.x.0j
# ./configure
./configure output will appear here
# make
make output will appear here
# make install
make install output will appear here
|
既然工具已经安装完毕,现在您可以按需要创建任何新的分区(使用“fdisk”或者“cfdisk”)或 LVM 逻辑卷(使用“lvcreate”)并重新启动您的系统。如果您正在创建标准分区,您可以简单地将此分区标记为一个“Linux native file system”(83)。
创建和安装文件系统
重新启动后,您就可以在一个空的分区上创建 ReiserFS 文件系统,如下所示:
在上面的示例中,/dev/hdxy 应该是对应于一个空闲分区的设备节点。象安装其它文件系统一样安装它:
# mount /dev/
hdxy
/mnt/reiser
|
而且,如果您想在自己的 /etc/fstab 文件中添加一个 ReiserFS 文件系统,只需将“freq”和“passno”字段设置为“0”,如下所示:
/dev/hdc1 /home reiserfs defaults 0 0
|
从这以后,您的 ReiserFS 文件系统应该不比它的对手 ext2 逊色了,而且您再也不必担心长时间的“fsck”,整体性能也会好得多 ― 特别是对于小文件来说。
ReiserFS 技术注解
文件系统稳定性
我已经在一个产品环境下使用了一个多月 2.4.4 版本内核的 ReiserFS(在 cvs.gentoo.org 开发服务器上),根本没有什么崩溃问题。2.4.4 和 2.4.4-ac9 已经非常稳定了。我们的服务器执行大量的磁盘 IO 任务,因为它是我们的 cvs 资料档案库、 gentoo.org 邮件服务器、基于邮差的邮件列表,还有很多其他东西的所在之处。
ReiserFS 的局限性
虽然 ReiserFS 在几乎每一种类型的应用程序上都比 ext2 文件系统表现得好,有些地方 ReiserFS 目前还是有点欠缺。令人欣慰的是,这些问题其实并不是 ReiserFS 无法克服的局限性,只是 Namesys 开发人员还没有来得及编码或优化的地方。
没有 dump/restore
是的,这是真的;ReiserFS 没有“dump”和“restore”实现。如果您想使用 ReiserFS 又碰巧是个喜欢使用“dump”的人,您就必须寻找备份数据的其他方法。实际上,事实证明这个根本就不是问题,因为 2.4 系列内核从一开始就不兼容“dump”和“restore”命令。要了解关于 dump 和 2.4 内核的不兼容性的更多信息,请阅读 Linus Torvalds 的帖子(请参阅 参考资料),他在帖子中说道“Dump 从一开始就是个愚蠢的程序。不要去碰它。”