LVM 是什么
LVM 把磁盘存储分成三层管理:物理卷(PV)是初始化过的磁盘或分区,卷组(VG)把它们汇成一个资源池,逻辑卷(LV)再从池子里切出可以当作分区使用的设备。这样做的收益是扩容不再依赖重新分区:磁盘扩容后把物理卷刷新一下、把逻辑卷扩上、再把文件系统撑开,全部可以在线完成。麒麟与 openEuler 的安装器都内置 LVM 选项,服务器上推荐按这个方式规划。
基本信息
| 层级关系 | 物理卷 → 卷组 → 逻辑卷 |
|---|---|
| 扩容顺序 | 先刷新物理卷,再扩逻辑卷,最后扩文件系统 |
| 查看命令 | pvs 看物理卷,vgs 看卷组,lvs 看逻辑卷 |
| 扩容命令 | pvresize、lvextend,文件系统用对应工具撑开 |
| 文件系统差异 | XFS 用 xfs_growfs,ext4 用 resize2fs |
| 适用平台 | Kylin V10 / UOS 服务器版 / openEuler |
典型使用场景
- 虚拟机磁盘扩容后在线撑大根分区,无需停机重建
- 数据目录容量按需增长:把数据盘做成卷组,随时切出新的逻辑卷
- 多块盘合并使用:把多块同规格磁盘汇入一个卷组,简化容量管理
- 变更前做快照:临时留一个回滚点,降低升级与改配置的风险
- 迁机搬迁:把逻辑卷与文件系统作为整体搬运,结构清晰
- 容量规划:按业务增长预留卷组余量,扩容只需几步命令
在线扩容示例(XFS 根分区)
在线扩容示例(XFS 根分区)
# 前提:底层磁盘或虚拟磁盘已扩大,分区表已同步
pvresize /dev/sda3 # 刷新物理卷,让容量进入卷组
vgs # 确认卷组出现可用空间
lvextend -l +100%FREE /dev/vg0/root # 把剩余空间全部扩给逻辑卷
xfs_growfs / # XFS 撑开文件系统,ext4 改用 resize2fs
df -h / # 确认容量已生效常用命令对照
| 命令 | 作用 | 使用提示 |
|---|---|---|
| pvs / vgs / lvs | 查看三层对象概况 | 扩容前后各看一次便于比较 |
| pvresize | 把新增容量刷进物理卷 | 磁盘扩容后必须先做这一步 |
| lvextend | 扩逻辑卷 | 可按容量或百分比分配 |
| xfs_growfs | 撑开 XFS 文件系统 | 只能扩不能缩 |
| resize2fs | 调整 ext4 文件系统 | 在逻辑卷扩容之后执行 |
| lvcreate -s | 创建快照 | 需要卷组有预留空间 |
扩容前先确认文件系统类型:XFS 只能在线扩、不能在线的缩小,需要缩容只能备份后重建。顺序也必须按物理卷、逻辑卷、文件系统依次执行,颠倒步骤不会报错但容量不会生效,容易误判为操作失败。
多数发行版建议把引导分区独立出来,不要放在卷组里,避免引导流程与卷组互相依赖导致系统起不来;卷组本身预留一部分空闲空间,突发扩容时不必先动磁盘。