Linux系统的LVM逻辑卷管理

Linux系统的LVM逻辑卷管理

一、LVM逻辑卷的简介

1、什么是LVM?

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。物理分区或磁盘是 LVM 的第一构建块。这些可以是分区、完整磁盘、 RAID 集或 SAN 磁盘物理卷是 LVM 所使用的基础 “物理”存储。这通常是块设备, 例如分区或完整磁盘。设备必须初始化为 LVM 物理卷 , 才能与 LVM 结合使用卷组是存储池 ,由一个或多个物理卷组成物理区块是物理卷中存储的小型数据区块 , 用作 LVM 存储的后端逻辑区块映射到物理区块 , 构成LVM存储的前端。默认情况下 , 每个逻辑区块映射到一个物理区块。启用某些选项将更改 此映射。例如 ,镜像会导致每个逻辑区块映射到两个物理区块逻辑卷是逻辑区块组。逻辑卷可以像硬盘驱动器分区一样使用。

2、为什么使用LVM

在日常工作或者学习中,随着电脑的不断被使用,我们的磁盘空间可能会越来越小,这时候,我们不能直接更换大硬盘,因为硬盘有价,数据无价,这时候我们就可以使用LVM逻辑卷。逻辑卷和逻辑卷管理有助于更加轻松地管理磁盘空间。如果文件系统需要更多的空间 , 可以将其卷组的可用空间分配给逻辑卷,并且可以调整文件系统的大小。如果磁盘开始出现错误 , 可以通过卷组将替换磁盘注册为物理卷 , 并且逻辑卷的范围可迁移到新磁盘。

3、LVM工作机制

LVM就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。

4、几个必备的专业名词

(1). 物理卷( Physical Volume,PV)
物理卷就是指磁盘,磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有和LVM相关的管理参数。当前LVM允许你在每个物理卷上保存这个物理卷的0至2份元数据拷贝。默认为1,保存在设备的开始处;为2时,在设备结束处保存第二份备份。
(2). 卷组(Volume Group,VG)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。能在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷PV组成。
(3). 逻辑卷(Logical Volume,LV)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上能建立文件系统(比如/home或/usr等)。
(4). 物理块(Physical Extent,PE)
每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。

关系如下图所示:
Linux系统的LVM逻辑卷管理_第1张图片
LVM的表示方式为:

/dev/卷组/逻辑卷
/dev/mapper/卷组-逻辑卷

二、LVM的管理

1 、LVM的建立

fdisk /dev/vdb  -->t -->L--->8e--->wq	##添加lvm标签8e的分区
partprobe #手动同步分区表
cat /proc/partitions 			##查看

watch -n 1 'pvs;echo ====;vgs;echo ====;lvs;echo ====;df -h /mnt'   #监控pv vg lv
pvcreate /dev/vdb1			##建立pv  榨汁装入小瓶子
vgcreate vg0 /dev/vdb1			##lv  倒入大杯子vg0 倒的是vdb1
lvcreate -L 20M -n lv0 vg0		##lvm  倒出20M    根据需要扩展或缩小大缸
 	     L大小   n名字

mkfs.xfs /dev/vg0/lv0			##格式化
mount /dev/vg0/lv0 /mnt/ 		##挂载
df -h /mnt

Step1 :创建三个物理分区并把分区id修改为8e

创建三个MBR分区
Linux系统的LVM逻辑卷管理_第2张图片

修改分区id为8e,即LVM
在这里插入图片描述
Linux系统的LVM逻辑卷管理_第3张图片
wq保存并退出
在这里插入图片描述
Step2:再另外打开一个Shell用以下命令去监控设备信息

为了方便看到成果,我们可以打开一个新的Shell监控设备信息

watch -n 1 'echo ====;pvs;echo ====;vgs;echo ====;lvs;echo ====;df -h /mnt'   #监控pv vg lv

Linux系统的LVM逻辑卷管理_第4张图片
Step3:pvcreate命令创建物理卷
Linux系统的LVM逻辑卷管理_第5张图片
Linux系统的LVM逻辑卷管理_第6张图片
执行命令之后,可以看到三个物理卷创建成功。
Step4: vgcreate命令创建物理卷组

