Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 3 章 XFS 文件系统

XFS 是一个高度可扩展的高性能文件系统,最初设计于 Silicon Graphics, Inc。XFS 是红帽企业 Linux 7 的默认文件系统。
XFS 的主要功能
  • XFS 支持 元数据日志, 有助于更快速的崩溃恢复。
  • XFS 文件系统可以在挂载和激活时进行碎片整理并扩大。
  • 此外,红帽企业 Linux 7 支持特定于 XFS 的备份和恢复实用程序。
分配功能
XFS 具有以下分配方案:
  • 基于扩展的分配
  • 条状化分配策略
  • 延迟分配
  • 空间预分配
延迟分配和其他性能优化会像 ext4 一样影响 XFS。也就是说,程序对 XFS 文件系统的写入无法保证为磁盘上,除非程序随后发出 fsync() 调用。
有关延迟分配对文件系统(ext4 和 XFS)的影响的更多信息,请参阅 第 5 章 ext4 文件系统 中的 分配功能
注意
即使磁盘空间似乎足够,创建或扩展文件偶尔会失败,并出现意外的 ENOSPC 写入失败。这是因为 XFS 面向性能的设计。实际上,它不会成为问题,因为仅当剩余空间仅仅是几个块时才会出现。
其他 XFS 功能
XFS 文件系统还支持以下内容:
扩展属性 (xattr)
这使得系统能够关联每个文件几个额外的名称/值对。它会被默认启用。
配额日志
这可避免在崩溃后进行冗长的配额一致性检查。
项目/目录配额
这允许对目录树的配额限制。
小于秒的时间戳
这允许时间戳进入子秒。
默认 atime 行为是 relatime
对于 XFS,relatime 默认为开启。与 noatime 相比,它几乎没有开销,同时仍然保持了健康的 atime 值。

3.1. 创建 XFS 文件系统

  • 要创建 XFS 文件系统,请使用以下命令:
    # mkfs.xfs block_device
    • 使用到块设备的路径替换 block_device。例如: /dev/sdb1/dev/disk/by-uuid/05e99ec8-def1-4a5e-8a9d-5945339ceb2a/dev/my-volgroup/my-lv
    • 般情况下,默认选项是常见用途的最佳选择。
    • 在包含现有文件系统的块设备中使用 mkfs.xfs 时,添加 -f 选项来覆盖该文件系统。

例 3.1. mkfs.xfs 命令输出

以下是 mkfs.xfs 命令的输出示例:
meta-data=/dev/device            isize=256    agcount=4, agsize=3277258 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=13109032, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
注意
XFS 文件系统创建后,其大小不能缩小。但是,它仍然可以使用 xfs_growfs 命令放大。如需更多信息,请参阅 第 3.4 节 “增加 XFS 文件系统的大小”

条状块设备

对于条状块设备(如 RAID5 阵列),可以在创建文件系统时指定条带几兆法。使用正确的分条地理测量可显著提高 XFS 文件系统的性能。
在 LVM 或 MD 卷上创建文件系统时,mkfs.xfs 选择最佳的 geometry。对于将 geometry 信息导出到操作系统的某些硬件 RAID,这可能也是如此。
如果设备导出分条地理测量信息,mkfs 实用程序(ext3、ext4 和 xfs)将自动使用此几何。如果 mkfs 实用程序没有检测到条带 geometry,即使存储确实具有分条几metry,但在使用以下选项创建文件系统时可以手动指定它:
su=
指定条带单元或 RAID 块大小。该 必须以字节为单位,带有可选的 kmg 后缀。
sw=value
指定 RAID 设备中数据磁盘的数量,或者条带中的条带单元数量。
以下示例在包含 4 个条带单元的 RAID 设备中指定了 64k 的块大小:
# mkfs.xfs -d su=64k,sw=4 /dev/block_device

其它资源

有关创建 XFS 文件系统的详情,请参考: