linux基础篇(十六):基于Redhat7系统中LVM的相关设置

什么是LVM

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。
LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

基本的逻辑卷管理概念

PV(Physical Volume)- 物理卷       pvs:查看pv信息
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬
盘,也可以是raid设备。   
VG(Volumne Group)- 卷组           vgs:查看vg信息
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理
卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
LV(Logical Volume)- 逻辑卷        lvs:查看lv信息
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动
态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

三者关系图如下:
在这里插入图片描述

PE(Physical Extent)- 物理块
LVM 默认使用4MB的PE区块,而LVM的LV最多仅能含有65534个PE (lvm1 的格式),因此默认
的LVM的LV最大容量为4M*65534/(1024M/G)=256G。PE是整个LVM 最小的储存区块,也就是
说,其实我们的资料都是由写入PE 来处理的。简单的说,这个PE 就有点像文件系统里面的
block 大小。所以调整PE 会影响到LVM 的最大容量!

在这里插入图片描述

实现流程图

在这里插入图片描述

LVM实作流程

创建LVM

1、新建三个分区,并调整系统标识符(system ID)为8e
在这里插入图片描述
2、pvcreate /dev/vdb1 生成物理卷
在这里插入图片描述
生成好物理卷后,我们可以用pvs命令查看生成的pv信息
在这里插入图片描述
3、vgcreate vg0 /dev/vdb1 生成卷组vg0(名称自己起)
在这里插入图片描述
用vgs查看vg卷组信息:
在这里插入图片描述
4、lvcreate -L 300M -n lv0 vg0 从vg0中划分一个大小为300M的逻辑卷lv0
-L:指定LV大小
-n:指定LV名称
在这里插入图片描述
用lvs查看lv逻辑卷信息
在这里插入图片描述
5、mkfs.xfs /dev/vg0/lv0 格式化LV(逻辑卷)
在这里插入图片描述
6、mount /dev/vg0/lv0 /mnt/ 格式化之后就可以将LV挂载
在这里插入图片描述
7、watch -n 1 ‘pvs;vgs;lvs;df -h /mnt’ 监控 我们可以用此命令来监控lvm各个阶段的相关操作,重新打开一个终端执行
在这里插入图片描述

改变LVM容量大小

1、LVM:
拉伸LVM即为放大LVM容量
具体操作:
lvextend -L 500M /dev/vg0/lv0 从原来的大小拉伸到500M
xfs_growfs /dev/vg0/lv0 热拉神,拉神xfs文件系统,刷新 ,对设备进行扩展
在这里插入图片描述
我们当时设置的分区大小为1G,所以在只有一个pv(物理卷)的情况下我们可以将lv(逻辑卷)拉伸到1G,如果要想拉伸到更大容量,我们就需要继续添加pv(物理卷)了
pvcreate /dev/vdb2 添加物理卷
vgextend vg0 /dev/vdb2
lvextend -L 1500M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0
在这里插入图片描述
将xfs文件系统改为ext4文件系统(ext4文件系统可以拉神也可以缩减,而xfs文件系统只能拉神不能缩减)
1:umount /mnt
2:mkfs.ext4 /dev/vg0/lv0
在这里插入图片描述
3:mount /dev/vg0/lv0 /mnt
4:mount
在这里插入图片描述
5:lvextend -L 1800M /dev/vg/lv0
6:resize2fs /dev/vg0/lv0
在这里插入图片描述

缩减

只有ext类型的文件系统可以缩减LVM容量
1:umount /mnt
2:e2fsck -f /dev/vg0/lv0 查看使用情况
3:resize2fs /dev/vg0/lv0 1000M 缩减到1000M
4:mount /dev/vg0/lv0 /mnt 挂载
在这里插入图片描述
可以看到,此时的LVM容量并没有变化,需要执行lvreduce操作后才可以缩减
5:lvreduce -L 1000M /dev/vg0/lv0将设备缩减到1000M
在这里插入图片描述

删除分区

1:pvmove /dev/vdb1 /dev/vdb2 先将所要删除分区中的数据移到空闲分区
在这里插入图片描述
2:vgreduce vg0 /dev/vdb1 将vdb1从物理卷组vg0中删除
3:pvremove /dev/vdb1 将vdb1移除
在这里插入图片描述

LVM的系统快照

通过上面的内容,我们已经知道了LVM的好处了,将来如果你有想要增加某个LVM的容量时,就可以通过这个放大、缩小的功能来处理。那么LVM除了这些功能之外,还有什么能力呢?其实他还有一个重要的功能,那就是系统快照(snapshot)。什么是系统快照啊?快照就是将当时的系统信息记录下来,就好像照相记录一般。将来若有任何数据改动了,则原始数据将会被移到快照区,没有被改动的区域则由快照区与文件系统共享。
1、添加物理卷/dev/vdb1并将其加入卷组vg0
在这里插入图片描述
2、向/mnt目录下写入一些数据
在这里插入图片描述
3、制作快照
lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
在这里插入图片描述
4、mount /dev/vg0/lv0backup /mnt
在这里插入图片描述
5、ls /mnt/ rm -fr /mnt/*
在这里插入图片描述
现在我们就可以来使用LVM快照来恢复刚才删除的数据了
来看看具体操作:
1、卸载/mnt
2、lvremove /dev/vg0/lv0bakup
在这里插入图片描述
3、lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0backup
4、mount /dev/vg0/lv0bavkup /mnt
5、ls /mnt
在这里插入图片描述
我们可以看到我们之前删除的数据已经恢复了

关闭LVM

1:umount /mnt 卸载挂载的快照
2:umount /mnt 卸载lv0
3:lvremove /dev/vg0/lv0backup
4:lvremove /dev/vg0/lv0
5:vgremove vg0
6:pvremove /dev/vdb{1…2}
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gd0306/article/details/83314560