Linux LVM配置
Linux LVM配置

LVM原理

LVM是Logical Volume Manager的简写,是建立在硬盘和分区之间的逻辑层,用来提高磁盘分区管理的灵活性

LVM设计的主要目标是实现文件系统存储容量的可扩展性,使对容量的调整更为简易

LVM架构

LVM架构
LVM架构
  • PP(Physical Partition):物理分区,LVM正是构建在物理分区之上的
  • PV(Physical Volumn):物理卷,是PP的LVM抽象,维护了PP的基本信息,是组成PG的基本逻辑单元,一般一个PV对应一个PP
  • PE(Physical Extends):物理扩展单元,每个PV都会以PE为基本单元划分,是LVM的最小存储单元
  • VG(Volumn Group):卷组,即LVM的卷组,可以由一个或者数个PV组成,可以看成是LVM组成的大磁盘
  • LE(Logical Extends):逻辑扩展单元,是组成LV的基本单元,一个LE对应一个PE
  • LV(Logical Volumn):逻辑卷,建立在VG之上,文件系统之下,由若干个LE组成,文件系统就是基于逻辑卷的

VG、LV和PE的关系

VG、LV和PE的关系
VG、LV和PE的关系

LVM是通过交换PE的方式来达到弹性变更文件系统大小的功能

  • 将LV中原来的PE移除,就能减小LV的容量
  • 将VG中其他PE添加到LV中,就能扩充LV的容量
  • 可以通过增加PV的方式来扩充VG
  • 一般LVM默认PE的大小是4M,而LVM最多能有65534个PE,所以LVM的VG最大为256G
  • PE是LVM最小的存储区块,类似文件系统的block,所以PE的大小会影响到VG的容量
  • LV和磁盘的/dev/sda2分区类似,是能够用来格式化的单位
  • 对文件系统而言,对LV的操作与原先对partition的操作是没有区别的

当对LV进行写入操作时,LVM定位相应的LE,通过PV头部的映射表将数据写入到相应的PE上

LV实现的关键在于PE与LE间建立的映射关系,不同的映射规则就决定了不同的LVM存储模型

LVM的优点

  • 文件系统可以跨多个磁盘,大小不会受物理磁盘限制
  • 可系统运行的情况下动态地扩展文件系统大小
  • 可增加新磁盘到LVM的存储池中

LVM使用要点

  • 按需分配文件系统大小
  • 把不同数据放在不同的卷组中

LVM配置流程

LVM配置流程
LVM配置流程
  1. 物理分区阶段:首先通过fdisk将System ID修改为LVM标记(8e)
  2. PV阶段:再通过pvcreatepvdisplay将Linux分区处理成物理卷PV
  3. VG阶段:接下来通过vgcreatevgdisplay将创建好的物理卷PV处理成卷组VG
  4. LV阶段:通过lvcreate将卷组分成若干个逻辑卷LV
  5. 操作系统使用阶段:再通过mkfs将LV格式化,最后通过fdiskmount挂载格式化后的LV到文件系统

物理卷(PV)管理相关命令

命令 功能
pvcreate 创建物理卷
pvscan 查看物理卷信息
pvdisplay 查看各个物理卷的详细参数
pvremove 删除物理卷

pvcreate

1
2
3
# 将普通的分区加上PV属性
# 例如:将分区/dev/sda6创建为物理卷
$ pvcreate /dev/sda6

pvremove

1
2
3
# 删除分区的PV属性
# 例如:删除分区/dev/sda6的物理卷属性
$ pvremove /dev/sda6

pvscan、pvdisplay

  • 都是用来查看PV的信息
  • pvdisplay更为详细

卷组(VG)管理相关命令

命令 功能
vgcreate 创建卷组
vgscan 查看卷组信息
vgdisplay 查看卷组的详细参数
vgreduce 缩小卷组,把物理卷从卷组中删除
vgextend 扩展卷组,把某个物理卷添加到卷组中
vgremove 删除卷组

逻辑卷(LV)管理相关命令

命令 功能
lvcreate 创建逻辑卷
lvscan 查看逻辑卷信息
lvdisplay 查看逻辑卷的具体参数
lvextend 增大逻辑卷大小
lvreduce 减小逻辑卷大小
lvremove 删除逻辑卷
逻辑卷LV管理命令
逻辑卷LV管理命令

管理文件系统空间

1. 增大文件系统空间

  • 先卸载逻辑卷
  • 然后通过vgextendlvextend等命令增大LV的空间
  • 再使用resize2fs将逻辑卷容量增加
  • 最后将逻辑卷挂载到目录树

2. 缩小文件系统空间

  • 先卸载逻辑卷
  • 然后使用resize2fs将逻辑卷容量减小
  • 再通过lvreduce等命令减小LV的空间
  • 最后将逻辑卷挂载到目录树

参考文章

  1. 一张图让你学会LVM | LinuxProbe
  2. LVM | archLinux