逻辑卷管理器(lvm)(代码片段)

author author     2022-10-24     150

关键词:

一、什么是LVM?

LVM(Logical Volume Manager)逻辑卷管理是在Linux2.4内核以上实现的磁盘管理技术。它是Linux环境下对磁盘分区进行管理的一种机制。现在不仅仅是Linux系统上可以使用LVM这种磁盘管理机制,对于其它的类UNIX操作系统,以及windows操作系统都有类似与LVM这种磁盘管理软件。
LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上次服务的是以逻辑卷的方式。

二、LVM的优缺点

1.优点

①.可以在系统运行的状态下动态的扩展文件系统的大小。
在Linux操作系统中我们的磁盘管理机制和Windows上的都差不多,绝大多数都是使用MBR(Master Boot Recorder)都是通过先对一个硬盘进行分区,然后再将该分区进行文件系统的格式化,在Linux系统中如果要使用该分区就将其挂载上去即可,windows的话其实底层也就是自动将所有的分区挂载好,然后我们就可以对该分区进行使用了。
可这样做的话会带来很多问题,比如我们使用的一个分区所剩空间大小已经不够使用了,这个时候我们没法对分区进行扩充,我们只能通过增加硬盘,然后在新的硬盘上创建分区,对分区进行格式化,然后将之前分区的所有东西都拷贝到新的分区里面才行。但是新增加的硬盘是作为独立的文件系统存在的,原有的文件系统并没有得到任何的扩充,上层应用只能访问到一个文件系统。这样的方式对个人的电脑来说可能还能接受,但是如果对于生产环境下的服务器来说,这是不可接受的。因为如果要把一个分区的内容都拷贝到另一个分区上去,势必要首先卸载掉之前的那个分区,然后再对整个分区进行拷贝,如果服务器上运行着一个重要的服务,要求是 7*24 小时运行正常的,那么卸载掉分区这是不可想象的,同时如果该分区保存的内容非常非常的多,那么在对分区进行转移时时间可能会耗费很久,所以,这个时候我们就会受到传统磁盘管理的限制,因为其不能够进行动态的磁盘管理。因此,为了解决这个问题,LVM技术就诞生了!这也是LVM最大的优点。

②.文件系统可以跨多个磁盘,因此文件系统大小不会受物理磁盘的限制。
③.可以增加新的磁盘到LVM的存储池中。
④.可以以镜像的方式冗余重要的数据到多个物理磁盘。
⑤.可以方便的导出整个卷组到另外一台机器。
2.缺点

①.在从卷组中移除一个磁盘的时候必须使用reducevg命令(这个命令要求root权限,并且不允许在快照卷组中使用)。
②.当卷组中的一个磁盘损坏时,整个卷组都会受到影响。
③.因为加入了额外的操作,存贮性能受到影响。

三、LVM的用法

1.名词解释

