LVM 全称 Logical Volume Manager(逻辑卷管理器),主要用于 Linux 系统的磁盘和分区管理。

它的作用是:在物理硬盘和文件系统之间,加了一层“抽象层”,让磁盘管理更灵活。


基本概念

  1. PV(Physical Volume,物理卷)

    • 就是硬盘分区或者整块硬盘,经过 pvcreate 初始化后变成 PV。
  2. VG(Volume Group,卷组)

    • 把多个 PV 组合成一个大的存储池。
    • 可以理解为“存储池子”,容量是所有 PV 加起来。
  3. LV(Logical Volume,逻辑卷)

    • 从 VG 中划分出来的逻辑卷,相当于传统的分区。
    • 可以在其上创建文件系统(ext4/xfs 等),挂载使用。
  4. PE(Physical Extent,物理区域)

    • VG 里的最小分配单元,通常是 4MB 或 16MB。

LVM 的好处


举个例子

假设你有两块 500GB 的硬盘:

  1. 把它们初始化成 PV。
  2. 再把这两个 PV 合并成一个 VG,总共 1TB。
  3. 在 VG 里创建一个 700GB 的 LV 给数据库,一个 300GB 的 LV 给文件存储。
    如果以后硬盘不够了,再加一块 1TB 硬盘到 VG 里,就能无缝扩容。

image.png
这是一个 LVM 结构示意图


🔬 LVM 实验:从零创建 LVM 并挂载使用

实验目标


实验环境


实验步骤

1️⃣ 查看新硬盘

lsblk

你会看到类似:

sda   40G  (系统盘)
sdb    2G
sdc    2G

2️⃣ 创建 PV(物理卷)

pvcreate /dev/sdb /dev/sdc

验证:

pvs

输出:

PV         VG   Fmt  Attr PSize   PFree
/dev/sdb        lvm2 ---  2.00g  2.00g
/dev/sdc        lvm2 ---  2.00g  2.00g

3️⃣ 创建 VG(卷组)

vgcreate myvg /dev/sdb /dev/sdc

查看:

vgs

结果:

VG    #PV #LV #SN Attr   VSize  VFree
myvg   2   0   0 wz--n-  3.99g  3.99g

4️⃣ 创建 LV(逻辑卷)

比如创建一个 3G 的逻辑卷:

lvcreate -L 3G -n mylv myvg

查看:

lvs

输出:

LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 3.00g

5️⃣ 格式化并挂载

mkfs.ext4 /dev/myvg/mylv
mkdir /mnt/mylvm
mount /dev/myvg/mylv /mnt/mylvm
df -h /mnt/mylvm

能看到一个 3GB 的新分区。


6️⃣ 动态扩容(体验 LVM 的强大)

比如再扩容 1GB:

lvextend -L +1G /dev/myvg/mylv
resize2fs /dev/myvg/mylv

再看:

df -h /mnt/mylvm

容量已经变大了!


7️⃣ 卸载与删除(清理实验环境)

umount /mnt/mylvm
lvremove /dev/myvg/mylv
vgremove myvg
pvremove /dev/sdb /dev/sdc

✅ 实验总结


注意事项

在vmware中添加磁盘后,记得要扫描下,否则lsblk无法显示磁盘

# 查看所有SCSI主机总线
ls /sys/class/scsi_host/

# 对每个host执行扫描(例如host0, host1, host2)
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan