使用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
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。