一、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信息
vgcreate hehe /dev/sd{b1,c1,d1} //新建hehe卷组,并将/dev/sdb1-sdd1加入
lvcreate -L +10G -n hiahia hehe //新建一个10G大小逻辑卷hiahia,并指定VG为hehe
(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 //删除逻辑卷