解释:

LVM正是因为传统的磁盘管理不能对我们的磁盘空间进行动态的管理,因此就诞生出了LVM这个技术,那么LVM到底是什么呢?它又是怎么对磁盘进行管理的呢?

LVM(Logicalvolume Manager)是逻辑卷管理的简称。它是Linux环境下对磁盘分区进行管理的一种机制。现在不仅仅是Linux系统上可以使用LVM这种磁盘管理机制,对于其它的类UNIX操作系统,以及windows操作系统都有类似与LVM这种磁盘管理软件。

LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上次服务的是以逻辑卷的方式。

LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。我们如果新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性!!!

三、LVM的原理

要想理解好LVM的原理,我们必须首先要掌握4个基本的逻辑卷概念。

PE(PhysicalExtend)  物理拓展

PV(PhysicalVolume)  物理卷

VG(VolumeGroup)  卷组

LV(LogicalVolume)  逻辑卷


lvm创建使用命令步骤如下:

1pvcreate /dev/sdc  --硬盘格式化成PV

2pvdisplay(显示详细信息)pvs命令来查看当前pv的信息

3vgcreatezzxtbl /dev/sdc  -----创建卷组(VG),并将PV加入到卷组中  通过 vgcreate 命令基于卷组(VG)创建逻辑卷(LV)  通过 lvcreate 命令

4lvcreate -n myzx -L 50M zzxtbl   ----通过lvcreate命令基于VG创建好我们的逻辑卷,名字为myzx,大小为2G,同样我们可以使用 lvdisplay 或者 lvs 命令来查看创建好的逻辑卷的信息

5mkfs.ext4 /dev/zzxtbl/myzx ---格式化创建好的pvvglv

6mount /dev/zzxtbl/myzx /mnt ---挂载当前的pv,mnt

 

lvm删除操作命令步骤如下:

(1)首先将正在使用的逻辑卷卸载掉umount /mnt/

(2)将逻辑卷先删除lvremove /dev/zzxtbl/myzx

(3)删除卷组vgremovezzxtbl

(4)删除物理卷pvremove /dev/sdc

 

lvm扩充逻辑卷命令步骤如下:

(1)lvextend -L +1G /dev/zzxtbl/myzx -- 当前的逻辑卷扩展1G空间(可以支持在线扩展)

(2)resize2fs /dev/zzxtbl/myzx–更新当前的逻辑卷系统文件

 

 

lvm拉伸一个卷组命令步骤:

(1)      首先添加一块新的硬盘到主机上

(2)      将要添加到VG的硬盘格式化成PV  通过 pvcreate 命令

Pvcreate /dev/sdb

(3)     将新的PV添加到指定的VG当中 通过 vgextend 命令

Vgextend /dev/sdb

 (4) vls (查看当前的文件系统)

 

lvm缩小一个逻辑卷命令的步骤:

(1)      为了保证数据的完整性我们要用umount卸载当前的卷

umount /dev/zzxtbl/myzx /mnt

(2)      小文件系统(会提示需要运行fsck来检查文件系统)  通过 resize2fs 命令

Resize2fs /dev/zzxtbl/myzx 1G –---将逻辑卷缩小1GB

 

缩小LV  通过 lvreduce 命令

Resize2fs –f /dev/zzxtbl/myzx 1G----f检查当前的文件是否正确

Lvreduce  -L 10G /dev/zzxtbl/myzx ----逻辑卷减少10G空间


走起:


1.添加一块硬盘

Linux lvm逻辑卷的使用_第1张图片

2.将硬盘格式成pvpvcreate/dev/sdc

Linux lvm逻辑卷的使用_第2张图片

3.创建完PV以后,我们可以使用pvdisplay(显示详细信息)pvs命令来查看当前pv的信息

Linux lvm逻辑卷的使用_第3张图片

