LVM 三层抽象
物理盘 → PV(Physical Volume)
↓ 组成
VG(Volume Group,"池子")
↓ 分出
LV(Logical Volume,"逻辑分区")
↓ 格式化 + 挂载
文件系统 → /data
详见 linux/40-lvm。
装 + 完整流程
sudo apt install lvm2
# 1. 物理盘 → PV
sudo pvcreate /dev/sdb /dev/sdc
# 2. PV → VG
sudo vgcreate datavg /dev/sdb /dev/sdc
# 3. VG 分出 LV
sudo lvcreate -L 50G -n datalv datavg
# 或按百分比
sudo lvcreate -l 50%FREE -n applv datavg
# 4. 格式化 + 挂载
sudo mkfs.ext4 /dev/datavg/datalv
sudo mkdir /data
sudo mount /dev/datavg/datalv /data
查看
# 看 PV / VG / LV
sudo pvs # PV 简短
sudo pvdisplay # PV 详细
sudo vgs
sudo vgdisplay
sudo lvs
sudo lvdisplay
在线扩容(LVM 最爽功能)
# VG 还有空间时扩 LV
sudo lvextend -L +50G /dev/datavg/datalv
# 扩文件系统
sudo resize2fs /dev/datavg/datalv # ext4
sudo xfs_growfs /data # xfs(注意:是挂载点不是设备)
# 一步搞定(lvextend + 文件系统)
sudo lvextend -r -L +50G /dev/datavg/datalv
# 完成!不停机不卸载
df -h /data
加新盘到 VG
sudo pvcreate /dev/sdd
sudo vgextend datavg /dev/sdd
# VG 多 100G 可用
快照(数据库备份用)
sudo lvcreate -L 10G -s -n datasnap /dev/datavg/datalv
sudo mount -o ro /dev/datavg/datasnap /mnt/snap
cp -a /mnt/snap/important /backup/
sudo umount /mnt/snap
sudo lvremove /dev/datavg/datasnap
⚠ 缩 LV(少用 + 危险)
sudo umount /data
sudo e2fsck -f /dev/datavg/datalv
sudo resize2fs /dev/datavg/datalv 30G # 先缩 fs
sudo lvreduce -L 30G /dev/datavg/datalv # 再缩 LV
sudo mount /data
先缩 fs 再缩 LV——反过来数据丢光。操作前必须备份。
删除
sudo umount /data
sudo lvremove /dev/datavg/datalv
sudo vgremove datavg
sudo pvremove /dev/sdb /dev/sdc
云上常见:扩盘后让分区跟上
云控制台扩盘 100G → 150G,但服务器看到分区还是 100G:
sudo growpart /dev/vda 1 # 扩分区
sudo resize2fs /dev/vda1 # 扩文件系统
df -h # 验证
云系统盘通常不用 LVM——直接 growpart + resize2fs 搞定。
坑
- LVM 增加了一层抽象——故障定位更复杂
- 系统盘上 LVM 失败 = 系统起不来——救援盘救
- 小项目 / 单盘不需要 LVM——直接 ext4 简单