lvm扩容
1.问题定位
1.1 报错信息的含义是:LVM 认为你给的 100%FREE 计算后是 15574 extents,而当前 LV 已经有 25600 extents。
1.2 换句话说:VG 里根本没有 Free Space,所以扩容失败。
1.3 你现在看到 /dev/sda 是 200G,但你的 root LV 只有 100G,是因为 PV /dev/sda3 并没有扩到盘的真实大小。
2.前瞻性修复步骤(GPT 分区 + LVM 场景)
2.1 你的分区 /dev/sda3 原本是约 198G,看起来你没有新增磁盘,应该是云盘在线扩容或宿主机调整了磁盘大小。
2.2 要让 LVM 能使用新增空间,需要:扩分区 → 扩 PV → 扩 LV。
3.具体修复步骤
3.1 扩展 GPT 分区 /dev/sda3
对于 GPT,可以直接用 growpart(Cloud-Init 提供的工具,RHEL9/ Rocky9 默认有)
1 | growpart /dev/sda 3 |
如果系统提示找不到 growpart,可使用 parted 手动扩展,我也可以给你 parted 版步骤。
3.2 扩展 PV
1 | pvresize /dev/sda3 |
3.3 查看 VG 剩余空间
1 | vgdisplay rl |
3.4 使用全部剩余空间扩容 root LV
1 | lvextend -l +100%FREE /dev/mapper/rl-root |
3.5 在线扩容文件系统(root 通常是 xfs)
1 | xfs_growfs / |
4.扩容流程图
flowchart TD
A[磁盘已变大但 LVM 不变] --> B[扩展 GPT 分区 growpart /dev/sda 3]
B --> C[pvresize /dev/sda3]
C --> D[vgdisplay 查看 Free]
D --> E[lvextend -l +100%FREE /dev/mapper/rl-root]
E --> F[xfs_growfs /]
5.你现在只需要运行以下三条命令(如果 root 是 xfs)
1 | growpart /dev/sda 3 |
如果你愿意,我可以帮你确认 parted 扩分操作是不是必要(发我 lsblk -f & pvs & vgs)。