一、LVM简介
LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。
管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。
LVM是 Logical Volume Manager(逻辑卷管理)的简写
PV:是物理的磁盘分区
VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库统一管理了几个大的硬盘,形成了一个统一虚拟的存储资源池。
LV:也就是从VG中划分的逻辑分区
抽象模型如下:

二、操作实战
1.1、通过在虚拟机的CentOS7上创建LVM ,使用LV,扩容LV,缩减LV实战来了解LVM及熟悉对LVM的操作。
准备工作准备虚拟机,操作系统为CentOS7,初始40G的硬盘
1.2、初始状态共40G的系统盘
1.3、安装lvm需要用到的命令
yum install -y lvm2
1.4、在虚拟机中添加一块磁盘,(PS:刚添加的硬盘不会显示,两种方法:1.reboot 重启服务器 2.在不关机的情况下扫描SCSI磁盘。)
echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan
1.5、创建分区
1.6更新内核分区表
partprobe /dev/sdb1
1.7、创建PV、VG
pvcreate /dev/sdb1 vgcreate vg_app /dev/sdb1 ##vg_app为vg的名称
1.8、创建LV
lvcreate -L 5G -n lv_app vg_app ###-L后面是创建的大小,-n后面是lv的名称,最后是上面vg的名称
1.9、格式化
mkfs.xfs /dev/mapper/vg_app-lv_app
1.10、挂载到需要挂载的目录
mount /dev/mapper/vg_app-lv_app /app
1.11、写入开机启动的fstab文件中
vim /etc/fstab
三、关于如何扩容
1.1、示例:扩容2G
lvextend -L +2G /dev/mapper/vg_app-lv_app
1.2、查看pv信息
lvdisplay
1.3、识别磁盘空间
xfs_growfs /dev/mapper/vg_app-lv_app df -h
1.4、扩容对应vg中所有的空间
lvextend -l +100%FREE /dev/mapper/vg_app-lv_app
四、新加的一块磁盘如何加入已有的LVM中
1.1、新加一块磁盘
1.2、不重启识别新加的磁盘
echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan
1.3、分区
1.4、更新内核分区表
partprobe /dev/sdc1
1.5、将新增的磁盘加入pv然后加入对应的vg
pvcreate /dev/sdc1 vgextend vg_app /dev/sdc1
1.6、扩容
lvextend -L +20G /dev/mapper/vg_app-lv_app ####加20G到vg_app-lv_app中
1.7、识别磁盘空间
xfs_growfs /dev/mapper/vg_app-lv_app df -h
1.8、如果需要将新加的剩余所有空间都加进指定vg中,可以按如下操作
lvextend -l +100%FREE /dev/mapper/vg_app-lv_app xfs_growfs /dev/mapper/vg_app-lv_app