LVM 逻辑卷管理完整教程
LVM(Logical Volume Manager)是 Linux 系统中灵活管理磁盘存储的标准工具。它在物理磁盘与文件系统之间增加了一个逻辑层,让你可以动态调整分区大小、跨磁盘创建卷和创建快照。在搬瓦工 VPS 上掌握 LVM 管理,可以更灵活地管理存储空间。
一、LVM 核心概念
- 物理卷(PV,Physical Volume):LVM 管理的底层存储设备,可以是整块磁盘或分区。
- 卷组(VG,Volume Group):由一个或多个物理卷组成的存储池。
- 逻辑卷(LV,Logical Volume):从卷组中划分出来的逻辑分区,可以创建文件系统并挂载使用。
- 物理区块(PE,Physical Extent):卷组中的最小分配单位,默认 4MB。
安装 LVM 工具
# Ubuntu/Debian
apt update
apt install lvm2 -y
# CentOS
yum install lvm2 -y
# 启动 LVM 服务
systemctl enable lvm2-lvmetad
systemctl start lvm2-lvmetad
二、物理卷管理
# 查看可用磁盘
lsblk
fdisk -l
# 创建物理卷
pvcreate /dev/vdb
pvcreate /dev/vdc
# 查看物理卷信息
pvs
pvdisplay /dev/vdb
# 删除物理卷
pvremove /dev/vdb
三、卷组管理
# 创建卷组(包含一个或多个物理卷)
vgcreate datavg /dev/vdb /dev/vdc
# 查看卷组信息
vgs
vgdisplay datavg
# 扩展卷组(添加新的物理卷)
pvcreate /dev/vdd
vgextend datavg /dev/vdd
# 缩减卷组(移除物理卷前需迁移数据)
pvmove /dev/vdc
vgreduce datavg /dev/vdc
# 重命名卷组
vgrename datavg newdatavg
四、逻辑卷管理
4.1 创建逻辑卷
# 按大小创建
lvcreate -L 10G -n datalv datavg
# 按剩余空间百分比创建
lvcreate -l 100%FREE -n datalv datavg
# 按 PE 数量创建
lvcreate -l 2560 -n datalv datavg
# 查看逻辑卷
lvs
lvdisplay /dev/datavg/datalv
4.2 格式化并挂载
# 创建文件系统
mkfs.ext4 /dev/datavg/datalv
# 创建挂载点
mkdir -p /data
# 挂载
mount /dev/datavg/datalv /data
# 写入 fstab 永久挂载
echo '/dev/datavg/datalv /data ext4 defaults,noatime 0 0' >> /etc/fstab
# 验证挂载
df -Th /data
4.3 扩展逻辑卷
# 扩展逻辑卷大小
lvextend -L +5G /dev/datavg/datalv
# 或扩展到使用卷组所有剩余空间
lvextend -l +100%FREE /dev/datavg/datalv
# 扩展文件系统(ext4)
resize2fs /dev/datavg/datalv
# 一步完成扩展逻辑卷和文件系统
lvextend -L +5G -r /dev/datavg/datalv
4.4 缩减逻辑卷
# 注意:缩减操作有数据丢失风险,务必先备份
# ext4 需要先卸载
umount /data
# 检查文件系统
e2fsck -f /dev/datavg/datalv
# 缩减文件系统
resize2fs /dev/datavg/datalv 8G
# 缩减逻辑卷
lvreduce -L 8G /dev/datavg/datalv
# 重新挂载
mount /dev/datavg/datalv /data
五、LVM 快照
LVM 快照利用写时复制(CoW)技术,可以在不停止服务的情况下创建一致性备份。
# 创建快照(需要卷组有足够的空闲空间)
lvcreate -L 2G -s -n datalv-snap /dev/datavg/datalv
# 查看快照状态
lvs -a
lvdisplay /dev/datavg/datalv-snap
# 挂载快照(只读访问备份数据)
mkdir -p /mnt/snapshot
mount -o ro /dev/datavg/datalv-snap /mnt/snapshot
# 从快照恢复数据
umount /data
lvconvert --merge /dev/datavg/datalv-snap
# 合并后逻辑卷需要重新激活
lvchange -an /dev/datavg/datalv
lvchange -ay /dev/datavg/datalv
mount /dev/datavg/datalv /data
# 删除快照
umount /mnt/snapshot
lvremove /dev/datavg/datalv-snap
六、LVM 条带化
条带化可以将数据分散到多个物理卷上,提升 I/O 性能:
# 创建条带化逻辑卷(跨 2 个 PV,条带大小 64KB)
lvcreate -L 10G -n stripelv -i 2 -I 64K datavg
# 查看条带化信息
lvdisplay -m /dev/datavg/stripelv
七、LVM 缓存
LVM 支持使用快速存储(如 SSD)作为慢速存储(如 HDD)的缓存层:
# 创建缓存数据卷(在 SSD 上)
lvcreate -L 5G -n cache_data datavg /dev/vdb
# 创建缓存元数据卷
lvcreate -L 100M -n cache_meta datavg /dev/vdb
# 创建缓存池
lvconvert --type cache-pool --poolmetadata datavg/cache_meta datavg/cache_data
# 将缓存池关联到数据卷
lvconvert --type cache --cachepool datavg/cache_data datavg/datalv
八、常用排错命令
# 扫描并重建 LVM 元数据
pvscan
vgscan
lvscan
# 修复卷组元数据
vgck datavg
# 备份 LVM 元数据
vgcfgbackup datavg
# 恢复 LVM 元数据
vgcfgrestore datavg
# 强制激活逻辑卷
lvchange -ay --force /dev/datavg/datalv
# 查看 LVM 日志
journalctl -u lvm2-lvmetad
九、最佳实践
- 创建卷组时不要用完所有空间,预留 10-20% 用于快照和扩展。
- 使用有意义的命名规则,如
webvg/wwwlv、dbvg/mysqllv。 - 定期监控快照的空间使用情况,快照空间用尽会导致快照失效。
- 扩展操作是安全的(在线即可完成),缩减操作务必先备份数据。
- LVM 配合 Ext4 或 Btrfs 使用效果最佳。
总结
LVM 为搬瓦工 VPS 提供了灵活的存储管理能力,尤其是在线扩展和快照功能非常实用。如果需要更高级的数据保护,可以结合 RAID 配置 使用。选购搬瓦工 VPS 请查看 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 访问官网。