XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Lin ux系统中。在linux环境下。目前版本可用的最新XFS文件系统的为2.9.3
一、XFS文件系统简介
主要特性包括以下几点:
数据完全性
采用XFS文件系统,当意想不到的宕机发生后,首先,由于文件系统开启了日志功能,所以你磁盘上的文件不再会意外宕机而遭到破坏了。不论目前文件系统上存储的文件与数据有多少,文件系统都可以根据所记录的日志在很短的时间内迅速恢复磁盘文件内容。
IXDBA.NET社区论坛
传输特性
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):使内核支持xfs文件系统
到redhat as5位置,linux默认内核还不支持xfs,因此需要让内核支持xfs,这里有两种方法
A:编译内核(后续介绍)
B:下载编译好的内核rpm包
ftp://oss.sgi.com//projects/xfs/testing下载对应系统版本的支持xfs的linux内核,我的测试环境是redhat as4.2,因此我下载了kernel-module-xfs-2.6.9-22.EL-0.1-1.src.rpm包.
也可以到 http://sandeen.net/rhel4_xfs/下载如下版本:
kernel-module-xfs-2.6.9-22.EL-0.1-1.src.rpm v0.1, for kernels before 2.6.9-42
kernel-module-xfs-2.6.9-42.0.2.EL-0.2-1.src.rpmv0.2,for kenrels at and after 2.6.9-42
(2):下载完成进行内核编译:
rpmbuild --rebuild --target i686 --define "kernel_topdir /lib/modules/2.6.9-22.EL/build" kernel-module-xfs-2.6.9-22.EL-0.1-1.src.rpm
说明:
where the --target should match your architecture (actually not needed for x86_64 or ia64, it just affects the rpm name), and the kernel_topdir is /lib/modules/`uname -r`/build for the RHEL4 kernel you wish to build against.
I have tested this xfs codebase a bit with the 2.6.9-22.EL kernel; it may
work with other RHEL4 kernels, but no guarantees.
编译完成,会在相应路径,入/usr/src/redhat/RPMS/i686下生成类似kernel-module-xfs-2.6.9-22.ELsmp-0.1-1.i686.rpm文件.然后执行支持xfs内核安装:
rpm –ivh kernel-module-xfs-2.6.9-22.ELsmp-0.1-1.i686.rpm
2:安装xfs工具包
完成对核心的编译后,还应下载与之配套的XFSprogs工具软件包,也即mkfs.xfs工具, ftp://oss.sgi.com//projects/xfs /projects/xfs/cmd_tars/下载以下工具包.
acl_2.2.44-1.tar.gz acl:提供了细粒度的权限控制
dmapi_2.2.8-1.tar.gz 对磁盘管理的API,存储管理应用程序使用
xfsdump_2.2.45-1.tar.gz XFS文件系统的管理工具xfsdump
attr_2.4.38-1.tar.gz xfs文件系统附加工具
xfsprogs_2.9.3-1.tar.gz xfs文件系统主工具 (可以根据情况下载自己需要的版本,我下载的是最新的版本)
下载完成依次编译安装,如果有错误根据错误提示进行改正
./configure
Make
Make install
3:使用xfs文件系统
格式化硬盘分区:
使用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
4.加载XFS文件系统
#mount –t xfs /dev/sda6 /xfs #其中/xfs是主分区/下的一个目录
最后,为了让系统启动后就自动加载,应该更改/etc/fstab,这样系统启动后就会自动加载xfs分区而不必每次都手工加载。
要说明的一点是目前的xfs由于受linux内存页限制,在x86版本中,只能实现文件系统的块尺寸为4K。另外,XFS文件系统可以不同的方式mount,即允许文件系统以读方式加载,也允许以读写方式加载。这是因为xfs文件系统用作根文件系统时,为了安全要以只读方式加载。