什么是LVM?

  LVM是逻辑卷管理(Logical Volume Manager)的简称,他是建立在一个物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好的灵活性。

为什么使用LVM?

  LVM将存储虚拟化,使用逻辑卷不会受限于物理磁盘的大小,另外,与硬件相关的存储设置被隐藏,可以不用停止应用或卸载文件系统来调整大小或数据迁移,可以减少操作成本。

  逻辑卷本身也可以动态的扩大或是缩小,但不会超过卷组的大小,因为逻辑卷是在卷组中建立的。

LVM的基本概念

1.     物理卷

  物理卷是指磁盘,磁盘分区或是从逻辑上与磁盘分区具有同样功能的设备(如RAID)。是LVM的基本存储逻辑块。

2.     卷组

  LVM卷组类似于非LVM系统中的物理硬盘,是由一个或是多个物理卷组成,可以在卷组上创建一个或是多个逻辑卷。卷组的大小取决于物理卷的空间的总和。

3.     逻辑卷

LVM逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷上可以建立文件系统。

4.     快照卷

  快照卷是提供在特定瞬间的一个虚拟映像,可以重构当前设备的状态。快照卷都是只读的。

5.  PE(physical extent)

  每一个物理卷都被划分为PE的基本单元,具有惟一编号的PE是可以被LVM寻址的最小单元,PE 数据单元块是在创建卷组的时候决定的。

6.LE

   逻辑卷也被划分为LE的可被寻址的基本单元,在同一个卷组中,LE的大小和PE是相同的,并一一对应。

快照的意义和实现

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

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

LVM的基本命令

PV:  pvcreate  pvremove  pvmove   pvscan    pvdisplay  pvs

VG: vgcreate  vgdisplay  vgextend  vgreduce   vgs      vgscan  vgremove

LV:  lvcreate  lvdisplay  lvremove  lvreduce   lvextend   lvs

创建和管理LVM

   我们首先创建LVM,然后再通过增大和缩小来管理LVM,我们还以在同一个磁盘上的多个分区为例进行讲解。

1.     创建分区 

 键入fdisk /dev/sda 按照如下图操作建立一个10G的分区:/dev/sda5

因为逻辑卷的分区类型为8e,所以要调整分区类型,如下图:

2、创建物理卷

   使用pvcreate命令来创建,pvs查看创建的物理卷信息,操作如下图

3、创建卷组

  创建卷组使用vgcreate命令,vgs查看,需要说明的是要指定卷组的名称,这里叫myvg

4.创建逻辑卷

 创建逻辑卷使用lvcreate命令,lvs查看,需要说明的是要指定逻辑卷的名称,这里叫mylv,并指定大小 和在那个卷组中创建。

5.格式化逻辑卷并挂载

  使用mke2fs -j /dev/myvg/mylv 来格式化

  为了能够开机自动挂载,我们在/etc/fstab中键入如下图最后一行内容

 然后创建挂载点,并使用mount命令挂载并查看信息。如下图

6.增大和缩小卷组

  向要使卷组增大,只需增加一个物理卷即可,这里我们再创建一个物理卷/dev/sda6,然后使用vgextend命令来扩展,操作如下图。

  缩减卷组并不像增加卷组那么简单,因为要缩减的物理卷内可能存放有东西,所以应该先把要缩减的物理卷的数据存放到另一个物理卷中,然后在缩减卷组即可。具体操作如下图:

7.增大和缩小逻辑卷。

  增大逻辑卷使用lvextend命令,这里我们把逻辑卷有原来的2G增加到3G,具体操作如下,在这里的+1G表示增加了1G,也可以写成-L 3G表示直接增加到3G。

 逻辑卷属于物理边界,而文件系统存在与物理边界中的,因此如果我的文件系统大小小于3G,即使我们执行了上图命令也不能把逻辑卷增加到3G。所以要使用resize2fs来增加文件系统边界。

 缩小逻辑卷:和增加逻辑卷相反,我们在缩小逻辑卷的时候必须先要缩小文件系统边界,而且要先卸载卷,并强制进行文件系统检测。具体操作如下图所示: