XFS文件系统简介

一 XFS文件系统简介

XFS是高质量文件系统,SGI为她们的I安德拉IX平台而规划。自从二零零二年移植到Linux内核上,由于它的高性能,XFS成为了许多店铺级系统的首要选取,尤其是有雅量数码,需求结构化伸缩性和安康久安的。例如,揽胜极光HEL/CentOS
7 和Oracle
Linux将XFS作为私下认可文件系统,SUSE/openSUSE已经为XFS做了漫长协助。
XFS有诸多异样的性质进步功效使她从诸多文件系统中脱颖而出,像可伸缩/并行
IO,元数据日志,热碎片整理,IO 暂停/复苏,延迟分配等。

① 、XFS 简介及特性

XFS文件系统是由SGI移植到Lin
ux系统中的。在linux环境下。方今版本可用的风行XFS文件系统的为1.2版本,可以很好地工作在2.4主旨下。那里介绍下Linux
XFS文件系统,希望对大家有着帮忙。

 

二 安装XFS系统工具集

Debian, Ubuntu , Linux Mint系统:

$ sudo apt-get install xfsprogs
Fedora, CentOS, RHEL系统:

$ sudo yum install xfsprogs
其它版本Linux:

$ sudo pacman -S xfsprogs

XFS 最初是由 Silicon Graphics,Inc. 于 90 时期初开发的。那时,SGI
发现他们的共处文件系统(existing
filesystem,EFS)正在急忙变得不适于当下激烈的估摸竞争。为不留余地那个难点,SGI
决定设计一种崭新的高质量 64 位文件系统,而不是意欲调整
EFS在自发设计上的少数缺陷。由此,XFS 诞生了,并于 一九九二 年随 I昂CoraIX 5.3
的颁发而利用于总括。它于今仍作为 SGI 基于 ILacrosseIX
的成品(从工作站到最佳总结机)的底部文件系统来使用。未来,XFS 也得以用来
Linux。XFS 的 Linux 版的到来是冲动的,首先因为它为 Linux
社区提供了一种健康的、优异的以及成效丰硕的文件系统,并且那种文件系统所怀有的可伸缩性能够满足最苛刻的贮存要求。

① 、XFS文件系统简介

维基百科关于XFS的简介如下:

三创立分区

  1. 查阅下是或不是有分区
    <code><p>
    root@HWPKI-TEST-98:~# fdisk -l
    Disk /dev/sda: 500.1 GB, 500107862016 bytes
    Linux创立和挂载XFS文件系统一测试试实践,linux下挂载新硬盘。255 heads, 63 sectors/track, 60801 cylinders, total 976773168
    sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00083283
    Device Boot Start End Blocks Id System
    /dev/sda1 * 2048 968601599 484299776 83 Linux
    /dev/sda2 968603646 976771071 4083713 5 Extended
    /dev/sda5 968603648 976771071 4083712 82 Linux swap / Solaris
    Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
    255 heads, 63 sectors/track, 364801 cylinders, total 5860533168
    sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disk identifier: 0x3ab14c4d
    Device Boot Start End Blocks Id System
    </p></code>

  2. 发端分区
    <code>
    root@HWPKI-TEST-98:~# fdisk /dev/sdb
    WARNING: The size of this disk is 3.0 TB (3000592982016 bytes).
    DOS partition table format can not be used on drives for volumes
    larger than (2199023255040 bytes) for 512-byte sectors. Use
    parted(1) and GUID
    partition table format (GPT)
    The device presents a logical sector size that is smaller than
    the physical sector size. Aligning to a physical sector (or
    optimal
    I/O) size boundary is recommended, or performance may be impacted.
    Command (m for help):
    </code>

  3. 输入m,查看命令:
    <code>
    Command (m for help): m
    Command action
    a toggle a bootable flag
    b edit bsd disklabel
    c toggle the dos compatibility flag
    d delete a partition
    l list known partition types
    m print this menu
    n add a new partition
    o create a new empty DOS partition table
    p print the partition table
    q quit without saving changes
    s create a new empty Sun disklabel
    t change a partition’s system id
    u change display/entry units
    v verify the partition table
    w write table to disk and exit
    x extra functionality (experts only)

Command (m for help):
</code>

  1. 输入n新建多个分区,输入p 建立分区,输入分区编号 1
    下一场共同默许
  2. 输入w保存

XFS具有如下特征:

