目录
一、LVM逻辑卷
逻辑卷管理LVM是一个多才多艺的硬盘系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。LVM使用分层结构,如下图所示:
图中顶部,首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。
举例理解:
比如小明家里想吃馒头但是面粉不够了,于是妈妈从隔壁老王家、老李家、老张家分别借来一些面粉,准备蒸馒头吃。首先需要把这些面粉( 物理卷[ PV, Physical Volume ] )揉成一个大面团( 卷组[ VG,Volume Group ] ),然后再把这个大面团分割成一个个小馒头( 逻辑卷[ LV, Logical Volume ] ),而且每个小馒头的重量必须是每勺面粉( 基本单元[ PE, Physical Extent ] )的倍数。
理论:
物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列,这都可以。
卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。
逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。这就是LVM的核心理念。
物理卷(PV:Physical Volume):物理卷是底层真正提供容量,存放数据的设备,它可以是整个硬盘、硬盘上的分区等。
卷组(VG:Volume Group):卷组建立在物理卷之上,它由一个或多个物理卷组成。即把物理卷整合起来提供容量分配。一个LVM系统中可以只有一个卷组,也可以包含多个卷组。
逻辑卷(LV:Logical Volume):逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间。它是最终用户使用的逻辑设备。逻辑卷创建之后,其大小可以伸缩。
基本单元(PE:Physical Extents):具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小可以指定,默认为4MB。PE的大小一旦确定将不能改变,同一个卷组中的所有的物理卷的PE的大小是一直的
PV | 物理卷 | 被处理过的物理分区 |
VG | 物理卷组 | 捆绑pv到一个组 |
LV | 逻辑卷 | 分配最终的使用设备 |
PE | 物理拓展 | 设定存储最小单元 |
为什么要使用逻辑卷?
逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。
尽管对传统的硬盘分区进行强制扩容或缩容从理论上讲是可行的,但是却可能造成数据的丢失。
LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。
这样一来,用户不必关心物理设备和底层架构和布局,就可以实现对硬盘分区的动态调整。
pvs #查看物理卷的详细内容
vgs #查看物理卷组的详细内容
lvs #查看逻辑卷的详细内容
0、实验环境的搭建:
首先重置虚拟机,保证一个纯净的实验环境。
创建一块全新的硬盘设备:
监控的建立:
watch -n 1 "pvs;echo ================;vgs;echo ================;lvs;echo ================ df -h /data"
#监控pv,vg,lv的情况,=====为分割线方便查看信息,并查看挂载在/data目录下的进程信息
1、LVM设备的创建与挂载
(1)使用 fdisk /dev/vdb 命令创建两块物理分区并设定分区方式为Linux LVM
两块分区大小分别为1G
(2)为物理卷PV添加vdb1,vdb2两块设备,同时添加物理卷组vg0
pvcreate /dev/vda1 #创建PV
vgcreate vg0 -s 2M /dev/vda2 #创建VG,-s设定PE大小为2M
lvcreate -L 100M -n lv0 vg0 #创建LV,-L为设置大小,-n为设置lv名称
mkfs.xfs /dev/vg0/lv0 #格式化设备
mount /dev/vg0/lv0 /data #将设备挂载至目录/data下
查看VG设备详情:
默认的物理拓展PE大小为4MB。想要自定义物理扩展PE大小可以删除已经建好的物理卷VG,在创建新物理卷组的同时设定物理拓展PE的大小:
监控:
(3)逻辑卷的创建:
(4)格式化设备并挂载至/data目录上
2、LVM设备的拉伸
(1)vg中容量充足
lvextend -L 500M /dev/vg0/lv0 #拉伸设备
xfs_frowfs /data #拉伸文件系统,在RHEL7中可以用设备和挂载点
在RHEL8.0中只能用挂载点来进行文件系统的拉伸
resize2fs /dev/vg0/lv0 #但文件系统为EXT4方式时使用该命令进行文件系统的拉伸
mount查看挂载情况
扩展EXT4格式的分区
当拉伸到一定程度时,逻辑卷的大小不充足时,不能再对逻辑卷进行拉伸。而应该通过添加物理卷从而需要拉伸物理卷组来实现存储空间的扩展。即在保证数据保持原样的基础上,将数据所处的空间扩展。(与多数游戏的不停服更新有异曲同工之妙)
(2)vg中容量不足
使用新的硬盘分区:
扩展物理卷组VG
3、LVM设备的缩减
vgreduce vg0 /dev/vdb1 #缩减vg分区存储大小
想缩减设备存储,但当该设备正在使用时需要将其中的数据转移。再讲设备缩减即可。
4、LVM设备的快照
(1)快照
系统快照就是把系统某个状态下的各种数据记录在一个文件里,就如同人照相一样,相片显内示的是一个人在拍照一瞬间的状态。
(2)快照的作用
快照的作用主要是能够进行在线数据备份与恢复。当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据恢复某个可用的时间点的状态。
快照的另一个作用是为存储用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,还可以利用快照进行测试等工作。所有存储系统,不论高中低端,只要应用于在线系统,那么快照就成为一个不可或缺的功能。
lvcreate -L 500M -n lv0-backup -s /dev/vdb1
#-L为快照大小,-n为为快照的名字,-s为快照的“原相”设备
在/data下创建测试文件并创建快照
设备快照中的文件被删除后,可以通过删除快照设备建立新的快照设备找到原本的文件。若在真实设备中文件被删除后就不能再恢复了。
挂载设备快照
删除快照设备挂载点下的文件
文件不存在了
卸载后移除快照设备
创建新的快照设备后挂载点下的文件依然存在。
5、LVM设备的删除
注意:将设备全部卸载后才能进行设备的移除,否则会显示该设备正忙 。
设备删除时从逻辑卷LV开始删除,接下来是物理卷组VG,最后是物理卷PV。
注意:在创建时从物理卷PV开始,接下来是物理卷组VG,到逻辑卷LV的创建为结尾。
查看是否完全删除:
已经删除干净。
二、vdo虚拟数据优化器
首先安装vdo,才能进行vdo设备的后续操作
1、vdo设备的建立与挂载
vdocreate --name jobbin_vdo1 --device /dev/vdb1
#创建名为jobbin_vdo1设备为/dev/vdb1的vdo设备
创建vdo设备,发现存储不够,无法创建
通过virt-manager命令打开虚拟机管理器将memory调大即可创建。
格式化vdo设备
mount将其挂载在/data目录下
2、vdo设备的性能测试
vdostas --human-enable #查看vdo设备的性能
3、vdo设备的永久挂载
vim /etc/fstab #编写挂载策略文件
按照挂载格式将vdo设备的挂载策略写文件,编辑完:wq保存退出
4、vdo设备删除
卸载后停止vdo设备,但仍能开启
将vdo设备删除后不再能够开启vdo设备。