一、什么是LVM

       逻辑卷管理LVM(Logical Volume Manager)是一个多才多艺的硬盘系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。

     LVM使用分层结构,如下图所示:

   wKiom1buFxnDMQ4xAAEXpPKnDLg807.jpg

            图中顶部,首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。

  

       二、LVM的创建

        由上图我们可得知,LVM包括物理卷(PV),卷组(VG),逻辑卷(LV),要创建一个可以挂载使用的文件系统,需要一步一步来添加:

        1、创建物理件卷(PV):

          pvcreate:创建物理卷

          使用格式:pvcreate [选项] [参数]

     [选项]:

       -f:强制创建物理卷,不需要用户确认

       -u:制定设备的UUID

       -y:所有的交互都选择“yes”

     [参数]:

       指定要创建的物理卷对应的设备名称,可以是多个设备。

    ps:创建物理卷之前必须要先对硬盘进行分区,而且必须把设备分区类型选择8e。

   

    实践:创建4个大小为1G的PV

    1、我们首先要对硬盘进行分区,分为4个类型为8e的分区。以一个为例,如下图:

wKiom1buOpOggh9mAAA6dFKWSg0382.png

 重复上面的操作,完成后如下图 

wKiom1buO8_Q6qVzAAAlXhqCE9s976.png

     2、分区完成后,可以使用pvcreate命令来创建物理卷(PV),如下图:

wKiom1buPHLR9N8gAAAi1zowzFU491.png

  可以使用pvdisplay来查看PV的信息:

wKiom1buPOeCzXeHAAAhCAkXPiA888.png

 还可以使用pvremove来移除PV。


 2、创建卷组(VG)

 vgcreate:创建卷组

 使用格式:vgcreate [选项] [参数]

   [选项]:

     -l:卷组上允许创建的最大逻辑卷数,默认值是255

     -p:卷组中允许添加的最大物理卷数,默认值是255

     -s:卷组上的物理卷的PE大小,默认值是4M

   [参数]:

     要创建的卷组名

     要加入到卷组的PV列表

   实践:把上面创建的3个PV组成一个卷组testvg,并且制定PE的大小为16M

   使用vgcreate命令,如下图:

wKioL1buQPuSJh1DAAAaHWKVbIo140.png   使用vgdisply查看卷组信息:

wKioL1buQVeziGMZAAAsSi-uHGw063.png

  可以看到PE的大小已经改变为16M。

  可以使用vgremove删除卷组


 3、创建逻辑卷(LV)

  lvcreate:创建逻辑卷

  使用格式:lvcreate [选项] [参数]

  [选项]:

  -L:指定逻辑卷的大小

  -n:指定逻辑卷的的名称

  [参数]:

  要在指定卷组下创建逻辑卷的卷组名

  实践:

  在testvg下面创建一个2G的逻辑卷,名称为testlv

  使用lvcreate命令,如下:

wKioL1buQ9bigLulAAAV8teSo9M529.png  使用lvdisplay查看逻辑卷信息:

wKiom1buQ4uidxfCAAAuxT4FDBE047.png

 同样可以使用lvremove来移除LV。


 4、格式化LV

  使用mkfs命令格式化分区:

wKioL1buRU2SLJrBAABE-ODSGWg012.png  这样LV就可以使用mount命令挂载使用了。


 三、逻辑卷的扩展即缩减

  开头有提到过LVM与传统分区最大的区别就是能够灵活的改变分区大小,同时不影响服务器的正常运行,接下来我就来实验如何实现lv的扩大与缩小:

  1、把创建的lvtest扩大500M

    我们上面创建的VG大小有3G,还有冗余的空间,具体步骤如下:

    (1)、使用lvextend命令把逻辑卷的大小扩大500M,如下图:

wKiom1buR47wmuwcAAAjIqx9s6k038.png

    (2)、使用resize2fs把文件系统扩大500M,如下图:

wKiom1buR5fALHgzAAAfjNxBKuk461.png

     (3)、使用lvextend命令查看LV的大小:

wKiom1buR97D0_x4AAAsZYkJJAc049.png

     注意:要先扩大逻辑卷(PV),然后在扩大文件系统,这个顺序一定不能颠倒。


  2、把testlv缩小1G

    (1)、先使用e2fsck 检查数据

wKioL1buTfOTXdqqAAAY6PcrKPk105.png

    (2)、使用resize2fs先把文件系统缩减1G,如下图:

wKiom1buTHTC0b3AAAAgAiDkUso367.png    (3)、使用lvreduce缩小LV

wKiom1buTePyaa1iAAAqUK_I444797.png