重在特点包蕴以下几点:
数码完全性
行使XFS文件系统,当意外的宕机发生后,首先,由于文件系统开启了日记成效,所以您磁盘上的文件不再会意外宕机而遭遇破坏了。不论近来文件系统上囤积的文本与数据有些许,文件系统都足以依照所记录的日记在不够长的时光内快捷复苏磁盘文件内容。
传输性情
XFS文件系统选选择优秀者化算法,日志记录对完全文件操作影响尤其小。XFS查询与分配存款和储蓄空间丰盛快。xfs文件系统能延续提供快捷的反应时间。笔者曾经对XFS、JFS、Ext③ 、雷斯erFS文件系统进行过测试,XFS文件文件系统的特性表现非凡独立。
可扩大性
XFS
是叁个全64-bit的文件系统,它能够支撑上百万T字节的积存空间。对特大文件及小尺寸文件的支撑都突显出色,支持巨大数量的目录。最大可支撑的文件大小为263
= 9 x 1018 = 9 exabytes,最大文件系统尺寸为18 exabytes。
XFS使用高的表结构(B+树),保证了文件系统能够非常的慢搜索与飞速空间分配。XFS能够不断提供高效操作,文件系统的属性不受目录中目录及文件数量的限制。
传输带宽
XFS
能以接近裸设备I/O的习性存款和储蓄数据。在单个文件系统的测试中,其吞吐量最高可达7GB每秒,对单个文件的读写操作,其吞吐量可达4GB每秒。

 

四 格式化分区

1.格式化分区为XFS,使用mkfs.xfs命令。如若已有任何文件系统创立在此分区,必须抬高”-f”参数来掩盖它。
sudo mkfs.xfs -f /dev/sdb1
2.格式化后分区来挂载。若是/mnt是XFS本地挂载点。使用下述命令挂载
sudo mount -t xfs /dev/sdb1 /mnt
3.验证XFS挂载是或不是中标:
df -Th /storage
澳门金沙国际,4.假设你想要运转时自动挂载XFS分区在/storage上,出席下列行到/etc/fstab:
/dev/sdb1 /storage xfs defaults 0 0

参照文章:
Linux有问必答-怎么样创立和挂载XFS文件系统
linux
硬盘分区,分区,删除分区,格式化,挂载,卸载笔记

一 、数据完全性

② 、XFS文件系统的施用

XFS
is a high-performance 64-bit journaling file
system created by Silicon Graphics, Inc
(SGI) in 1993.\[6\]
It was the default file system in SGI’s IRIX operating system
starting with its version 5.3. XFS was ported to the Linux
kernel in 2001; as of June 2014, XFS is supported by most
Linux
distributions, some of which use it as the default file
system.

 
采取XFS文件系统,当意外的宕机发生后,首先,由于文件系统开启了日记成效,所以你磁盘上的文本不再会奇怪宕机而饱受破坏了。不论近日文件系统上囤积的文件与数量有微微,文件系统都得以根据所记录的日志在极短的时间内相当慢复原磁盘文件内容。

1.下载与编写翻译内核
下载相应版本的木本补丁,解压补丁软件包,对系统主题打补丁
下载地址:
对骨干打补丁,下载解压后,得到1个文件:xfs-1.1-2.4.18-all.patch文件。
对宗旨进行修补如下:
# cd /usr/src/linux
# patch -p1  SGI XFS filesystem support
##证实:将XFS文件系统的帮忙理编辑译进基本

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。它是2个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
excels in the execution of parallel input/output (I/O)
operations due to its design, which is based on allocation
groups (a type of subdivision of the physical volumes in
which XFS is used- also shortened to AGs). Because of this, XFS
enables extreme scalability of I/O threads, file system bandwidth, and
size of files and of the file system itself when spanning multiple
physical storage devices. XFS ensures the consistency of data by
employing metadata journaling and
supporting write barriers. Space
allocation is performed via extents with data
structures stored in B+ trees, improving
the overall performance of the file system, especially when handling
large files. Delayed allocation
assists in the prevention of file system fragmentation; online defragmentation is
also supported. A feature unique to XFS is the pre-allocation of I/O
bandwidth at a pre-determined rate; this is suitable for many real-time
applications. However, this feature was supported only on IRIX, and only
with specialized hardware.

 
XFS文件系统利用优化算法,日志记录对完全文件操作影响至非常小。XFS查询与分配存款和储蓄空间10分快。xfs文件系统能连续提供高速的反应时间。笔者曾经对XFS、JFS、Ext③ 、雷斯erFS文件系统开展过测试,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/hda5分区,更改/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分区用作根分区,保存以上设置。再度检查安插文件内容,确认无误后再另行启航系统。假如你的安装总体正确,那么系统成功运转后,你就有所2个纯XFS文件系统的系统了。

