LVM原理详解及实战

本文详细介绍了Linux的LVM(逻辑卷管理器)原理,包括其作为硬盘虚拟化技术的特性,以及如何通过PV、VG、LV进行动态管理。文章还列举了LVM的主要命令,如pvcreate、vgcreate、lvcreate等,并通过实战演示了LVM的创建、扩展、收缩、快照及删除等操作。此外,文中强调了在进行LV扩容和缩容时的数据安全注意事项。
摘要由CSDN通过智能技术生成

今天继续给大家介绍Linux基础内容,本文主要内容是LVM的原理。

一、LVM理论

LVM,即Logical Volume Manager,逻辑卷管理器,是一种硬盘的虚拟化技术,可以允许用户的硬盘资源进行灵活的调整和动态管理。
LVM是Linux系统对于硬盘分区管理的一种机制,诞生是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对硬盘的强制性扩容和缩容理论上是可行的,但是却可能造成数据丢失。LVM技术是通过在硬盘分区和文件系统之间增加一个逻辑层,提供了一个抽象的卷组,就可以把多块硬盘设备、硬盘分区,甚至RAID整体进行卷则合并。并可以根据情况进行逻辑上的虚拟分割,这样一来,用户不用关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区设备的动态调整。
LVM的架构体系中,有三个很重要的概念:
PV,物理卷,即实际存在的硬盘、分区或者RAID
VG,卷组,是由多个物理卷组合形成的大的整体的卷组
LV,逻辑卷,是从卷组上分割出来的,可以使用使用的逻辑存储设备
LVM架构体系如下图所示:

二、LVM创建和管理命令

在部署LVM时,要依次配置PV物理卷、VG卷组和LV逻辑卷。常用的LVM部署命令如下表所示:

功能/命令物理卷管理卷组管理逻辑卷管理
扫描pvscanvgscanlvscan
建立pvcreatevgcreatelvcreate
显示pvdisplayvgdisplaylvdispaly
删除pvremotevgremotelvremote
扩展物理卷不能扩展vgextendlvextend
缩小物理卷不能缩小vgreducelvreduce

三、LVM创建和管理实战

接下来,我将使用Vmware虚拟机,来进行LVM的创建和管理实战。

(一)实战目标

建立LVM,LVM的PV分别是RAID 1,磁盘和磁盘分区。并进行LV的扩容、缩容、快照、删除等实验。

(二)硬件准备

在Vmware虚拟机上新添加四块硬盘,如下图所示:
在这里插入图片描述
在这里插入图片描述

(三)LVM创建PV、VG和LV

分别使用mdadm和fdisk创建RAID 1和磁盘分区,在这里我们选择/dev/sdb和/dev/sdc制作RAID,/dev/sdd创建磁盘分区,命令(fdisk为交互式界面,配置过程略)如下:

mdadm -Cv /dev/md0 -n 2 -l 1 /dev/sdb /dev/sdc

结果如下:
在这里插入图片描述
之后创建物理卷,命令如下:

pvcreate /dev/md0 /dev/sdd1 /dev/sde

效果如下:
在这里插入图片描述
然后创建卷组,命令如下:

vgcreate storage /dev/md0 /dev/sdd1 /dev/sde

效果如下:
在这里插入图片描述
接下来就可以创建逻辑卷了,我们尝试创建一个大小为10G的逻辑卷,在创建逻辑卷时,lvcreate命令常用参数如下:
-L 指定逻辑卷的大小(实际大小,如1G、512M等,该大小必须为4M的整数倍,否则大小会自动增大称为成4M整数倍)
-l 指定逻辑卷的大小(基本单元个数,-l后面数字乘4M为实际逻辑卷的大小)
-n 表示逻辑卷名称
逻辑卷创建命令如下:

lvcreate -n lv0 -L 10G storage

最终,我们在/dev目录下能够生成一个同名的磁盘文件,如下所示:
在这里插入图片描述
这样,当我们创建文件系统、挂载后,就可以正常使用逻辑卷了,命令如下所示:

mkfs.xfs /dev/storage/lv0
mkdir -p /lvm
mount /dev/storage/lv0 /lvm

此时,我们已经可以查看逻辑卷的挂载情况了,效果如下所示:
在这里插入图片描述

(四)LV扩容

在生产环境中,经常会出现的一种现象就是随着业务的拓展,我们原先分配的硬盘分区不够使用,这时我们就需要对硬盘进行扩容。LVM的逻辑卷可以方便的进行扩容。LV扩容步骤如下所示:

lvextend -L 15G /dev/storage/lv0
xfs_growfs /dev/storage/lv0

上述第一条命令表示对LVM的逻辑卷进行扩容,-L表示扩容后的大小而不是增加的大小,也可以使用-l参数指定大小。第二条命令是在创建xfs系统后,让xfs系统随着LV的增大而增大。
在这里插入图片描述
注意:
1、在进行扩容前,请保证LVM的卷组内有足够的空间可以进行扩容。
2、如果在LV扩容的时候,还没有创建文件系统,则可以省略上述第二条命令。
3、如果是xfs系统扩容,可以不用umount,如果是ext4系统扩容,则必须使用umount。

(五)LV缩容

在一般情况下,不允许对磁盘设备进行缩容,因为这可能造成数据丢失的风险。尽管如此,LVM还是提供了LV缩容的方法。
然而,xfs系统不允许缩容,如果是ext4系统,缩容配置如下:

e2fsck -f /dev/storage/lv0
resize2fs /dev/storage/lv0 10G
mount -a

上述第一条命令是对文件系统进行缩容,第二条命令是对LVM的卷组进行缩容,第三条命令是重新挂载。

(六)LV快照

LVM具备快照的功能,该功能类似于Vmware中的快照,LVM可以创建一个快照卷,快照卷就如同一个LV的备份。在操作中可以使用快照卷将LV的状态还原到某个节点的状态。
我们首先创建一个逻辑卷,在完成文件系统创建和挂载后,向该LV中写入一个实验性文件,过程如下:

lvcreate -n lv1 -L 1G /storage
mkfs.ext4 /dev/storage/lv1
mount /dev/storage/lv1 /lvm
echo “LVM snapshoot” > experiment.txt

让后,我们创建快照卷,在lvcreate命令中,使用-s参数创建快照卷,如下所示:

lvcreate -L 1G -s -n lvsnap /dev/storage/lv1

这样,快照卷就创建好了,如下所示:
在这里插入图片描述
接下来,我么尝试使用快照卷的恢复功能,方法是删掉刚才在lv1中创建的experiment.txt文件,然后恢复快照卷,查看新的lv1中experiment文件是否存在。过程如下:

rm -rf /lvm/experiment.txt
umount /lvm
lvconvert --merge /dev/storage/lvsnap
mount /dev/storage/lv1 /lvm
ll /lvm
cat /lvm/experiment

结果如下所示:
在这里插入图片描述

(七)PV、VG和LV删除

PV、VG和LV的删除比较简单,只要简单的使用pvremove、vgremove和lvremove进行删除即可,但是在删除时一定要注意,先解除挂载再删除LV,先删除LV再删除VG,先删除PV最后删除PV。
相关命令如下:

unount /lvm
lvremove /dev/storage/lv1
vgremove /dev/storage
pvremove /dev/md0 /dev/sdd1 /dev/sde

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 28
    点赞
  • 160
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值