1.LVM简介

1.1 什么是LVM

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。

1.2 为什么使用LVM

直接使用fdisk分区挂载的话,随着时间的推移,数据量越来越大,硬盘空间越来越小,要想扩充容量的话,就必须挂载新硬盘然后做数据迁移,这就必然导致前台业务的停止,不符合企业需求,因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。Linux提供的逻辑盘卷管理(LVM,Logical Volume Manager)机制就是一个完美的解决方案。
LVM逻辑卷管理通过将底层物理硬盘抽象封装起来,以逻辑卷的形式表现给上层系统,逻辑卷的大小可以动态调整,而且不会丢失现有数据。新加入的硬盘也不会改变现有上层的逻辑卷,大大提高了磁盘管理的灵活性。

1.3 LVM原理

LVM使用分层结构,如下图所示。
Linux LVM 逻辑卷管理 - 图6
图中顶部,首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。
2.实现LVM
检查系统中是否安装了LVM管理工具(# rpm -qa|grep lvm)
如果未安装,则使用yum 命令安装(yum install -y lvm)
创建逻辑卷的步骤:先创建pv,在创建vg,最后创建lv。
删除逻辑卷则顺序相反。

2.1 创建物理卷(pv)

先创建2个磁盘
# fdisk /dev/sdc
Linux LVM 逻辑卷管理 - 图7
基本PV命令:
pvcreate 将物理分区新建为pv
pvs/pvscan 查看系统里有pv的磁盘
pvdisplay 显示系统上面的pv状态
pvremove 删除pv
# pvcreate /dev/sdc1 /dev/sdc2
Linux LVM 逻辑卷管理 - 图8

2.2 创建卷组(vg)

基本vg命令:
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
Linux LVM 逻辑卷管理 - 图9
注:[1-2]这里是通配符的意思

2.3 创建逻辑卷(lv)

有关lv的命令:
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里减少容量
# vgcreate myvg /dev/sdc[1-2]
# lvcreate -L +5G -n mylv myvg
Linux LVM 逻辑卷管理 - 图10

2.4 格式化逻辑卷

mkfs.ext4 /dev/mapper/myvg-mylv
Linux LVM 逻辑卷管理 - 图11

2.5 挂载并且使用

mount /dev/mapper/myvg-mylv /mnt/
Linux LVM 逻辑卷管理 - 图12
3.卸载逻辑卷
注:删除逻辑卷的过程一定是
卸载挂载—-删除lv—-删除vg—-删除pv

3.1 卸载挂载

umount /dev/mapper/myvg-mylv

3.2 删除lv

lvremore /dev/mapper/myvg-mylv
Linux LVM 逻辑卷管理 - 图13

3.3 删除vg

vgremove myvg
Linux LVM 逻辑卷管理 - 图14

3.4 删除pv

pvremove /dev/sdc1 /dev/sdc2
Linux LVM 逻辑卷管理 - 图15