LVM发展的需要


    当你在使用linux系统时,为了满足当时的工作需要你装了一个100G的磁盘,但是你发现随着公司的发展,和需要储存数据的空间的增大,你会不会重新买些磁盘给装到机器上去呢?每装一次重新分配一次磁盘,就复制一次数据,那这样对于工作的你,是不是非常的麻烦?如果我们用LVM就能解决这类的磁盘管理问题。


LVM简介


    LVM(logical volume manager)直白的翻译就是:逻辑滚动条管理员,也就是指逻辑卷管理。它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。LVM是在磁盘分区与文件系统之间增加的一层逻辑层,LVM能让下层的各个磁盘分区被文件系统看做为一个整体的大磁盘,供文件系统使用。

    LVM的主要内容有以下几个方面的知识,

            PV (Physical Volume)实体滚动条

                    PV 是LVM最基本的物理组成部分,利用fdisk命令把实际的partition转化成8e的系统格式,然后利用指令pvcreate把partition变成能够利用的physical volume。

            PE  (Physical Extend)实体延伸区块

                    PE是LVM最小的存储单位,一般为4MB大小,它是构成VG的基本单位,PE对于VG来说就如block对于分区来讲,它是存储数据的单元。而pe的大小并不是固定的,而是可以变化的,所以pe决定了LVM的灵活性,即能扩增,也能缩减。

            VG  (Volume Group)滚动条群组

                    VG,说的简单些就如我们使用的磁盘,是可以进行分区的,对于LVM上面的文件系统而言,VG就是一个大磁盘。文件系统时看不到LVM下面的组成部分的,它只管使用,而LVM则负责管理下面的组成储存块。

            LV   (Logical Volume)逻辑滚动条

                    LV就是VG切成的类似于分区的东西啦,我们可以用格式化,挂载使用啦,但是LV是VG切割成的,而VG又是有数量众多的PE组成,所以LV的大小取决于LV所包含的PE的数量的多少。(图片出自鸟哥私房菜(3版)关于实现磁盘灵活性管理LVM中的PV,PE,VG,LV知识总结_第1张图片


LVM具体的工作机制如下图(图用word画的有点粗糙)


关于实现磁盘灵活性管理LVM中的PV,PE,VG,LV知识总结_第2张图片

如上图:从基层开始,把partition,转化为上层的PV,利用PV集合成VG,再把VG分隔成LV,最终挂载与使用。

  其中的过程:    

            第一步:利用fdisk创建分区的系统格式,如:

        关于实现磁盘灵活性管理LVM中的PV,PE,VG,LV知识总结_第3张图片


(我们可以看到后面的system是linux,这是不能用做LVM的,需要转化为8e Linux LVM格式,如hda6,7,8)




            第二步,利用pvcreate /dev/hda{6,7,8,9},这就成功创建成PV啦

        关于实现磁盘灵活性管理LVM中的PV,PE,VG,LV知识总结_第4张图片


            第三步,利用PV创建VG,且指定PE大小为16MB,并且用vgscan查看创建结果。

        wKiom1PH7PyS1bC1AABiFO4HWNE650.jpg


        关于实现磁盘灵活性管理LVM中的PV,PE,VG,LV知识总结_第5张图片

            第四步,就剩下分隔VG成为LV啦,关于LV这块有以下命令需要用到,

           如:lvcreate lvscan lvdisplay等。

LVM的突出特点就是可扩大容量和缩减容量,这就决定了LVM的灵活性管理。


扩大逻辑卷的容量命令为:lvextend ,

        我们创建一个 /dev/hda10,然后把hda10扩展到已经创建的逻辑卷上。

            wKioL1PH8T6yNiA_AABW-5e1FzM272.jpg

        相反,减少容量就用到  lvresize -  。


   整个LVM操作中用到的一些命令如下:

           创建分区时,fdisk, 设置8e 系统格式,

           然后让内核重读新创建的partitiong,kpartx -af device

                              partx -a

           创建PV时,pvcreate , pvscan ,pvdisplay

           创建VG时,vgcreate, vgscan, vgdisplay

           LV阶段时,lvcreate, lvscan lvdisplay lvextend lvreduce lvremove 

           最后要给逻辑卷创建一个FileSystem,mkfs 

           挂载时,要用到命令mount,unmount