4.创建卷组(vg,并加入到pv卷组中通过vgcreate命令

wKiom1Xbv72TaWyXAABYL6VRFG0200.jpg

5.基于卷组(VG)创建逻辑卷(LV)  通过 lvcreate 命令

wKioL1XbwdLT_aRCAACMe_uDb9g994.jpg

通过lvcreate命令基于VG创建好我们的逻辑卷,名字为mylv,大小为2G,同样我们可以使用 lvdisplay 或者 lvs 命令来查看创建好的逻辑卷的信息


6.格式化并使用我们的逻辑卷


Linux lvm逻辑卷的使用_第4张图片

7.挂载lvm逻辑卷

wKioL1XbwdPDdpXKAABf9TYnthg280.jpg

Linux lvm逻辑卷的使用_第5张图片

二、删除逻辑卷

我们在创建好逻辑卷后可以通过创建文件系统,挂载逻辑卷来使用它,如果说我们不想用了也可以将其删除掉。

注意:对于创建物理卷、创建卷组以及创建逻辑卷我们是有严格顺序的,同样,对于删除逻辑卷、删除卷组以及删除物理卷也是有严格顺序要求的

1.首先将正在使用的逻辑卷卸载掉  通过umount命令


Linux lvm逻辑卷的使用_第6张图片

2.将逻辑卷先删除  通过lvremove命令


wKioL1Xbw-XDU_LKAACCI-deNEI373.jpg

3.删除卷组  通过vgremove命令


wKiom1XbwdDzkNfKAABlwHBZdB8654.jpg

4.最后再来删除我们的物理卷  通过pvremove命令


wKioL1Xbw-WCjRGxAABZDuu_r0A455.jpg

此时我们的刚创建的逻辑卷myzx,卷组zzxtbl以及物理卷 /dev/sdc已经从我们当前操作系统上删除掉了,通过lvsvgspvs命令可以查看一下

Linux lvm逻辑卷的使用_第7张图片


三、扩充逻辑卷

在我们的VG中还有足够的空闲空间时,我们就可以动态的对逻辑卷进行拉伸操作了

扩充逻辑卷  通过 lvextend 命令

 

1)比如我这里要对myzx逻辑卷扩充1G的大小,此时我们就可以使用 lvextend -L +1G/dev/zzxtbl/myzx 命令来执行操作

wKiom1XbwdCSvw-iAAB65QUu-lk484.jpg


Linux lvm逻辑卷的使用_第8张图片

2)我们在对逻辑卷进行拉伸以后,我们通过 df -h 命令可以查看一下当前的文件系统信息(这时还没有什么变化)

 

3)更新文件系统  通过 resize2fs 命令

wKioL1Xbw_7i6BILAACpGnn0MMc205.jpg


resize2fs /dev/zzxtbl/myzx

Linux lvm逻辑卷的使用_第9张图片


四、拉伸一个卷组

 

这里我们首先模拟一下将VG中的剩余空间全部拉伸到我们的逻辑卷当中,然后我们通过增加一块物理硬盘,来对我们的卷组进行拉伸操作

 

Linux lvm逻辑卷的使用_第10张图片

1)将要添加到VG的硬盘格式化成PV  通过 pvcreate 命令

wKioL1Xbw__QIGOkAAByBG5Yvus394.jpg

2)将新的PV添加到指定的VG当中  通过 vgextend 命令

wKiom1XbwenzXbCOAABtrJN21Ro617.jpg

3)查看当前VG的信息  通过 vgdisplay 或者 vgs 命令

Linux lvm逻辑卷的使用_第11张图片


五、缩小一个逻辑卷

注意:逻辑卷的缩小操作必须离线执行,要先卸载掉逻辑卷才可以

2)卸载已经挂载的逻辑卷  通过 umount 命令

Linux lvm逻辑卷的使用_第12张图片


3)缩小文件系统(会提示需要运行fsck来检查文件系统)  通过 resize2fs 命令

Linux lvm逻辑卷的使用_第13张图片


这个时候我们的逻辑卷的文件系统已经被缩小为52M了,接下来我们就可以缩小我们的逻辑卷的大小了

 

缩小LV  通过 lvreduce 命令

1)卸载当前的逻辑卷

Linux lvm逻辑卷的使用_第14张图片


wKioL1XbxACiLmvgAABdDGOBzfY851.jpg


2Lvreduce–L 4G /dev/zzxtbl/myzx  --缩小4G大小的逻辑卷

Linux lvm逻辑卷的使用_第15张图片

缩小逻辑卷的操作是个危险的操作,稍不注意就可能损坏我们的逻辑卷,造成文件的丢失或损害,所以我们一般不要对逻辑卷进行缩减操作!!!