技术分享图片
如图所示就是LVM的基本组成
PV(Physical Volume):物理卷,处于LVM最底层,可以是物理硬盘或者分区。
PP(Physical Extend):物理区域,PV中可以用于分配的最小存储单元,可以在创建PV的时候制定(默认为4MB),如1M, 2M, 4M, 8M, 32M, 64M…组成同一VG中所有PV的PE大小应该相同。
VG(Volume Group):卷组,建立在PV之上,可以含有一个到多个PV。
LV(Logical Volume):逻辑卷,建立在VG之上,相当于原来分区的概念。不过大小可以动态改变。
2.LVM的创建
①.首先我们要创建两个分区为接下来的LVM做准备,在这里我添加了一块空硬盘sdb,在上面创建了两个分区sdb1和sdb2各500M。
技术分享图片
②.用pvcreate命令在新建的分区上创建PV
技术分享图片
在这里是因为这两个分区之前被格式化为ext4系统了,所以这里要把它变为逻辑卷需要输入Y确认更改
创建完后我们可以用pvs查看或者pvdisplay查看详细信息
技术分享图片
技术分享图片
因为在这之前我做过一次LVM所以我这里有好几个PV卷组,而像上图中用pvs命令查看时我们发现我们新创的PV卷组和以前创建的有点不同,它们的Attr部分不一样,这是因为我们新创建的PV卷组还没有激活,a---表示已激活的pv卷组。VG那一栏是所属的VG组,因为我们还没有划分VG组,所以这一栏也是空。
③.使用vgcreate命令创建一个VG组,并将我们创建的两个PV加入VG组
技术分享图片
同样我们也是用vgsvgdisplay命令查看卷组信息及详细信息
技术分享图片
vgdisplay后跟卷组名可以只查看这个卷组的详细信息,不跟卷组名是查看所有卷组的详细信息。
这里我们看到我们创好的vg卷组PE大小为4MiB,这是PE的默认大小,PE是卷组的最小储存单位,我们也可以用-s参数来修改,不过这只能才创建卷组时使用,一旦卷组创建成功是没法再去修改PE大小的。
④.使用lvcreate命令从VG中创建一个逻辑卷
技术分享图片
这里我们使用-L参数后跟的是你要设定的逻辑卷大小,这个大小必须是是你设定的PE值的整数倍,如果不是它会给你分一个比你设定的大一点的空间也就是向上去整数倍空间。也可以使用-l但后面跟的就是PE数量像上个步骤中我们划分的卷组PE值为4MiB,数量为254,我们也可以使用-l跟数量,那划分的逻辑卷大小就为4x你划分的数量MiB。
一般用大L 指定大小,弊端就是有可能用不完vg里面的空间
用小 l,-l 127, 127 个PE ,弊端是需要计算,比如一个PE 4M 127x4M=508M 但是不会出现用不完vg的空间的情况
-n参数后跟逻辑卷名字,是对创建的卷组命名,最后跟的是卷组名。
逻辑卷的查看命令也是lvslvsdisplay
技术分享图片
这里lvdisplay后跟卷组是查看这个卷组的详细信息,只输入lvdisplay是显示所有逻辑卷的详细信息
⑤.我们使用mkfs命令对创建的卷组进行格式化
技术分享图片
⑥.Linux下的文件系统需要被挂载后才能使用,我们创建一个空目录,再把创建好的逻辑卷挂载上就可以使用了。
技术分享图片
要想实现开机自动挂载可以写在fstab表里
3.LVM的扩容与缩小
①.逻辑卷的扩容
LVM的强大之处不只是它可以扩容压缩,更重要的是它可以支持在线扩容,但我们首先要保证VG中有足够的空闲空间。
我们使用lvextend命令来对逻辑卷进行扩容
技术分享图片
我们先使用vgs查看VG所剩空间是否充足,接着再对lv1进行扩容。-L参数和创建卷组的-L参数一个性质,后面都是直接跟大小,不过这里要注意+100M是增加100M空间,如果不跟+是扩容到指定的大小,同理如果使用-l参数后,后面跟的就是要增加多少PE值。最后跟的是想要扩容的逻辑卷。
扩容后我们查看一下逻辑卷的大小,确实变成了300M
技术分享图片
但这个时候我们用df-h命令查看一下发现挂载的文件系统并没有增大,这就需要我们使用resize2fs命令手动同步一下文件系统,其实我们有更简单的操作,就是在扩容的同时加上-r参数他会自动扩展文件系统大小,像这样
技术分享图片
技术分享图片
②.卷组的扩容
如果我们发现卷组所剩空间已将不能满足需求了,这时候我们就需要使用vgextend命令对卷组进行扩容
我们先添加一块硬盘sdc
技术分享图片
在虚拟机中这个时候我们通常需要重启,这里我们可以使用echo "- - -" > /sys/class/scsi_host/host0/scan命令让系统重新扫描SCSI总线来添加设备,因为添加的是SCSI磁盘,所以扫描的是SCSI总线
技术分享图片
首先将要添加的硬盘格式化为PV
技术分享图片
再将新的PV添加到指定的卷组中去
技术分享图片
我们可以看到vg卷组大小已经改变了。
②.逻辑卷的缩减
逻辑卷扩容可以在线操作但是缩减必须是离线执行,需要先卸载已挂载的逻辑卷。
[[email protected] ~]# umount /disk1/
扩容逻辑卷我们是先扩大逻辑卷再扩大文件系统,而缩小逻辑卷就需要我们反着来,我们要先缩小文件系统,再去缩小逻辑卷
技术分享图片
缩小文件系统前我们要先对文件系统做个扫描检测,如果我们直接使用resize2fs系统会提示让你先对文件系统进行检测,这是为了保护缩减文件系统时不对数据损害。
接着我们再来缩减逻辑卷

