LVM卷组(VG)是连接物理存储与逻辑使用的枢纽,需先将分区初始化为物理卷(PV)再创建;支持在线扩展、安全缩减及快照管理,是构建可靠存储体系的关键。

Linux 中的磁盘与分区管理,核心在于灵活适配业务变化——LVM 提供逻辑卷的动态伸缩能力,RAID 保障数据冗余与性能,而卷组(VG)正是连接物理存储与逻辑使用的枢纽。掌握 VG 的创建、扩展、缩减和快照管理,是构建可靠存储体系的关键一步。
创建卷组:从物理卷到可用空间池
卷组不能直接由硬盘或分区构建,必须先初始化为物理卷(PV),再组合成 VG。常见操作流程如下:
- 用 fdisk 或 parted 创建分区(如 /dev/sdb1),并设置分区类型为 8e(Linux LVM)
- 执行 pvcreate /dev/sdb1 将其标记为物理卷
- 运行 vgcreate myvg /dev/sdb1 创建名为 myvg 的卷组;支持多 PV 同时加入,例如:
vgcreate myvg /dev/sdb1 /dev/sdc1 - 用 vgdisplay myvg 查看总容量、空闲空间及 PE 大小(默认 4MB,可创建时用 -s 指定)
动态扩展卷组:在线添加新物理卷
当现有 VG 空间不足,又不想中断服务时,可热添加新 PV。前提是系统已识别新磁盘或新分区,并完成 PV 初始化:
- 确认新设备路径(如 /dev/sdd1),执行 pvcreate /dev/sdd1
- 执行 vgextend myvg /dev/sdd1 将其纳入卷组
- 运行 vgs 或 vgdisplay myvg 验证空闲 PE 数量是否增加
- 后续可通过 lvextend 扩展已有逻辑卷,再用 resize2fs(ext4)或 xfs_growfs(XFS)同步文件系统
安全缩减卷组:迁移数据后移除物理卷
缩减 VG 是高风险操作,必须确保目标 PV 上所有数据已迁出。系统不支持直接删除非空 PV:
- 用 pvs -o +pv_used 查看各 PV 使用情况,确认待移除 PV(如 /dev/sdb1)是否还有 LV 分布
- 若存在占用,先用 pvmove /dev/sdb1 将其上所有 PE 自动迁移到同 VG 内其他空闲 PV
- 迁移完成后,执行 vgreduce myvg /dev/sdb1 从卷组中剔除该 PV
- 最后可选 pvremove /dev/sdb1 清除 LVM 元数据(仅当该 PV 不再用于 LVM)
卷组快照与状态维护:保障一致性与可观测性
快照本身属于逻辑卷,但依赖于卷组提供元数据空间和 COW(写时复制)机制。日常维护需关注 VG 健康度:
- 创建快照前,确保 VG 有足够空闲空间(建议 ≥ 预估变更量的 20%):
lvcreate -L 2G -s -n snap_home /dev/myvg/home - 定期检查 VG 状态:vgscan --cache 刷新缓存,vgs -v 查看详细属性
- 遇到 VG 不可见时,先运行 pvscan 确认 PV 是否被识别,再用 vgscan 重建 VG 缓存
- 避免在 VG 中混用不同 RAID 级别或性能差异大的磁盘,可能引发 I/O 偏斜与瓶颈










