Linux LVM(逻辑卷管理)

Lvm基本应用

什么是LVM?

LVM 的全称是 Logical Volume Manager,中文为逻辑卷管理,它是Linux对磁盘分区的一种管理机制,它在传统的硬盘(或硬盘分区)和文件系统之间建立一个逻辑层,将一个或多个底层块设备组织成为一个逻辑设备。LVM 的重点在于可以动态的调整磁盘分区的大小,而并不是数据的冗余性和完整性。


LVM的组成


PV:Physical Volume,物理卷

PV是LVM的基本存储逻辑块。


PE:Physical Exten,物理块

把每一个物理卷PV被划分为PE的基本单元,默认为4MB,是整个LVM最小的储存区块,一般在创建卷组VG中划分大小,也可以由PV划分大小。

组成VG的一个或多个PV中PE必须统一大小。


VG:Volumen Group,卷组

由一个或多个物理卷PV组成,而VG最多仅能含有65534个PE,默认VG可以有 4M*65534/(1024M/G)=256G。


LV:Logical Volume,逻辑卷

逻辑卷建立在卷组VG之上。将逻辑卷LV格式化后建立文件系统进行使用。


LE:Logical Extent,逻辑块

逻辑卷LV也被划分为可被寻址的基本单位LE,在同一卷组中,LE的大小和PE大小相同,且有一一对应关系。


LVM的实现

磁盘的准备

通过使用fdisk -l /dev/sdb,我们可以查看到/dev/sdb分区如下,且ID为83


准备磁盘分区,并不要求分区的大小一致,但是必须将分区类型改为“8e使它可以用于LVM


重复上述操作,将/dev/sdb所有分区类型修改为8e。



创建物理卷(PV)

PV的管理工具有:pvs,pvdisplay,pvcreate,pvremove

pvs:显示pv的简要信息

pvdisplay:显示pv的详细信息

pvcreate:创建pv

pvremove:删除pv

使用 pvcreate /dev/sdb# 命令创建物理卷



创建卷组(VG)

VG的管理工具有:vgs,vgdisplay,vgcreate,vgremove,vgextend,vgreduce

vgextend:VG的扩充

语法: vgextend 卷组名 设备名..

vgreduce:VG的缩减

语法:vgreduce 卷组名 设备名..

vgcreate [-s #[mgt]] VG名称 PV名称

选项:-s:后面接PE的大小(size),单位可以是m,g,t(不区分大小写),默认为4MB

使用 vgcreate Vol_MyVg /dev/sdb1 /dev/sdb2 /dev/sdb3,显示successfully,创建成功



创建逻辑卷(LV)

LV的管理工具有:lvs,lvdisplay,lvcreate,lvremove

lvcreate -L #[mgt] -n 逻辑卷名 卷组名

选项:-L:后接大小,-n:后接LV的名称

使用 lvcreate -L 3G -n MyLv Vol_MyVg,该命令会从指定MyVg的卷组之上,创建一个名为”MyLv“、大小为3G的逻辑卷



格式化加挂载

逻辑卷设备的位置在 /dev/卷组名(VG名)/逻辑卷名(LV名),我们可以格式化和挂载逻辑卷,就像ext分区一样。

我们使用如下命令:

mkfs -t ext4 /dev/Vol_MyVg/MyLv

mkdir /mnt/LVM

mount /dev/dev/Vol_MyVg/MyLv




LVM扩展实现

设备/dev/sdb的总大小为8G,在上述LVM实现过程中,我们将/dev/sdb分成四个分区,每个分区2G,然后用了sdb1,sdb2,sdb3三个分区组成了卷组名为Vol_MyVg的卷组且大小为6GB,并在此卷组之上建立了大小为3GB且卷名为MyLv的逻辑卷,此时Vol_MyVg卷组还省下3GB。

1、扩大卷组(VG)- Vol_MyVg

vgextend:VG的扩充

语法: vgextend 卷组名 设备名..

使用命令 vgextend Vol_MyVg /dev/sdb4 创建,使用 vgs 命令显示,详细信息可以使用 vgdisplay,由下图可知成功将VG(Vol_MyVg)扩展为8GB


2、扩展逻辑卷(LV) - My_Lv

lvextend:LV的扩充

用法:lvextend -L [+]#[mMgGtT] /dev/卷组名/逻辑卷名

-L指定大小,+ 号是指在原有逻辑卷上进行增加不带则是指调整大小为指定数值

先用 lvs 或者 df -h 看看原来逻辑卷的大小,这里为3GB。

我们使用命令 lvextend -L +2G MyLv 来扩展逻辑卷MyLv


此时使用命令 lvs 可见的名为MyLv逻辑卷已变成5GB,但是命令 df -h下挂载点仍然为3GB,我们需使用命令 resize2fs /dev/卷组名/逻辑卷名 来通知内核




LVM缩减实现

经过LVM扩展后,LVM大小情况为,卷组Vol_MyVg的大小为8GB,逻辑卷MyLv的大小为5GB。
假设我们要将卷组Vol_MyVg大小缩减至2GB,逻辑卷MyLv的大小缩减至1GB,需进行以下操作。

1、缩减逻辑卷(LV) - My_Lv

第一步、使用 umount /dev/卷组名 / 逻辑卷名 命令 卸载已挂载的逻辑卷
第二步、 e2fsck -f /dev/卷组名 / 逻辑卷名 命令 检测逻辑卷是否正常
第三步、 resize2fs /dev/卷组名 / 逻辑卷名  #[mMgGtT] 命令通知内核
第四步、 lvreduce -L [-] # [mMgGtT]  /dev/卷组名 / 逻辑卷名 命令缩减大小, 注意 - 号(有则缩减多少,无则缩减 多少)
第五步、 mount 挂载使用

2、缩减卷组(VG)- Vol_MyVg

注意事项
a. 卷组大小必须大于由此卷组(VG)建立的逻辑卷(LV)的大小之和。
b. 由于卷组是由物理卷(PV)构成,缩减时,必须将所移除的物理卷(PV)的数据(物理块(PE))移动到该卷组中的其它PV中去。

第一步、使用 pvs 命令查看各PV空间状态,选择要移除的PV,用来缩减VG的大小
第二步、使用 pvmove 移除的PV设备名 其它PV设备名  命令将卷组上的所要移除的PV,移动到该卷组中的其它PV中
第三步、是用  vgreduce 卷组名 移除的PV设备名 命令进行VG的缩减




实现LVM快照(snapshot)

lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name
选项:
-L #[mMgGtT]:指定快照的大小
-p|--permission:指定权限 r 只读,w只写,rw读写
-n: snapshot_lv_name,快照名  original_lv_name,被快照的LV名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值