技术分享图片
注意:文件系统大小和逻辑卷大小一定要保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费。
我们可以看到逻辑卷已经缩小了,接着我们再来挂载看看文件系统大小
技术分享图片
我们可以看到文件系统也变小了
缩小卷组
我们可以用vgreduce去缩小VG卷组的大小
技术分享图片
缩小VG卷组也就是把一个PV从卷组中移除,但我们要先肯定PV中没有数据,不然就会造成数据的丢失
技术分享图片
接着我们可以使用pvremove命令移除PV,这样就让分区又重新变成了普通分区。

四、总结

下面我们就对整个LVM的工作原理进行个总结:
1.物理磁盘被格式化为PV,空间被划分为一个个的PE
2.不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内
3.LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘
4.LV现在就直接可以格式化后挂载使用了
5.LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,如果操作正确其过程不会丢失原始数据
PS:我们实际生产操作中很少用到逻辑卷的缩减,因为缩减很容易就会造成数据损坏,这是得不偿失的,所以我们不推荐对逻辑卷进行缩减。

逻辑卷管理器(lvm)(代码片段)

一、什么是LVM?LVM(LogicalVolumeManager)逻辑卷管理是在Linux2.4内核以上实现的磁盘管理技术。它是Linux环境下对磁盘分区进行管理的一种机制。现在不仅仅是Linux系统上可以使用LVM这种磁盘管理机制,对于其它的类UNIX操作系统,以及win... 查看详情

逻辑卷管理器(lvm)(代码片段)

LVM 逻辑卷允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小,其实是对磁盘空间、可以是硬盘、也可以是分区,而且可以有多个分区和磁盘,并且不要求大小一样,跟raid不一样,然后我们把普通的磁盘或者分... 查看详情

lvm逻辑卷创建管理(代码片段)

在虚拟机里面添加三个新的硬盘LVM是LogicalVolumeManager(逻辑卷管理器)的简写,它为主机提供了更高层次的磁盘存储管理能力。LVM可以帮助系统管理员为应用与用户方便地分配存储空间。在LVM管理下的逻辑卷可以按需改变大小或添... 查看详情

linux中的高级存储管理之逻辑卷管理器lvm(代码片段)

本文主要内容前言1.什么是LVM?2.LVM实验1.LVM各组件实现流程表2.创建LVM及挂载3.LVM的拉伸1.VG容量充足时2.当VG不足时4.LVM的缩减5.LVM的LV磁盘快照6.LVM的删除7.如何移除正在使用的PV3.LVM相关命令集合前言在linux提升五中,我们... 查看详情

逻辑卷管理器(代码片段)

LVM(LogicalVolumeManager,逻辑卷管理器)是动态划分磁盘分区的工具,它在硬盘分区和文件系统之间添加了一个逻辑层,可以让磁盘分区容量调整变得简单而高效。使用LVM可以动态的增加/缩小LVM磁盘分区的容量而不会破坏数据。&nb... 查看详情

逻辑卷管理器(lvm)

1、逻辑卷管理器(LVM)(1)逻辑卷管理器(LVM,logicalvolumemanager)可以整合多个物理分区在一起,让这些分区看起来就像一个磁盘一样,而且,还可以在将来其他的物理分区或将其从这个LVM管理的磁盘中删除。这样可以实现磁... 查看详情

lvm逻辑卷管理(代码片段)

