简介
逻辑卷是一种device mapper技术,即可以将一个或者多个底层块设备组织成一个逻辑设备,从而提供动态改变大小,不停机情况下添加磁盘,快照以及备份 等功能,使得对于磁盘的管理更加方便。
Logical Volume Manager (LVM),逻辑卷管理LVM是一个多才多艺的硬盘系统工具,无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦,但是LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘,可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷,LVM并不需要重启就可以让内核知道分区的存在。文章详细记录在PV/VG/LV中3个阶段的创建/添加/扩展/减小/删除等实战操作步骤,方便自己回顾一些基础用法,也希望能够帮助大家更好的理解LVM的原理。
逻辑卷的组成结构
逻辑卷的组成如下图所示:
从上图中可以看出,整个逻辑卷的体系分为3个层次:
底层的PV
中层的VG
最上层的LV
最底层的PV作为整个逻辑卷体系的最底层,可以理解为打上了可以被纳入逻辑卷管理体系的标签的整块磁盘或者磁盘上的某个分区;中间层的VG是逻辑卷的卷组,由一个或者多个PV组成,并且用同一标准进行分块,每一块被称为PE(Physical Extent)或者PP(Physical Partition),作为LVM的最小寻址单元;最上层的LV是从VG中划分出来的卷,并且作为设备文件,可以在其上面创建各种linux支持的文件系统。在LV层面也有一个概念LE(Logical Extent)。LE与PE一一对应。
针对LVM底层PV的一些基本操作
对于底层的PV而言,操作的命令如下表所示:
pvchange 控制指定PV是否可以分派新空间的权限
pvck 检查PV的LVM元数据的一致性
pvcreate 将指定磁盘或分区转化为PV
pvdisplay 详细地查看系统当前的PV情况
pvmove 在同一VG卷组里面移动一个PV的数据到另一个PV里面
pvremove 删除PV标签,即移除PV
pvs 简略地查看系统当前的PV情况
pvresize 当PV对应的设备分区(如md软raid)扩容之后,利用该命令可以扩容PV
pvscan 扫描所有打着PV标签的设备文件
一些pv操作的实验如下所示:
$ lsblk /dev/sdb /dev/sdd1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 7G 0 disk
sdd1 8:49 0 7G 0 part
创建pv
$ pvcreate /dev/sdb /dev/sdd1
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdd1" successfully created
查看pv
$ pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 --- 7.00g 7.00g
/dev/sdd1 lvm2 --- 7.00g 7.00g
扫描pv
$ pvscan
PV /dev/sdb lvm2 [7.00 GiB]
PV /dev/sdd1 lvm2 [7.00 GiB]
Total: 2 [14.00 GiB] / in use: 0 [0 ] / in no VG: 2 [14.00 GiB]
检查pv元数据
$ pvck /dev/sdb
Found label on /dev/sdb, sector 1, type=LVM2 001
Found text metadata area: offset=4096, size=1044480
$ pvck /dev/sdd1
Found label on /dev/sdd1, sector 1, type=LVM2 001
Found text metadata area: offset=4096, size=1044480
删除pv
$ pvremove /dev/sdd1
Labels on physical volume "/dev/sdd1" successfully wiped