LVM逻辑卷详解

LVM逻辑卷管理

LVM概述

LVM(logical Volume Manager)逻辑卷管理,是在硬盘分区和文件系统之间添加的一个逻辑层,为文件系统屏蔽下层硬盘分区布局,并提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在硬盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越物理硬盘。

物理存储介质(The physical media):LVM存储介质,是用于保存逻辑卷中所存储数据的存储设备,可以是硬盘分区,整个硬盘,raid阵列或SAN硬盘,设备必须初始化为LVM物理卷,才能与LVM结合使用。

物理卷PV(physical Volume):在LVM中使用设备之前,必须将设备初始化为物理卷,LVM工具会将物理卷划分为物理区块PE,他们是充当物理卷上最小存储块的小块数据。

卷组VG(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,卷组是存储池,一个卷组VG由一个或多个物理卷PV组成,1个PV只能分配给1个VG。

逻辑卷LV(logical Volume):逻辑卷根据卷中的空闲物理区块创建,提供应用,用户和操作系统所使用的存储设备,类似于非LVM系统中的硬盘分区,逻辑卷LV是逻辑区块(LE)的集合,它创立在卷组VG之上,然后再逻辑卷LV之上建立文件系统。

物理块PE(physical Extent):物理卷PV中可以分配的最小存储单元,PE的大小可以指定,默认为4MB。

逻辑块LE(logical Extent):逻辑卷LV中可以分配的最小存储单元,在同一卷组VG中LE的大小和PE是相同的,并且一一相对。

在这里插入图片描述

LVM优缺点

卷组VG可以使多个硬盘空间看起来像是一个大硬盘。

逻辑卷LV可以创建跨多个硬盘空间的分区。

在使用逻辑卷LV时,可以在空间不足时动态调整大小,不需要考虑逻辑卷LV在硬盘上的位置,不用担心没有可以用的连续的空间。

可以在线对卷组VG、逻辑卷LV进行创建、删除、调整大小等操作。但LVM上的文件系统也需要重新调整大小。

LVM允许创建快照,用来保存文件系统的备份。

配置稍复杂,读写速度稍慢。

LVM命令

功能/命令物理卷管理卷组管理逻辑卷管理
扫描pvscanvgscanlvscan
建立pvcreatevgcreatelvcreate
显示pvdisplayvgdisplaylvdisplay
删除pvremovevgremovelvremove
扩展vgextendlvextend
缩小vgreducelvreduce

在对磁盘分区进行操作需要卸载挂载时,如果操作的目录位置处于后台进程运行中,会出现卸载失败报错的情况,这是我们可以使用lsof命令配合grep过滤出我们需要查看的进程信息,在使用kill命令加上目标进程的PID 杀死目标进程,这是再次尝试卸载磁盘分区就没问题了。

lsof | grep ***
kill -9 ******
umount ****

示例:

dnf install lvm2

增加2个10G的硬盘

pvcreate /dev/sdb /dev/sdc
pvs

pvdisplay /dev/sdb1

使用vgcreate创建卷组VG,并且此处可以-s选项指定PE(LE)的大小,(默认PE大小4M)

注意:PE大,读取速度快,但浪费空间。反之,读取速度慢,但节省空间,类似于socket

vgcreate vg /dev/sdb /dev/sdc

查看vg

vgs
vgdisplay vg

使用lvcreate创建LV,

lvcreate -n lv1 -L 64M vg
lvcreate -n lv2 -L 128M vg
lvcreate -n lv3 -L 256M vg

查看

lvs

注意:在格式化之前需要知道xfs文件系统只支持增大,不支持缩小。ext2、ext3、ext4增大减小都支持。

将lv1格式化为xfs

mkfs.xfs /dev/vg/lv1

创建挂载目录

mkdir /opt/lv1
mount /dev/vg/lv1 /opt/lv1

这里的/dev/vg/lv1实际是一个软链接,实际地址如下:

ls -l /dev/vg/lv1

逻辑卷LV扩容(动态扩容)

首先需要确认是否有可用的扩容空间,逻辑卷LV是从卷组VG中创建的,所以在逻辑卷LV扩容前需要查看卷组VG的空间使用情况。

vgs
vgdisplay vg

+100M是增加100M

lvextend -L +100M /dev/vg/lv1

直接使用1024M是增加到1024M

lvextend -L +1024M /dev/vg/lv1
lvs

但是在使用df命令查看时,发现文件系统并没有扩展

df -h /opt/lv1

但是通过lsblk看是已经扩容了

lsblk

这是因为文件系统也需要扩容,ext4文件系统扩容使用resize2fs[逻辑卷名称],xfs文件系统扩容使用xfs_growfs 挂载点

ext4文件系统扩容

resize2fs /dev/vg/lv1

xfs文件系统扩容

xfs_growfs /mnt/data

CentOS7可以使用绿extend命令的-r选项来使文件系统自动扩容

lvextend -L +1024M -r /dev/vg/lv1
df -h

卷组VG扩容

卷组的扩容相对简单,一般是LVM空间不够时,增加一块新硬盘使用。

增加一块磁盘/dev/sdd

pvcreate /dev/sdd
pvs

vgextend vg /dev/sdd
vgs
pvs
posted @ 2025-09-23 13:12  叶小格  阅读(0)  评论(0)    收藏  举报  来源