文章写在2012年,目前最新的很多操作系统发行版,比如CentOS,已经内置支持了xfs文件系统,大部分的操作均可省略了。
XFS
文件系统
XFS
文件系统是SGI开发的高级日志文件系统,XFS
极具伸缩性,非常健壮。
在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.下载与编译内核
下载相应版本的内核补丁,解压补丁软件包,对系统核心打补丁。
下载地址:ftp://oss.sgi.com/projects/xfs/d … .4.18-all.patch.bz2
对核心打补丁,下载解压后,得到一个文件:xfs-1.1-2.4.18-all.patch文件。
对核心进行修补如下:
1 | # cd /usr/src/linux |
修补工作完成后,下一步要进行的工作是编译核心,将XFS
编译进Linux
核心可中。
首先运行以下命令,选择核心支持XFS
文件系统:
1 | #make menuconfig |
在“文件系统“菜单中选择:
<*> SGI XFS
filesystem support ##说明:将xfs文件系统的支持编译进核心或 SGI XFS
。 filesystem support ##说明:以动态加载模块的方式支持XFS
文件系统。
另外还有两个选择:
Enable
XFS
DMAPI ##说明:对磁盘管理的API,存储管理应用程序使用。Enable
XFS
Quota ##说明:支持配合Quota对用户使用磁盘空间大小管理。
完成上工作后,退出并保存核心选择配置。之后,然后编译内核,安装核心:
1 | # make bzImage |
如果你对以上复杂繁琐的工作没有耐心或没有把握,那么可以直接从SGI的站点上下载已经打好补丁的核心,其版本为2.4.18。它是一个rpm软件包,你只要简单地安装即可。SGI提交的核心有两种,分别供smp及单处理器的机器使用。
2.创建XFS
文件系统
完成对核心的编译后,还应下载与之配套的xfsprogs工具软件包,也即mkfs.xfs工具。不然我们无法完成对分区的格式化:即无法将一个分区格式化成XFS
文件系统的格式。要下载的软件包名称:xfsprogs-2.0.3。
将所下载的xfsProgs工具解压,安装,mkfs.xfs自动安装在/sbin目录下。
1 | # tar –xvf xfsprogs-2.0.3.src.tar.gz |
使用mkfs.xfs格式化磁盘为XFS
文件系统,方法如下:
1 | # /sbin/mkfs.xfs /dev/sda6 #说明:将分区格式化为`XFS`文件系统 |
格式化磁盘时,如果mkfs.xfs提示你分区原本已被格式化为其它文件系统,可以使用参数 –f 强行格式化:
1 | #/sbin/mkfs.xfs –f /dev/sda6 |
3.加载XFS
文件系统
1 | #mount –t xfs /dev/sda6 /xfs ##其中/xfs是主分区/下的一个目录。 |
最后,为了让系统启动后就自动加载,应该更改/etc/fstab,这样系统启动后就会自动加载XFS
分区而不必每次都手工加载。
要说明的一点是目前的XFS
由于受Linux
内存页限制,在x86版本中,只能实现文件系统的块尺寸为4K。另外,XFS
文件系统可以不同的方式 mount,即允许文件系统以读方式加载,也允许以读写方式加载。这是因为XFS
文件系统用作根文件系统时,为了安全要以只读方式加载。