Linux xfs_growfs命令在 CentOS/RHEL 中扩展 XFS 文件系统

fs_growfs 命令

使用xfs_growfs命令增加 XFS 文件系统的大小。必须挂载 XFS 文件系统,并且底层设备上必须有可用空间。xfs_growfs 实用程序最常用于逻辑卷。xfs_growfs 命令的语法如下:

复制代码
# xfs_growfs [options] mount-point

以下选项可用于 xfs_growfs 命令:

  • -d:将文件系统的数据部分扩展到底层设备的最大大小。
  • -D size : 指定扩展文件系统数据部分的大小。size 参数以文件系统块的数量表示。
  • -L size:指定日志区域的新大小。这不会扩展大小,而是指定日志区域的新大小。因此,此选项可用于缩小日志区域的大小。您不能缩小文件系统的数据部分的大小。
  • -m maxpct :指定文件系统中可分配为 inode 的最大空间百分比的新值。对于 mkfs.xfs 命令,此选项是通过**--i maxpct=value**选项指定的。

注意:目前无法缩小或减少 xfs 文件系统。因此,必须确保设备尺寸不大于预期尺寸。

扩展 XFS 文件系统

1. 验证 XFS 文件系统的当前大小

在增加文件系统之前检查文件系统详细信息:

复制代码
# xfs_growfs -n /dev/vg_test/lv_test
meta-data=/dev/mapper/vg_test-lv_test isize=512    agcount=4, agsize=32000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=128000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

在**-n**选项实际上并没有延伸XFS文件系统,但只是打印当前的文件系统的详细信息。Aslo 检查"df -h"命令输出以查看挂载点的当前大小。

复制代码
# df -h
/dev/mapper/vg_test-lv_test  497M   26M  472M   6% /data
2.扩展底层设备(lvextend,grow LUN,expand partition)。

在我们扩展 XFS 文件系统之前,我们需要扩展底层 LVM 卷。如果可能,您可以扩展 LVM VG 中的现有物理卷。出于本文的目的,我们将使用一个新的 PV 来扩展 LV。

  1. 识别新磁盘并创建物理卷。
复制代码
# pvcreate /dev/sdc
  1. 使用新 PV 扩展卷组 vg_test。
复制代码
# vgextend vg_test /dev/sdc
  1. 验证卷组的新大小。
复制代码
# vgdisplay vg_test
  --- Volume group ---
  VG Name               vg_test
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               39.99 GiB
  PE Size               4.00 MiB
  Total PE              10238
  Alloc PE / Size       125 / 500.00 MiB
  Free  PE / Size       10113 / 39.50 GiB
  VG UUID               wrd9eB-aZo3-HCmD-Rlgr-NcGP-vS2Z-cm2CeQ
  1. 使用"lvresize"命令将逻辑卷扩展到所需的大小。
复制代码
# lvresize -L +35g /dev/vg_test/lv_test
  Size of logical volume vg_test/lv_test changed from 500.00 MiB (125 extents) to 35.49 GiB (9085 extents).
  Logical volume vg_test/lv_test successfully resized.
3. 扩展 XFS 文件系统
复制代码
# xfs_growfs /dev/vg_test/lv_test
meta-data=/dev/mapper/vg_test-lv_test isize=512    agcount=4, agsize=32000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=128000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 128000 to 9303040

注意数据块从 128000 变成了 9303040。

4. 验证
  1. 您可以使用"xfs_info"命令查看 XFS 卷详细信息,如下所示。请注意数据量的块。
复制代码
# xfs_info /dev/vg_test/lv_test
meta-data=/dev/mapper/vg_test-lv_test isize=512    agcount=291, agsize=32000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=9303040, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

在"df -h"命令输出中验证 XFS 文件系统的新大小。

复制代码
# df -hP /data
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/vg_test-lv_test   36G   35M   36G   1% /data

正如您在上面的输出中看到的,/data 挂载点大小已从 500MB 增加到 ~36GB。

相关推荐
黄大刀34 分钟前
DataPulse一款开箱即用的SCADA(四)-历史记录
运维·scada·动环
归秋1423 小时前
2026 企业 AI 办公工具选型指南:从评估框架到产品适配
大数据·运维·人工智能
Android系统攻城狮3 小时前
Linux Gstreamer深度解析之gst_audio_encoder_set_frame_max调用流程与实战(六十一)
android·linux·运维·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
H.莓飛3 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
91刘仁德3 小时前
IP协议详解:从IP协议头到网段划分、路由与NAT
linux·服务器·网络·网络协议·tcp/ip
硅基手札4 小时前
【Linux内核专栏 14】网络协议栈
linux·运维·网络协议
沫璃染墨6 小时前
《Linux工程实践篇(一):认识设计模式——从日志系统看策略模式》
linux·c++·安全·设计模式·策略模式
工作10年+,存储芯片行业6 小时前
Linux NVMe 中断排查与性能优化:CPU 亲和性
linux·运维·服务器·windows·性能优化·ssd·pcie
wuminyu6 小时前
ForkJoinPool内部WorkQueue的Lock-Free数组操作以及并发任务窃取原理剖析
java·linux·c语言·jvm·c++
快乐の番薯7 小时前
卷王问卷考试系统自动化功能测试
运维·功能测试·自动化