LVM逻辑卷

一、了解DM(逻辑设备)

1、snapshot快照:保留数据,在你做快照那一刻的状态保留起来,并作为文件的访问通道,快照不是镜像,是访问同一数据的另外一条路径类似于我们文件的软连接,它们的概念很近似。在一个磁盘文件系统上做一个快照之后,在它之上我们又给它提供了一个访问路径,但这个访问路径也可以作为用户访问对应它所映射的磁盘数据得通路,快照保存的是那一刻的数据,所以快照一般都很小。快照能让数据停留在过去的某一时刻,快照的主要作用是实现数据备份的

2、数据备份:如果我们使用了RAID1和RAID10之后,数据还要备份吗?需要,如果我们执行了rm –rf /,那么哪个磁盘上还会有数据,因为RAID仅是在硬件上级别保证,为了避免硬件损坏导致数据损失的,他不能阻止你执行删除命令,无论你使用什么设备都要备份。数据备份主要是为了防止意外或故障发生时数据丢失的,通过快照备份。

3、multipath:多路径,需借助与DMR模块配置,实现数据存储设备的循路,能够通过多根不同的线来完成。

4、逻辑设备:可以实现动态增减,如:我们买了一台主机,分了一块50G的D盘,过两天之后你发现太小了,不够用了,怎么办?对于DM来讲,完全可以实现动态缩减和扩展。如图:

LVM逻辑卷_LVM

在一个卷组当中可以包含多个物理卷,卷组的边界有多大,取决于它底下的物理卷有多大。PV组合起来的大小就是VG的大小。VG不能简单地作为上层使用的存储文件的系统来使用,必须在上面创建逻辑卷。逻辑卷可以动态扩展和缩减。上面我们所谈到的,创建快照实际上是对逻辑卷创建快照,而快照卷和逻辑卷必须在同一个卷组当中。在同一个卷组中必须留出空间给快照,通过快照卷作为访问卷组的另一条路径。

二、如何实现扩展边界和缩减边界?

(1)理解如何创建和缩减的过程:

在PV上我们把一个物理设备做成PV之后,那就意味着我们把它加进某个卷组中去,从而扩展某个卷组的空间。只要把它PV加进某个卷组中也就意味着这个卷组要把PV所提供的存储能力划分成一个一个的数据块,一个一个的存储单元,这有点类似于RAID的chunk,现在的块还不是物理块,还没有格式化,现在叫PE(物理盘区),是逻辑存储的小匣子。物理卷只有在加入卷组中去才有PE,然后PV被分成一堆堆的PE,PE大小取决于卷组,卷组当中就有一大堆的PE组成。我分一个存储空间多少个PE,那LV就是一个存储空间,但PE在LV上就不叫PE,叫LE(逻辑盘区),空间不够用了就扩展2个PE进来,如果多了就缩减掉,逻辑卷的物理大小可以超出单个物理卷的大小,在逻辑卷看来,它看不到物理卷,看到的是卷组和卷组中的PE,也支持镜像。逻辑卷创建完成后你可以对它格式化、挂载,就可以使用了。

(2)操作:

管理物理卷的命令以PV开头:pvcreate pvremove, pvscan , pvdisplay, pvmove

管理卷组的命令以VG开头:vgcreate vgremove, vgscan , vgdisplay, vgmove vgextend(扩展) vgreduce(缩减)

vgcreate VG_name /path/to/pv

-s #:指定pe大小,默认是4M

管理逻辑卷的命令以LV开头:lvcreate lvremove, lvscan ,lvdisplay, lvmove

创建lv

lvcreate -n lv_name(名字) -L #G(大小)VG_name

lvcreat -L 50M -n testlv myvg

1)、创建一个10G的PV(注意fdisk最多支持15个磁盘)

那我们就创建一个7G的和一个3G的

第一步先准备好磁盘,如图,我们创建的10,11,12三个盘

LVM逻辑卷_LVM_02

第二步创建PV: pvcreate /dev/sda{10,11}

LVM逻辑卷_LVM_03

第三步查看PV:pvs

LVM逻辑卷_LVM_04

2)创建VG

第一步:vgcreate myvg /dev/sda{10,11}

LVM逻辑卷_LVM_05

第二步:vgs查看vg

LVM逻辑卷_LVM_06

第三步查看PE大小:pvdisplay /dev/sda10

LVM逻辑卷_LVM_07

第四步删除PE(注意如果你之前PE创建过LV,存储数据是不能删除的)

vgremove myvg

LVM逻辑卷_LVM_08

第五步创建VG:(-s 指定PE大小)vgcreate –s 8M myvg /dev/sda{10,11}

LVM逻辑卷_LVM_09

第六步缩减VG:

首先把PV移走:pvmove /dev/sda11,然后在缩减

LVM逻辑卷_LVM_10

缩减成功:pvs

LVM逻辑卷_LVM_11

现在可以移除sda11(抹除):pvremove /dev/sda11

LVM逻辑卷_LVM_12

第七步扩展PV:

首先把sda12加进我们的PV中:pvcreate /dev/sda12

LVM逻辑卷_LVM_13

扩展VG:vgextend mvvg /dev/sda12

LVM逻辑卷_LVM_14

3)创建LV:

第一步创建50M的LV(50M除以8不能整除,值肯定不是50):

lvcreate –L 50M –n tsstlv myvg

LVM逻辑卷_LVM_15

第二步查看LV是否存在:lvs

LVM逻辑卷_LVM_16

第三步要想使用,先格式化:mke2fs –j /dev/myvg/testlv

LVM逻辑卷_LVM_17

第四步挂载:mount /dev/myvg/testlv /mnt

LVM逻辑卷_LVM_18

第五步移除LV:首先要卸载,然后在移除

LVM逻辑卷_LVM_19

(3)扩展和缩减LV

先扩展物理边界在扩展逻辑边界,

第一步创建一个2G的LV:lvcreate -L 2G -n testlv myvg

LVM逻辑卷_LVM_20

第二步开机自动挂载:在配置文件中添加

LVM逻辑卷_LVM_21 

LVM逻辑卷_LVM_22

 第三步扩展LV物理边界到5G

LVM逻辑卷_LVM_23

第四步查看物理边界是否扩展到5G

LVM逻辑卷_LVM_24

第五步扩展逻辑边界:resize2fs -p /dev/myvg/testlv

LVM逻辑卷_LVM_25 

缩减逻辑卷
注意:1、不能在线缩减,得先卸载
     2、确保缩减后的空间大小依然能存储原有的所有数据
     3、在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态

先缩减逻辑边界在缩减物理边界

第一步查看是否有空余空间:dh -lh

LVM逻辑卷_LVM_26

第二步卸载,并查看是否卸载成功:umount /users

LVM逻辑卷_LVM_27

第三步强行进行文件系统检测:e2fsck -f /dev/myvg/testlv

LVM逻辑卷_LVM_28

第四步缩减逻辑边界:resize2fs  /dev/myvg/testlv 3G

LVM逻辑卷_LVM_29

第五步缩减物理边界:lvreduce -L 3G /dev/myvg/testlv

LVM逻辑卷_LVM_30

第六步挂载:mount -a

LVM逻辑卷_LVM_31

三、创建快照卷

注意:

1、生命周期为整个数据时长;在这段时间内,数据的增长量不能超出快照卷大小
2、快照卷应该是只读的
3、跟原卷在同一卷组内

步骤如下:

第一步:lvcreate -L 50M -n testlv-snap -s -p r /dev/myvg/testlv

 LVM逻辑卷_LVM_32
第二步:mount /dev/myvg/testlv-snap /mnt(挂载)

LVM逻辑卷_LVM_33
第三步 tar -jcf /tmp/users.tar.bz2 /users/inittab(备份)

LVM逻辑卷_LVM_34

第四步:umount /mnt(卸载)并lvremove /dev/myvg/testlv-snap (移除)

LVM逻辑卷_LVM_35

 

 希望能对读者有用!