LVM详解

2026-6-12 5 6/12

1.LVM介绍

lvm是logical volume manager 英文的缩写,中文意思就是逻辑卷管理器。是Linux系统中的管理工具,主要就是将物理磁盘和分区进行虚拟化,创建虚拟的磁盘空间,从虚拟的磁盘空间中按需分配,使用起来更灵活,更方便管理。

和window磁盘分区相比,window传统分区更像静态切割,切好了就固定,如果需要调整,需要借助第三方工具调整,还会影响正常业务运行;LVM类似一个动态水池,把多块硬盘的水倒入一个大池子(卷组),然后按需舀水(逻辑卷),水多了可以加池子,舀多了可以还回去,非常灵活。

2.LVM三层架构

PV(Physical Volume)

PV指物理卷,初始的物理存储设备,例如机械硬盘(HDD)、固态硬盘(SSD),需要创建物理卷,才能添加到LVM中的卷组中。

VG(Volume Group)

VG即卷组,它处于LVM中的核心位置,将多个物理卷组合成一个统一的存储结构,总容量大小为各个物理卷对应物理设备容量之和。卷组把多个物理磁盘虚拟成一个虚拟盘,可以灵活对该虚拟盘进行划分,分成多个逻辑卷。相当于window的磁盘阵列

LV(Logical Volume)

LV指逻辑卷,即对上面的VG进行划分,分配出来的虚拟的、灵活的逻辑空间,供操作系统使用。

PV → VG(存储池) → LV(逻辑卷)→ 文件系统 → 挂载点

3.三大系统 LVM 对比

对比项
CentOS / RHEL
Debian
Ubuntu
默认安装
桌面/服务器版可选​ LVM
安装时可选​ LVM
服务器版默认​ LVM(桌面可选)
默认 VG 名
centos(7) 或 rhel(8+)
自定义(安装时指定)
ubuntu-vg
默认 LV 名
rootswap
自定义
ubuntu-lv
包管理
yum/dnf install lvm2
apt install lvm2
apt install lvm2
配置文件路径
/etc/lvm/lvm.conf
/etc/lvm/lvm.conf
/etc/lvm/lvm.conf
服务名
lvm2-lvmetad
lvm2-lvmetad
lvm2-lvmetad
常用文件系统
xfs(默认)、ext4
ext4(默认)、xfs
ext4(默认)、xfs

4.核心操作命令

4.1 物理卷 (PV) 管理

功能
命令
说明
创建 PV
pvcreate /dev/sdb
初始化磁盘
查看 PV
pvs或 pvdisplay
简略 / 详细
删除 PV
pvremove /dev/sdb
清除标签

4.2 卷组 (VG) 管理

功能
命令
说明
创建 VG
vgcreate my_vg /dev/sdb
创建名为 my_vg 的卷组
扩展 VG
vgextend my_vg /dev/sdc
添加新磁盘到卷组
缩减 VG
vgreduce my_vg /dev/sdb
移除磁盘(需先移数据)
查看 VG
vgs或 vgdisplay
查看剩余空间看这里

 4.3逻辑卷 (LV) 管理

功能
命令
说明
创建 LV
lvcreate -n my_lv -L 50G my_vg
创建 50G 的逻辑卷
扩展 LV
lvextend -l +100%FREE /dev/my_vg/my_lv
常用:吃满所有剩余空间
缩减 LV
lvreduce -L -10G /dev/my_vg/my_lv
高危:不建议操作
查看 LV
lvs或 lvdisplay

5.文件系统挂载与扩容(重点)

操作之前先创建LVM

# 1. 创建物理卷
sudo pvcreate /dev/sdb1

# 2. 创建卷组
sudo vgcreate my-vg /dev/sdb1

# 3. 创建逻辑卷
sudo lvcreate -L 50G -n my-lv my-vg      # 指定大小
sudo lvcreate -l 100%FREE -n my-lv my-vg # 使用全部剩余空间

5.1 格式化与挂载

LVM 本身不处理文件,需要依赖文件系统。

1. 格式化(二选一)

判断文件系统类型(ext4 或 xfs)最标准、最快捷的方法是利用 df命令查看挂载详情。重点看 Type​ 这一列:

###centos系列
[root@delu1 ~]# df -T /
Filesystem     Type 1K-blocks    Used Available Use% Mounted on
/dev/sda3      xfs   51149416 3804988  47344428   8% /

####Ubuntu系列
[root@gao-ubt-2204 ~]# df -T /
Filesystem                        Type 1K-blocks    Used Available Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv ext4  24590672 7814760  15501444  34% /

###debian系列
root@debian13:~# df -T /
Filesystem     Type 1K-blocks    Used Available Use% Mounted on
/dev/sda1      ext4  49226388 6547384  40146040  15% /


ext4​ (适合大多数通用场景,Ubuntu/Debian 默认):
mkfs.ext4 /dev/my_vg/my_lv

xfs​ (CentOS 7+ 默认,不支持缩容):

mkfs.xfs /dev/my_vg/my_lv

2.挂载

mkdir /data
mount /dev/my_vg/my_lv /data
echo "/dev/my_vg/my_lv /data ext4 defaults 0 0" >> /etc/fstab

5.2 在线扩容

# 扩展逻辑卷(加指定大小)
sudo lvextend -L +50G /dev/ubuntu-vg/ubuntu-lv

# 扩展逻辑卷(使用全部剩余空间)⭐
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

# 扩展文件系统(ext4)
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

# 扩展文件系统(xfs,注意是挂载点路径)
sudo xfs_growfs /

5.3.缩容(需离线,风险较高)

# 1. 先卸载
sudo umount /mnt/data

# 2. 检查文件系统
sudo e2fsck -f /dev/my-vg/my-lv

# 3. 缩小文件系统
sudo resize2fs /dev/my-vg/my-lv 30G

# 4. 缩小逻辑卷
sudo lvreduce -L 30G /dev/my-vg/my-lv

生产环境谨慎!!!能不操作就不操作!!!

5.4 删除

# 按顺序:卸载 → 删 LV → 删 VG → 删 PV
sudo umount /mnt/data
sudo lvremove /dev/my-vg/my-lv
sudo vgremove my-vg
sudo pvremove /dev/sdb1

 6.故障排查与注意事项

问题
解决方案
Device /dev/sdb excluded by a filter
磁盘有旧分区表残留。使用 wipefs -a /dev/sdb清除签名。
Insufficient free space
VG 空间不足。使用 vgs确认,或先 pvmove迁移数据。
Couldn't find device
物理磁盘丢失。尝试 vgreduce --removemissing <vg_name>强制移除。
XFS 无法缩容
XFS 设计上不支持离线或在线缩容,只能备份数据后重建。

 

- THE END -

delu

6月16日23:06

最后修改:2026年6月16日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论