帮助文档 > 117数据 >LVM 逻辑卷管理

LVM 逻辑卷管理

发布时间:2024-07-15 11:24

【一】LVM 概述

在生产环境中的服务器上,如果存储数据的分区磁盘空间不足该怎么办?只能更换一个更大的磁盘。如果使用一段时间后,空间再次不足又该怎么办?再换一块更大的磁盘?在更换磁盘的过程中,还需要将数据从一个磁盘复制到另一个磁盘,过程非常慢。如果能够实现在线动态扩容,那就方便多了,而LVM(逻辑卷管理)正好能实现这一功能。LVM是一种用于管理Linux系统硬盘分区的机制,具有较强的理论基础,其设计初衷是解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管理论上对传统硬盘分区进行强制扩容或缩容是可行的,但可能会导致数据丢失。而LVM技术在硬盘分区和文件系统之间增加了一个逻辑层,提供了一个抽象的卷组,可以将多块硬盘进行卷组合并。这样一来,用户无需关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。

LVM相关术语说明如表所示:

术语 说明
PP 物理分区,如硬盘的分区,或RAID分区
PV 物理卷,是组成 VG 的基本逻辑单元,一般一个 PV 对应一个 PP
PE 物理扩展单元,每个PV 都会以PE为基本单元划分
VG 即 LVM 卷组,它可由一个或数个 PV 组成,相当于LVM 的存储池
LE 逻辑扩展单元,组成LV的基本单元,一个LE对应一个 PE
LV 逻辑卷,它建立在 VG 之上,文件系统之下,由若干个 LE 组成

【二】 LVM 的工作原理

LVM在每个PV的头部都维护了一个MetaData,称为VGDA(卷组描述域),每个VGDA中包含了整个VG的信息,包括每个VG的布局配置、PV的编号、LV的编号以及每个PE到LE的映射关系。同一个VG中的每个PV头部的信息都是相同的,这有助于在发生故障时进行数据恢复。LVM对上层文件系统提供LV层,隐藏了操作细节。对于文件系统来说,对LV的操作与之前对Partition的操作没有区别。当对LV进行写入操作时,LVM定位相应的LE,并通过PV头部的映射表,将数据写入相应的PE上。LVM实现的关键在于建立PE和LE之间的映射关系,不同的映射规则决定了不同的LVM存储模型。LVM支持多个PV的条带逻辑卷(stripe)和镜像卷(mirror),这与软件RAID的实现非常相似。

【三】 LVM 的分区扩容操作

在进行分区扩容实验之前,需要添加两块新的硬盘,大小均为10GB。添加后,通过`lsblk`命令查看是否添加成功,如图10.22所示。sdd和sde分别是新添加的两块硬盘。添加硬盘后,需要安装LVM,可以直接使用`yum`命令进行安装,输入安装命令`yum -y install lvm2`并按Enter键,即可完成安装。安装完成后,就可以使用命令创建物理卷,可以一次将多个磁盘创建成物理卷,具体命令如图所示:

在物理卷创建完成后,可以通过`pvdisplay`命令查看创建的物理卷的详细信息,如图所示:

从图中可以看到两个PV的大小都是10GB。也可以通过`pvs`命令查看物理卷的简略信息。

物理卷创建完成后,接下来是创建卷组。将创建好的物理卷加入当前的卷组中,输入创建卷组的完整命令`vgcreate degroup /dev/sdd /dev/sde`,其中degroup是卷组的名称,按Enter键后,即可成功创建卷组。查看卷组信息的命令是`vgdisplay`,命令执行后列出的卷组信息如图所示:

卷组创建完成后,接下来是创建逻辑卷。为了展示LVM的动态扩容功能,我们先将逻辑卷的大小定义为10GB,随后再进行扩容。在这个操作中,将逻辑卷的名称定义为lv,创建逻辑卷的命令为`lvcreate`,具体操作如图所示:

逻辑卷创建完成后,通过`lvdisplay`命令查看逻辑卷信息,如图所示:

从图中可以看出逻辑卷的路径是`/dev/degroup/lv`,其中degroup是卷组名,lv是逻辑卷名。查看逻辑卷信息后,下一步是格式化操作,这里将文件系统格式化为ext4类型,具体操作如图所示:

如何使用创建的逻辑卷?需要将逻辑卷挂载到某个目录下,访问该目录即相当于访问逻辑卷。在根目录创建目录lv_disk,然后执行挂载命令,具体操作如图所示:

挂载完成后,可以通过`df`命令查看实际的挂载点。

在查看逻辑卷的挂载目录lv_disk时,可以看到当前的空间大小为9.8GB,加上系统占用的空间共10GB。此时对该分区进行扩容,扩容大小为增加5GB,输入命令“lvextend -L+5G /dev/degroup/lv”后按下Enter键来进行扩容。然而,扩容后的大小不会立即反映到文件系统中,需要使用resize2fs命令将扩容的大小同步到文件系统。通过df命令查看扩容后的分区大小,可以看到已经变为15GB,这表明动态扩容已经成功,具体操作如图所示:

本文导读

客户热线:13306992629

客户服务中心
Baidu
map