LVM 逻辑卷管理入门与扩容

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 中最重要的存储管理技术之一。

核心优势:

动态扩容

灵活管理

多磁盘聚合

在线扩展

相关推荐