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应该是首选。

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-07/64903.htm

ReiserFS与EXT3的比较的更多相关文章

  1. ext3, ext4 和 reiserfs 文件系统性能对比

    : 创建空文件10000个的耗时 创建小文件,每个小文件使用512个blocks,一共创建10000个 创建一个2G文件的耗时 复制2G文件的耗时 删除2G大文件的耗时 删除10000个小文件的耗时 ...

  2. 日志式文件系统:SGI的xfs, Reiserfs, IBM的jfs, ext3fs

    日志文件(Log files)是包含系统消息的文件,包括内核.服务.在系统上运行的应用程序等.不同的日志文件记载不同的信息.日志文件系统比传统的文件系统安全,因为它用独立的日志文件跟踪磁盘内容的变化. ...

  3. Centos下ACL(访问控制列表)介绍(转)

    我们知道,在Linux操作系统中,传统的权限管理分是以三种身份(属主.属組以及其它人)搭配三种权限(可读.可写以及可执行),并且搭配三种特殊权限(SUID,SGID,SBIT),来实现对系统的安全保护 ...

  4. 开源服务专题之-------rsync数据备份

    RSYNC是Remote Sync 远程同步的简称,与SCP的比较,SCP= 无法备份大量数据,类似windows的复制,而rsync=边复制 ,边统计,边比较,可以备份大量数据.可以镜像保存整个目录 ...

  5. 磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]

    1.磁盘基础知识 1.1 物理结构 硬盘的物理结构一般由磁头与碟片.电动机.主控芯片与排线等部件组成:当主电动机带动碟片旋转时,副电动机带动一组(磁头)到相对应的碟片上并确定读取正面还是反面的碟面,磁 ...

  6. 转 Linux日志文件系统及性能分析

    日志文件系统可以在系统发生断电或者其它系统故障时保证整体数据的完整性,Linux是目前支持日志文件系统最多的操作系统之一,本文重点研究了Linux常用的日志文件系统:EXT3.ReiserFS.XFS ...

  7. linux下的磁盘和文件系统管理

    一.硬盘分区知识 1.分区类型 硬盘分区一共有3种:主分区.扩展分区和逻辑分区.扩展分区只不过是逻辑分区的“容器”,实际上只有主分区和逻辑分区进行数据存储.在一块硬盘上最多只能有4个主分区,可以另外建 ...

  8. 文件系统管理 之 Linux 创建文件系统及挂载文件系统流程详解

    阅读此文,必须具备知识点:<Linux 查看磁盘分区.文件系统.使用情况的命令和相关工具介绍><实例解说 fdisk 使用方法><合理规划您的硬盘分区><Fe ...

  9. linux 系统管理 使用技巧

    一.这篇文章讲了什么? 这篇文章很有参考性哈.本来是想等一段时间有更多条技巧后在发布的,不过,突然发现,我是去年的今天在博客园落户了,祝我的博客一周岁快乐,希望以后多分享一些文章啦.所以就把草稿箱的其 ...

随机推荐

  1. C#设备处理类操作

    C#对于处理window操作系统下的设备有天然的优势,对于大多数设备读写等操作来说基本上够了,这里只讨论通过普通的大多数的设备的操作.涉及到两大类SerialPort类,Socket的一些操作.不一定 ...

  2. python中read、readline、readlines的区别

    read直接读入整个文件,存成一个字符串变量 readline一行一行读入文件,所以说读取的文件可以大于内存,但是读取的速度很慢 readlines一次读取整个文件,存成一个列表,所以说也必须小于内存 ...

  3. MYSQL-5.5二进制包安装

    groupadd mysql 添加用户组 useradd mysql -s /sbin/nologin -g mysql -M  添加用户 mv mysql-5.5.54-linux2.6-x86_6 ...

  4. PHP两个数组相加

    在PHP中,当两个数组相加时,会把第二个数组的取值添加到第一个数组上,同时覆盖掉下标相同的值: <?php $a = array("a" => "apple& ...

  5. CHECK MEMBER TYPE

    检查类里是否存在某种类型的几种方法,以检查xxx类型为例:方法1: template<class T> class has_member_type_Type { ]; }; templat ...

  6. 链表操作,空间复杂度要求为O(1)

    对于O(1)的空间复杂度要求,不能对链表进行复制等操作,双指针法对处理该类问题比较有效. 同时由于链表头结点的特殊性,可以考虑引入一个空的头结点来辅助操作.

  7. 转:C++语言的15个晦涩特性

    转自 http://blog.jobbole.com/54140/ 操作符重载和检查顺序 重载,(逗号),||或者&&操作符会引起混乱,因为它打破了正常的检查规则.通常情况下,逗号操作 ...

  8. Yii中的CCheckBoxColumn在widget中的用法

    'columns'=>array(        array(            'class'=>'CCheckBoxColumn',            'id'=>'us ...

  9. NSDictionary 总结 -iOS

    总结:字典分NSDictionary(不可变,只能查询)和NSMutableDictionary(可变.能增删改查)两种,形式是key-value,key是不可重复的,value可以重复 1.初始化字 ...

  10. hdu1160dp

    https://vjudge.net/contest/68966#problem/J #include<map> #include<set> #include<list& ...