Linux机器LVM操作
Linux机器LVM操作

Linux机器LVM操作

一些概念

  • 物理卷(Physical Volume, PV)

物理卷是LVM的最底层概念,是LVM的逻辑存储块,物理卷与磁盘分区是逻辑的对应关系。LVM提供了命令工具可以将分区转换为物理卷,通过组合物理卷生成卷组。

  • 卷组( Volume Group,VG)

卷组是LVM逻辑概念上的磁盘设备,通过将单个或多个物理卷组合后生成卷组。卷组的大小取决于物理卷的容量及个数。在Centos7系统中,对容量与个数没有限制。

  • 物理卷长度(Physical Extent,PE)

物理卷长度是将物理卷组合为卷组后,所划分的最小存储单位,即逻辑意义上磁盘的最小存储单元。LVM默认物理卷长度为4MB。

  • 逻辑卷(Logical Volume, LV)

逻辑卷就是LVM逻辑意义上的分区,我们可以指定从卷组中提取多少容量来创建逻辑卷,最后对逻辑卷格式化并挂载使用。

创建新的LVM步骤

0、安装PV管理工具

yum install lvm*

## 检查
rpm -qa |grep lvm

1、创建物理卷PV

我现在有三块物理硬盘,先使用前两块硬盘来创建,后面演示新增硬盘的扩容。

pvcreate /dev/vdb /dev/vdc

### 相关指令 ###
# pvs/pvscan 查看系统里有pv的磁盘
# pvremove 删除pv

2、创建卷组VG

vgcreate vgdata /dev/vdb /dev/vdc

### 相关指令 ###
# vgcreate [-s xM] vgName /dev/sd ……  新建vg,-s后面接pe的大小(可选),单位是M,G,可以放多块pv
# vgextend 扩展vg,就是增加pv
# vgs/vgscan 查看系统里有vg的磁盘
# vgdisplay 显示系统上面的vg状态
# vgremove 删除vg
# vgreduce 在vg里删除pv

3、创建逻辑卷LV

lvcreate -l +100%FREE -n lvdata vgdata
# -l 后面意思是使用全部的剩余空间
# -n 后面跟的是LV的名字 再后面跟的是VG的组的名字

### 相关指令 ###
# lvcreate -l pe num /-L size -n lvname vgName  新建lv,-l指定pe的个数,-L指定容量,M,G
# lvextend 增加容量
# lvs/lvscan 查看系统里有lv的磁盘
# lvdisplay 显示系统上面的lv状态
# lvremove 删除lv
# lvreduce 在lv里减少容量

4、格式化并挂载

fdisk -l

# 示例输出
# 磁盘 /dev/mapper/vgdata-lvdata:214.7 GB, 214739976192 字节,419414016 个扇区

mkfs.ext4 /dev/mapper/vgdata-lvdata

mount /dev/mapper/vgdata-lvdata /data

LVM的在线扩展步骤

下面展示VG空间不够,需先扩展VG,扩展VG就是往VG中加PV。

我之前有3块硬盘,现在只使用了两块,并且在创建LVM的时候使用了全部的这两块的容量。现在还有一块/dev/vdd

# 将新的硬盘加入PV
pvcreate /dev/vdd

# 查看现有VG
vgs

# 扩容现有的VG - 完成后可以再次执行vgs查看现有vg的容量
vgextend vgdata /dev/vdd

# 执行vgdisplay可以看到

# 扩展现有lv - 可以先执行lvs查看现有lv名称
lvextend -l +100%FREE /dev/mapper/vgdata-lvdata

# 扩展现有LVM的容量 - ext4
resize2fs /dev/mapper/vgdata-lvdata

# 扩展现有LVM的容量 - xfs
xfs_growfs /dev/mapper/vgdata-lvdata