LVM逻辑卷概述

试想有一天随着业务的增加,你的文件系统负载会越来越大,终于到了空间不足的情况,而如果我们还在使用传统的分区方式进行磁盘管理,就不得不将现有的所有的分区全部删除,并重新规划新的存储解决方案。其实从一开始我们就需要一种管理机制,她能帮助我们动态的管理存储,而LVM就提供了这种功能。

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是基于内核的一种逻辑卷管理器。

LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的存储卷,在存储卷上建立文件系统。

LVM使用者在无需停机的情况下可以方便地调整各个分区大小,并提供快照功能.

在上层,用户通过操作PE更改逻辑卷的大小,通过lvm用户无法直接操作磁盘扇区.

使用LVM创建逻辑卷需要我们提前了解以下几个概念

物理卷(Physical Volume,PV)指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

卷组(Volume Group,VG)是LVM逻辑概念上的磁盘设备,通过将单个或多个物理卷组合后生成卷组。卷组的大小取决于物理卷的容量和个数。

逻辑卷(Logical Volume,LV)类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

物理长度(Physical Extent,PE)每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。

2.1 LVM逻辑卷管理_Linux

2.1 LVM逻辑卷管理_Linux_02

LVM概念示意图

从LVM概念示意图可以看出,我们将物理磁盘分区可以转换为LVM的物理卷(PV),多个物理卷组合为卷组(VG),逻辑卷(LV)是从卷组中提取出来的存储空间,最后我们可以将逻辑卷挂载到某个挂载点目录上。

创建LVM分区

1.添加硬盘

2.1 LVM逻辑卷管理_Linux_03

2.1 LVM逻辑卷管理_Linux_04

以同样的方法再添加一块硬盘

2.创建分区

2.1 LVM逻辑卷管理_Linux_05

2.1 LVM逻辑卷管理_系统/运维_06

2.1 LVM逻辑卷管理_系统/运维_07

2.1 LVM逻辑卷管理_系统/运维_08

3.创建PV

2.1 LVM逻辑卷管理_系统/运维_09

4.创建VG

2.1 LVM逻辑卷管理_系统/运维_10

5.创建LV

使用vg1创建lv1,初始大小设置为8G

2.1 LVM逻辑卷管理_Linux_11

6.格式化LV

2.1 LVM逻辑卷管理_系统/运维_12

7.将/dev/vg1/lv1挂载到/mnt/lv1目录下

2.1 LVM逻辑卷管理_Linux_13

其他命令补充

现在有一种需求,创建PV之后,查看PV的详细信息,

创建PV之后,我们现在需要查看PV(/dev/sdc)所属的卷组、大小等详细属性,

2.1 LVM逻辑卷管理_Linux_14

查看系统中所有的PV,并以较少的信息显示

2.1 LVM逻辑卷管理_Linux_15

现在有一种需求 由于某种原因需要删除一个物理卷(也就是从物理卷中删除一个LVM标签)

2.1 LVM逻辑卷管理_Linux_16

显示卷组的信息

2.1 LVM逻辑卷管理_Linux_17

2.1 LVM逻辑卷管理_系统/运维_18

创建vg2并指定PE的大小为10M

2.1 LVM逻辑卷管理_系统/运维_19

2.1 LVM逻辑卷管理_Linux_20

删除卷组vg2

2.1 LVM逻辑卷管理_Linux_21

修改LVM分区容量

随着项目用户量及业务量的增加,linux磁盘的使用率直线上升,原本的磁盘额度已经不能满足需求,这时可行性方案就是对现有的磁盘进行扩容,以下示例是从原本的8G扩充到18G。

1. 判断卷组的容量是否满足需求,由下图可知vg1的空余容量大于10G,这时我们就可以直接扩充lv的容量

2.1 LVM逻辑卷管理_系统/运维_22

1. 扩充lv的容量

2.1 LVM逻辑卷管理_系统/运维_23

3. 扩展文件系统

2.1 LVM逻辑卷管理_系统/运维_24

4. 查看扩展后文件系统大小

2.1 LVM逻辑卷管理_Linux_25

当卷组的剩余容量不满足需求,就需要先扩展卷组的容量

2.1 LVM逻辑卷管理_Linux_26

假如我们现在需要把一个卷组的剩余大小都增加到一个逻辑卷上

1. 查看卷组的剩余大小

2.1 LVM逻辑卷管理_系统/运维_27

2. 扩展LV的大小

2.1 LVM逻辑卷管理_系统/运维_28

3. 扩展文件系统

2.1 LVM逻辑卷管理_Linux_29

4. 查看文件系统大小

2.1 LVM逻辑卷管理_系统/运维_30

如果一个卷组是由多个物理卷(PV)组成,我们可以通过指定卷组中某一个物理卷来扩展逻辑卷的大小

2.1 LVM逻辑卷管理_Linux_31

删除LVM分区

当我们不需要逻辑卷分区时,可以使用LVM命令轻松的删除之前创建的物理卷、卷组、逻辑卷。删除的顺序应该与创建的顺序相反,也就是卸载文件系统、删除逻辑卷、删除卷组、删除物理卷这样的顺序。卸载文件系统时需要注意,如果有必要,应该更新/etc/fstab文件。

2.1 LVM逻辑卷管理_Linux_32

2.1 LVM逻辑卷管理_系统/运维_33

2.1 LVM逻辑卷管理_系统/运维_34

缩小LV容量

2.1 LVM逻辑卷管理_Linux_35

由上图可知物理卷/dev/sdb1 /dev/sdb2 /dev/sdb3 均在卷组vg1中,假设我们想将/dev/sdb3抽离出来

创建精简资源调配卷

假如用户有这样一种需求:在将来需要5GB的存储资源,也就是说这个用户并不是立刻把这5GB空间全部用完。我们就可以通过创建精简资源调配卷来满足客户需求,为用户定义了5GB空间,它就不会在定义卷时就将整个磁盘空间全部分配,它会根据你的数据写入而增长,而在用户看来他的存储空间就是5GB。

1. 创建精简池

2.1 LVM逻辑卷管理_系统/运维_36

2. 查看精简池的详细信息

2.1 LVM逻辑卷管理_系统/运维_37

这里,我们还没有在该精简池中创建虚拟精简卷。在上图中,我们可以看到分配的精简池数据为0.00%

3. 创建精简卷

2.1 LVM逻辑卷管理_系统/运维_38

4. 查看精简卷信息 此时精简卷中什么数据都没有

2.1 LVM逻辑卷管理_系统/运维_39

5. 创建文件系统

2.1 LVM逻辑卷管理_系统/运维_40

6. 显示精简卷挂载点信息

2.1 LVM逻辑卷管理_系统/运维_41

这里,我们可以看到精简卷已经挂载了,而精简卷只使用了1%的数据空间。那么,让我们从桌面添加一些文件到这个挂载点,以填充一些空间。

2.1 LVM逻辑卷管理_Linux_42

再次列出挂载点,并查看精简卷使用的空间,然后列出精简池来查看池中已使用的大小。

2.1 LVM逻辑卷管理_Linux_43