ReiserFS与EXT3的比较

最近,我刚从ReiserFS文件系统转到了ext3日志文件系统。我是一个ReiserFS的忠实追随者,并且直到现在我也没有改变我对该文件系统的看法。我之所以转而使用ext3,初衷是想花一些时间看看ext3中有什么我喜欢的东西。 ext3是由自由社团开发的日志式文件系统,它被设计成ext2的升级版本,尽可能地方便用户从ext2向ext3迁移。ext3在ext2的基础上加入了记录元数据的日志功能,努力保持向前和向后的兼容性,所以把这个文件系统称为ext2的新版本更恰当一些。 ReiserFS是Hans Reiser领导下的开发小组开发和发展的,SUSE Linux也对它的发展起了很大的作用。现在,它已经发展成一个高效、可靠的文件系统。

ReiserFS与ext3主要不同

就技术而言,两个文件系统有很多的不同,但是对于多数人来说,只需关心其中的几点即可。第一是你可以很方便地从ext2格式进行升级,因为到目前为止,很多Linux发行套件仍然在使用这种文件系统。第二就是ext3不仅可以记录数据日志(这在ext2中就已经具备),而且在此基础上还可以记录元数据 (Metadata)日志。现在的ReiserFS则只有日志元数据。第三就是文件系统的可扩展性。在介绍第三点以前,让我们先来看一看前两个不同点,因为第三点值得我们特别关注。就ext3来说,它可以方便地从ext2文件系统进行升级转换是其一大优势。当然,对于一直使用ReiserFS的人来说,这没有什么意义。但是,大多数用户并不愿意尝试使用ext3以外的任何一种日志文件系统。原因很简单,把ext2转换到ext3要比转换成其它任何一种文件系统更简单、快捷。

和ext2相比,ext3提供了更佳的安全性,这就是数据日志和元数据日志之间的不同。在两台不同的电脑上,其中一台使用数据日志,另外一台使用数据和元数据日志。启动一些应用程序,并对一些数据文件进行适当的改动,然后拨掉电源。当启动第一台机器时,它可以很快地把文件系统恢复到稳定的状态。但是可以肯定,刚才你对数据文件所做的改动,已经由于掉电而丢失。第二台机器也可以很快地将文件系统恢复到稳定的状态,并且可以保留掉电前你对数据所做的所有改动。

很显然,对于大多数计算机用户来说,一般都愿意使用后者。不过,除非真的有此需求,否则应该慎重考虑。在数据日志上增加了元数据日志后,会使系统速度受到严重的影响。在大多数情况下,ReiserFS已经比没有日志功能的ext2快了很多。并且,在一般情况下,ReiserFS要比具有元数据日志功能的ext3快得多。如果你同时选择了数据和元数据日志功能,那么ReiserFS要比ext3快得多。

速度不是选择文件系统的关键

上面说到ReiserFS的速度要快得多,不过在现实中,人们关心的往往并不是速度(我指的是感觉不是特别明显的速度上的差异)。作为一个用户,很难想象他会在意打开一个Word文件,或者Excel表单需要2.5秒还是4秒的时间。事实上,大部分人选择使用微软的Office,并不是基于速度方面的考虑,而是因为大家都在使用该办公套件。

这种现象并不仅仅发生在Windows领域。KWord或者AbiWord的加载速度要比StarOffice快得多,但是,很多Linux用户一边等着 StarOffice缓慢地启动,一边还在对其大加赞赏。一般情况下,他们并不会因为StarOffice的速度上有欠缺而放弃它,因为,他们已经习惯了。

可见,虽然速度较慢,但是只要其还在人们可以容忍的限度之内,一般人是不会介意的。我们一般喜欢把速度慢的原因归咎于硬件,而不是软件。比如说,众多骨灰级的游戏玩家一般会购买最新的芯片和显卡,来运行自己钟爱的游戏,而不会根据自己现有的硬件配置来购买可以运行的游戏。

