vgextend扩容卷组是存储“物理无缝拉伸”第一步,仅向vg添加新pv空间而不影响lv和文件系统;需先用vgdisplay检查free pe,为0时执行pvcreate初始化新设备,再用vgextend加入vg,最后配合lvextend和文件系统扩容命令生效。

直接用 vgextend 扩容卷组,是实现存储“物理无缝拉伸”的第一步,关键在于它不碰逻辑卷和文件系统,只向 VG 资源池里加新空间,业务完全无感。
确认当前 VG 空间是否已满
先看卷组还有没有空闲 PE,这是判断要不要 vgextend 的依据:
- 运行
vgdisplay,重点看 Free PE / Size 行; - 若显示为
0 / 0,说明 VG 已无剩余空间,必须加盘扩容; - 若还有空闲,可跳过 vgextend,直接
lvextend分配即可。
准备并初始化新物理设备为 PV
新增的磁盘(如 /dev/sdb)或分区(如 /dev/sdc1)不能直接加入 VG,需先标记为 LVM 可识别的物理卷:
- 执行
pvcreate /dev/sdb(整盘)或pvcreate /dev/sdc1(分区); - 该操作仅写入元数据头,不破坏磁盘数据(前提是设备未被使用);
- 完成后可用
pvs验证,新设备应出现在列表中且状态正常。
用 vgextend 将 PV 加入目标卷组
这是核心动作,把新物理卷“贴进”原有卷组,让整个 VG 容量变大:
- 命令格式:
vgextend <vg_name><pv_device></pv_device></vg_name>,例如vgextend centos /dev/sdb; - 成功后再次运行
vgdisplay centos,会看到 VG Size 增大、Free PE 出现正值; - 注意:一个 PV 只能属于一个 VG;同一 VG 中所有 PV 的 PE 大小必须一致(由首次创建 VG 时决定)。
后续必须接 lvextend + 文件系统扩容才真正生效
vgextend 只扩展了“仓库容量”,业务能用的空间还得从这个仓库里切出来,并通知文件系统:
- 用
lvextend -l +100%FREE /dev/<vg_name>/<lv_name></lv_name></vg_name>把 VG 所有空闲空间分给逻辑卷; - 再根据文件系统类型刷新容量:
xfs_growfs /mount/point(XFS)或resize2fs /dev/<vg_name>/<lv_name></lv_name></vg_name>(ext4); - 最后用
df -h确认挂载点空间已更新。











