LVM是什么东东,为什么要用LVM,用它的好处是什么,使用LVM需要了解哪些原理,最后我们通过实验来看看怎样部署LVM分区。
1、LVM指的是什么?
Logical Volume Manager 逻辑卷管理的简写 。
2、为什么要用LVM?
LVM通常用于装备大量磁盘的系统,但它同样适于仅有一、两块硬盘的小系统。
-----小系统使用LVM的益处:传统的文件系统:一个文件系统对应一个分区,直观,但不易改变,不同的分区相对独立,无相互联系,各分区空间常常利用不平衡,空间不能充分利用。当一个文件系统/分区已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦,或把分区中的数据移到另一个更大的分区中;或采用符号连接的方式使用其它分区的空间。如果要把硬盘上的多个分区合并在一起使用,只能采用再分区的方式,这个过程需要数据的备份与恢复。采用LVM:硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求,可以跨分区。
----大系统使用LVM的益处:在使用很多硬盘的大系统中,使用LVM主要是方便管理、增加了系统的扩展性。用户/用户组的空间建立在LVM上,可以随时按要求增大,或根据使用情况对各逻辑卷进行调整。当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。同样,使用LVM可以在不停服务的情况下。把用户数据从旧硬盘转移到新硬盘空间中去。
3、用它的好处是什么?
方便管理、增加了系统的扩展性。 可随时按需求改变逻辑卷大小,充分利用硬 盘空间。
4、使用LVM前需要了解哪些原理
使用LVM前我们需要了解几个概念:
- PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。
- VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。
- LV(logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。
- PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。
- LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。

原理图
5、实验(通过虚拟机)
1)准备一台虚拟机,挂两个硬盘,开机进入系统。

2)创建一个逻辑卷
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x2e2c40c0.
Command (m for help): n #创建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p #选择分区类型,这里选择主分区
Partition number (1-4, default 1):
First sector (2048-16777215, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-16777215, default 16777215):
Using default value 16777215
Partition 1 of type Linux and of size 8 GiB is set
Command (m for help): t #将分区类型修改为LVM
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): w #写入并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
3)创建PV,通过pvcreate 新逻辑卷 创建PV,并通过pvdisplay查看是否成功
[root@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size <7.22 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 1847
Free PE 0
Allocated PE 1847
PV UUID w9CKvn-ysdu-wL8U-mkod-U0Zh-zyfB-IU79Rt
"/dev/sdb1" is a new physical volume of "<8.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size <8.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID UByvb2-npCj-tIVY-8qIg-NRre-Beq7-wOWYyB
[root@localhost ~]#
4)创建VG,通过vgcreate 新vg_Name 新PV_Name 创建VG,并通过vgdisplay查看是否成功
[root@localhost ~]# vgcreate data /dev/sdb1 #vgcreate 新vg名 对应PV
Volume group "data" successfully created
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 7.21 GiB
PE Size 4.00 MiB
Total PE 1847
Alloc PE / Size 1847 / 7.21 GiB
Free PE / Size 0 / 0
VG UUID Pu1Tqb-S61O-3jWE-Spi4-XpL7-d5VQ-m8H7dh
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <8.00 GiB
PE Size 4.00 MiB
Total PE 2047
Alloc PE / Size 0 / 0
Free PE / Size 2047 / <8.00 GiB
VG UUID vdgmFV-YUTm-xRss-d08L-htVZ-lZR2-penVwt
[root@localhost ~]#
5)创建LV,通过lvcreate -l +100%FREE -n 新lv_Name 新VG_Name
[root@localhost ~]# lvcreate -l +100%FREE -n lv_data data
Logical volume "lv_data" created.
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID nEIsmP-JeNU-pkSn-QOhy-9JIB-gqRM-KA8Dsa
LV Write Access read/write
LV Creation host, time localhost, 2026-03-17T10:45:16+00:00 +0800
LV Status available
# open 1
LV Size 7.21 GiB
Current LE 1847
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/data/lv_data
LV Name lv_data
VG Name data
LV UUID ZwJO1u-o1TH-codf-fo1c-YBVd-bS3l-hqBM08
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2026-03-17T10:45:16+00:00 +0800
LV Status available
# open 0
LV Size <8.00 GiB
Current LE 2047
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
[root@localhost ~]#
6)格式化逻辑卷并将文件系统格式为xfs,通过mkfs.xfs /dev/mapper/data-lv_data
[root@localhost ~]# mkfs.xfs /dev/mapper/data-lv_data
meta-data=/dev/mapper/data-lv_data isize=512 agcount=4, agsize=524032 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2096128, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]#
7) 创建目录并挂载文件系统
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/mapper/data-lv_data /data/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 7.3G 1.1G 6.2G 16% /
devtmpfs 908M 0 908M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.9M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 797M 145M 653M 19% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/data-lv_data 8.0G 33M 8.0G 1% /data
此文到此暂时告一段落,下次有时间,再补全怎样动态扩充和缩减空间。