在云原生与 AI 大模型横行的 2026,存储依然是绕不开的"地基"。无论你跑的是 Kubernetes、向量数据库还是大模型训练任务,底层那块"会变魔术的磁盘技术"——LVM,依然是 Linux 运维工程师的必修课。一、为什么我们还在聊 LVM?
很多人以为有了云盘、有了分布式存储,本地磁盘管理就过时了。事实恰恰相反:
私有化部署:信创、金融、能源等场景仍以裸金属为主,LVM 是标配。
AI 训练节点:动辄数十块 NVMe 盘,扩缩容、快照、迁移全靠 LVM 抽象层。
容器持久化:local-path-provisioner、OpenEBS LocalPV-LVM 都把 LVM 作为底座。
单卷容量受限:很多存储阵列单 LUN 最大 2T、8T、16T,超过就必须靠 LVM 拼装。
一句话:LVM 不是过时的技术,而是被默默用在所有"看起来很现代"的方案里。
二、传统分区的痛,你中过几枪?
回想一下没有 LVM 的日子:
| 场景 | 传统分区方案 | 痛点指数 |
|---|
/var 装满了 | 备份 → 重新分区 → 还原数据 | ★★★★★ |
| 想把两块盘合并使用 | 重做分区,数据搬家 | ★★★★ |
| 业务高峰要扩容 | 必须停机 | ★★★★★ |
| 想做一致性备份 | 锁库或停服 | ★★★★ |
LVM 的出现,把这些痛点几乎一次性解决。
三、LVM 是什么?三层抽象搞清楚
LVM(Logical Volume Manager,逻辑卷管理器)在硬盘与文件系统之间插入了一层"逻辑层",把物理磁盘的细节屏蔽掉。
/dev/sda1 /dev/sdb1 /dev/sdc ← PV (物理卷) \ | / \ | / volume group vg0 ← VG (卷组:一个大存储池) / | \ / | \ lv_app lv_db lv_log ← LV (逻辑卷) | | | ext4 xfs xfs ← 文件系统
三个核心概念:
PV(Physical Volume)物理卷:一块硬盘、一个分区,或一个 RAID 设备。
VG(Volume Group)卷组:多个 PV 汇成的"存储池"。
LV(Logical Volume)逻辑卷:从 VG 里切出来的"虚拟分区",可随时扩缩。
还有两个"小弟"概念:
四、实战速查:从零搭一套 LVM
假设有三块新盘:/dev/sdb、/dev/sdc、/dev/sdd
1️⃣ 把分区类型改成 LVM(8e)
fdisk /dev/sdb# n → 新建分区# t → 更改类型# 8e → Linux LVM# w → 写入并退出
💡 如果整盘直接当 PV 用,可以省去这一步。
2️⃣ 创建物理卷 PV
pvcreate /dev/sdb /dev/sdc /dev/sddpvs # 查看 PV 列表pvdisplay # 查看详情
3️⃣ 创建卷组 VG
vgcreate datavg /dev/sdb /dev/sdc /dev/sddvgsvgdisplay datavg
4️⃣ 创建逻辑卷 LV
# 创建一个 100G 的 LVlvcreate -L 100G -n lv_app datavg# 把 VG 剩余空间全部用完lvcreate -l 100%FREE -n lv_data datavg
5️⃣ 创建文件系统并挂载
mkfs.xfs /dev/datavg/lv_appmkdir /data/appmount /dev/datavg/lv_app /data/app# 开机自动挂载echo "/dev/datavg/lv_app /data/app xfs defaults 0 0" >> /etc/fstab
至此,一套可弹性伸缩的存储就搭好了。
五、扩容与缩容:LVM 真正的杀手锏
在线扩容(最常用)
# 1. 给 VG 加新盘pvcreate /dev/sdevgextend datavg /dev/sde# 2. 扩大 LVlvextend -L +50G /dev/datavg/lv_app# 或一次性吃掉 VG 所有剩余空间lvextend -l +100%FREE /dev/datavg/lv_app# 3. 扩容文件系统(无需卸载)xfs_growfs /data/app # XFSresize2fs /dev/datavg/lv_app # ext4
整个过程业务零中断,这就是 LVM 的核心价值。
缩容(谨慎操作)
⚠️ XFS 不支持在线缩容;ext4 可以,但建议先备份。
umount /data/appe2fsck -f /dev/datavg/lv_appresize2fs /dev/datavg/lv_app 50Glvreduce -L 50G /dev/datavg/lv_appmount /data/app
六、快照(Snapshot):一致性备份的神器
业务场景:夜里 2 点要备份数据库,但又不能停服——快照就是为此而生。
# 创建一个 10G 的快照lvcreate -L 10G -s -n lv_app_snap /dev/datavg/lv_app# 挂载快照,拷出来备份mkdir /backup/snapmount -o ro,nouuid /dev/datavg/lv_app_snap /backup/snaptar czf /backup/app_$(date +%F).tar.gz -C /backup/snap .# 备份完删除快照umount /backup/snaplvremove -f /dev/datavg/lv_app_snap
原理:CoW(Copy-on-Write,写时复制)。快照只记录"差异块",所以创建非常快、占用空间少。
⚠️ 如果快照空间被写满,会自动失效。建议预留够,或用 lvextend 在线扩容。
七、进阶玩法:LVM2 不只是分区工具
1. 在线数据迁移
要换一块新盘,把旧盘上的数据迁走:
pvmove /dev/sdb /dev/sde # 把 sdb 上的数据搬到 sdevgreduce datavg /dev/sdb # 从 VG 中移除pvremove /dev/sdb # 拔掉 PV
全程业务不停——这在传统分区时代是不可想象的。
2. 镜像(高可用)
lvconvert -m 1 /dev/datavg/lv_db # 给 lv_db 加一个镜像
一块盘坏了,业务依然可用。
3. 条带化(高性能)
lvcreate -i 3 -I 64 -L 500G -n lv_fast datavg# -i 3:跨 3 个 PV 条带化# -I 64:条带大小 64KB
类似软 RAID0,适合 AI 训练、日志写入等吞吐密集场景。
4. 透明加密
cryptsetup luksFormat /dev/datavg/lv_secret
配合 dm_crypt,可以对任意 LV 做透明加密,满足等保合规。
八、踩坑笔记
XFS 不能缩容:选文件系统前想清楚业务是否可能缩容。
pvmove 不可中断:尤其是条带化 LV,中断可能导致数据损坏,务必先备份。
快照空间要预估:变化量大的卷,快照至少给原卷的 10%~20%。
/boot 不要放 LVM 上:老 GRUB 不识别,新版虽然支持,但排障麻烦。
多路径环境用 multipath 设备名:不要直接用 /dev/sdX,重启后会漂移。
生产环境一律 vgchange -a n 后再拔盘:避免脏元数据。
九、写在最后
LVM 已经诞生 20 多年,但在 2026 年的今天,它依然是 Linux 存储栈中最稳、最实用的那一层。无论你是在维护一台老古董服务器,还是在搭建 AI 训练集群,掌握 LVM 都能让你在关键时刻"救场"。
记住这张速查图:
pvcreate → vgcreate → lvcreate → mkfs → mount ↑ ↑ ↑ 加盘做PV PV组成VG 从VG切LV
把它收藏起来,下一次半夜被磁盘告警叫醒时,你会感谢自己。
📌 命令速查表
| 操作 | 命令 |
|---|
| 查看 PV / VG / LV | pvs / vgs / lvs |
| 详细信息 | pvdisplay / vgdisplay / lvdisplay |
| 扩 VG | vgextend <vg> <pv> |
| 缩 VG | vgreduce <vg> <pv> |
| 扩 LV | lvextend -L +10G <lv> |
| 缩 LV | lvreduce -L -10G <lv> |
| XFS 扩容 | xfs_growfs <挂载点> |
| ext4 扩缩 | resize2fs <lv> [size] |
| 创建快照 | lvcreate -s -L 5G -n snap <lv> |
| 迁移数据 | pvmove <src> <dst> |
觉得有用?点个在看,转发给身边的运维兄弟,关键时刻能救命