设置为XFS文件系统,Linux创建和挂载XFS文件系统测试实践

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

四 格式化分区

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 硬盘分区,分区,删除分区,格式化,挂载,卸载笔记

5、分配组(allocation groups)

 

二 安装XFS系统工具集

Debian, Ubuntu , Linux Mint系统:

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

$ sudo yum install xfsprogs
其他版本Linux:

$ sudo pacman -S xfsprogs

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

 

一 XFS文件系统简介

XFS是高性能文件系统,SGI为他们的IRIX平台而设计。自从2001年移植到Linux内核上,由于它的高性能,XFS成为了许多企业级系统的首选,特别是有大量数据,需要结构化伸缩性和稳定性的。例如,RHEL/CentOS 7 和Oracle Linux将XFS作为默认文件系统,SUSE/openSUSE已经为XFS做了长期支持。
XFS有许多独特的性能提升功能使他从众多文件系统中脱颖而出,像可伸缩/并行 IO,元数据日志,热碎片整理,IO 暂停/恢复,延迟分配等。

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

如果系统没有XFS系统工具集,那就必须必须安装(命令如下):

三创建分区

  1. 查看下是否有分区
    <code><p>
    root@HWPKI-TEST-98:~# fdisk -l
    Disk /dev/sda: 500.1 GB, 500107862016 bytes
    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 也是一种日志记录文件系统,它允许意外重新引导后的快速恢复。象 ReiserFS 一样,XFS 使用逻辑日志;即,它不象 ext3 那样将文字文件系统块记录到日志,而是使用一种高效的磁盘格式来记录元数据的变动。

 

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

格式化分区为XFS,使用mkfs.xfs命令。如果已有其他文件系统创建在此分区,必须加上"-f"参数来覆盖它。

2、传输特性

XFS一种高性能的日志文件系统,最早于1993年,由Silicon Graphics为他们的IRIX操作系统而开发,是IRIX 5.3版的默认文件系统。2000年5月,Silicon Graphics以GNU通用公共许可证发布这套系统的源代码,之后被移植到Linux 内核上。XFS 特别擅长处理大文件,同时提供平滑的数据传输。

1、数据完全性

4、传输带宽

 

3、可扩展性

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.

7、B+ 树

 

XFS 最初是由 Silicon Graphics,Inc. 于 90 年代初开发的。那时,SGI 发现他们的现有文件系统(existing filesystem,EFS)正在迅速变得不适应当时激烈的计算竞争。为解决这个问题,SGI 决定设计一种全新的高性能 64 位文件系统,而不是试图调整 EFS在先天设计上的某些缺陷。因此,XFS 诞生了,并于 1994 年随 IRIX 5.3 的发布而应用于计算。它至今仍作为 SGI 基于 IRIX 的产品(从工作站到超级计算机)的底层文件系统来使用。现在,XFS 也可以用于 Linux。XFS 的 Linux 版的到来是激动人心的,首先因为它为 Linux 社区提供了一种健壮的、优秀的以及功能丰富的文件系统,并且这种文件系统所具有的可伸缩性能够满足最苛刻的存储需求。

创建XFS文件系统

图片 1

 

    当创建 XFS 文件系统时,底层块设备被分割成八个或更多个大小相等的线性区域(region)。分配组是唯一的,因为每个分配组管理自己的索引节点(inode)和空闲空间,实际上,是将这些分配组转化为一种文件子系统,这些子系统正确地透明存在于 XFS 文件系统内。

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

8、日志记录

 

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

 

9、延迟分配XFS

 

[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

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

 

一、XFS 简介及特性

 

6、分配组与可伸缩性

XFS是高性能文件系统,由于它的高性能,XFS成为了许多企业级系统的首选,特别是有大量数据,需要结构化伸缩性和稳定性的。例如,RHEL/CentOS 7 和Oracle Linux将XFS作为默认文件系统,SUSE/openSUSE已经为XFS做了长期支持。

  那么,XFS 到底为什么要有分配组呢?主要原因是,XFS 使用分配组,以便能有效地处理并行 IO。将 XFS 与某些高端硬件相结合,您将获得高端性能而不会使文件系统成为瓶颈。分配组还有助于在多处理器系统上优化并行 IO 性能,因为可以同时有多个元数据更新处于“在传输中”。

 

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

 

XFS具有如下特点:

XFS文件系统简介

XFS 文件系统有一些缺陷,例如它不能压缩,删除大量文件时性能低下

 

 

XFS相比于其它文件系统(ext3、ext4等)的优缺点:

 

 

[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.

 

 

 

 

 

 

[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

CentOS Linux release 7.3.1611 (Core)

 

挂载XFS文件系统

XFS有许多独特的性能提升功能使他从众多文件系统中脱颖而出,像可伸缩/并行 IO,元数据日志,热碎片整理,IO 暂停/恢复,延迟分配等。

当如你也可以使用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  

 

[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 

 

 

 

 

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

上面命令只对当前环境有效,如果要在启动时自动挂载XFS分区在/mysql上,必须配置/etc/fstab配置文件

百度百科上关于XFS的简介:

#sudo yum install xfsprogs

 

 

参考资料:

 

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.

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]

 

 

[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 ~]# 

其实很多Linux系统将XFS作为默认文件系统,所以无需安装,如下所示, Centos 7.3就无需安装

 

 

本文由澳门威斯尼人平台登录发布于 操作系统,转载请注明出处:设置为XFS文件系统,Linux创建和挂载XFS文件系统测试实践

相关阅读