Linux xfs_growfs 命令使用示例
xfs_growfs
命令使用示例
xfs_growfs
用于 扩展XFS文件系统,适用于以下场景:
- 底层存储设备(物理分区、LVM逻辑卷、云盘等)已扩容。
- XFS文件系统需要在线扩展以占用新增空间(无需卸载)。
1. 基本语法
xfs_growfs [选项] <挂载点|设备路径>
常用选项:
-d
:扩展到设备支持的最大空间(默认行为)。-D
:指定扩展到的目标大小(如-D 100G
)。-L
:强制扩展到最大可用空间(即使文件系统标记为不可扩展)。-t
:试运行(仅显示扩展计划,不实际执行)。
2. 操作流程
步骤1:检查文件系统当前大小
# 查看挂载点容量(确认当前已用空间)
df -hT /data
# 查看文件系统详细信息(包含块数量)
xfs_info /dev/mapper/vg_data/lv_data
示例输出:
meta-data=/dev/vg_data/lv_data isize=512 agcount=4, agsize=3276800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
data = bsize=4096 blocks=13107200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
关键值:
blocks=13107200
:当前文件系统总块数(每个块4KB → 总容量约50GB)。
步骤2:扩展文件系统
场景A:扩展到最大可用空间
# 直接扩展到设备的最大容量(常用)
xfs_growfs /data
或指定设备路径:
xfs_growfs /dev/vg_data/lv_data
场景B:扩展到指定大小
# 扩展至100GB(需确保底层设备至少有100GB空间)
xfs_growfs -D 100G /data
步骤3:验证扩展结果
df -hT /data
示例输出:
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_data/lv_data xfs 200G 45G 155G 23% /data
3. 典型场景示例
场景1:LVM逻辑卷扩容后扩展XFS
- 扩展逻辑卷:
lvextend -L +50G /dev/vg_data/lv_data
- 扩展文件系统:
xfs_growfs /dev/vg_data/lv_data
场景2:云盘(如阿里云ESSD)扩容后扩展XFS
- 云控制台扩容云盘。
- 在系统中扩展分区(假设为
/dev/vdb1
):growpart /dev/vdb 1 # 扩展分区(使用cloud-utils工具)
- 扩展文件系统:
xfs_growfs /dev/vdb1
4. 注意事项
- 仅支持扩展,不支持收缩:XFS文件系统无法缩小容量。
- 依赖底层设备空间:确保存储设备已扩容后再执行
xfs_growfs
。 - 在线操作:无需卸载文件系统,但建议操作前暂停写入操作。
- 元数据备份:对大容量文件系统操作前,建议备份元数据:
xfs_metadump /dev/sdX metadata_backup.img
5. 常见问题
Q:执行 xfs_growfs
报错 not an XFS filesystem
- 原因:设备未格式化或文件系统损坏。
- 解决:检查设备是否已格式化XFS:
blkid /dev/sdX
Q:扩展后 df
显示容量未变化
- 原因:底层设备未正确扩容。
- 解决:确认设备实际容量:
lsblk /dev/sdX