菜单

Administrator
发布于 2026-10-10 / 3 阅读
0
0

Linux 进阶 L18:LVM——会变魔术的磁盘

Linux 进阶 L18:LVM——会变魔术的磁盘

分区不够用了怎么办?传统办法:备份数据、删分区、重分区、恢复数据——折腾一下午。LVM:一条命令,磁盘在线变大,服务都不用停。

LVM 是什么

LVM 给磁盘加了个"中间层":物理磁盘 → PV(物理卷) → VG(卷组,磁盘池) → LV(逻辑卷,给你用的"分区")。

打个比方:PV 是砖头,VG 是砖头砌成的蓄水池,LV 是从池子里接出来的水管,要多粗有多粗,随时能加粗。

三个概念

sudo pvs    # 看物理卷:哪些盘加入了 LVM
sudo vgs    # 看卷组:池子多大、用了多少
sudo lvs    # 看逻辑卷:分了几根"水管"

实战:创建一个 LVM 卷

假设有块新硬盘 /dev/sdb:

# 1. 做成物理卷
sudo pvcreate /dev/sdb

# 2. 建卷组(池子取名 vg_data)
sudo vgcreate vg_data /dev/sdb

# 3. 从池子里切 10G 出来(逻辑卷取名 lv_web)
sudo lvcreate -L 10G -n lv_web vg_data

# 4. 格式化、挂载
sudo mkfs.ext4 /dev/vg_data/lv_web
sudo mkdir /data && sudo mount /dev/vg_data/lv_web /data

魔术时刻:在线扩容

网站数据爆了,10G 不够,要加到 20G:

# 池子里还有空间,直接扩
sudo lvextend -L +10G /dev/vg_data/lv_web
sudo resize2fs /dev/vg_data/lv_web    # ext4 文件系统也要"撑大"

两行命令,服务不用停,用户没感知。

没空间了?加块新盘进池子:

sudo pvcreate /dev/sdc
sudo vgextend vg_data /dev/sdc    # 池子变大了

快照:后悔药

升级前拍个快照,翻车了秒回滚:

sudo lvcreate -L 2G -s -n snap_web /dev/vg_data/lv_web
# -s 表示快照,只存变化的部分

# 翻车了,恢复:
sudo umount /data
sudo lvconvert --merge /dev/vg_data/snap_web
sudo mount /dev/vg_data/lv_web /data

什么时候用 LVM

VPS 数据盘、数据库服务器(快照备份)。很多云厂商镜像默认就带 LVM,lsblk 看到 vg-xxx 字样就是。

小结

命令

干啥

pvcreate / vgcreate / lvcreate

建物理卷/卷组/逻辑卷

lvextend + resize2fs

在线扩容

vgextend

加盘进池子

lvcreate -s

打快照

LVM 的核心思想:存储资源池化,按需分配。


评论