LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: ShiyuTang

发现XFS文件系统其实是很快的...

[复制链接]
发表于 2005-7-4 22:45:26 | 显示全部楼层
我直接把mandriva装在移动硬盘上了,直接usb启动就好了
在家可以接到台式机上,在单位接到笔记本上
超方便
回复 支持 反对

使用道具 举报

发表于 2005-7-10 14:32:45 | 显示全部楼层
XFS 很好。我自2003年用Linux 就只用XFS和Reisfs. Reisfs 也只是装Debian 时偷懒用。。

自己尽量用XFS,有一台我管理的繁忙的文件Server  80G+80G+120G 都是XFS的,一年多了,停电,暴力关机不下20次,很可靠。

自从发现了XFS,JFS,Reisfs 就没用过EXT3.... 断电后,EXT3的fsck 实在痛苦。。还不一定会好。
回复 支持 反对

使用道具 举报

发表于 2005-7-10 14:37:10 | 显示全部楼层
这是有关文章。。。。

新的2.4.25 以上核心和2.6全系列,都已直接在内核支持XFS。。
不过,要用XFS做/ ,还得编译到核心,而不能用模块。

请确认自己/boot/xxx.config 的有关XFS内容,看是否是编译进核心。
Linux环境下XFS文件系统应用基础概述  
作者:Linux论坛 发文时间:2005.06.01

     XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Linux系统中。在linux环境下。目前版本可用的最新XFS文件系统的为1.2版本,可以很好地工作在2.4核心下。

  一、XFS文件系统简介

  主要特性包括以下几点:

  数据完全性

  采用XFS文件系统,当意想不到的宕机发生后,首先,由于文件系统开启了日志功能,所以你磁盘上的文件不再会意外宕机而遭到破坏了。不论目前文件系统上存储的文件与数据有多少,文件系统都可以根据所记录的日志在很短的时间内迅速恢复磁盘文件内容。

  传输特性

  XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。笔者曾经对XFS、JFS、Ext3、ReiserFS文件系统进行过测试,XFS文件文件系统的性能表现相当出众。

  可扩展性

  XFS 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间。对特大文件及小尺寸文件的支持都表现出众,支持特大数量的目录。最大可支持的文件大小为263 = 9 x 1018 = 9 exabytes,最大文件系统尺寸为18 exabytes。

  XFS使用高的表结构(B+树),保证了文件系统可以快速搜索与快速空间分配。XFS能够持续提供高速操作,文件系统的性能不受目录中目录及文件数量的限制。

  传输带宽

  XFS 能以接近裸设备I/O的性能存储数据。在单个文件系统的测试中,其吞吐量最高可达7GB每秒,对单个文件的读写操作,其吞吐量可达4GB每秒。

     二、XFS文件系统的使用


  1.下载与编译内核

  下载相应版本的内核补丁,解压补丁软件包,对系统核心打补丁

  下载地址:

  对核心打补丁,下载解压后,得到一个文件:xfs-1.1-2.4.18-all.patch文件。
对核心进行修补如下:

  # cd /usr/src/linux
  # patch -p1 < /path/to/xfs-1.1-2.4.18-all.patch

  修补工作完成后,下一步要进行的工作是编译核心,将XFS编译进Linux核心可中。
首先运行以下命令,选择核心支持XFS文件系统:

  #make menuconfig

  在“文件系统“菜单中选择:

  <*> SGI XFS filesystem support ##说明:将XFS文件系统的支持编译进核心
  或
  <M> SGI XFS filesystem support ##说明:以动态加载模块的方式支持XFS文件系统

  另外还有两个选择:

  Enable XFS DMAPI ##说明:对磁盘管理的API,存储管理应用程序使用
  Enable XFS Quota ##说明:支持配合Quota对用户使用磁盘空间大小管理

  完成以上工作后,退出并保存核心选择配置.

  之后,然后编译内核,安装核心:

  #make bzImage
  #make module
  #make module_install
  #make install

  如果你对以上复杂繁琐的工作没有耐心或没有把握,那么可以直接从SGI的站点上下载已经打好补丁的核心,其版本为2.4.18。它是一个rpm软件包,你只要简单地安装即可。SGI提交的核心有两种,分别供smp及单处理器的机器使用。

  2.创建XFS文件系统

  完成对核心的编译后,还应下载与之配套的XFSprogs工具软件包,也即mkfs.xfs工具。不然我们无法完成对分区的格式化:即无法将一个分区格式化成XFS文件系统的格式。要下载的软件包名称:xfsprogs-2.0.3。

