reiserfs :新型的文件系统

更新时间:2024-09-21 01:54

ReiserFS是一种新型的文件系统,它通过一种与众不同的方式--完全平衡树结构来容纳数据,包括文件数据,文件名以及日志支持。ReiserFS还以支持海量磁盘和磁盘阵列,并能在上面继续保持很快的搜索速度和很高的效率。

ReiserFS的特点(与ext2的对比)

ReiserFS相对于Linux上传统的文件系统--Ext2有很多优点,在下面一一介绍。

ReiserFS有先进的日志(Journaling/logging)功能 机制。日志机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘。文件与数据的安全性有了很大提高。

高效的磁盘空间利用

Reiserfs对一些小文件不分配inode。而是将这些文件打包,存放在同一个磁盘分块中。而其它文件系统则为每个小文件分别放置到一个磁盘分块中。这意味着:如果有10000个小文件,就要占用10000个分块。想想看这多浪费磁盘空间。

独特的搜寻方式

ReiserFS基于快速平衡树(balanced tree)搜索,平衡树在性能上非常卓越,这是一种非常高效的算法。ReiserFS搜索大量文件时,搜索速度要比Ext2快得多。Reiserfs文件系统使用B*Tree存储文件,而其它文件系统使用B+Tree树。B*Tree查询速度比B+Tree要快很多。Reiserfs在文件定位上速度非常快。

在实际运用中,ReiserFS 在处理小于 1k 的文件时,比ext2 快 8 到 15 倍!ReiserFS 几乎在各个方面都优于 ext2。

支持海量磁盘

ReiserFS是一个非常优秀的文件系统,可轻松管理上百G的文件系统,ReiserFS文件系统最大支持的文件系统尺寸为16TB。这非常适合企业级应用中。

优异的性能

由于它的高效存储和快速小文件I/O特点,使用ReiserFs文件系统的PC,在启动X窗口系统时,所花的时间要比在同一台机器上使用ext2文件系统少1/3。另外,ReiserFS文件系统支持单个文件尺寸为4G的文件,这为大型数据库系统在Linux上的应用提供了更好的选择。

搜寻方式

ReiserFS是基于平衡树(STree)的文件系统结构,尤其对于大量文件的巨型文件系统,如服务器上的文件系统,搜索速度要比ext2快;Ext2使用局部的二分查找法,综合性能比不上ReiserFS。

在Reiser4中还运用了文件即是目录的设计来管理meta-data,并且运用了Hans Reiser自己发明的Dancing B-tree,效率提升非常明显。

空间分配和利用情况

ReiserFS里的目录是完全动态分配的,因此不存在ext2中常见的无法回收巨型目录占用的磁盘空间的情况。ReiserFS里小文件(\u003c 4K)可以直接存储进树,小文件读取和写入的速度更快,树内节点是按字节对齐的,小的文件可共享同一个硬盘块,节约大量空间。Ext2使用固定大小的块分配策略,也就是说,不到4K的小文件也要占据4K的空间,导致的空间浪费比较严重。

缺点

出现异常断电的时候,会出现大量的未写入完全的数据。ReiserFS会在恢复的时候进行rebuild-tree。而这个过程是非常慢的。在ReiserFS的升级版本Reiser4中有所改观。

ReiserFS的起源与未来

在1997年7月23日,Hans Reiser把他的基于平衡树结构的ReiserFS文件系统在网上公布。这是ReiserFS的第一次公开亮相。此后,ReiserFS一直在Hans Reiser和领导下的开发小组下开发和发展,SuSE Linux也对它的发展起了重大的帮助。由于ReiserFS有一些很有用的特性,更主要的是它比Ext2fs要快得多,所以它很快被很多人使用。Novell收购SUSE公司以后停止了对Namesys的资助。但是在2001年,Namesys的ReiserFS受到了五角大楼60万美元的资助。

2008年,由于ReiserFS的创始人Hans Reiser的谋杀罪名成立,Namesys可能面临倒闭或被收购的危险,但是Namesys的工作人员称,即使Namesys倒闭也不会停止Reiser4的继续完善和开发。

ReiserFS与EXT3的比较

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秒的时间。事实上,大部分人选择使用微软Microsoft 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的站点就会发现,ReiserFS对空间利用率和速度非常在意,因此,它在磁盘利用率和性能方面都非常出色。当我把文件系统从ReiserFS转换到ext3 时,发现我的可用空间变少了。不过这没有关系,因为现在的磁盘空间和内存的价格都非常便宜。此外,ReiserFS还在平衡树方面下了很大的功夫。 ReiserFS是基于平衡树的文件系统结构,这使得其在处理大量文件的巨型文件系统,如服务器上的文件系统时性能要好得多。

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

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

安装

从namesys下载reiserfs的补丁程序,要确保下载的补丁版本和你的kernel版本是一致的。

下载后用root身份登录进入系统,切换至/usr/src/linux目录,执行命令:

#gunzip /path/to/linux-2.2.16-reiserfs-3.5.22-Patch.gz #patch -p1 -i /path/to/linux-2.2.16-reiserfs-3.5.22-patch

在做完上面的两步后,重新编译kernel,将reiserfs编译进kernel或做成一个模块。

Reiserfs的相关应用程序在 /usr/src/linux/fs/reiserfs/utils 目录下。你可以用下面方法安装它们:

#mkdir bin #make #make install

最后,你可以用"fdisk"命令重新分区或用"mkreiserfs"命令重新格式化一个已经存在的分区。指定reiserfs类型加载这个分区,如"mount -t reiserfs /dev/hda2 /download",这样你就可以使用这个新的分区了。

新闻报道

Hans Reiser被宣布谋杀罪名成立

reiserfs是Linux操作系统上面性能最好、设计最先进的文件系统,特别是reiserfs4 版本具备了很多领先的文件系统特性。reiserfs的作者是Hans Reiser,Hans是从俄裔美国人,他领导的Namesys公司致力于开发和维护reiserfs文件。特别值得一提的是reiserfs开发团队的大多数人都是在俄国国内的开发人员。

本来reiserfs是Linux平台最有前途的文件系统,JavaEye的服务器也一直使用reiserfs,非常满意于reiserfs的稳定性和高性能,但是所有这一切在2006年被改变。

后续报道

2006年9月Hans离异的妻子Nina Reiser失踪,随后警方在Hans的住所发现了Nina的血迹,Hans被指控谋杀了他的妻子。据悉,HANS离异的妻子和Hans的好友兼公司合伙人关系密切,而Hans已经因为公司财务问题和合伙人关系破裂,此时Nina和他的合伙人走到了一起,可能引发了Hans的报复心理。

经过长达一年半的审讯,2008年4月28日,加利福尼亚州奥克兰法庭宣判,Hans Reiserfs一级谋杀罪名成立,现年44岁的Hans Reiserfs将面临25年的牢狱生涯。

参考资料

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}
友情链接: