在RedHat中使用ReiserFS文件系统
一、 日志式文件系统简介 尽管Linux可以支持种类繁多的文件系统但是几乎所有的Linux发行版都用ext2作为默认的文件系统。 ext2的设计者主要考虑的是文件系统性能方面的问题。 ext2在写入文件内容的同时并没有同时写入文件的meta-data。换句话说 Linux先写入文件的内容然后等到有空的时候才写入文件的meta-data。这样若出现写入文件内容之后但在写入文件的meta-data之前系统突然断电就可能造成在文件系统就会处于不一致的状态。在一个有大量文件操作的系统中出现这种情况会导致很严重的后果。 因此就导致了新的日志式文件系统的出现以解决这个问题。 日志文件系统比传统的文件系统安全 因为它用独立的日志文件跟踪磁盘内容的变化。就像关系型数据库 日志文件系统可以用事务处理的方式提交或撤消文件系统的变化。 Linux系统缺少日志式文件系统是限制推广其在企业级应用的一个重要制约因素。 因此就出现了多种不同的日志式文件系统当前l inux环境下有下面几种日志文件可供选择:
SGI的xfs 日志文件系统 SGI的xfs是基于Irix上已经实现的xfs。 SGI已经宣布xfs为Open Source的软件。
Veritas的文件系统和卷管理。
Reiserfs:Reiserfs应用了一些新的技术例如 统一
1/7
名字空间有一些Linux的发行版已经包括了 reiserfs文件系统作为安装时的可选项。 SuSE 就很容易使用reiserfs文件系统。 reiserfs 的最新版是ReiserFS 经过测试reiserfs的基准测试的结果是非常令人满意的。
IBM的 jfs。这两文件系统都遵循开放源码版权声明且的而且很多有天赋的人在开发这两个文件系统。 jfs的开发者包括AIX的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。
二、 为什么叫日志式?
日志式文件系统在强调数据完整性的企业级服务器中有着重要的需求是文件系统发展的方向。 日志式文件系统
2/7
的思想来自于如Oracle等大型数据库。数据库操作往往是由多个相关的、相互依赖的子操作组成任何一个子操作的失败都意味着整个操作的无效性对数据库数据的任何修改都要回复到操作以前的状态。 日志式文件系统采用了类似的技术。
在分区中保存有一个日志记录文件文件系统写操作首先是对记录文件进行操作若整个写操作由于某种原因而中断则在下次系统启动时就会读日志记录文件的内容来恢复没有完成的写操作。 而这个过程一般只需要几秒钟到几分钟而不是ext2文件系统的fsck那样在大型服务器情况下可能需要几个小时来完成扫描。
对日志式文件系统原理的一个更详细的描述可以参考Journal Fi le Systems
三、获得ReiserFS
Kernel 已经包含了ReiserFS的代码但是最好使用包含了最新的ReiserFS的kernel 若你不是使用kernel 建议你使用这个版本的ReiserFS。本文将使用kernel来作为示例。
对于Kernel则需要打补丁:
# cd /usr/src/l inux
# zcat patch -p1
对于版本的内核:
3/7
# bzip2 -dc patch -p1
在make conf ig阶段需要对"prompt for developmentand/or incomplete code/drivers"回答Yes。否则系统就不会询问关于ReiserFS的选项;在编译内核的文件系统参数部分 应该选择支持ReiserFS。若你不希望将root安装在ReiserFS文件系统下 则只需要将对ReiserFS的支持编译为模块即可。本文将讨论将root安装在ReiserFS之上的情况。
四、编译内核和模块
注:如果你使用的是那么就需要首先边际Makef i le并将其中所有的gcc替换为kgcc。首先需要从安装光盘上安装kgcc若没有采取这一步那么得到的内核将会显示kernelpanics信息。 带的有很多的bug。所有的内核编译都应该使用kgcc来完成。gcc vs. kgcc:
Linux之父Linus Torvalds 日前在Linux核心邮件论坛中表明了他对Red Hat 的看法: 『基本上不堪使用』。节录这封信的内容重点: 『坦白地说任何使用 RedHat 和他们那坏掉的编译器都会遇到麻烦。 』 『我不知道为何RedHat选择释出那愚蠢的 而且更令我惊讶的是他们显然已经知道他们用的这个编译器是坏的。他们包进了另一个好的
4/7
编译器 叫它作kgcc。 』 『 kgcc意思是核心gcc 显然因为 他们了解到核心编译错误比某些应用程序编译错误来得糟糕和. . . 』 『 . . . 我认为 Red Hat 基本上并非一个可用的开发平台 而且我希望Red Hat将他们的编译器降级. . . 』 Red Hat执行长 Matthew Szul ik对 LinusTorvalds这番话的反应是:他不是真正能回应Linus这项挑战的人选 而且他表示Red Hat也预料到会遭受这样的谴责。 Red Hat 备受争议的关键在于其中包含了 gcc发展分支中的一个非正式的版本gcc gcc小组曾表示『 gcc并非gcc正式版本』、 『而且将来也不会有这个版本』 它只是在到达gcc 路上的一站。 Red Hat技术长MichaelTiemann最近曾为 Red Hat 使用 gcc 的决定作出辩护他表示: 『没有技术上更好的决策』、 『因为其他的选择不会比较好-对Red Hat 系列这样复杂的需求而言- 比起走回头路这项决定还能推动gcc 的发展。 』 Tiemann还说若批评者的矛头想要找个目标对使用 gcc 的决定『你也可以怪我』。 )
下面我们将编译ReiserFS工具相应的代码是存放在/usr/src/l inux/fs/reiserfs/uti ls 目录中的 首先make编译程序然后再make instal l来安装程序。 内核中并没
5/7
有包括这些工具 而需要另外下载。从这里可以下载。
解压文件:
# tar zxvf
# cd
# . /conf igure
# make
# make instal l
不幸的是 并没有ext2toreiserfs之类的转换工具因此将/从ext2转换为reiserfs就需要三步才能完成:
1.创建一个新的分区并格式化为ReiserFS格式。
12.将数据从ext2分区拷贝到新分区。
13.将新分区加载为根
创建新分区 ReiserFS并不需要一个特定的分区类型因此就使用83:
# 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
拷贝数据到新分区:
6/7
# cd /mnt/hda10
# tar cvlf - / tar xf -
编辑fstab来指向新的root:
/dev/hda10/reiserfs defaults 1 1
创建指向reiserfsck的一个符号链接因为RedHat启动时将寻找文件来扫描:
# ln -s /sbin/reiserfsck/sbin/
保证系统l i lo至少为。这是第一个支持ReiserFS的版本也可以在/boot 目录中使用小容量的ext2文件系统。但是升级l i lo更好一些。也推荐使用GRUB来实现引导。
当在中使用新的内核时需要运行l i lo程序。其中中需要将root指向新的内核所在分区。
7/7
Letbox 云服务商在前面的文章中其实也有多次介绍,这个服务商其实也算是比较老牌的海外服务商,几年前我也一直有使用过他们家的VPS主机,早年那时候低至年付15-35美元左右的VPS算式比较稀缺的。后来由于服务商确实比较多,而且也没有太多的网站需要用到,所以就没有续费,最近这个服务商好像有点活动就躁动的发布希望引起他人注意。这不有看到所谓的家中有喜事,应该是团队中有生宝宝了,所以也有借此来发布一些...
菠萝云国人商家,今天分享一下菠萝云的广州移动机房的套餐,广州移动机房分为NAT套餐和VDS套餐,NAT就是只给端口,共享IP,VDS有自己的独立IP,可做站,商家给的带宽起步为200M,最高给到800M,目前有一个8折的优惠,另外VDS有一个下单立减100元的活动,有需要的朋友可以看看。菠萝云优惠套餐:广州移动NAT套餐,开放100个TCP+UDP固定端口,共享IP,8折优惠码:gzydnat-8...
webhosting24决定从7月1日开始对日本机房的VPS进行NVMe和流量大升级,几乎是翻倍了硬盘和流量,当然前提是价格依旧不变。目前来看,国内过去走的是NTT直连,服务器托管机房应该是CDN77*(也就是datapacket.com),加上高性能平台(AMD Ryzen 9 3900X+NVMe),这样的日本VPS还是有相当大的性价比的。官方网站:https://www.webhosting...