LVM动态磁盘管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
逻辑卷管理器(LVM)
一、什么是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组
同样我们也是用vgs和vgdisplay命令查看卷组信息及详细信息
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参数后跟逻辑卷名字,是对创建的卷组命名,最后跟的是卷组名。
逻辑卷的查看命令也是lvs和lvsdisplay