概述

逻辑卷之前我们已经用标准分区在硬盘上创建了文件系统,但是你只能在同一个物理硬盘的可用范围内调整分区大小,如果硬盘没有地方了,你就必须要弄一块更大的硬盘,然后手动将数据移动到新的硬盘上。但是,这时候可以通过将另外一个硬盘上的分区加入已有的文件系统,动态的添加存储空间,LVM(逻辑卷管理器)就是用来做这个的,它可以让你无需重建整个文件系统的情况下,轻松的管理磁盘空间。

逻辑卷管理布局

  • 物理卷:在逻辑卷管理的世界里,硬盘分区称作物理卷(PV)每个物理卷都是硬盘上物理分区的映射

  • 卷组:把多个物理卷集中在一起就形成一个卷组(VG),逻辑卷管理系统将卷组视为一个物理硬盘,事实上是分布在多个物理硬盘上的多个物理分区组成的

  • 逻辑卷:整个结构最后一层就是逻辑卷(LV)它为linux提供了创建文件系统的分区环境,类似于物理硬盘分区,linux也将逻辑卷视为物理分区

  • PE(physical extents):PV物理卷中可以分配的最小存储单元,PE的大小是可以指定的,默认为4MB

  • LE(logical extent): LV逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE的大小和PE是相同的,并且一一对应

  • 可以使用任意一种标准的linux文件系统格式化逻辑卷,再将它挂载到系统中使用

LVM1和LVM2

linux的LVM有两个可用的版本:

  • LVM1:最初的LVM包于1998年发布,只能用于linux内核2.4版本,它仅提供了基本的逻辑卷管理功能
  • LVM2:LVM的更新版本,可用于linux内核2.6版本,现在的CentOS都默认安装的是LVM2版本,它在标准的LVM1功能外提供了额外的功能:
    1、快照 2、条带化 3、镜像

使用LVM管理逻辑卷

实验环境:虚拟机共添加5块硬盘,做如下分配

硬盘总大小卷组
/dev/sdb100Gvg01
/dev/sdc100Gvg01
/dev/sdd20Gvg01
/dev/sde1Gvg02
/dev/sdf1Gvg02

物理卷

创建物理卷

pvcreate:创建物理卷pvscan:扫描物理卷信息(包含哪些物理硬盘和大小还有总览)

pvdisplay:显示物理卷详情

删除物理卷

pvremove:删除物理卷

卷组

创建卷组

vgcreate:创建卷组(后跟卷组名称)

vgdisplay:显示卷组详情

扩展卷组

vgextend:扩展卷组

删除卷组

vgremove:删除卷组

删除卷组是删除整个卷组,跟把物理卷从卷组中移除的概念是不一样的

减小卷组

减小卷组之前如果卷组划分了逻辑卷并且已经储存了数据,必须先迁移数据才能做减小的操作,现在给虚拟机新添加两块1G大小的硬盘sde和sdf,给sde划分逻辑卷,大小500M,格式化挂载到系统使用,并且在里面写入一些数据

将sdf这块硬盘也加入sde所在的卷组vg02,这样,我们可以把sde的数据迁移到sdf上

pvmove:迁移卷组数据

vgreduce:减小卷组

sde没有数据了之后就可以把它从卷组vg02中移除了,卷组就减小了,实际上现在的数据已经被转移到/dev/sdf上了,不影响逻辑卷的使用,这也是它灵活的地方

逻辑卷

创建逻辑卷

lvcreate:创建逻辑卷(卷组名写在最后)

  • -L 50G 指定大小为50G
  • -n 指定名称

lvdisplay:显示逻辑卷详情

删除逻辑卷

lvremove:删除逻辑卷

扩展逻辑卷

lvextend:扩展逻辑卷大小

  • -L +50G 指定大小增加50G
  • -L 50G 指定大小为50G

逻辑卷没有减小操作,不建议减小,会出问题

格式化逻辑卷

跟物理磁盘一样,划分好逻辑卷之后也是需要先格式化文件系统然后挂载到系统中才可以像一块物理硬盘一样使用的。这里分别用xfs和ext4两种文件系统来格式化不同的逻辑卷,发现他们的不同了吗?

扩容文件系统

在实际的应用中,光扩展逻辑卷是没有任何意义的,因为只扩展了逻辑卷之后,扩展后的那部分也是不能够被系统使用的,所以还需要扩展文件系统,其实就是使扩容生效,否则df -Th是看不到的

扩展逻辑卷之前需要确定所属卷组剩余空间大小,扩展的大小应该要小于剩余卷组空间的大小

xfs_growfs:xfs文件系统使用该命令使扩容生效resize2fs:ext文件系统使用该命令使扩容生效

逻辑卷快照

LVM2的逻辑卷具有快照功能,就是将逻辑卷的某一时刻的状态保存下来也做成一种特殊的逻辑卷叫做快照卷,挂载到系统中,但是逻辑卷之后做的操作快照卷不会同步,常用于数据库备份还原的场景

快照卷跟创建普通的逻辑卷方式几乎一样,只是最后需要指定是哪一个逻辑卷的快照卷,用-s参数

注意:如果是xfs的逻辑卷做快照卷挂载时,需要mount -o nouuid,因为xfs的快照不支持uuid

命令关键字总结

扫描创建查看删除扩展缩减
物理卷pvscanpvcreatepvdisplaypvremove
卷组vgscanvgcreatevgdisplayvgremovevgextendvgreduce
逻辑卷lvscanlvcreatelvdisplaylvremovelvextend有命令但不推荐

两种方式的扫描命令