LVM 逻辑卷管理

LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将一个或多个硬盘或分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘或分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。

/boot 分区不可以在逻辑卷组上,否则bootloader会无法读取.

LVM 原理简介

单一硬盘系统的 LVM 基本原理如下图所示

多硬盘系统的 LVM 基本原理如下图所示

基本概念说明

PV(Physical Volume)- 物理卷

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备,是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是在VG过程中配置的,默认为4MB。

VG(Volumne Group)- 卷组

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

LV(Logical Volume)- 逻辑卷

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

LVM 基本操作

创建 PV 常用操作命令

将空闲分区 /dev/vdb1 配置为可用的 PV(Physical Volume)

pvcreate /dev/vdb1

将空闲磁盘 /dev/vdd 配置为可用的 PV(Physical Volume)

pvcreate /dev/vdd 

查看 PV 的信息,常用以下命令

pvs
pvscan
pvdisplay


创建 VG 常用操作命令

使用已有的PV ,创建卷组(Volumne Group)名为 VG1 的 VG

vgcreate VG1 /dev/vdb1 /dev/vdd

查看 VG 的信息,常用以下命令

vgs
vgscan
vgdisplay


创建 LV 常用操作命令

使用已有的卷组 VG1 ,创建逻辑卷(Logical Volume)名为 data 的 LV,并配置 data 逻辑卷的大小为1000m

lvcreate -L 1000M -n data VG1

-L|--size 指定逻辑卷的大小

查看 LV 的信息,常用以下命令

lvs
lvscan
lvdisplay


逻辑卷无法直接使用,必须格式化挂载之后才能使用
逻辑卷的引用需要逻辑卷的设备文件, 逻辑卷的设备文件有两种书写形式

/dev/vg_name/lv_name
/dev/mapper/vg_name-lv_name

格式化 LV 并挂载,正确的挂载后,可正常使用新加的磁盘空间

mkfs.xfs /dev/VG1/data
mount /dev/VG1/data /data

为了防止系统重启后挂载失效,需要将挂载信息写入配置文件 /etc/fstab

/etc/fstab
/dev/VG1/data /data xfs defaults 0 0

LVM 扩容操作

VG 扩容

使用已有的 PV ,或者 新建 PV 来扩容已有的 VG, 假设用来扩容的 PV 为 /dev/vde

vgextend VG1 /dev/vde
LV 扩容

使用 VG 的空闲空间扩容 LV
指定要扩容的大小

lvextend -L +100m /dev/VG1/data

或者直接通过指定 PV 扩容 LV, 整个 PV 的空间被扩容到 LV, 前提是 PV 已被扩容到了 VG

lvextend /dev/VG1/data /dev/vde

其他扩容方式可查看命令帮助 lvextend -h

扩容 LV 后需要重新调整分区文件系统大小

resize2fs /dev/VG1/data

xfs 文件系统需要使用以下命令

xfs_growfs /dev/VG1/data