LVM逻辑卷管理dm:devicemapper:将一个或多个底层块设备组织成一个逻辑设备的模块;pv管理工具:pvs:简要pv信息显示pvdisplay:显示pv的详细信息pvcreate/dev/DEVICE:创建pv 查看详情

lvm逻辑卷管理(代码片段)

LVM(LogicalVolumeManager)逻辑卷管理器,是一种磁盘管理工具,在磁盘和分区之上建立一个逻辑层实现了灵活的磁盘管理。LVM可将多个物理分区整合在一起,可按需添加或删除其管理的物理分区,逻辑分区可跨磁盘,容量可动态调整... 查看详情

lvm管理(代码片段)

LVM(LogicalVolumeManager)称作是逻辑卷管理器,之所以称作为“卷”可能是因为可以将文件系统像卷一样伸长或缩短吧,它是Linux系统下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,提高了磁盘分区... 查看详情

lvm逻辑卷管理用法(代码片段)

LVM是LogicalVolumeManager(逻辑卷管理)将物理块设备在多个物理设备间重新组织文件系统,将设备指定为物理卷,用一个或者多个物理卷来创建一个卷组,物理卷是用固定大小的物理区域(PhysicalExtent,PE)来定义的,在物理卷上创... 查看详情

lvm逻辑卷管理--在线扩容逻辑卷与卷组容量缩减逻辑卷快照(代码片段)

LVM逻辑卷管理公司生产环境中使用了LVM逻辑卷管理,所以今天花时间整理一下。通过LVM技术整合所有的磁盘资源进行分区,然后创建PV物理卷形成一个资源池,再划分卷组,最后在卷组上创建不同的逻辑卷,继而初始化逻辑卷,... 查看详情

lvm逻辑卷管理(代码片段)

...)加入卷组中(vg)vgcreatemyvg(卷组名)/dev/sdb3.基于卷组创建逻辑卷lvcreate-nmylv(逻辑卷名)-L2Gmyvg(卷组名)4.为创建好的逻辑卷创建文件系统mkfs.ext4/dev/myvg/mylv5.将格式化好的逻辑卷挂载使用mount/dev/myvg/mylv/mnt查看LVM查看物理卷信息... 查看详情

逻辑卷管理器(lvm)以及快照(特殊逻辑卷)的用法

1.LVM基本介绍2.PV、VG、LV关系详解(PV/VG/LV的创建、扩展逻辑卷大小、减小(减小操作很少用,仅作学习))3.快照的概念以及基本用法(特殊的逻辑卷)4.总结 LVM基本介绍       LVM:LogicalVolumeManager,... 查看详情

逻辑卷管理器(lvm)

逻辑卷管理器(LVM)    逻辑卷在生产环境中有些企业里会用到,但有些企业呢觉得逻辑卷,他是一个逻辑上的软件的东西。他是建立在硬件分区,或者硬盘之上的软件的管理方式,所以觉得他,要是数据放在上面... 查看详情

lvm(逻辑卷管理器)原理

...LVM:PV、PE、VG、LV的意义  LVM的全名是LogicalVolumeManager(逻辑卷管理器),LVM的做法是将几个物理 查看详情

lvm逻辑卷管理器基础

一、LVM简介    逻辑卷管理器LVM(LogcalVolumeManager),LVM可以弹性的调整文件系统的容量,不必要再去烦恼文件系统空间不够的问题。LVM的实现是将几个物理分区(或磁盘)通过软件组合成为一块看起来是独立的大... 查看详情

lvm逻辑卷管理器

LogicalVolumeManager    LVM(逻辑卷管理)是Linux环境下对磁盘分区进行管理的一种机制。    普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,    某个分区空间耗尽时,... 查看详情

lvm(代码片段)

LVM详解 LVM,即逻辑管理器,它是Linux环境下对磁盘分区进行管理的一种机制;它可以将多个物理分区整合在一起,并且可以根据实际需要动态调整文件系统空间。另外,它还可以提供快照,快照在刚创建的时候,其内容是和原... 查看详情