linux学习之路之LVM

    试想一种情况,当初我们在规划磁盘的时候,只给某一个磁盘或分区之划分了30G的容量,但是后来,随着业务的需求,该磁盘或者分区的使用量会越来越大,等到以后再有数据存放时,发现该磁盘或者分区的容量不够用,此时该怎么办了?可以新增一个磁盘,经过格式化,挂载等过程就可以使用这个磁盘了,再将原来磁盘的数据完全的复制过来。等到后来又发现,规划的磁盘又太大了,然后又使用上述方法来减少磁盘的大小。虽然这种方法可行,但是效率低,比较复杂。不应该是我们首选的方法。

    当然,我们可以这样做,将多个磁盘或者分区(PV)组合成一个大的磁盘或者分区(VG),然后再将这个大的磁盘分成许多的区块(PE),在将这磁盘分割成分区(LV),经过格式化,然后挂载在某个目录下就可以使用了。而挂载在某个目录下的文件系统下的容量大小,就是当初由磁盘分给的块的数量。区块的数量决定了文件系统的大小,所以想增加某个文件系统大小,可以增加区块的数量;要想减少文件系统的大小,减少区块的数量即可。而这就是所谓的LVM。

LVM可以弹性的调整文件系统的大小,通过调整区块的数量就可以调整文件系统的大小。而这个区块就叫做PE。


接下来就介绍LVM的中的相关概念,什么是PE,PV,VG,LV?

PE:Physical Extend,实体延伸区块,每一个PE的大小默认为4M,PE是LVM中最小的存储单元。LVM中的

    PE类似于文件系统的Block。而之所以能够调整文件系统的大小就是通过添加或减少PE的数量来实现

    的。

LE:Logical Extend,逻辑延伸区块,就是将PE分给了LV之后,PE在LV里就叫做LE

PV:Physical Volume,实体卷,使用fdisk来修改分区类型为8e后,然后在使用pvcreate指令就可以创

    建一个PV

VG:Volume Group,卷组,就是将多个PV组合起来,使用vgcreate指令就形成了一个卷组。上述所述的

    PE就是在VG里产生的。默认VG里的PE数量为65534个。

LV:Logical Volume,逻辑卷,将VG经过格式化以后,在使用lvcreate指令就可以形成一个LV。而LV的

    大小就是VG分配的PE的数量决定的。LV在经过格式化、挂载后就可以使用了。


创建整个LVM的过程如图所示:

创建LVM的步骤如下:

一、创建PV使用的指令:

pvcreate 设备名:将实体分区创建成PV

pvscan:搜寻系统上有PV的磁盘或分区

pvdisplay:显示PV的详细信息

pvremove:删除PV,该分区不再具有PV属性

pvs:显示PV的信息

二、创建VG使用的指令:

vgcreate VG名称 PV名称:将多个PV创建成一个VG

    -s #:指定PE的大小,默认是4M

vgscan:搜寻系统上是否有VG

vgdisplay:显示VG的详细信息

vgextend PV名称:将某个PV增加到VG中去

vgreduce VG名称 PV名称:在VG内移除PV

vgremove VG名称:删除VG

vgchange:设定VG是否启动

vgs:显示VG的信息


三、创建lv使用的命令

lvcreate [option] LV名称 VG名称:创建lv

    -L #:指定LV的空间大小

    -l #:接PE的个数

    -n :后面必须接LV的名称

lvscan:显示lv是否存在

lvdisplay:显示lv的详细信息

lvs:显示lv的信息

lvremove /PATH/TO/LV:删除LV

lvextend:用来扩展或缩减LV的容量

    -L [+]#:增加lv的容量到#,+表示lv增加的容量为#

lvreduce:缩减lv的容量

     -L [-]#:减少lv的容量到#,-表示lv减少的容量为#

经过上面的步骤,将创建的lv经过格式化、挂载以后就是一个可以使用的文件系统了。


试想一下,文件系统是经过分区格式化以后形成的,所以文件系统的大小取决分区的大小。分区的大小决定了磁盘的物理边界,而文件系统的大小决定了磁盘的逻辑边界。一般情况下,逻辑边界和物理边界基本重合。所以想要增加一个文件系统的大小,首先的增加磁盘的物理编辑,再增加磁盘的逻辑边界即可。相反减少文件系统的大小,是先减少磁盘的逻辑编辑,再减少磁盘的物理编辑的。

一、扩展逻辑卷

1、使用lvextend来扩展逻辑卷(lv)的物理边界大小。

    语法格式:lvextend [option] /PATH/TO/LV

                    -L [+]#:增加lv的容量到#,+表示lv增加的容量为#


为什么使用df命令和lvs命令显示的效果不一样,这是因为虽然增大了lv的物理边界,但是没有增加它的逻辑边界。只要再改变lv的逻辑边界,显示效果就一样。


2、使用resize2fs来改变lv的逻辑边界

    语法格式:resize2fs [-p] /path/to/lv [size] 

                -p:表示能增加多大就增加多大 ,也可以用来减少。  

                size:表示LV的大小

说明:增大某个lv的容量可以在线增加,就是说不需要卸载就可以增加,而且增大lv的容量风险较小,基本上无影响。


二、缩减逻辑卷的容量

在缩减逻辑卷之前要注意一下三点:

(1)、确保缩小后的容量依然可以存储原来的数据,可以使用df -hP来查看

(2)、缩小逻辑卷不能在线缩小,必须先卸载

(3)、在缩减之前必须先强行检查文件系统,以确保文件系统处于一致性状态,可以使用e2fsck -f来

     强行检查


当然缩减lv的容量过程与增大lv的容量过程正好相反,先减少文件系统的逻辑边界,在减少分区的物理边界即可。

1、减少lv的逻辑边界,使用lvreduce指令

    语法格式:lvreduce [option] /PATH/TO/LV

            -L [-]#:表示减少的lv容量到#,-表示减少的lv容量为#



2、使用resize2fs来减少物理边界

   语法格式:resize2fs [-p] /PATH/TO/LV [size]

                    -p:能减少多少就减少多少,也可以用来增加

                    size:指定lv的容量

然后再使用mount命令重新挂载就可以使用逻辑卷了。

本文出自 “linux学习之路” 博客,谢绝转载!

linux学习之路之LVM,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。