Linux下配置LVM(逻辑卷管理)

LVM介绍

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

LVM - 优点:

LVM通常用于装备大量磁盘的系统,但它同样适于仅有一、两块硬盘的小系统。

小系统使用LVM的益处:

传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变:

1、不同的分区相对独立,无相互联系,各分区空间很易利用不平衡,空间不能充分利用;

2、当一个文件系统/分区已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中;或采用符号连接的方式使用其它分区的空间。

3、如果要把硬盘上的多个分区合并在一起使用,只能采用再分区的方式,这个过程需要数据的备份与恢复。

当采用LVM时,情况有所不同:

1、硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;

2、文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求;

3、文件系统建立在LVM上,可以跨分区,方便使用;

系统使用LVM的益处

1、在使用很多硬盘的大系统中,使用LVM主要是方便管理、增加了系统的扩展性。

2、在一个有很多不同容量硬盘的大型系统中,对不同的用户的空间分配是一个技巧性的工作,要在用户需求与实际可用空间中寻求平衡。

3、用户/用户组的空间建立在LVM上,可以随时按要求增大,或根据使用情况对各逻辑卷进行调整。当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。同样,使用LVM可以在不停服务的情况下。把用户数据从旧硬盘转移到新硬盘空间中去。

名词解释


1、物理卷—–PV(Physical Volume)
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。

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

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

4、物理区域–PE(Physical Extent)
物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。

安装LVM

1
2
yum install lvm2 #centos和redhat环境下使用
apt-get install lvm2 #debin和ubuntu环境下使用

LVM使用

比方我有二块硬盘,其中/dev/sdb1是SSD。sdc的硬盘分成二个区。/dev/sdb1、/dev/sdc1、/dev/sdc2。

建立PV

pvcreate 创建LVM磁盘(即物理卷)
将sdb1和sdc2创建成LVM

1
2
pvcreate /dev/sdb1
pvcreate /dev/sdc2

pvdisplay 显示卷组中的物理卷信息.
pvs 显示卷组简单信息

建立VG

vgcreate 创建卷组.
将sdb1和sdc2添加到VG,VG起名:vgdisk

1
vgcreate vgdisk /dev/sdb1 /dev/sdc2

vgdisplay 显示vg信息
vgs 显示vg简单信息

图片中显示的VG Size就是整个VG的大小,PE Size就是PE的值,默认是4M。Total PE是整个PE的数量。Free PE是剩余PE的数量。PE的数值*4M就是整个硬盘的大小。

建立LV

lvcreate 创建逻辑卷

在vgdisk卷组上,创建一个200M,名字叫lv的逻辑卷,

1
lvcreate -L 200M -n lv vgdisk

lvdisplay 显示lv信息
lvs 显示lv简单信息

其它运用

将vgdisk组的剩余空间全部分配到一个新的逻辑卷,取名lv2

1
lvcreate -l 这里使用FreePE的值 -n lv2 vgdisk

将逻辑卷lv增加500M空间

1
lvextend -L +500M /dev/vgdisk/lv

变更逻辑卷大小后,需要同步文件改变

1
resize2fs /dev/vgdisk/lv

删除逻辑卷lv

1
lvremove /dev/vgdisk/lv

删除卷组vgdisk

1
vgremove vgdisk

从vgdisk卷组里把sda6删除

1
vgreduce vgdisk /dev/sda6

如果VG的大小不够了,需要添加新的PV到VG.下面就是将/dev/sdd1添加到vgdisk中

1
vgextend vgdisk /dev/sdd1

将LV逻辑卷的大小,缩小15G.

1
2
3
e2fsck /dev/vgdisk/lv
resize2fs -f /dev/vgdisk/lv 15g
lvreduce -L 15g /dev/vgdisk/lv

用SSD物理盘/dev/sdb1,划一块做缓存给vgdisk上的lv逻辑卷.

1
lvcreate --type cache --cachemode writeback -L 缓存大小 -n 你给缓存起的名字  /dev/vgdisk/lv /dev/sdb1

查看缓存是否建立成功.

1
lvs -a vgdisk

换系统后LVS的挂载

1
2
lvs -o +devices #检查磁盘及文件系统状况
mount | grep '/dev/mapper' #检查缓冲盘

检查完之后就可以在/dev目录下找到丢失的LVS了。

遇到的问题。

建立缓存后可能会存在重启后VG不见的情况,这时需要安装 “thin-provisioning-tools”工具组件.

1
2
apt-get install thin-provisioning-tools #debian&ubuntu
yum install thin-provisioning-tools #centos&redhat

重启后无法挂载vgdisk,使用vgchange激活vgdisk

1
vgchange -a y vgdisk


-------------本文结束 感谢您的阅读-------------
-------------如果觉得这篇文章不错,可以请作者喝杯咖啡!-------------