将所下载的XFSProgs工具解压,安装,mkfs.xfs自动安装在/sbin目录下。


  #tar –xvf xfsprogs-2.0.3.src.tar.gz
  #cd xfsprogs-2.0.3src
  #./configure
  #make
  #make install

  使用mkfs.xfs格式化磁盘为xfs文件系统,方法如下:

  # /sbin/mkfs.xfs /dev/sda6 #说明:将分区格式化为xfs文件系统,以下为显示内容:

  meta-data=/dev/sda6 isize=256 agcount=8, agsize=128017 blks
  data = bsize=4096 blocks=1024135, imaxpct=25
  = sunit=0 swidth=0 blks, unwritten=0
  naming =version 2 bsize=4096
  log =internal log bsize=4096 blocks=1200
  realtime =none extsz=65536 blocks=0, rtextents=0

  格式化磁盘时,如果mkfs.xfs提示你分区原本已被格式化为其它文件系统,可以使用参数 –f 强行格式化:

  #/sbin/mkfs.xfs –f /dev/sda6

  3.加载XFS文件系统

  #mount –t xfs /dev/sda6 /xfs ##其中/xfs是主分区/下的一个目录。

  最后,为了让系统启动后就自动加载,应该更改/etc/fstab,这样系统启动后就会自动加载xfs分区而不必每次都手工加载。

  要说明的一点是目前的xfs由于受linux内存页限制,在x86版本中,只能实现文件系统的块尺寸为4K。另外,XFS文件系统可以不同的方式mount,即允许文件系统以读方式加载,也允许以读写方式加载。这是因为xfs文件系统用作根文件系统时,为了安全要以只读方式加载。

  三、文件系统的迁移

  要使得系统中的其它分区使用XFS文件系统,还有一步是迁移文件系统。建议在迁移文件系统时,首先将磁盘上的数据、文件先备份,以免发生不可挽回的损失,在进行文件系统转换之间,最好能将整个系统进行完全备份。这一步有很多种方法,本文仅就笔者的迁移方法加以描述。各位可以按照自己习惯的方式去完成

  如果你想得到一个纯的xfs系统(系统的所有文件系统均采用XFS文件系统)话,还得将根文件系统也格式化为xfs文件系统。这实际上是比较繁杂的一步。因为根文件系统不能被umount,所以,必须首先创建一个分区,其文件系统为ext2文件系统,然后将目前的根分区上的所有文件与目录,原原本本地复制到这一个分区,然后更改/etc/fstab文件,替换原来的根分区。

  方法如下:

  $ mkfs -t ext2 /dev/hda4
  $ mkdir /mnt/temp
  $ mount -t ext2 /dev/hda4 /mnt/temp
  $ cd /
  $ tar lcvf - .|(cd /mnt/temp; tar xpvf - ) 

     以上操作是将根分区上的所有文件打包,复制到新建立的分区。当然,你也可以直接使用以下命令复制文件。


  # cp –dpR / /mnt/temp

  接着,将下次启动的根分区更改到/dev/hda4分区,更改/etc/fstab文件及/etc/lilo.conf ,然后,运行 lilo.

  重新启动后,新的根分区就已经为/dev/hda4。

  接下来,创建一个xfs文件系统的分区:

  $ mkfs -t xfs /dev/hda2

  加载此分区,采用两样的方法,将根分区的内容复制到此分区

  $ mount -t xfs /dev/hda2 /mnt/temp

  在根分区下,运行

  $ cd /
  $ tar lcvf - .|(cd /mnt/temp; tar xpvf - )

  再次更改/etc/fstab、/etc/lilo.conf,用新建的xfs分区替换原来的ext2主分区。如下所示:

  /dev/hda2 / xfs defaults 1 1

  将新建的xfs分区用作根分区,保存以上设置。再次检查配置文件内容,确认无误后再重新启动系统。如果你的设置全部正确,那么系统成功启动后,你就拥有一个纯XFS文件系统的系统了。




