逻辑卷:

 一、基础知识

    lvm:(Logical  Volume  Manager) ,逻辑卷管理器。

    逻辑卷管理器解决的主要问题如下:

        解决分区空间不够用或者分区空间绰绰有余的情况。

    基本磁盘分区的边界是不能随意扩展的。分区大小是在刚刚划分分区的时候就决定了。

 

逻辑卷的工作原理:逻辑卷(lv)是将几个磁盘分区或者块设备(pvpvid必须是8e的,pv可以位于不同的磁盘分区里,pv大小可以不一)组织起来形成一个大的扩展分区(vg,卷组,一个vg至少要包含一个pv。),该扩展分区不能直接用,需要将其划分成逻辑卷(lv)才能使用,lv可以格式化成不同的文件系统,挂载后直接使用。 lv的扩展和缩减是不会影响原有数据的,但逻辑卷缩减的风险大于逻辑卷扩展的风险。逻辑卷可以支持快照功能。

 

快照的工作原理:保存数据某一时刻的状态。快照刚刚建立的时候,它的大小是空的。快照是访问原文件的另一条路径。快照是在数据改变之前将数据原封不动的保存到快照空间里面。注意数据变化的幅度不能超过给定快照空间的大小,否则快照将崩溃。

快照的作用:对某一时刻数据状态的备份提供另一条访问路径,通过快照来备份数据到其它位置,备份完成后,快照就没用了,卸载和移除该快照卷。快照空间的大小取决于数据改变的频度和所需要使用的时间长度,即有限的时间内原文件数据改变的空间大小。

 

 

通过下面这些命令创建、查看和缩减 、移除LV的各层。

PV:   pvcreate  pvremove  pvmove   pvscan    pvdisplay  pvs

VG:   vgcreate  vgdisplay  vgextend  vgreduce   vgs      vgscan  vgremove

LV:   lvcreate  lvdisplay  lvremove  lvreduce   lvextend   lvs

 

pv是可以针对任何物理块设备创建的。

 

举例说明vg的创建:

创建一个10G大小的vg

    步骤:1、先创建一个逻辑分区100G

          2、在该逻辑分区下创建2pv,大小分别是8G2G

                  pvcreate  /dev/sda{5,6}

          3、通过pvs进行查看;通过pvdisplay查看详细信息。

          4、创建卷组。此时要先进行卷组名查看,用vgs,卷组名不能重复。

          5、通过vgcreate命令创建vg

                  vgcreate  VGNAME  PVNAME

          6、当看到Volume group "myvg" successfully created证明vg创建成功。通过vgsvgdisplay进行查看。

          7、当不想用哪个vg的时候,可以通过vgremove VGNAME删除某个vg;当然也可以通过vgremove  -f  VGNAME 强行删除某个vg。当看到反馈信息是 Volume group "myvg" successfully removed时,说明vg删除成功,可以通过vgsvgdisplay进行查看。

    说明: 1)额外命令:vgcreate  -s  #(KMGT)  VGNAME PVNAME :指定PE的大小。

           2PElv 层次上的类似于chunk 的空间块。

           3)当感觉到所用的vg大小不够的时候,可以通过命令vgextend来扩展vg

                vgextend  VGNAME PVNAME(可以通过命令vgextend  -t   VGNAME  PVNAME  来测试是否可以扩展该vg)

           4)当感觉不需要vg空间过大,也可以通过vgreduce来缩减vg的大小,此时务必要小心,否则会导致数据丢失等严重后果。所有要事先查看vgpv的大小,通过命令pvmove PVNAME将某个即将挪走的pv但数据保存到vg的其它pv里面,然后进行缩减。

                  vgreduce  VGNAME PVNAME(可以事先通过vgreduce  -t  VGNAME PVNAME 来测试是否可以移除某个pv 来缩减vg 的大小。)

 

 

 

lv的创建命令:lvcreate  [operator]  VGNAME/PVNAMES

                  -l :指定LE(也即PE)的个数。

                  -L:指定LE的大小,单位KMGT

                  -n:指定LV的名字。

                  -p  r|rw :该lv是只读的或者是可读写的,在创建快照的时候会用到。

  当创建成功的时候显示: Logical volume "mylv" created。可以通过lvs或者lvdisplay进行查看。

注意:LV的路径格式为:/dev/VGNAME/LVNAME

  当LV创建成功的时候,就可以格式化文件系统,挂载使用了。其挂载路径特别:/dev/mapper/VGNAMELVNAME 。mapper叫路径映射,用它来实现多路径。

 扩展LV时,先扩展物理边界,再扩展逻辑边界。使用lvextend命令扩展物理边界,使用resize2fs扩展逻辑边界。注意:扩展大小不能超过VG的大小。

      格式:lvextend  -L  #KMGT(+#KMGT)  LVPATH(注意此时只扩展了物理边界。)

            resize2fs  LVPATH(自动扩展跟物理边界一样大。)

 当我们感觉所创建的LV过大时,可以缩减LV的大小。缩减LV时,先缩减逻辑边界,再缩减物理边界。使用lvreduce命令缩减LV大小。

      缩减LV的步骤:

           1、先卸载LVumount  LV  

           2、再强行检测该LVe2fsck  -f

           3、然后逻辑上缩减LVresize2fs  LVPATH  #KMGT(此时要指定缩减到多大或缩减了多少)

           4、而后物理缩减LVlvreduce  -L  #KMGT  LVPATH(此时会提示是否真的要进行缩减)

           5、最后挂载此LV: mount  LBPATH  MOUNT_POINT。 

 

 

LV快照的创建:使用命令lvcreate  [operator]  LVPATH

                    -L   指定快照的大小;

                    -s   说明创建的是一个快照;

                    -p  r设置为只读; 

                    -n   指定快照的名字;

移除LV:使用lvremove命令。格式:lvremove  LVPATH

 

二、扩展知识:

        一个正在发生改变的数据是可以被复制的,但复制后的数据时不可用的,因为进程是不能识别处在非同一状态的数据的。