前言
环境:centos 7.9
传统磁盘存在的问题
在传统方式中,当我们的Linux磁盘分区大小不够用的时候,只能通过添加新硬盘、创建新的分区来扩充空间,但是新添加进来的硬盘分区后是作为独立的文件系统存在的,这样原来旧磁盘分区的文件系统并未得到实际扩充,而上层应用程序访问的又是旧磁盘分区的文件系统,同时应用程序大多时候也只能访问一个文件系统,所以只能通过迁移旧磁盘分区的数据到新磁盘分区上,即让老磁盘下线,并把应用程序数据迁移到新磁盘分区中,换上新磁盘上线。这样的做法其实是存在很大的问题的,比如上层应用程序要停机,数据迁移量很大的时候,比如几个T的时候耗时很久,基于这样的问题就引入的LVM(Logical Volume Manager)
逻辑卷管理技术。
LVM逻辑卷管理(Logical Volume Manager)
LVM(Logical Volume Manager)
逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制,它是建立在物理存储之上的一个抽象层,有点在于灵活管理。特点是:动态在线扩容、离线裁剪、数据条带化、数据镜像。简单来说,LVM就是通过将底层物理硬盘抽象封装起来,以逻辑卷的形式表现给上层系统,逻辑卷的大小可以动态调整,而且不会丢失现有数据,新加入的硬盘也不会改变现有上层的逻辑卷,作为一种动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
比如,你有3块磁盘,分别是50GB 、60GB、70GB,传统上,我们单块磁盘分区肯定不能超过该磁盘的容量大小,但使用lvm逻辑卷管理,就会把这3块磁盘组成卷组,那么该卷组的大小就是180GB了,从系统管理员的角度看到的卷组池容量也是180GB,然后创建分区就能创建个超过100GB的逻辑卷了,(ps:在卷组上创建的分区我们称之为逻辑卷)。
逻辑卷与标准分区的区别
这里我们说的逻辑卷是指,在卷组的基础上划分的分区,而传统的标准分区是直接在物理磁盘上划分的分区。
PV、VG、LV、PE、LE 概念详解
物理卷(Physical Volume,PV
):物理卷是底层真正提供容量,存放数据的设备,它可以是整个硬盘或者硬盘上的某个分区等等。
卷组(Volume Group,VG
):卷组建立在物理卷上,它由一个或者多个物理卷组成,即把多个物理卷整合起来提供容量分配,一个LVM系统允许有一个或多个卷组。
逻辑卷(Logical Volume,LV
):逻辑卷建立在卷组之上,它是从卷组中“切”出来的一块空间,它是最终用户使用的逻辑设备。逻辑卷创建之后,其大小是可伸缩的。
物理区域PE(Physical extent
):每一个物理卷被划分为一个个被称为PE(Physical extents)
的基本单元,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小可指定,默认为4MB。PE的大小一旦确定将不能被改变,同一个卷组中的所有物理卷的PE的大小是一致的。4MB=4096kb=4096kb/4kb=1024个block
。
逻辑区域LE(Logical extent
):逻辑卷也被划为为称为LE(Logical Extents)
的可寻址的基本单元,在用一个卷组中,LE的大小和PE是相同的,并且一一对应,也就是说,我们在卷组中叫它为PE,在逻辑卷中叫它为LE而已。
lvm流程:真实的物理设备 --> 格式化成 --> 物理卷PV(实际上底层物理卷被划分为一个一个的PE)--> 卷组VG --> 逻辑卷LV --> 逻辑卷格式化成文件系统 --> 挂载使用
创建好卷组vg之后,就会在/dev/
目录下有一个/dev/vg
名字/ 文件,当基于该卷组创建逻辑卷之后,该目录下就会有一个/dev/vg名字/lv名字/
目录,这就是我们df -h
时经常看到有一个/dev/cl/root
的原因,这是因为我们在安装centos是默认会把根分区做为lvm格式的文件系统,而实际上 /dev/cl/root
还只是一个软链接,链接到/dev/dm-0
这样的块文件。
注意:每一个逻辑卷里面的空间可能来之不同的物理硬盘,因为VG里可能来源于多个不同的硬盘组成的卷组,而逻辑卷只是从卷组中划为的一个逻辑区域,所以每一个逻辑卷里面的空间可能来之不同的物理硬盘,而这对于逻辑卷而言,是不用关心的。
当vg空间不足时,只需加硬盘然后扩充VG空间即可(即VG里增加了PE的数量),当LV空间不足,只需扩充LV即可,即从VG里添加PE到LV的空间。
问?LV能创建多大
LV能创建多大?VG有多大,LV就能有多大,也就是说LV的大小受限于VG的大小,VG有多大LV就能创建多大。
原理图
注:LV里的PE可以看成是LE,这里我是画错了。