在此,我必须澄清,我并不认为因为可以使用更快的处理器,以及更大的内存,所以Linux就可以采用那些很慢的、臃肿的程序代码(当然Linus Torvalds也不会答应这么做)。我只是觉得在做某些事情时,完全可以采取或者选择一种合适的方式来完成。如果有人要享受ext3提供的数据日志的安全功能,并且又不想因此而在速度上有所损失的话,完全可以买一个更快的处理器来弥补该文件系统性能上的不足。

当然,ReiserFS文件系统也有类似的问题。所以,如果你要想使用ReiserFS,而又担心自己的数据丢失,那么你可以关闭驱动器的写缓冲功能。根据所使用的系统不同,关闭该功能的命令可能也会有所不同,但可能都和以下所示的命令类似:

/sbin/hdparm -wo /dev/had

以上命令是要关闭系统中的第一个IDE驱动器的写缓冲功能。需要引起注意的是,这样做将会使系统性能受到很大影响。当然,既然你可以忍受ext3元数据日志功能带来的系统速度下降,这样做又有何不可呢?在我的机器上,由于害怕丢失一些重要数据,我就关闭了其中一个驱动器的写缓冲功能,性能下降得很厉害,但我认为这种代价还是值得的。

说了那么多,我只是想说明一件事,也就是说对于大多数使用电脑的人而言,选择ReiserFS还是ext3,速度并不是决定性的因素。只有少数的用户和一些对速度要求非常苛刻的特殊环境,才会关心二者的速度差异。此外,ext3有一个独特的功能,它可以在每一个载入点让用户控制数据日志功能。换句话说,你可以从一个驱动器上载入多个分区,并且每一个分区都可以决定是否使用数据日志功能。当然,如果把整个驱动器的写缓冲功能都关闭了,那么也就没有这个选项了。

在现实中,大多数人既不会考虑性能的因素,也不会考虑安全的因素,而总是希望采用一种最方便和最熟悉的途径。在各种途径的选择中,一个取决定性的因素就是用户目前正在使用什么系统。不过,在以后我们选择使用的Linux套件中,不管你是重新安装,还是进行升级,各Linux发行公司都会把文件系统的选择过程变得非常简单。

文件系统的可扩展性

现在让我们来看一看关键的第三个因素:可扩展性。如果你访问一下ReiserFS的站点(http://www.ReiserFS.org/) 就会发现,ReiserFS对空间利用率和速度非常在意,因此,它在磁盘利用率和性能方面都非常出色。当我把文件系统从ReiserFS转换到ext3 时,发现我的可用空间变少了。不过这没有关系,因为现在的磁盘空间和内存的价格都非常便宜。此外,ReiserFS还在平衡树方面下了很大的功夫。 ReiserFS是基于平衡树的文件系统结构,这使得其在处理大量文件的巨型文件系统,如服务器上的文件系统时性能要好得多。

ReiserFS突出的地方还在于其设计上着眼于实现一些未来的插件程序,这些插件程序可以提供访问控制列表、超级链接,以及一些其它非常不错的功能。在这一点上,ReiserFS的开发者要比ext3做得好,因为他们已经事先考虑到了所要实现的功能。这样在真正要增加这些功能时,其稳定性肯定要比 ext3好。据资料显示,在设计ext2时,并没有人计划要为其设计日志功能。日志功能是后来匆忙补充上去的。当然,这并不能说是什么坏事,但至少在你使用时,总会有一种不安全的感觉。所以,如果着眼于将来扩展性方面的考虑,选择ReiserFS应该说是一明智之举。

总的看来,这两个文件系统都比较优秀,并且谁也没有绝对的优势可以压倒对方。如果你现在使用的是ext2文件系统,并且对数据安全性要求很高,那么可以考虑使用ext3。如果你更在意文件系统的速度及可扩展性,或者想尝试使用ext2以外的文件系统,那么ReiserFS应该是首选。

相关推荐