SGI说XFS很可靠,因此取消fsck,实际上fsck XFS分区,不进行磁盘动作,直接返回0。没有断电fsck时间。
回复 支持 反对

使用道具 举报

发表于 2005-7-10 15:07:05 | 显示全部楼层
Post by ShiyuTang
正如 QuickTime 所言,就是这个原因使我觉得 ReiserFS 很慢。

不过我还觉得 XFS 写入时速度也比 ReiserFS 快一点。





這是因爲 XFS ?際上是對 Ram 操作,間隔一段時間才進行真正的磁盤操作 :rolleyes:
回复 支持 反对

使用道具 举报

发表于 2006-6-20 16:34:48 | 显示全部楼层
寻找xfs-1.1-2.4.18-all.patch文件,那位有这个?网上下载的地址已经进不去了。
谢谢共享。
Email:wang_yi_bai@163.com
回复 支持 反对

使用道具 举报

发表于 2006-6-21 09:03:35 | 显示全部楼层
试用过,但好像lilo不能装在XFS分区
回复 支持 反对

使用道具 举报

发表于 2006-6-23 20:40:04 | 显示全部楼层
XFS
SGI出品
当数精品
可惜SGI气数已尽.....
回复 支持 反对

使用道具 举报

发表于 2006-8-5 01:16:38 | 显示全部楼层
Post by bornkilled
我直接把mandriva装在移动硬盘上了,直接usb启动就好了
在家可以接到台式机上,在单位接到笔记本上
超方便


哇塞,太牛鼻了。对你的景仰如滔滔江水。。。。。
回复 支持 反对

使用道具 举报

发表于 2006-8-11 12:49:23 | 显示全部楼层
Post by clxer
没想用笔记本的用户正在多起来。
我在办公室偷着装的时候,预先将分区空出,再用mandriva分区,发现硬盘还有1GB(80GB的硬盘)空余,以为windows下的分区软件有问题,就把空出的分区删除,用mandriva重建最后两个分区,这就是问题的关键了。我是用acronis os selector引导系统的,第一次启动还正常。之后我把mandriva默认的lilo改为grub,结果启动就进不了系统了。FDISK显示主分区+扩展分区有102%,也就是有重叠了。想重装windows都不行,它不认。删除linux分区也不行。因为扩展分区还在,而dos版的分区软件(FDISK、pqmagic)又不认扩展分区,只好全部删除。
幸好领导出差了哈哈。

下次你可以用diskgen 试试,他有一个重建分区表功能,很强大。我前几天也是分区重叠,用它搞定的。

很奇怪,当时我都快要绝望了,80G的数据啊!所有的分区都认出来的,大小也对,可是在图形界面上还有40G的空间是未使用,这是不可能的,这个时候重建分区表也不行。后来用了一个回溯功能,diskgen说要回溯到2003年的某个日期,晕死那天我的硬盘还没有出生呢,报着试试看的态度,我回溯了一下,所有分区都没有了全部都是未使用,此时用了一个重建分区表,嘿嘿这次居然全部正确,存盘重起,引导正常,一切OK。
回复 支持 反对

使用道具 举报

发表于 2006-8-14 12:21:16 | 显示全部楼层
如果你用grub,重装XP后,只需修复一下grub就行了,不用重装linux
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表