LVM 全称Logic Volume Manager ,逻辑卷管理器。也可以叫做逻辑卷轴,就因为它能够像卷轴一样扩展和缩短。LVM是指将几块物理分区或磁盘(PV)通过软件组合起来,使它就像一块整体的大磁盘(VG),我们再在这块大磁盘上分区(LV)挂载使用。

添加张鸟哥的图帮助大家理解

Linux LVM逻辑卷_职场

下面我们来解释下PV,VG,LV以及PE的含义:

PV:物理卷,我们的每一个分区都可以是一个物理卷PV,我们在分区时要将分区类型定义为8e(LVM的识别码)

VG:卷组,组合多个PV而成,也就说我们之前说的大磁盘,大小有PE决定。

PE:逻辑盘区,一个VG最多包含65534个PE,默认的一个PE的大小为4M,我们也可以通过vgcreate -s在创建VG时定义PE的大小 。

LV:逻辑卷,也就是分割VG而成的,可以被格式化后挂载使用的VG分区。LV一般会被定义为/dev/vgname/lvname

LVM实现步骤:

1 创建PV

2 创建VG

3 创建LV

逻辑卷创建过程:

pvcreate /dev/{sda1,sda2}

vgcreare -s 1M myvol /dev/sda1  创建PE为1M,名字myvol,包含sda1分区的卷组

lvcreate -L 512M -n mylv myvol 创建大小512M,名为mylv的myvol卷组上的逻辑卷

mke2fs -j /dev/myvol/mylv  将逻辑卷mylv文件系统格式化为ext3

mount /dev/myvol/mylv /lvm  经mylv逻辑卷挂载到/lvm目录使用

卷组的扩展:

vgextend myvol /dev/sda2 将sda2分区添加到myvol卷组

卷组的减缩:

pvmove /dev/sda1 将/dev/sda1上的数据让移到卷组的其他分区

vgreduce myvol /dev/sda1 从卷组中移除sda1分区

扩展逻辑卷:

lvextend -L [+]600M /dev/myvol/mylv 扩展物理边界(有+表示增到600M不带+表示增加到600M)

resizeefs -p /dev/myvoll/mylv 缩减逻辑边界

缩减物理卷:

umount /lvm  缩减前先卸载

e2fsck -f /dev/myvol/mylv  检查LV内文件系统的一致性

resizee2fs /dev/myvol/mylv 512M 缩减逻辑边界到512M

lvreduce -L 512M /dev/myvol/mylv 缩减物理边界到512M

mount /dev/myvol/mylv /lvm 挂载使用

逻辑卷的删除:

lvremove /dev/myvol/mylv 移除逻辑卷 

vgremove myvol  移除卷组

pvremove /dev/sda1 /dev/sda2 移除物理卷

从上面我们可以看出来逻辑卷管理器的强大功能:我们可以随心所欲的管理自己的多个磁盘上的各个分区,是磁盘的使用更加系统明了。

下面介绍一下快照:snapshot

 

Linux LVM逻辑卷_职场_02

    我们为LVM建立快照后,LVM会建立一个快照区的逻辑卷,这个逻辑卷有两部分,一部分是快照区,用于存放被更改文件的原文件,另一区就是未更改的文件区,所以快照实际占用的空间很小,它实际备份的只是被修改的几个文件。以上图为例,我们对LV1做快照,做快照时分配的空间实际是左边三块PE,当A被更改时,它会先将A copy到快照区,再将要修改的A剔除快照逻辑卷进行修改,这样快照逻辑卷就一直保持着LV1原本的样子。我们理解得知,将快照大小定为原文件一样的大小,才能保证所有文件被修改时快照可以容纳的下。

    我们对A逻辑卷用快照做备份时,是先对A做快照,再将快照逻辑卷挂载使用,将里面的内容tar到一个压缩文件,然后删除掉快照,还原时清空A,将压缩文件解压到A即可。也可以保留挂载的快照逻辑卷,还原时将快照例的东西全都cp到A也一样。

步骤:

lvcreate -L 50M -s -p r -n lvmsnap /dev/myvol/mylv1 

-s 定义创建的是快照 -n 定义快照名字

mkdir /snap

mount -o ro /dev/myvol/lvmsnap

cd jcf /root/lvm.tar.gz ./*

恢复:

cd /lvm

rm -rf *

tar jxf /root/lvm.tar.gz -C /lvm