A
notable XFS user, NASA Advanced Supercomputing
Division, takes advantage of these capabilities deploying
two 300+ terabyte XFS filesystems on two SGI Altix archival
storage servers, each of which is directly attached to multiple Fibre
Channel disk arrays.\[7\]

③ 、可扩张性

  1. 详细介绍LinuxYUM常用命令
  2. 归纳介绍Linux判断符的运用
  3. 修改Linux暗中认可运维系统的办法之一
  4. Linux进度情况解析之T、Z、X
  5. Linux进度意况解析之LAND、S、D

 

  XFS
是三个全64-bit的文件系统,它能够支撑上百万T字节的存款和储蓄空间。对特大文件及小尺码文件的扶助都显现杰出,支持大幅度数量的目录。最大可接济的文件大小为263
= 9 x 1018 = 9 exabytes,最大文件系统尺寸为18 exabytes。

ux系统中的。在linux环境下。近日版本可用的风尚XFS文件系统的为1.2本子,能够很好地干活在2.4核心下。那里介…

 

四 、传输带宽

百度周密上关于XFS的简介:

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

 

5、分配组(allocation groups)

XFS一种高质量的日记文件系统,最早于一九九二年,由Silicon
Graphics为他们的I奥迪Q5IX操作系统而付出,是I奥迪Q3IX
5.3版的暗许文件系统。3000年四月,Silicon Graphics以GNU通用公共许可证宣布那套系统的源代码,之后被移植到Linux 内核上。XFS
尤其善于处理大文件,同时提供平滑的数目传输。

    当创造 XFS
文件系统时,底层块设备被细分成七个或更几个轻重缓急相等的线性区域(region)。分配组是绝无仅有的,因为各个分配组管理自个儿的索引节点(inode)和空闲空间,实际上,是将这么些分配组转化为一种文件子系统,这几个子系统科学地透明存在于
XFS 文件系统内。

 

⑥ 、分配组与可伸缩性

 

  那么,XFS 到底为什么要有分配组呢?首要缘由是,XFS
使用分配组,以便能一蹴而就地拍卖相互 IO。将 XFS
与一些高端硬件相结合,您将获得高端性能而不会使文件系统成为瓶颈。分配组还推动在多处理器系统上优化并行
IO 品质,因为能够同时有七个元数据更新处于“在传输中”。

XFS相比较于任何文件系统(ext三 、ext4等)的利害:

7、B+ 树

 

   
XFS使用高的表结构(B+树),保障了文件系统能够高速搜索与敏捷空间分配。XFS能够不断提供高效操作,文件系统的属性不受目录中目录及文件数量的界定。

 

⑧ 、日志记录

XFS是高质量文件系统,由于它的高品质,XFS成为了成都百货上千公司级系统的首要采取,特别是有多量数量,须要结构化伸缩性和安静的。例如,智跑HEL/CentOS 7 和Oracle Linux将XFS作为私下认可文件系统,SUSE/openSUSE已经为XFS做了绵绵支撑。

  当然,XFS 也是一种日志记录文件系统,它同意意外再度教导后的火速还原。象
雷斯erFS 一样,XFS 使用逻辑日志;即,它不象 ext3
那样将文字文件系统块记录到日志,而是使用一种高效的磁盘格式来记录元数据的变更。

 

九 、延迟分配XFS

XFS有成千上万特有的习性进步效益使她从众多文件系统中脱颖而出,像可伸缩/并行 IO,元数据日志,热碎片整理,IO 暂停/苏醒,延迟分配等。

  通过将分配进程分成七个步骤来处理。首先,当 XFS
接收到要写入的新数据时,它在 RAM 中著录暂挂事务,并只在尾部文件系统上
保留非凡空间。

 

澳门金沙国际 1

XFS
文件系统有部分通病,例如它无法压缩,删除多量文件时质量低下

 

 

 

始建XFS文件系统

 

 

借使系统并未XFS系统工具集,那就务须必须设置(命令如下):

 

#sudo
yum install xfsprogs

 

骨子里过多Linux系统将XFS作为暗中认可文件系统,所以不要安装,如下所示,
Centos 7.3就无需安装

 

[root@mylnx008
~]# more /etc/redhat-release

CentOS
Linux release 7.3.1611 (Core)

 

 

创立XFS格式分区,如下测试所示,
新增了2个300多G的磁盘

 

 

[root@mylnx008 ~]# fdisk -l

 

Disk /dev/sdb: 323.2 GB, 323196289024 bytes, 631242752 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

 

 

Disk /dev/sda: 33.3 GB, 33285996544 bytes, 65011712 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x000c1fec

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *        2048     1026047      512000   83  Linux

/dev/sda2         1026048    62914559    30944256   83  Linux

 

Disk /dev/sdc: 145.0 GB, 144955146240 bytes, 283115520 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 4096 bytes

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk label type: dos

Disk identifier: 0x034b6e5c

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1            2048   283113471   141555712   83  Linux

 

[root@mylnx008 ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.23.2).

 

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

 

Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0xafc7c358.

 

Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-631242751, default 2048): 

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-631242751, default 631242751): 

Using default value 631242751

Partition 1 of type Linux and of size 301 GiB is set

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

 

格式化分区为XFS,使用mkfs.xfs命令。假使已有别的文件系统成立在此分区,必须抬高”-f”参数来掩盖它。

 

[root@mylnx008 ~]# mkfs.xfs -f  /dev/sdb

meta-data=/dev/sdb               isize=512    agcount=4, agsize=19726336 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=1        finobt=0, sparse=0

data     =                       bsize=4096   blocks=78905344, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

log      =internal log           bsize=4096   blocks=38528, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

 

[root@mylnx008 ~]# df -T /dev/sdb

Filesystem     Type     1K-blocks  Used Available Use% Mounted on

devtmpfs       devtmpfs   1746644     0   1746644   0% /dev

[root@mylnx008 ~]# 

 

 

挂载XFS文件系统

 

 

[root@mylnx008 ~]# mkdir /mysql

[root@mylnx008 ~]# mount  -t  xfs  /dev/sdb  /mysql

[root@mylnx008 ~]#  df -T /dev/sdb

Filesystem     Type 1K-blocks  Used Available Use% Mounted on

/dev/sdb       xfs  315467264 32944 315434320   1% /mysql

[root@mylnx008 ~]# 

[root@mylnx008 ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2        30G   22G  8.2G  73% /

devtmpfs        1.7G     0  1.7G   0% /dev

tmpfs           1.7G     0  1.7G   0% /dev/shm

tmpfs           1.7G   25M  1.7G   2% /run

tmpfs           1.7G     0  1.7G   0% /sys/fs/cgroup

/dev/sda1       497M   62M  436M  13% /boot

/dev/sdc1       133G  4.2G  122G   4% /mnt/resource

tmpfs           344M     0  344M   0% /run/user/1000

/dev/sdb        301G   33M  301G   1% /mysql

 

上边命令只对当前环境有效,借使要在运营时自动挂载XFS分区在/mysql上,必须配置/etc/fstab配置文件

 

[root@mylnx008 ~]# vi /etc/fstab

 

#

# /etc/fstab

# Created by anaconda on Mon Sep 25 21:44:42 2017

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=b7559ac5-b3a4-4b00-b98a-a2a2611806d0 /                       xfs     defaults        0 0

UUID=b98659b2-5f8c-493e-9304-658905ef1391 /boot                   xfs     defaults        0 0

/dev/sdb                                  /mysql                  xfs     defaults        0 0 

 

当如你也得以应用UUID替换对应的装备,如下所示,先找到呼应装备的UUID,然后修改/etc/fastab

 

[root@mylnx008 ~]# blkid  /dev/sdb

/dev/sdb: UUID="6fcc5417-3c1b-4c71-aac7-344bac7654a4" TYPE="xfs" 

[root@mylnx008 ~]# blkid  /dev/sda2

/dev/sda2: UUID="b7559ac5-b3a4-4b00-b98a-a2a2611806d0" TYPE="xfs" 

[root@mylnx008 ~]# 

[root@mylnx008 ~]# vi /etc/fstab 

 

#

# /etc/fstab

# Created by anaconda on Mon Sep 25 21:44:42 2017

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=b7559ac5-b3a4-4b00-b98a-a2a2611806d0 /                       xfs     defaults        0 0

UUID=b98659b2-5f8c-493e-9304-658905ef1391 /boot                   xfs     defaults        0 0

UUID=6fcc5417-3c1b-4c71-aac7-344bac7654a4 /mysql                  xfs     defaults        0 0  

 

 

 

参考资料:

 

相关文章