CentOS中的LVM(Logical Volume Manager)是一种逻辑卷管理工具,允许对硬盘上的存储空间进行灵活的分区、管理和调整,提供了更高级的存储管理功能。
1. LVM的基础架构介绍:

- PV(Physical Volume):物理卷,是LVM的基本组成部分,通常一个PV就是一个物理磁盘。
- VG(Volume Group):卷组,它将一个或多个物理卷组织在一起,为逻辑卷提供集中管理和分配的存储池。
- LV(Logical Volume):逻辑卷,通过在卷组上创建逻辑卷,实现对物理存储的灵活分配和管理,提供给操作系统使用的逻辑存储空间。
- PE(Physical Extent):物理区块,是存储池中最小的可分配单位,用于在物理卷和逻辑卷之间进行数据存储的基本单元。
操作顺序:
- PV —-> VG(PE,需这里指定大小) —-> LV
其他说明:
上面介绍了LVM部分的架构,创建完成LVM后得到的LV即真正的可用逻辑空间,你还需要对LV所划分的空间进行格式化操作,格式化为EXT4后,挂载使用。
LVM和XFS文件系统兼容性不佳,推荐LVM+EXT4使用。
在创建PV时一定需要物理磁盘是未初始化状态,连分区表也不能有,否则要删除才可以进行创建,通常就是硬盘的GPT和MBR分区表,必须删除才可以进行创建LVM。
删除分区表可以用dd命令,用0填充一次磁盘后操作。
2.扩容根分区:
2-1.查看系统的物理磁盘和文件系统格式:
lsblk df -Th blkid
2-2.使用分区工具查看硬盘详细信息:
parted -l
如果返回的值中,你新加的物理磁盘,显示信息如下:
错误: /dev/sdb: unrecognised disk label Model: VMware Virtual disk (scsi) Disk /dev/sdb: 17.2GB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags:
- 如果Partition Table: unknown,则可以直接进行LVM的创建,否则需要用dd命令用0填充一次硬盘后操作。
- 数据请提前备份
用零填充整个磁盘空间(相当于格式化磁盘):
dd if=/dev/zero of=/dev/sdb bs=1M status=progress
- if=/dev/zero:表示输入文件/dev/zero,此文件提供无限的零字节
- of=/dev/sdb:表示输出文件/dev/sdb,此文件代表一个完整的物理磁盘
- bs=1M:表示块大小,从/dev/zero读取一个1M大小的文件,反复写入/dev/sdb
- status=progress:显示操作进度
2-3.扩展LVM根分区
2-3-1.创建PV
2-3-1-1.查看PV详细信息:
pvdisplay
2-3-1-2.创建PV:
pvcreate /dev/sdb
- 替换为你的实际磁盘路径
2-3-2.扩展根分区的VG:
2-3-2-1.查看VG详细信息:
[root@localhost ~]# vgdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 14.80 GiB PE Size 4.00 MiB Total PE 3789 Alloc PE / Size 3789 / 14.80 GiB Free PE / Size 0 / 0 VG UUID 12tM9N-Glyp-YpGb-xjL1-Gnqy-YKmb-A3gPsa [root@localhost ~]#
2-3-2-2.扩展VG:
vgextend centos /dev/sdb
- VG Name替换为实际值
- 替换为你的实际磁盘路径
2-3-3.扩展根分区的LV:
2-3-3-1.查看LV详细信息:
[root@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID W02qq7-6zw4-drkl-KCg1-fmtV-2DHl-medraX LV Write Access read/write LV Creation host, time localhost, 2024-01-03 11:04:34 +0800 LV Status available # open 1 LV Size 13.80 GiB Current LE 3533 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 --- Logical volume --- LV Path /dev/centos/swap LV Name swap VG Name centos LV UUID Zli88C-aKtW-Fh4E-1G2w-RlRw-eArV-WS2U3b LV Write Access read/write LV Creation host, time localhost, 2024-01-03 11:04:34 +0800 LV Status available # open 2 LV Size 1.00 GiB Current LE 256 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 [root@localhost ~]#
- 只扩容根分区就行,SWAP是虚拟内存分区不需要管
2-3-3-2.先去查看VG的详细信息,看空闲多少个PE空间,再进行下面的扩展LV操作:
lvextend -l +4095 /dev/centos/root
- 扩展4095个PE的空间给根分区的LV
2-3-4.刷新EXT4的存储空间:
resize2fs /dev/centos/root
2-3-5.查看是否扩容成功:
df -Th
- 如果容量变大了就代表成功了,否则代表失败。
3.新建LVM分区
3-1.创建PV
3-1-1.查看PV详细信息:
pvdisplay
3-1-2.创建PV:
pvcreate /dev/sdc
3-2.创建VG
3-2-1.查看VG详细信息:
vgdisplay
3-2-2.创建PE为4MIB大小的VG:
vgcreate -s 4M storage1 /dev/sdc
3-3.创建LV
3-3-1.查看LV详细信息:
lvdisplay
3-3-2.创建4095个PE大小的LV:
lvcreate -l 4095 -n disk1 storage1
3-4.格式化LV的磁盘空间为EXT4文件系统:
mkfs.ext4 /dev/storage1/disk1
3-5.挂载存储空间:
mount /dev/storage1/disk1 /mnt/disk1
- 如果目录不存在自行创建一个
3-6.查看是否挂载成功:
df -Th
永久挂载需要修改fstab文件生效。
end…