一。日志式文件系统简介

尽管Linux可以支持种类繁多的文件系统,但是几乎所有的Linux发行版都用ext2作为默认的文件系统。ext2的设计者主要考虑的是文件系统性能方面的问题。ext2在写入文件内容的同时并没有同时写入文件的meta-data(和文件有关的信息,例如:权限。所有论文网者以及创建和访问时间)。换句话说,Linux先写入文件的内容,然后等到有空的时候才写入文件的meta-data。这样若出现写入文件内容之后但在写入文件的meta-data之前系统突然断电,就可能造成在文件系统就会处于不一致的状态。在一个有大量文件操作的系统中出现这种情况会导致很严重的后果。因此就导致了新的日志式文件系统的出现以解决这个问题。日志文件系统比传统的文件系统安全,因为它用独立的日志文件跟踪磁盘内容的变化。就像关系型数据库(RDBMS),日志文件系统可以用事务处理的方式,提交或撤消文件系统的变化。Linux系统缺少日志式文件系统是限制推广其在企业级应用的一个重要制约因素。因此就出现了多种不同的日志式文件系统,当前linux环境下有下面几种日志文件可供选择:

SGI的xfs日志文件系统,SGI的xfs是Irix(SGI的Unix)上已经实现的xfs。SGI已经宣布xfs为OpenSource的软件

Veritas的文件系统和卷管理(volumemanager)。

Reiserfs:Reiserfs应用了一些新的技术,例如,统一名字空间(unifiednamespace)有一些Linux的发行版已经包括了reiserfs文件系统,作为安装时的可选项。SuSE6。4就很容易使用reiserfs文件系统。reiserfs的最新版是ReiserFS3。6。25,经过测试reiserfs的基准测试的结果是非常令人满意的。

IBM的jfs。这两文件系统都遵循开放源码版权声明,且的而且很多有天赋的人在开发这两个文件系统。jfs(JournaledFileSystemTechnologyforLinux)的开发者包括AIX(IBM的Unix)的jfs的主要开发者。在AIX上,jfs已经经受住了考验。它是可靠。快速和容易使用的。

日志文件系统的另一个选择是ext2的后继者ext3fs文件系统。ext3fs文件系统正在Linux内核黑客StephenTweedie的领导下开发。ext3fs还处于beta测试阶段,就像reiserfs和jfs,但是它工作得很好。Stephen预计2000年夏天可以正式发布ext3fs。ext3fs最大的优点是向下兼容ext2。而且ext3fs还支持异步的日志,这意味着它的性能可能还比ext2好。

在上面提到的日志式文件系统中,ReiserFS是目前Linux环境下最成熟的一种。而IBM的JFS和SGI的XFS则相对于来说要年轻一些,ext3文件系统则仍然需要开发。因此我们这里选择ReiserFS。

二。为什么叫日志式?

日志式文件系统在强调数据完整性的企业级服务器中有着重要的需求,是文件系统发展的方向。日志式文件系统的思想来自于如Oracle等大型数据库。数据库操作往往是由多个相关的。相互依赖的子操作组成,任何一个子操作的失败都意味着整个操作的无效性,对数据库数据的任何修改都要回复到操作以前的状态。日志式文件系统采用了类似的技术。

在分区中保存有一个日志记录文件,文件系统写操作首先是对记录文件进行操作,若整个写操作由于某种原因(如系统掉电)而中断,则在下次系统启动时就会读日志记录文件的内容来恢复没有完成的写操作。而这个过程一般只需要几秒钟到几分钟,而不是ext2文件系统的fsck那样在大型服务器情况下可能需要几个小时来完成扫描。

对日志式文件系统原理的一个更详细的描述可以参考JournalFileSystems

三。获得ReiserFS

Kernel2。4。1已经包含了ReiserFS的代码,但是最好使用包含了最新的ReiserFS3。6。25的kernel2。4。3,若你不是使用kernel2。4。3,建议你使用这个版本的ReiserFS。本文将使用kernel2。4。3来作为示例。

