LVM 逻辑卷管理实战:从磁盘分区到在线扩容与快照备份的完整链路 原创
为什么需要管理逻辑卷
在服务器日常运维中,磁盘空间不足是最常见的故障之一。传统的直接分区方案(fdisk 划分 /dev/sdb1 等)一旦分区建立,扩容就需要删除重建分区、迁移数据,操作繁琐且风险高。LVM(Logical Volume Manager,逻辑卷管理)通过引入「物理卷 → 卷组 → 逻辑卷」的三层抽象,让磁盘空间可以在运行时动态调整,无需停机即可在线扩容。
对于游戏服务器(AzerothCore、TrinityCore)、WordPress 博客或数据库实例而言,日志增长、数据库膨胀、备份累积都是持续吞掉磁盘的典型场景。掌握 LVM 的创建、扩容与快照技巧,能让运维人员在磁盘告警时从容应对。
LVM 的三层架构
| 层级 | 名称 | 说明 |
|---|---|---|
| 物理卷 | PV(Physical Volume) | 将整块磁盘或分区初始化为 PV,是 LVM 的最小存储单元 |
| 卷组 | VG(Volume Group) | 多个 PV 聚合而成的存储池,可以跨磁盘 |
| 逻辑卷 | LV(Logical Volume) | 从 VG 中划分出的可挂载块设备,相当于传统的分区 |
核心优势:当磁盘不够用时,只需将新磁盘加入 VG,再扩展对应 LV,即可无缝扩容;当逻辑卷规划不合理时,也可缩小或重分配。
创建 LVM:从裸盘到挂载
# 1. 初始化物理卷
pvcreate /dev/sdb
# 2. 创建卷组
vgcreate data_vg /dev/sdb
# 3. 创建逻辑卷(分配 100G)
lvcreate -L 100G -n data_lv data_vg
# 4. 格式化并挂载
mkfs.ext4 /dev/data_vg/data_lv
mkdir -p /data
mount /dev/data_vg/data_lv /data
# 5. 写入 fstab 实现开机自动挂载
echo "/dev/data_vg/data_lv /data ext4 defaults 0 0" >> /etc/fstab
挂载后即可正常读写。相比传统分区,这里的逻辑卷路径是 /dev/data_vg/data_lv,而非 /dev/sdb1,这正是后续可以灵活扩容的基础。
在线扩容:磁盘不足时的救急手段
当 /data 空间不足,而卷组还有空闲空间时,无需卸载即可扩展逻辑卷:
# 查看当前 VG 剩余空间
vgdisplay data_vg
# 扩展逻辑卷(增加 50G)
lvextend -L +50G /dev/data_vg/data_lv
# 同步文件系统大小(ext4 / xfs 命令不同)
# ext4 直接 resize
resize2fs /dev/data_vg/data_lv
# 若为 XFS 文件系统,则使用
# xfs_growfs /data
关键点:lvextend 只改变逻辑卷大小,文件系统必须用 resize2fs(ext4)或 xfs_growfs(xfs)同步扩展,否则挂载后仍看不到新增空间。
卷组空间不足时:加入新磁盘
如果整个卷组的空间都已用尽,则需加入一块新物理磁盘再扩容:
# 将新磁盘加入卷组
pvcreate /dev/sdc
vgextend data_vg /dev/sdc
# 再次扩展逻辑卷
lvextend -L +200G /dev/data_vg/data_lv
resize2fs /dev/data_vg/data_lv
这一过程无需卸载文件系统、无需重启服务,是生产环境扩容的标准做法。
LVM 快照:低成本备份与安全回滚
LVM 快照可以在不中断服务的情况下,为逻辑卷创建某一时刻的一致副本,非常适合做数据库备份或升级前的回滚点:
# 创建 10G 大小的快照卷
lvcreate -L 10G -s -n data_snap /dev/data_vg/data_lv
# 挂载快照读取数据
mount /dev/data_vg/data_snap /mnt/snap
# 从快照恢复(需先卸载原卷,慎用)
lvconvert --merge /dev/data_vg/data_snap
# 不再需要时删除快照
lvremove /dev/data_vg/data_snap
注意:快照卷会随着原卷写入而消耗空间,若原卷写入量超过快照预留空间,快照会失效。快照体积应根据业务写入速度合理设置。
常用排查与维护命令
# 查看所有物理卷 / 卷组 / 逻辑卷
pvs
vgs
lvs
# 查看逻辑卷挂载详情
lvdisplay /dev/data_vg/data_lv
# 查看磁盘与分区状况
lsblk
df -h
总结
LVM 让磁盘管理从「一次性规划」变为「按需动态调整」,是 Linux 服务器运维中值得优先掌握的技能。要点包括:牢记三层结构、扩容时务必同步文件系统大小、利用快照实现安全回滚。对于承载 WordPress、游戏模拟器或数据库的服务器,提前规划 LVM 能显著降低磁盘故障带来的业务中断风险。