文件系统ReiserFS文件系统分析论文

reiserfs  时间:2021-01-31  阅读:()

ReiserFS文件系统分析论文

文章来源莲

山课件www.

5YkJ.c oM

1.为什么叫日志式?

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

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

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

2.日志式文件系统简介

尽管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为Open Source的软件。

Veritas的文件系统和卷管理(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)的j fs的主要开发者。在AIX上 j fs已经经受住了考验。它是可靠、快速和容易使用的。

日志文件系统的另一个选择是ext2的后继者ext3 fs文件系统。 ext3fs文件系统正在Linux内核黑客Stephen Tweedie的

领导

下开发。 ext3fs还处于beta测试阶段就像reiserfs和j fs但是它工作得很好。 Stephen预计2000年夏天可以正式发布ext3fs。 ext3 fs最大的优点是向下兼容ext2。而且ext3 fs还支持异步的日志这意味着它的性能可能还比ext2好。

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

3.获得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之上的情况。

4.编译内核和模块

注:如果你使用的是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对LinusTorvalds这番话的反应是:他不是真正能回应Linus这项挑战的人选 而且他表示Red Hat也预料到会遭受这样的谴责。 Red Hat 7.0备受争议的关键在于其中包含了gcc发展分支中的一个非正式的版本gcc 2.96 gcc小组曾表示『gcc 2.96并非gcc正式版本』 、 『而且将来也不会有这个版本』  它只是在到达gcc 3.0路上的一站。 Red Hat技术长MichaelTiemann最近曾为Red Hat 7.0使用gcc 2.96的决定作出辩护他表示: 『没有技术上更好的决策』 、 『因为其他的选择不会比较好-对Red Hat系列这样复杂的需求而言-比起走回头路这项决定还能推动gcc 3.0的发展。 』 Tiemann还说若批评者的矛头想要找个目标对使用gcc 2.96的决定『你也可以怪我』 。 )

下面我们将编译ReiserFS工具相应的代码是存放在/usr/src/linux/fs/reiserfs/util s 目录中的首先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格式。

12.将数据从ext 2分区拷贝到新分区。

13.将新分区加载为根(/)

创建新分区 ReiserFS并不需要一个特定的分区类型 因此就使用83(Linux):

#fdisk-l/dev/hda

/dev/hda928723126204825683 Linux

/dev/hda1031273381204825683 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 11

创建指向reiserfsc k的一个符号链接因为RedH at启动时将寻找fsc k.reiserfs文件来扫描:

#ln-s/sbin/reiserfsck/sbin/fsck.reiserfs

保证系统lilo至少为21.6。这是第一个支持ReiserFS的版本也可以在/boot目录中使用小容量的ext2文件系统。但是升级lilo更好一些。也推荐使用GRUB来实现引导。

当在lilo.conf中使用新的内核时需要运行lilo程序。其中lilo.conf中需要将root指向新的内核所在分区。

文章来源莲山课件www.

5YkJ.c oM

spinservers:圣何塞10Gbps带宽服务器月付$109起,可升级1Gbps无限流量

spinservers是Majestic Hosting Solutions LLC旗下站点,主营国外服务器租用和Hybrid Dedicated等,数据中心在美国达拉斯和圣何塞机房。目前,商家针对圣何塞部分独立服务器进行促销优惠,使用优惠码后Dual Intel Xeon E5-2650L V3(24核48线程)+64GB内存服务器每月仅109美元起,提供10Gbps端口带宽,可以升级至1Gbp...

VirMach:$7.2/年KVM-美元512MB/$7.2/年MB多个机房个机房可选_双线服务器租赁

Virmach对资源限制比较严格,建议查看TOS,自己做好限制,优点是稳定。 vCPU 内存 空间 流量 带宽 IPv4 价格 购买 1 512MB 15GB SSD 500GB 1Gbps 1 $7/VirMach:$7/年/512MB内存/15GB SSD空间/500GB流量/1Gbps端口/KVM/洛杉矶/西雅图/芝加哥/纽约等 发布于 5个月前 (01-05) VirMach,美国老牌、稳...

#消息# contabo:德国老牌机房新增美国“纽约、西雅图”数据中心,免设置费

运作了18年的德国老牌机房contabo在继去年4月开办了第一个美国数据中心(中部城市:圣路易斯)后立马在本月全新上马两个数据中心:纽约、西雅图。当前,为庆祝美国独立日,美国三个数据中心的VPS全部免除设置费,VPS本身的配置很高,价格适中,有较高的性价比!官方网站:https://contabo.com/en/SSD VPSKVM虚拟,纯SSD阵列,不限制流量,自带一个IPv4内存CPUSSD带...

reiserfs为你推荐
p图软件哪个好用P图用什么软件啊燃气热水器和电热水器哪个好燃气热水器和电热水器哪个好江门旅游景点哪个好玩的地方江门有什么地方好玩的?唱K 行街 免答朗逸和速腾哪个好朗逸跟速腾的最大区别在哪朗逸跟速腾买那个好英语词典哪个好买什么英语词典比较好无纺布和熔喷布口罩哪个好一次性口罩的熔喷布和KN95的熔喷布有什么不同?核芯显卡与独立显卡哪个好独立显卡和核心显卡哪个好股票软件哪个好请问:免费的模拟炒股软件哪个好?尼康和佳能单反哪个好入门的单反相机 佳能和尼康哪个好?看书软件哪个好读书软件哪个好
apache虚拟主机 东莞虚拟主机 四川虚拟主机 vps是什么意思 国外永久服务器 美国堪萨斯 电信虚拟主机 七夕快乐英语 域名与空间 免费的域名 成都主机托管 买空间网 tracker服务器 ncp是什么 电信测速器在线测网速 域名商城 9929 冰盾ddos防火墙 云主机 主机响 更多