先给出一个图吧,

在这个上图中,我将上图从下往上介绍:

   最下面为: PV (Physical Volume) : 物理卷,它是物理设备,它可以是 分区 ,磁盘 ,Raid 。

                     它如果加进卷组VG后会被划分为一个一个的块叫做 PE(Physical Extend)物理盘区。

                      这个PE 是在创建卷组的时候定义的,只要把PV加进卷组

                      那么它一定跟卷组VG定义的PE相同。  

                     

                     VG(Volume Group):卷组,它拥有它包含的PV中的所有PE,然后将这些PE

                           提供给 LV 使用。如果发现VG不够用,增加 PV 就可以扩展 VG 的边界。

                     LV (Logical Volume) : 逻辑卷,说白了创建一个逻辑卷LV 就是根据其大小给

                            其分配一定数量LE(PE站在物理卷的角度叫做PE,站在逻辑卷的角度叫做LE)。

                            LV 的 大小可以超出单个物理卷但是逻辑卷的大小之和不能大于卷组它的LE

                            可以来自不同的 PV,所以如果某个硬盘坏了,逻辑卷也会损坏。              

                             逻辑卷可以支持类似镜像的功能,以防硬盘损坏,只要在 PV 上用Raid 之类的。

                             对于我们而言,逻辑卷可以像一个独立的分区进行挂载

                             如果想给某个逻辑卷创建快照,那么快照得和逻辑卷在同一卷组上

                              对于一个LV来说他的大小成为逻辑边界,卷组的大小为其物理边界。

要创建一个 LV 必须得有 VG ,要创建一个 VG 必须得有 PV 。

所以我们先从创建 PV 开始。(要创建分区必须用 fdisk  创建几个 LVM ,

                             过程 :  先 n 创建分区  再用 t 修改为(LVM)  类型号 : 8e   再  w 完成

                            记得用  cat  /proc/partitions  一下内核所识别分区,fdisk 最多只能创建15个分区,

                             具体创建  LVM 分区的过程请看本博文的最后。)

        PV 的操作一般都是以 pv 开头的:

              创建分区 :  pvcreate   分区名      

              pvremove       把一个pv 中的数据抹除掉

              pvmove       pv转移,可以把含有数据的pv中的数据移动到其它pv

              pvdisplay    可以查看每个pv的详细信息,可以 pvdisplay  设备名  查看某个 pv 的详细信息

              pvscan         扫描pv ,也即列出系统中所含有的 pv

               pvs              查看pv (简单查看) ,可以  pvs  设备名   只查看某个pv 的信息

由pvdisplay 可以发现每个pv 在没加入卷组前,其 PE 值都为 0。

好了,pv 创建完了之后,我们就可以创建 vg 了。

vg 的操作如下 :

                vgcreate (创建 vg ) 

                vgremove(删除vg)

                vgextend(vg 扩展,也即是把新的pv加进来)

                vgreduce(vg 缩减,也即是把vg中的某个pv拿走)

                vgrename   (给  vg 重命名) 

                vgs   (简单查看vg )                                vgs       VG_NAME  (查看具体vg)

                vgdisplay (查看vg的详细信息)             vgdisplay  VG_NAME (查看具体vg)

              

                 vgscan (列出系统中有的 vg)

详细 :

             vgcreate  VG_NAME  所用pv 

                  选项:   -s : 指定PE 大小 (PE 盘区大小默认为 4 MB,PE 盘区创建后是不能改变的

                      如 : vgcreate -s 8M  myvg /dev/sdb{7,8}

                

vgremove  VG_NAME                删除VG

例如 删除VG    vg_test

vgreduce     VG_NAME  要移除的pv     (从某个 VG 中拿走某个 VG)

       注意拿走之前要先对拿走 pv 中的数据进行转移

            如 :  pvmove      /dev/sdb2    /dev/sdb1   把 /dev/sdb2 中的数据移动到 /dev/sdb1 中

          

vgextend  VG_NAME  要添加进来的pv   ( 把某个pv 添加进某个 VG)

vgs   , vgscan   , vgdisplay

vgs    VG_NAME    , vgdisplay     VG_NAME   具体例子如下

vg创建完了之后下面就剩下创建 lv 了。

lv 的操作如下 :

            lvcreate     创建一个逻辑卷                               lvremove   删除一个逻辑卷

            lvextend     扩展逻辑卷                                     lvreduce      缩减逻辑卷

            lvresize        修改逻辑卷的大小                          

            lvs            简单查看逻辑卷                                 lvdisplay     查看逻辑卷的详细信息

详细 :  

         lvcreate -n   逻辑卷名   -L   大小(单位 K M G)    卷组名称     

               在卷组中创建逻辑卷并指定大小

如 :

lvcreate  -n   testlv   -L   100M  myvg  (在 myvg 卷组中创建 逻辑卷 testlv 大小为  100 M)

lvscan  lvs   lvdisplay  

可以发现当要用 lvs   或者   lvdisplay 查看某一具体  lv  信息时  后面必须跟 LV Path

下面的操作为创建 2 4 分区 ,最后把 1 2 4 分区都改为 LVM 类型。