LVM(Logical Volume Manager,逻辑卷管理)常用命令

LVM(Logical Volume Manager,逻辑卷管理)是 Linux 系统中非常强大的磁盘管理工具。它的核心逻辑就像“搭积木”:先将物理磁盘化整为零(PV),再合零为整(VG),最后按需分配(LV)。

为了方便记忆,我们可以按照 PV(物理卷)→ VG(卷组)→ LV(逻辑卷) 的层级结构来总结常用命令。


1. 基础创建流程(从零开始)

如果你有一块新硬盘 /dev/sdb,想要创建一个名为 data_lv 的逻辑卷:

步骤 命令 说明
第一步:创建 PV pvcreate /dev/sdb 将物理硬盘初始化为 LVM 成员
第二步:创建 VG vgcreate data_vg /dev/sdb 创建一个名为 data_vg 的存储池
第三步:创建 LV lvcreate -L 10G -n data_lv data_vg 从池中划分 10G 空间给 data_lv
第四步:格式化 mkfs.ext4 /dev/data_vg/data_lv 格式化后才能挂载使用

2. 扩容操作(最常用)

LVM 最大的优势就是可以在线扩容(无需卸载磁盘)。

A. 场景:卷组(VG)空间充足

直接给逻辑卷(LV)加点肉:

  • 增加指定大小: lvextend -L +5G /dev/data_vg/data_lv
  • 按百分比分配(如:剩余全部空间): lvextend -l +100%FREE /dev/data_vg/data_lv
  • 关键一步(同步文件系统):
  • 如果是 ext4resize2fs /dev/data_vg/data_lv
  • 如果是 xfsxfs_growfs /挂载点
  • 小技巧:lvextend 命令后加上 -r 参数,可以自动调整文件系统大小。

B. 场景:卷组(VG)空间也用完了

需要加入新硬盘 /dev/sdc

  1. pvcreate /dev/sdc
  2. vgextend data_vg /dev/sdc(把新硬盘扩充到池子里)
  3. 然后再执行上面的 LV 扩容步骤。

3. 缩减空间(高风险)

注意: > 1. XFS 文件系统不支持缩减!
2. 必须先卸载(umount)磁盘,且必须先缩减文件系统,再缩减 LV。数据无价,操作前请务必备份。

以 ext4 为例,将 10G 缩减到 5G:

  1. 卸载: umount /dev/data_vg/data_lv
  2. 检查磁盘: e2fsck -f /dev/data_vg/data_lv
  3. 缩减文件系统: resize2fs /dev/data_vg/data_lv 5G
  4. 缩减 LV: lvreduce -L 5G /dev/data_vg/data_lv
  5. 重新挂载: mount /dev/data_vg/data_lv /mnt

4. 查看与监控

这些命令可以让你随时掌握存储的使用情况:

  • 简略摘要: pvs, vgs, lvs
  • 详细状态: pvdisplay, vgdisplay, lvdisplay
  • 查看扫描: pvscan, vgscan(用于发现系统新识别的 LVM 卷)

5. 删除操作

删除顺序与创建顺序相反

  1. 卸载挂载点: umount /mnt
  2. 删除 LV: lvremove /dev/data_vg/data_lv
  3. 删除 VG: vgremove data_vg
  4. 删除 PV: pvremove /dev/sdb

:light_bulb: 避坑小贴士

  • 起名要规范: 建议 VG 以 _vg 结尾,LV 以 _lv 结尾,这样在 /dev/ 下一眼就能认出来。
  • 扩容先看 VG: 扩容 LV 之前先用 vgs 看一眼 VFree(剩余空间)够不够,不够就得先扩 VG。
  • 快照功能: LVM 还可以创建快照(lvcreate -s),这是更新系统或做实验前的“后悔药”。