跳转到内容
搜索 RHEL 文档

    浏览当前文档目录

    RHEL 10 在线扩容:磁盘→分区→PV→LV→XFS 四层

    扩容不是 lvextend 一条命令:磁盘、分区、PV、LV、文件系统是四层,少动一层就会看到“LV 大了但 df 没变”。本页在 399 上从 20G 扩到 24G,root 从 16G 扩到 20G,全程在线。

    层扩容前扩容后
    磁盘 scsi020G24G
    分区 sda318G22G
    VG rhel18G22G
    LV root16G20G
    XFS /16G20G

    E3 记录:plans/content-expansion/evidence/rhel/rhel-disk-grow/run.json(4 步,含布局、dry-run、df、lvs)。

    1. hypervisor 扩磁盘;
    2. growpart 扩分区;
    3. pvresize 扩 PV;
    4. lvextend -r 扩 LV 并调文件系统。

    只做 1 层,VM 内看不到;只做 1–3,df 还是旧大小。

    Terminal window
    qm resize 399 scsi0 24G

    VM 内立刻看到块设备变大(lsblk 显示 sda 24G),但分区还是 18G。

    Terminal window
    sudo growpart /dev/sda 3
    # CHANGED: partition=3 start=4198400 old: size=37742592 end=41940991
    # new: size=46133215 end=50331614

    growpart 只改分区表,不碰数据;--dry-run 可先确认。

    Terminal window
    sudo pvresize /dev/sda3
    # Physical volume "/dev/sda3" changed
    # 1 physical volume(s) resized or updated / 0 physical volume(s) not resized
    sudo vgs
    # rhel 1 2 0 wz--n- <22.00g 0

    PV 扩完 VG 才有空间;VFree 应该从 0 变成 4G 左右。

    Terminal window
    sudo lvextend -r -l +100%FREE /dev/rhel/root
    # data blocks changed from 4193280 to 5241856
    # xfs_growfs done
    # Extended file system xfs on rhel/root.

    -r 是关键:扩 LV 后自动 xfs_growfs,不用再手动跑。如果没有 -r,df 仍是 16G。

    $ df -h /
    /dev/mapper/rhel-root 20G 1.8G 19G 9% /
    $ sudo lvs
    root rhel -wi-ao---- <20.00g
    swap rhel -wi-ao---- 2.00g
    $ sudo vgs
    rhel 1 2 0 wz--n- <22.00g 0

    全程根分区保持挂载,没有重启。

    393 的根是 plain XFS on sda4(没有 VG/LV),扩容只需:

    Terminal window
    qm resize 393 scsi0 +4G
    sudo growpart /dev/sda 4
    sudo xfs_growfs /

    没有 pvresize/lvextend 两步;先 lsblk 确认根是不是 LVM,别照搬。

    • lsblk 确认根在哪个分区/LV;
    • hypervisor 扩容后 VM 内 lsblk 看到新大小;
    • growpart --dry-run 无误;
    • pvresize 后 vgs 的 VFree 增加;
    • lvextend -r 后 df 增加;
    • 全程无重启、无 umount;
    • 记录扩容前后大小。
    • 未测试 XFS 缩容(不支持在线缩);
    • 未测试 swap 扩容;
    • 未测试多 PV/多路径扩容;
    • 未测试 parted/sfdisk 替代 growpart。

    以下截图来自 PVE 上的 RHEL 10.2 实测环境。

    扩容前的 df/lsblk 视图
    扩容前的 df/lsblk 视图