大家相信吗?
reiserfs应该好些,特别是对linux beginners来说,我感觉更合适。呵呵,用reiserfs你可以直接用手按power来关机都没有什么问题,但ext2/3遇到这种情况的时候不太行了。还有。RedHat环境下使用日志式文件系统ReiserFS
摘要:
ReiserFS是公认为效能与安全性都优于Linux采用多年的ext2档案系统﹐ReiserFS的最大优点是安全性大幅提升﹐系统当机不易造成文件的损坏。Kernel 2.4.1起已经正式将其列入标准﹐但是为数众多的 Linux 系统仍旧在使用ext2。本文将讨论在Redhat环境下为什么要使用日志式的档案系统,如何取得 ReiserFS ,Kernel 2.2 与 2.4 如何支持ReiserFS,如何产生新的档案统。RedHat 7.0 的使用者特别注意事项及相关网络资源。
日志式文件系统简介
尽管Linux可以支持种类繁多的文件系统,但是几乎所有的Linux发行版都用ext2作为默认的文件系统。ext2的设计者主要考虑的是文件系统性能方面的问题。ext2在写入文件内容的同时并没有同时写入文件的meta-data(和文件有关的信息,例如:权限、所有者以及创建和访问时间)。换句话说,Linux先写入文件的内容,然后等到有空的时候才写入文件的meta-data。这样若出现写入文件内容之后但在写入文件的meta- data之前系统突然断电,就可能造成在文件系统就会处于不一致的状态。在一个有大量文件操作的系统中出现这种情况会导致很严重的后果。因此就导致了新的日志式文件系统的出现以解决这个问题。日志文件系统比传统的文件系统安全,因为它用独立的日志文件跟踪磁盘内容的变化。就像关系型数据库(RDBMS),日志文件系统可以用事务处理的方式,提交或撤消文件系统的变化。Linux系统缺少日志式文件系统是限制推广其在企业级应用的一个重要制约因素。因此就出现了多种不同的日志式文件系统,当前linux环境下有下面几种日志文件可供选择:
* SGI的xfs(http://oss.sgi.com/projects/xfs/)日志文件系统,SGI的xfs是基于Irix(SGI的Unix)上已经实现的xfs。SGI已经宣布xfs为Open Source的软件。
* Veritas(www.veritas.com)的文件系统和卷管理(volume manager)。
* Reiserfs:Reiserfs应用了一些新的技术,例如,统一名字空间(unified name space)有一些Linux的发行版已经包括了reiserfs文件系统,作为安装时的可选项。SuSE 6.4 就很容易使用reiserfs文件系统。reiserfs的最新版是ReiserFS 3.6.25,经过测试reiserfs的基准测试的结果是非常令人满意的。
* IBM的jfs。这两文件系统都遵循开放源码版权声明,且的而且很多有天赋的人在开发这两个文件系统。jfs(Journaled File System Technology for Linux)的开发者包括AIX(IBM的Unix)的jfs的主要开发者。在AIX上,jfs已经经受住了考验。它是可靠、快速和容易使用的。
* 日志文件系统的另一个选择是ext2的后继者ext3fs文件系统。ext3fs文件系统正在Linux内核黑客Stephen Tweedie的领导下开发。ext3fs还处于beta测试阶段,就像reiserfs和jfs,但是它工作得很好。Stephen预计2000年夏天可以正式发布ext3fs。ext3fs最大的优点是向下兼容ext2。而且ext3fs还支持异步的日志,这意味着它的性能可能还比ext2好。
在上面提到的日志式文件系统中,ReiserFS是目前Linux环境下最成熟的一种。而IBM的JFS和SGI的XFS则相对于来说要年轻一些,ext3文件系统则仍然需要开发。因此我们这里选择ReiserFS。
为什么叫日志式?
日志式文件系统在强调数据完整性的企业级服务器中有着重要的需求,是文件系统发展的方向。日志式文件系统的思想来自于如Oracle等大型数据库。数据库操作往往是由多个相关的、相互依赖的子操作组成,任何一个子操作的失败都意味着整个操作的无效性,对数据库数据的任何修改都要回复到操作以前的状态。日志式文件系统采用了类似的技术。
在分区中保存有一个日志记录文件,文件系统写操作首先是对记录文件进行操作,若整个写操作由于某种原因(如系统掉电)而中断,则在下次系统启动时就会读日志记录文件的内容来恢复没有完成的写操作。而这个过程一般只需要几秒钟到几分钟,而不是ext2文件系统的fsck那样在大型服务器情况下可能需要几个小时来完成扫描。
对日志式文件系统原理的一个更详细的描述可以参考Journal File Systems
获得ReiserFS
Kernel 2.4.1已经包含了ReiserFS的代码,但是最好使用包含了最新的ReiserFS 3.6.25的kernel 2.4.3,若你不是使用kernel 2.4.3,建议你使用这个版本的ReiserFS。本文将使用kernel 2.4.3来作为示例。
对于Kernel 2.4.2则需要打补丁:
# cd /usr/src/linux
# zcat linux-2.4.2-reiserfs-20010327.patch.gz | patch -p1
对于2.2版本的内核:
# bzip2 -dc linux-2.2.18-reiserfs-3.5.32-patch.bz2 | patch -p1
在make config阶段需要对"prompt for development and/or incomplete code/drivers"回答Yes。否则系统就不会询问关于ReiserFS的选项;在编译内核的文件系统参数部分,应该选择支持ReiserFS。若你不希望将root(/)安装在ReiserFS文件系统下,则只需要将对ReiserFS的支持编译为模块即可。本文将讨论将root安装在 ReiserFS之上的情况。
编译内核和模块
注:如果你使用的是RedHat7.0,那么就需要首先边际Makefile并将其中所有的gcc替换为kgcc。首先需要从redhat7.0 安装光盘上安装kgcc,若没有采取这一步,那么得到的内核将会显示kernel panics信息。Redhat7.0带的gcc2.96有很多的bug。所有的内核编译都应该使用kgcc来完成。
gcc vs. kgcc:
Linux 之父 Linus Torvalds 日前在 Linux核心邮件论坛中,表明了他对 Red Hat 7.0 的看法:『基本上不堪使用』。 节录这封信的内容重点: 『坦白地说,任何使用 Red Hat 7.0 和他们那坏掉的编译器都会遇到麻烦。』『我不知道为何 Red Hat 选择释出那愚蠢的 gcc-2.96(一定通过没有任何 gcc 技术人员的批准 - gcc 人员对此也很生气),而且更令我惊讶的是他们显然已经知道他们用的这个编译器是坏的。他们包进了另一个好的编译器,叫它作 kgcc。』 『kgcc 意思是核心 gcc,显然因为 (a) 他们了解到核心编译错误比某些应用程序编译错误来得糟糕,和 (b)...』『... 我认为 Red Hat 7.0 基本上并非一个可用的开发平台,而且我希望 Red Hat 将他们的编译器降级...』 Red Hat 执行长 Matthew Szulik 对 Linus Torvalds 这番话的反应是:他不是真正能回应 Linus 这项挑战的人选,而且他表示 Red Hat 也预料到会遭受这样的谴责。 Red Hat 7.0 备受争议的关键在于其中包含了 gcc 发展分支中的一个非正式的版本 gcc 2.96,gcc 小组曾表示『gcc 2.96 并非 gcc 正式版本』、『而且将来也不会有这个版本』,它只是在到达 gcc 3.0 路上的一站。 Red Hat 技术长 Michael Tiemann 最近曾为 Red Hat 7.0 使用 gcc 2.96 的决定作出辩护,他表示:『没有技术上更好的决策』、『因为其他的选择不会比较好 - 对 Red Hat 系列这样复杂的需求而言 - 比起走回头路,这项决定还能推动 gcc 3.0 的发展。』 Tiemann 还说,若批评者的矛头想要找个目标,对使用 gcc 2.96 的决定『你也可以怪我』。)
下面我们将编译ReiserFS工具,相应的代码是存放在/usr/src/linux/fs/reiserfs/utils目录中的,首先make编译程序,然后再make install来安装程序。2.4内核中并没有包括这些工具,而需要另外下载。从这里可以下载。
解压文件:
# tar zxvf reiserfsprogs-3.x.0j.tar.gz
# cd reiserfsprogs-3.x.0j
# ./configure
# make
# make install
不幸的是,并没有ext2toreiserfs之类的转换工具,因此将/从ext2转换为reiserfs就需要三步才能完成:
1.创建一个新的分区,并格式化为ReiserFS格式。
2.将数据从ext2分区拷贝到新分区。
3.将新分区加载为根(/)
创建新分区,ReiserFS并不需要一个特定的分区类型,因此就使用83(Linux):
# fdisk -l /dev/hda
/dev/hda9 2872 3126 2048256 83 Linux
/dev/hda10 3127 3381 2048256 83 Linux
在新分区上创建ReiserFS文件系统:
# mkreiserfs /dev/hda10
加载新的分区:
# mount -t reiserfs /dev/hda10 /mnt/hda10
拷贝数据到新分区:
# cd /mnt/hda10
# tar cvlf - / | tar xf -
编辑fstab来指向新的root:
/dev/hda10 / reiserfs defaults 1 1
创建指向reiserfsck的一个符号链接因为RedHat启动时将寻找fsck.reiserfs文件来扫描:
# ln -s /sbin/reiserfsck /sbin/fsck.reiserfs
保证系统lilo至少为21.6。这是第一个支持ReiserFS的版本,也可以在/boot目录中使用小容量的ext2文件系统。但是升级lilo更好一些。也推荐使用GRUB来实现引导。
当在lilo.conf中使用新的内核时需要运行lilo程序。其中lilo.conf中需要将root指向新的内核所在分区。
重新启动系统,新系统的root将在ReiserFS文件系统上。上面的示例讨论的是如何在root中使用ReiserFS,而根据需要你可以选择在任何目录中使用ReiserFS。
资源
ReiserFS home http://www.reiserfs.org/
ReiserFS FAQ http://www.reiserfs.org/faq.html
LinuxGazette article on journal filesystems http://www.linuxgazette.com/issue55/florido.html
XFS by SGI http://oss.sgi.com/projects/xfs/
IBM's JFS http://oss.software.ibm.com/developerworks/opensource/jfs/
Ext3 beta testing program on redhat.com
http://beta.redhat.com/index.php?program=Display_Page&action=ext3
Other articles by Mayank Sarup http://www.freeos.com/author/?authorName=Mayank%20Sarup
实战ReiserFS文件系统
内容:
ReiserFS的特点(与ext2的对比)
ReiserFS的缺点
ReiserFS的起源与未来
安装
作者简介
汤海京 ([email protected])
联想集团有限公司软件事业部工程师
2001 年 8 月
ReiserFS文件系统是一种新的linux文件系统。它通过一种与众不同的方式--完全平衡树结构来容纳数据,包括文件数据,文件名以及日志支持,并能在上面继续保持很快的搜索速度和很高的效率。ReiserFS文件系统一直以来被用在高端Unix系统上如,SGI。
ReiserFS的特点(与ext2的对比):
ReiserFS相对于Linux上传统的文件系统--ext2有很多优点,在下面我将一一向大家介绍。
搜寻方式
ReiserFS是基于平衡树的文件系统结构,尤其对于大量文件的巨型文件系统,如服务器上的文件系统,搜索速度要比ext2快;ext2使用局部的二分查找法,综合性能比不上ReiserFS。
空间分配和利用情况
ReiserFS里的目录是完全动态分配的,因此不存在ext2中常见的无法回收巨型目录占用的磁盘空间的情况。ReiserFS里小文件(<4K)可以直接存储进树,小文件读取和写入的速度更快,树内节点是按字节对齐的,小的文件可共享同一个硬盘块,节约大量空间。Ext2使用固定大小的块分配策略,也就是说,不到4K的小文件也要占据4K的空间,导致的空间浪费比较严重。
先进的日志机制
ReiserFS有先进的日志(Journaling/logging)机制,在系统意外崩溃的时候,未完成的文件操作不会影响到整个文件系统结构的完整性。 ext2虽然健壮性很强,但一旦文件系统被不正常地断开,在下一次启动时它将不得不进行漫长的检查系统数据结构的完整性的过程,这是为了防止数据丢失而必需的操作。对于较大型的服务器文件系统,这种"文件系统检查"可能要持续好几个小时,在很多场合下这样长的时间是无法接受的。解决这个问题的一种技术"日志文件系统"。在日志的帮助下,每个对数据结构的改变都被记录下来,日志在机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘。正因为如此,在系统突然崩溃时,在下次启动几秒钟后就能恢复成一个完整的系统,系统也就能很快的使用了。
支持海量磁盘和优秀的综合性能
ReiserFS是一个相当现代化的文件系统,相比之下,ext2虽然性能已经很好了,但其设计还只是20世纪80年代的水准。 ReiserFS的出现,使Linux拥有了像Irix/AIX那样的高档商用Unix才有的高级文件系统。ReiserFS可轻松管理上百G的文件系统,在企业级应用中有其用武之地,由于它的高效存储和快速小文件I/O特点,它在桌面系统上也表现出色:启动X窗口系统的时间ReiserFS比ext2 少1/3。而ext2则无法管理2G以上的单个文件,这也使得ReiserFS在某些大型企业级应用中比ext2要出色。
ReiserFS的缺点
ReiserFS一个最受人批评的缺点是每升级一个版本,都将要将磁盘重新格式化一次,这个缺点也正在改进中。
ReiserFS的起源与未来
在1997年7月23日,Hans Reiser把他的基于平衡树结构的ReiserFS文件系统在网上公布。这是ReiserFS的第一次公开亮相。此后,ReiserFS一直在Hans Reiser和领导下的开发小组下开发和发展,SuSE Linux也对它的发展起了重大的帮助。由于ReiserFS有一些很有用的特性,更主要的是它比ext2fs要快得多,所以它很快被很多人使用。据说在 Linux内核2.4.0以上的版本可能将采用ReiserFS作为它的文件系统。当前的ReiserFS只能在Intel结构体系上使用,但支持其他体系结构的ReiserFS版本也正在积极开发中。我们等待着更强大,兼容性更好的ReiseFS的到来。
怎样添加ReiserFS文件系统
安装
从http://www.namesys.com/下载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",这样你就可以使用这个新的分区了。
作者简介
汤海京,联想集团有限公司软件事业部工程师。上大学之后,一直钻研Linux底层技术,闭门造车,企图开发"中国人自己的操作系统",毕业设计做的也是相关课题(OSKit)。后转向Linux上的应用开发。喜欢把学习Linux的感受和技经验写下来,在网上发布出去,算是为自由软件贡献一份微薄之力,也是对以前那段痴心妄想的时光的反省。同时还帮助维护蓝森林(http://lslnet.com/linux),为Linux爱好者服务。您可以通过电子邮件[email protected] 与他联系。
在debian区发现的,有谁知道是真是假?
我是用这格式的,但……
偶不敢这么干。 本来就是这样,不过我们Knoppix使用XFS,也很不错. 更加易于管理,对磁盘利用率很高. 能够安装更多的东西(更省空间)? 更加易于管理,对磁盘利用率很高.
速度怎么样?? 能够安装更多的东西(更省空间)?
簇更合理. 更加易于管理,对磁盘利用率很高.
速度怎么样??
至少我觉得不错. 我以前看过一篇文章讲XFS更适合于大硬盘管理!!
但是并没有提到速度的问题!! 比较于ext3 速度上是更快还是差不多?? 为阵列设计,不会差的. 重新安装系统时换它试试!
效果不好会打姐姐的喔! :twisted: 妹妹机器里有几块硬盘?? :shock::shock: 我知道妹妹至少有两台机子,4块硬盘,不少于500G的容量 :mrgreen: 我知道妹妹至少有两台机子,4块硬盘,不少于500G的容量 :mrgreen:
让我数数,还能用的是四台PC(两台Athlon64 :lol::lol: ),另有NoteBook一个,共计11块硬盘(80GB-250GB不等),另有一台SUN,一台MAC
不过不全是我用,还有我哥哥. 晕倒,我不过才60G,不过前几天是140G,被人弄走了80G!!
郁闷,敢怒不敢言!! :evil::evil:
页:
[1]
2