在这里插入图片描述
在这里插入图片描述
执行命令之后,可以看到一个名为westos,大小为4个G的物理卷组创建成功。

Step5 :lvcreate命令创建逻辑卷
从名为 westos 的卷组中取出1G的大小去创建一个名为 lv0 的逻辑卷,如下:

在这里插入图片描述
在这里插入图片描述
逻辑卷创建成功之后, 会产生一个虚拟设备文件,将有两个文件指向这个设备,一个是 /dev/mapper/卷组名-逻辑卷名,还有一个是 /dev/卷组命/逻辑卷名:
Linux系统的LVM逻辑卷管理_第7张图片

2、lv、vg和pv的删除

上面介绍了lv、vg和pv的创建过程,那么下面看一下对它们进行删除的命令:
注意:删除时应先删除lv逻辑卷,然后是删除vg卷组,最后再删除pv物理卷

lvremove /dev/westos/lv0

lvremove删除指定的逻辑卷,后面跟创建逻辑卷后产生的虚拟设备文件
Linux系统的LVM逻辑卷管理_第8张图片

vgremove 卷组名

vgremove命令将对指定名称的卷组进行删除,如下:
在这里插入图片描述
Linux系统的LVM逻辑卷管理_第9张图片

pvremove /dev/vdb{1..3}

pvremove命令将删除指定的物理卷:

Linux系统的LVM逻辑卷管理_第10张图片

三、LVM的应用

1、 逻辑卷挂载
 1. 格式化逻辑卷设备 
mkfs.ext4  /dev/kuany/lv0
 2. 挂载设备到文件系统上 
mkdir /lvm 
mount /dev/kuany/lv0  /lvm
 3. 编辑开机自动挂载 
mount | tail -1 
vim /etc/fstab  
""" /dev/mapper/kunany-lv0 /lvm  ext4  defaults 0 0 """

ext4格式化 /dev/westos/lv0
Linux系统的LVM逻辑卷管理_第11张图片
挂载设备到文件系统上
在这里插入图片描述
编辑开机自动挂载
Linux系统的LVM逻辑卷管理_第12张图片

2、ext格式逻辑卷的拉伸与缩减

LVM的强大之处在于可以支持在线扩容(拉伸), 但不支持在线缩减。ext2/ext3/ext4文件系统的调整命令是resize2fs(增大和减小都支持)

常用命令:lvextendresize2fs
2.1.拉伸逻辑卷
如何将逻辑卷拉伸到1.8G如何实现?

1). 确定卷组是否有足够的空间可以拉伸?
vgs
2). 逻辑卷拉伸命令
lvextend  -L 1.8G /dev/kuany/lv0     或者
lvextend  -L +300M /dev/kuany/lv0

3). 查看拉伸后的空间大小
lvs			# 查看逻辑卷设备的大小是否拉伸成功
df -h /lvm	# 查看文件系统的大小是否拉伸成功

4). 更新文件系统
resize2fs /dev/kuany/lv0 

5). 查看更新后的文件系统
df -h /lvm

Step1:确定卷组是否有足够的空间可以拉伸
在这里插入图片描述
由图知,vg还有2.49G大小的空闲可用。

Step2 :使用逻辑卷拉伸命令lvextend对逻辑卷进行拉伸
在这里有两种方式对逻辑卷进行拉伸,都可以实现把逻辑卷拉伸到1.8G,命令分别如下,可以选择其中任意一个:

lvextend  -L 1.8G /dev/westos/lv0
lvextend  -L +300M /dev/westos/lv0

在这里插入图片描述

Step3 :查看拉伸后的空间大小
我们可以使用 lvs命令查看逻辑卷设备的大小是否拉伸成功;可以使用 df -h命令查看文件系统的大小是否拉伸成功,如下:
在这里插入图片描述
可以看到逻辑卷设备被拉伸申到了1.8G。
Linux系统的LVM逻辑卷管理_第13张图片
逻辑卷成功被拉伸,可是文件系统还并没有被拉伸,下面我们就需要对文件系统进行更新使其拉伸。

