一、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
LVM逻辑卷管理_第1张图片
LVM逻辑卷管理_第2张图片
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

LVM逻辑卷管理_第3张图片

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

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

LVM逻辑卷管理

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

LVM逻辑卷管理_第4张图片

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

LVM逻辑卷管理_第5张图片
4.新建VG(卷组),并将PV加入

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

LVM逻辑卷管理_第6张图片
5.新建LV(逻辑卷),并指定VG

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

LVM逻辑卷管理_第7张图片
6.格式化并挂载

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

LVM逻辑卷管理_第8张图片

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

LVM逻辑卷管理

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

LVM逻辑卷管理

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

LVM逻辑卷管理

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

LVM逻辑卷管理_第9张图片

LVM扩容

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

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

LVM逻辑卷管理

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

LVM逻辑卷管理

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

LVM逻辑卷管理_第10张图片

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

LVM逻辑卷管理
2.卷组没空间
案例:添加新的硬盘,扩展20G容量到逻辑卷
添加新硬盘
LVM逻辑卷管理_第11张图片
立即重新扫描新增硬盘

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

LVM逻辑卷管理_第12张图片

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

LVM逻辑卷管理_第13张图片

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

LVM逻辑卷管理_第14张图片

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

LVM逻辑卷管理_第15张图片

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

LVM逻辑卷管理

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

LVM逻辑卷管理

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

LVM逻辑卷管理

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

LVM逻辑卷管理_第16张图片

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

LVM逻辑卷管理

LVM缩减

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

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

LVM逻辑卷管理

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

LVM逻辑卷管理_第17张图片

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

LVM逻辑卷管理

LVM删除

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

LVM逻辑卷管理

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

LVM逻辑卷管理

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

LVM逻辑卷管理