对于Kernel2。4。2则需要打补丁:

#cd/usr/src/linux

#zcatlinux-2。4。2-reiserfs-20010327。patch。gzpatch-p1

对于2。2版本的内核:

#bzip2-dclinux-2。2。18-reiserfs-3。5。32-patch。bz2patch-p1

在makeconfig阶段需要对“promptfordevelopmentand/orincompletecode/drivers“回答Yes。否则系统就不会询问关于ReiserFS的选项;在编译内核的文件系统参数部分,应该选择支持ReiserFS。若你不希望将root(/)安装在ReiserFS文件系统下,则只需要将对ReiserFS的支持编译为模块即可。本文将讨论将root安装在ReiserFS之上的情况。

四。编译内核和模块

注:如果你使用的是RedHat7。0,那么就需要首先边际Makefile并将其中所有的gcc替换为kgcc。首先需要从redhat7。0安装光盘上安装kgcc,若没有采取这一步,那么得到的内核将会显示kernelpanics信息。Redhat7。0带的gcc2。96有很多的bug。所有的内核编译都应该使用kgcc来完成。

gccvs。kgcc:

Linux之父LinusTorvalds日前在Linux核心邮件论坛中,表明了他对RedHat7。0的看法:『基本上不堪使用』。节录这封信的内容重点:『坦白地说,任何使用RedHat7。0和他们那坏掉的编译器都会遇到麻烦。』『我不知道为何RedHat选择释出那愚蠢的gcc-2。96(一定通过没有任何gcc技术人员的批准-gcc人员对此也很生气),而且更令我惊讶的是他们显然已经知道他们用的这个编译器是坏的。他们包进了另一个好的编译器,叫它作kgcc。』『kgcc意思是核心gcc,显然因为(a)他们了解到核心编译错误比某些应用程序编译错误来得糟糕,和(b)。。。』『。。。我认为RedHat7。0基本上并非一个可用的开发平台,而且我希望RedHat将他们的编译器降级。。。』RedHat执行长MatthewSzulik对LinusTorvalds这番话的反应是:他不是真正能回应Linus这项挑战的人选,而且他表示RedHat也预料到会遭受这样的谴责。RedHat7。0备受争议的关键在于其中包含了gcc发展分支中的一个非正式的版本gcc2。96,gcc小组曾表示『gcc2。96并非gcc正式版本』。『而且将来也不会有这个版本』,它只是在到达gcc3。0路上的一站。RedHat技术长MichaelTiemann最近曾为RedHat7。0使用gcc2。96的决定作出辩护,他表示:『没有技术上更好的决策』。『因为其他的选择不会比较好-对RedHat系列这样复杂的需求而言-比起走回头路,这项决定还能推动gcc3。0的发展。』Tiemann还说,若批评者的矛头想要找个目标,对使用gcc2。96的决定『你也可以怪我』。)

[1][2]下一页

上一篇:图像处理中分辨率的选取【1488字】
下一篇:茬應用程序中跟踪MOUSE的坐标【113字】

高职院校公共机房的管理维护【2471字】

高级RFID阅读器應用對处理器的要求【1354字】

风机风量自动报警装置【517字】

项目管理茬软件中的應用【5351字】

随机型存储模型應用研究【1393字】

间谍软件之危害及其防范對策【1382字】

银行行办公信息服务系统【1544字】

安康汉江网讯

张洁小说《无字》中的女性意识

ASP.net+sqlserver企业设备管理系统设计与开发

新課改下小學语文洧效阅...

老年2型糖尿病患者运动疗...

LiMn1-xFexPO4正极材料合成及充放电性能研究

麦秸秆还田和沼液灌溉对...

我国风险投资的发展现状问题及对策分析

互联网教育”变革路径研究进展【7972字】

网络语言“XX体”研究