Step4 :更新文件系统的大小
resize2fs命令可以对文件系统进行存储空间大小的更新,用 df -h 查看更新后的文件系统大小,如下:

Linux系统的LVM逻辑卷管理_第14张图片
可以看到,文件系统成功更新到1.8G。

2.2 拉伸物理卷组
上一个需求中,逻辑卷拉伸的大小比卷组的要小,那么如果逻辑卷拉伸大小需求要比卷组的空间大呢?这时就需要先对卷组进行拉伸,然后再从足够空间大小的卷组中取出需求大小的逻辑卷。

将逻辑卷拉伸到3.5G的实现过程:

1). 确定卷组是否有足够的空间可以拉伸?
vgs

2). 创建一个物理卷
 pvcreate  /dev/vdb5
3). 将新的物理卷添加/拉伸到物理卷组中
vgextend kuany /dev/vdb5

4). 查看拉伸后的物理卷组大小
vgs

5). 拉伸逻辑卷,执行3.1实验的内容
lvextend  -L 3.5G /dev/kuany/lv0 
df -h
resize2fs  /dev/kuany/lv0 
df -h

2.3 缩小逻辑卷
如果逻辑卷存储空间太大了,可能会造成浪费,因此会有缩小逻辑卷的需求,下面我们就看一下缩小逻辑卷的操作步骤。前面就提到过LVM不支持在线缩减,因此需要先把挂载的逻辑卷卸载掉。
== 注意:和拉伸逻辑卷顺序正好相反,缩小逻辑卷需要先缩小文件系统,然后才能进行缩小逻辑卷的操作。==

具体的操作步骤如下:

 1). 卸载正在挂载的逻辑卷
umount /lvm

2). 对文件系统进行校验
e2fsck -fv /dev/kuany/lv0

3). 缩小文件系统到1G
resize2fs  /dev/kuany/lv0  1G

4). 缩小逻辑卷
 lvreduce  -L 1G /dev/kuany/lv0

重新挂载设备, 查看缩减是否生效?

5). 查看卷组中是否有空闲的分区?如果有,则移除空闲分区。
vgreduce kuany  /dev/vdb{number}
pvremove  /dev/vdb{number}

Linux系统的LVM逻辑卷管理_第15张图片
Linux系统的LVM逻辑卷管理_第16张图片
可以看到,逻辑卷被缩减到1G。

2.4 xfs格式逻辑卷的拉伸(不能缩减)

上面介绍了ext4格式的逻辑卷的拉伸以及缩减步骤,那么如果逻辑卷的格式是xfs的话,又该如何进行拉伸呢?需要注意的一点是 xfs格式的逻辑卷不提供缩减方法。
xfs格式逻辑卷的拉伸方式可ext格式的拉伸步骤其实是相同的,只是在更新文件系统时用的命令是不同的。xfs格式文件系统的更新命令为 xfs_growfs ,用法和 resize2fs 用法是一样的。

下面就看一下xfs格式的逻辑卷的拉伸的具体步骤:
首先我们需要把之前的物理卷、卷组以及逻辑卷都删除掉,如下:
Linux系统的LVM逻辑卷管理_第17张图片
然后我们再创建接下来的实验要用的物理卷、卷组和1G大小的逻辑卷,如下:
Linux系统的LVM逻辑卷管理_第18张图片
然后将逻辑卷lv0格式化成xfs格式的文件系统,如下:
Linux系统的LVM逻辑卷管理_第19张图片
下面我们就试着将创建好的1G大小的逻辑卷拉伸到1.8G 大小,操作步骤如下:

1).确定卷组是否有足够的空间可以拉伸
	vgs
2).对逻辑卷进行拉伸
	lvextend  -L 1.8G /dev/westos/lv0
 或 lvextend  -L +300M /dev/westos/lv0
3).查看文件系统的大小是否拉伸成功
	df -h
4).更新文件系统,查看更新后的文件系统大小
    xfs_growfs  /dev/westos/lv0
    df -h

这里就不再演示了!!!

你可能感兴趣的:(Linux系统的LVM逻辑卷管理)