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

本文详细介绍了如何使用xfs_growfs命令扩展XFS文件系统。首先,通过xfs_growfs-n检查当前文件系统信息,然后扩展底层设备,如LVM逻辑卷。接着,使用xfs_growfs实际扩展文件系统,并通过xfs_info和df-h命令验证扩展后的大小。这是一个完整的XFS文件系统扩容步骤指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xfs_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

2. 使用新 PV 扩展卷组 vg_test。

# vgextend vg_test /dev/sdc

3. 验证卷组的新大小。

# 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

4. 使用“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。

### 使用 `xfs_growfs` 命令扩大 XFS 文件系统 #### 安装必要工具 为了能够使用 `xfs_growfs` 工具,在 RHEL/CentOS 系统上需先安装 `xfsprogs` 软件包。可以通过以下命令完成安装: ```bash yum install xfsprogs ``` 此操作确保了环境中具备执行文件系统扩展所需的功能[^3]。 #### 准备工作 在实际进行文件系统扩展之前,确认目标分区已经通过适当的方法(如 `lvextend` 对于 LVM 卷)进行了物理存储容量的增长。这一步骤对于保证后续过程顺利至关重要,因为仅当底层设备确实存在未分配的空间时,才能成功调整文件系统的大小[^2]。 #### 查看现有状态 建议在此之前查看当前文件系统的状况,以便对比之后的变化情况。可以利用如下命令获取这些信息: ```bash df -h /path/to/mountpoint ``` 这里 `/path/to/mountpoint` 应替换为具体要扩增的挂载点路径。这条指令会显示该位置下的磁盘使用详情以及剩余空间量[^4]。 #### 执行扩展操作 一旦准备工作就绪,则可运行 `xfs_growfs` 来增大指定挂载点处的 XFS 文件系统规模。基本用法非常简单: ```bash xfs_growfs /path/to/mountain_point ``` 其中 `/path/to/mountain_point` 同样指代待处理的目标目录名。值得注意的是,默认情况下这个命令将会尽可能多地占用新增加出来的空白区域;如果希望更精细地控制增长幅度,还可以附加额外参数以满足特定需求[^1]。 #### 验证结果 最后再次运用先前提到过的 `df -h` 或者直接进入对应文件夹下测试读写性能等方式验证此次变更是否生效并达到预期效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值