LVM(Logical Volume Manager)使用指南

LVM 是 Linux 下的一种磁盘管理工具,可以对磁盘进行分区、扩展、缩减等操作。通过 LVM,用户可以更灵活地管理磁盘空间,提高存储利用率。


一、LVM 架构概述

1.1 存储层次结构

磁盘(Disk) → 分区(Partition) → 物理卷(PV) → 卷组(VG) → 逻辑卷(LV) → 文件系统(FS)

1.2 架构示意图

┌─────────────────────────────────────────────────────────────┐
│                        文件系统 (FS)                         │
│                    xfs / ext4 / 其他格式                      │
├─────────────────────────────────────────────────────────────┤
│                        逻辑卷 (LV)                           │
│              由多个 LE 组成,可动态扩缩                        │
├─────────────────────────────────────────────────────────────┤
│                        卷组 (VG)                             │
│            PE 池,聚合多个物理卷的空间                         │
├──────────────────┬──────────────────┬───────────────────────┤
│    物理卷 (PV)    │    物理卷 (PV)    │    物理卷 (PV)        │
│    /dev/sdb1     │    /dev/sdc1     │    /dev/sdd1         │
├──────────────────┼──────────────────┼───────────────────────┤
│    磁盘/分区      │    磁盘/分区      │    磁盘/分区          │
│    /dev/sdb      │    /dev/sdc      │    /dev/sdd          │
└──────────────────┴──────────────────┴───────────────────────┘

二、LVM 核心概念

术语

全称

说明

PM

Physical Media

物理存储介质:分区、磁盘、RAID 阵列或 SAN 磁盘

PV

Physical Volume

物理卷,LVM 的基本存储逻辑块,包含 LVM 管理参数

VG

Volume Group

卷组,由一个或多个物理卷组成

LV

Logical Volume

逻辑卷,建立在 VG 之上,可创建文件系统

PE

Physical Extent

物理范围,PV 中可分配的最小存储单元(默认 4MB)

LE

Logical Extent

逻辑范围,LV 中可分配的最小存储单元,与 PE 一一对应

关键特性

  • 动态扩缩:LV 的扩缩实际是增减 PE 数量,过程不丢失数据

  • 跨磁盘存储:LV 的 PE 可来自不同物理磁盘

  • 灵活管理:可在线扩展文件系统,无需卸载


三、创建 LVM 完整流程

步骤 1:磁盘分区(大容量磁盘必需)

fdisk /dev/sdb
# 按提示创建分区,如 /dev/sdb1

步骤 2:创建物理卷 (PV)

pvcreate /dev/sdb1

查看 PV 信息:

pvs
# 或
pvdisplay

步骤 3:创建卷组 (VG)

vgcreate oraclevg /dev/sdb1

查看 VG 信息:

vgs
# 或
vgdisplay

步骤 4:创建逻辑卷 (LV)

# -n: 指定名称  -L: 指定大小  -l: 指定 LE 数量
lvcreate -n lvoracle -L 2G oraclevg

查看 LV 信息:

lvs
# 或
lvdisplay

步骤 5:格式化与挂载

# 格式化为 xfs 文件系统
mkfs.xfs /dev/oraclevg/lvoracle

# 创建挂载点
mkdir /oracle

# 挂载
mount /dev/oraclevg/lvoracle /oracle/

# 设置开机自动挂载(可选)
echo "/dev/oraclevg/lvoracle /oracle xfs defaults 0 0" >> /etc/fstab

四、LVM 扩容操作

4.1 LV 扩容

前提:VG 有可用空间

# 1. 检查 VG 可用空间
vgs
# VFree 列显示可用空间

# 2. 扩容 LV(-r 自动调整文件系统)
lvextend -L +100M -r /dev/vg-sdb1/lv-sdb1

# 或指定绝对大小
lvextend -L 10G -r /dev/vg-sdb1/lv-sdb1

手动调整文件系统(若未使用 -r 参数):

# 查看文件系统类型
df -T

# xfs 文件系统
xfs_growfs /dev/mapper/cl_fedora-home

# ext4 文件系统
resize2fs /dev/mapper/cl_fedora-home

4.2 VG 扩容

前提:有新磁盘可用

# 1. 创建新物理卷
pvcreate /dev/sdc

# 2. 将 PV 添加到 VG
vgextend vg-sdb1 /dev/sdc

# 3. 验证扩容
vgs

4.3 完整扩容流程(VG + LV)

当 VG 空间不足时的完整操作:

# 1. 添加新磁盘并创建 PV
pvcreate /dev/sdc

# 2. 扩展 VG
vgextend vg-sdb1 /dev/sdc

# 3. 扩展 LV
lvextend -L +10G -r /dev/vg-sdb1/lv-sdb1

# 4. 验证
df -h
lvs
vgs

五、常用命令速查

5.1 查看命令

操作

命令

查看 PV

pvspvdisplay

查看 VG

vgsvgdisplay

查看 LV

lvslvdisplay

查看文件系统类型

df -T

查看磁盘分区

fdisk -llsblk

5.2 创建命令

操作

命令

创建 PV

pvcreate /dev/sdb1

创建 VG

vgcreate <vg名> /dev/sdb1

创建 LV

lvcreate -n <lv名> -L <大小> <vg名>

格式化 xfs

mkfs.xfs /dev/<vg名>/<lv名>

格式化 ext4

mkfs.ext4 /dev/<vg名>/<lv名>

5.3 扩容命令

操作

命令

扩容 LV

lvextend -L +<大小> -r /dev/<vg>/<lv>

扩容 VG

vgextend <vg名> /dev/sdc

调整 xfs

xfs_growfs /dev/<vg>/<lv>

调整 ext4

resize2fs /dev/<vg>/<lv>

5.4 缩减命令(谨慎操作)

操作

命令

缩减 LV

lvreduce -L -<大小> /dev/<vg>/<lv>

从 VG 移除 PV

vgreduce <vg名> /dev/sdc

删除 PV

pvremove /dev/sdc


六、操作流程图

┌─────────────────────────────────────────────────────────┐
│                    创建 LVM 流程                         │
├─────────────────────────────────────────────────────────┤
│  磁盘分区 → pvcreate → vgcreate → lvcreate → mkfs → mount│
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│                    LV 扩容流程                          │
├─────────────────────────────────────────────────────────┤
│  检查 VG 空间                                           │
│      ├─ 有空间 → lvextend -r → 验证                     │
│      └─ 无空间 → 先 vgextend → 再 lvextend -r → 验证    │
└─────────────────────────────────────────────────────────┘

七、注意事项

  1. 大容量磁盘:必须先分区再创建 PV,否则会报错

  2. LV 不能跨 VG:扩展时 LV 只能使用同一 VG 内的空间

  3. xfs 文件系统:只能扩容,不能缩减

  4. 生产环境:扩容前建议备份重要数据

  5. -r 参数lvextend -r 可自动调整文件系统,推荐使用


整理自原始文档,按逻辑重新组织结构,增加命令速查表和流程图便于查阅。