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 |
|
查看 VG |
|
查看 LV |
|
查看文件系统类型 |
|
查看磁盘分区 |
|
5.2 创建命令
操作 |
命令 |
|---|---|
创建 PV |
|
创建 VG |
|
创建 LV |
|
格式化 xfs |
|
格式化 ext4 |
|
5.3 扩容命令
操作 |
命令 |
|---|---|
扩容 LV |
|
扩容 VG |
|
调整 xfs |
|
调整 ext4 |
|
5.4 缩减命令(谨慎操作)
操作 |
命令 |
|---|---|
缩减 LV |
|
从 VG 移除 PV |
|
删除 PV |
|
六、操作流程图
┌─────────────────────────────────────────────────────────┐
│ 创建 LVM 流程 │
├─────────────────────────────────────────────────────────┤
│ 磁盘分区 → pvcreate → vgcreate → lvcreate → mkfs → mount│
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ LV 扩容流程 │
├─────────────────────────────────────────────────────────┤
│ 检查 VG 空间 │
│ ├─ 有空间 → lvextend -r → 验证 │
│ └─ 无空间 → 先 vgextend → 再 lvextend -r → 验证 │
└─────────────────────────────────────────────────────────┘
七、注意事项
大容量磁盘:必须先分区再创建 PV,否则会报错
LV 不能跨 VG:扩展时 LV 只能使用同一 VG 内的空间
xfs 文件系统:只能扩容,不能缩减
生产环境:扩容前建议备份重要数据
-r 参数:
lvextend -r可自动调整文件系统,推荐使用
整理自原始文档,按逻辑重新组织结构,增加命令速查表和流程图便于查阅。