一、LVM逻辑卷管理(Logical Volume Manager)


1.作用:动态扩容磁盘,一般用于大容量数据存储

Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,LVM
是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

2.基本概念:

物理存储介质(PhysicalStorageMedia)
	指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。
物理卷(Physical Volume,PV)
	指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基
	本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group,VG)
	类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻
	辑卷)。
逻辑卷(Logical Volume,LV)
	类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如
	/home或者/usr等)。
物理块(Physical Extent,PE)
	每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址
	的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
逻辑块(Logical Extent,LE)
	逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一
	一对应。

二、创建过程


①新增硬盘 --> system id(8e):将磁盘分区并将system id设置为8e(默认为83,可使用常见的文件系统:
	如ext4、btrfs、xfs、jfs等)、82(Linux Swap)、7(Windows NTFS)、b(Fat 32)
②将硬盘转换 为PV物理卷   //PV(物理卷):LVM识别的最小单位,磁盘必须将分区转换为物理卷
③将一个或多个PV加入到VG卷组    //VG(卷组):由一个或多个物理卷组成,容量为多个物理卷的总和
④新建LV逻辑卷从VG拿取空间    //LV(逻辑卷):用户使用的单位,可挂载使用

三、案例


创建LVM

1.添加磁盘:新增3块20G的SCSI硬盘,组成LVM 2.将硬盘分区,并指定system id

  fdisk /dev/sdb --> n --> p --> 1 --> 回车 --> 回车 --> t(更改system id) --> 8e(Linux LVM) --> w
  fdisk /dev/sdc --> n --> p --> 1 --> 回车 --> 回车 --> t(更改system id) --> 8e(Linux LVM) --> w
  fdisk /dev/sdd --> n --> p --> 1 --> 回车 --> 回车 --> t(更改system id) --> 8e(Linux LVM) --> w

3.将硬盘转换为PV(物理卷)

(1)pvcreate /dev/sd{b1,c1,d1} 			//将指定硬盘转换为PV

(2)pvs										//简单查看PV信息

(3)pvdisplay									//详细查看PV信息

4.新建VG(卷组),并将PV加入

vgcreate hehe /dev/sd{b1,c1,d1} //新建hehe卷组,并将/dev/sdb1-sdd1加入

5.新建LV(逻辑卷),并指定VG

lvcreate -L +10G -n hiahia hehe			//新建一个10G大小逻辑卷hiahia,并指定VG为hehe

6.格式化并挂载

(1)mkfs -t ext4 /dev/hehe/a				//将hehe卷组下的a逻辑卷格式化为ext4文件系统

(2)mkdir /data					//新建/data挂载点目录

(3)mount /dev/hehe/a /data				//将hehe卷组下的a逻辑卷挂载到/data目录

(4)vim /etc/fstab					//实现开机自动挂载
  /dev/hehe/a		/data		ext4		defaults	0	0

(5)mount -a					//重新读取/etc/fstab文件

LVM扩容

1.卷组有空间 案例:从卷组中扩展40G空间到逻辑卷

(1)vgs						//查看卷组是否有剩余空间

(2)lvextend -L +40G /dev/hehe/hiahia			//从hehe卷组中拿取40G空间扩展到hiahia逻辑卷

(3)lvs						//查看是否扩展

(4)resize2fs /dev/hehe/hiahia				//刷新指定卷组下的逻辑卷的文件系统大小

2.卷组没空间 案例:添加新的硬盘,扩展20G容量到逻辑卷 添加新硬盘 立即重新扫描新增硬盘

(1)echo "- - -" >/sys/class/scsi_host/host0/scan
(2)echo "- - -" >/sys/class/scsi_host/host1/scan
(3)echo "- - -" >/sys/class/scsi_host/host2/scan

(1)fdisk /dev/sde  --> n --> p --> 1 --> 回车 --> 回车 --> t(更改system id) --> 8e(Linux LVM) --> w      //为新加的硬盘分区

(2)pvcreate /dev/sde1			  //将/dev/sde1分区转换为物转换为物理卷

(3)pvs						//查看是否增加/dev/sde1物理卷

(4)vgextend hehe /dev/sde1				//将/dev/sde1加入到加入hehe卷组

(5)vgs						//查看卷组空间是否增加

(6)lvextend -L +20G /dev/hehe/hiahia			//从hehe卷组中拿取20G空间扩展到hiahia逻辑卷

(7)lvs						//查看a逻辑卷空间是否增加

(8)resize2fs /dev/hehe/hiahia				//刷新指定卷组下的逻辑卷的文件系统大小

LVM缩减

将未使用的逻辑卷空间缩减到卷组中,方便创建或扩展其它逻辑卷

(1)lvreduce -L -50G /dev/hehe/hiahia			//将a逻辑卷空间减少50G到hehe卷组中

(2)lvs						//查看hiahia逻辑卷空间是否减少

(3)vgs						//验证空间是否增加

LVM删除

(1)pvremove /dev/hehe/hiahia			//删除物理卷

(2)vgremove /dev/hehe			//删除卷组

(3)lvremove /dev/hehe/hiahia			//删除逻辑卷