Published Document

LVM 逻辑卷管理入门与扩容

LVM(Logical Volume Manager)是 Linux 下常用的逻辑卷管理方案。

相比传统分区:

  • LVM 可以动态扩容
  • 支持多个磁盘组合
  • 可以在线扩展容量
  • 更适合服务器与 NAS 场景

常见用途:

  • Docker 数据盘
  • NAS 存储
  • 数据库磁盘
  • 虚拟化存储
  • HomeLab

LVM 结构

LVM 主要由三层组成:

Disk / Partition

PV(Physical Volume)

VG(Volume Group)

LV(Logical Volume)

Filesystem

简单理解:

层级作用
PV物理卷,实际磁盘
VG卷组,多个磁盘组成的大池子
LV逻辑卷,实际使用的分区

创建 LVM

1. 创建 LVM 分区

先使用:

fdisk /dev/sda

创建新分区。

然后修改分区类型:

8e

表示:

Linux LVM

保存:

w

查看结果:

fdisk -l

输出类似:

/dev/sda1   8e  Linux LVM

创建 PV / VG / LV

创建 PV

pvcreate /dev/sda1

创建 VG

vgcreate data_vg /dev/sda1

这里:

data_vg

是卷组名称。


创建 LV

使用全部空间:

lvcreate -l 100%FREE -n data_lv data_vg

参数说明:

参数作用
-l使用百分比容量
-n逻辑卷名称

常用 LV 创建方式

指定固定容量

lvcreate -L 20G -n data_lv data_vg

使用全部 VG 空间

lvcreate -l 100%VG -n data_lv data_vg

使用剩余空间的 80%

lvcreate -l 80%FREE -n data_lv data_vg

这是最常见的方式。


查看 LVM 信息

查看 PV

pvs

查看 VG

vgs

查看 LV

lvs

查看完整信息

lvdisplay
vgdisplay
pvdisplay

格式化与挂载

格式化文件系统

ext4:

mkfs.ext4 /dev/data_vg/data_lv

xfs:

mkfs.xfs /dev/data_vg/data_lv

挂载逻辑卷

临时挂载

mount /dev/data_vg/data_lv /mnt

开机自动挂载

编辑:

/etc/fstab

添加:

/dev/data_vg/data_lv /mnt ext4 defaults 0 0

生效:

mount -a

查看:

df -h

LVM 扩容

LVM 最大的优势就是:

可以动态扩容。


扩容流程

新磁盘

创建 PV

扩展 VG

扩展 LV

扩展文件系统

添加新磁盘

例如:

/dev/vdb

先创建:

/dev/vdb1

并设置:

8e Linux LVM

创建新 PV

pvcreate /dev/vdb1

扩展 VG

vgextend data_vg /dev/vdb1

查看:

vgs

扩展 LV

使用所有剩余空间:

lvextend -l +100%FREE /dev/data_vg/data_lv

扩展文件系统

ext4

resize2fs /dev/data_vg/data_lv

xfs

xfs_growfs /mnt
xfs 无法缩容,只能扩容。

查看扩容结果

df -h

缩容注意事项

LVM 缩容风险很高。

尤其:

  • xfs 不支持缩容
  • ext4 缩容前必须先卸载
  • 缩容顺序错误会直接损坏数据

正确顺序:

卸载文件系统

fsck 检查

缩小文件系统

缩小 LV

ext4 缩容示例

卸载:

umount /mnt

检查文件系统:

e2fsck -f /dev/data_vg/data_lv

缩小文件系统:

resize2fs /dev/data_vg/data_lv 50G

缩小 LV:

lvreduce -L 50G /dev/data_vg/data_lv

重新挂载:

mount -a
缩容前务必备份数据。

删除 LVM

删除顺序:

LV

VG

PV

删除 LV

lvremove /dev/data_vg/data_lv

删除 VG

vgremove data_vg

删除 PV

pvremove /dev/sda1

常见问题

Device busy

说明卷正在使用。

查看:

mount

或者:

lsof | grep data_lv

xfs 无法缩容

这是 xfs 的设计限制。

解决方案:

  • 备份数据
  • 重建文件系统
  • 重新恢复数据

扩容后容量没变化

说明:

文件系统没有扩容

需要执行:

resize2fs

或者:

xfs_growfs

推荐实践

建议:

  • 系统盘使用 LVM
  • 数据盘独立 VG
  • xfs 用于大容量存储
  • ext4 用于需要缩容的场景
  • Docker 数据目录单独 LV

推荐结构:

system_vg
├── root
├── home
└── swap

data_vg
├── docker
├── mysql
└── media

总结

LVM 是 Linux 中最重要的存储管理技术之一。

核心优势:

  • 动态扩容
  • 灵活管理
  • 多磁盘聚合
  • 在线扩展
End of document
Loading Comments...