【Liunx常用操作】LVM逻辑卷的介绍和相关操作(创建、删除、扩缩容)

提示:为保证文章的正确性和实用性,文章内容可能会不定时优化改进,若您有建议或者文章存在错误请私信留言或评论指正💖😊💖。下面以CentOS7.6操作系统为例,介绍具体的操作步骤,如果本文对你有帮助,记得关注加收藏🤞。


1、文章前言

LVM(Logical Volume Manager)逻辑卷管理器,由内核驱动和应用层工具组成,它屏蔽了底层存储设备的差异,将存储设备组合并抽象成逻辑卷,逻辑卷可以格式化成文件系统后挂载使用。

LVM的原理就是把部分、整个或多个存储设备标识成物理卷(PV),再将一个或多个物理卷(PV)组合成一个卷组(VG),卷组(VG)可以通过增删物理卷(PV)灵活调整大小,在卷组(VG)的基础上提供逻辑卷(LV),逻辑卷(LV)格式化成文件系统后挂载使用。逻辑卷(LV)最大的特点是支持利用所在卷组(VG)的空间动态调整大小,避免了因为需要调整存储空间大小而停止应用、卸载文件系统和进行数据迁移等动作,减少了操作成本和风险。

LVM中的几个重要概念:
(1)物理卷(physical volume):简称PV,物理卷可以是整个硬盘或硬盘的分区,是LVM的基本存储逻辑块,物理卷和普通硬盘或分区的区别是物理卷包含了一些与LVM有关的管理参数。
(2)卷组(Volume Group):简称VG,可以看成单独的逻辑磁盘,建立在PV之上,一个卷组中至少要包括一个PV,在卷组建立之后可以动态的添加PV到卷组中。卷组的名称可以自定义。
(3)物理区域(physical extent):简称PE,物理区域是卷组中可用于分配的最小存储单元,物理区域的大小默认为4MB,也可以在创建卷组时通过“-s”参数手动指定大小,创建卷组时物理区域大小一旦确定创建卷组后将不能更改。
(4)逻辑卷(logical volume):简称LV,相当于磁盘分区(partition),逻辑卷建立在卷组之上,可以动态的扩展或缩小空间,扩展的空间利用的是所在卷组的未分配的空间。一个卷组可以创建多个逻辑卷,一个逻辑卷不能属于多个卷组。逻辑卷有多种分类,可以通过执行lvcreate -h查看具体类型,其中较为常见的是线性LV。

不管是物理卷还是卷组,都属于存储设备,所以它们都在“/dev”下,而逻辑卷属于卷组,类似于分区(partition)属于磁盘,所以逻辑卷在“/dev/卷组名称”下。简单来讲,创建并使用逻辑卷的步骤大致为:“创建物理卷(Physical volume)>创建卷组(Volume group)并将物理卷加入到卷组>激活卷组(卷组在创建时默认激活)>创建逻辑卷(Logical volume)>格式化逻辑卷>将逻辑卷挂载到目录下”,如下图。

1

2、操作步骤

2.1、创建并挂载逻辑卷

下面就在CentOS操作系统上用一块100G的硬盘创建两个分区,并将两个分区分别做成pv后加入同一个vg,然后利用该vg创建一个lv并挂载到“/datas”下为例,介绍具体操做步骤。

步骤一: 在操作系统中执行以下命令,查看系统中块设备的信息,如下图所示,系统中存在一块盘符为sdb的100G硬盘。

lsblk

2
步骤二: 执行以下命令, 对盘符为“sdb”的磁盘进行分区。

fdisk /dev/sdb

345
步骤三: 重复执行步骤二, 利用“sdb”磁盘剩余空间创建分区2即(sdb2)。如下图所示,成功在一块100G的硬盘上创建了两个分区(sdb1、sdb2)。
6
步骤四: 执行以下命令,将分区“sdb1”、“sdb2”创建成物理卷。

pvcreate /dev/sdb1 /dev/sdb2

7
步骤五: 执行以下命令,创建卷组“testvg”并将物理卷sdb1和sdb2添加到该卷组中。

vgcreate testvg /dev/sdb1 /dev/sdb2

8
步骤六: 执行以下命令,在卷组“testvg”中创建大小为60G、名称为“datas_lv”的逻辑卷。(如何创建一个使用所有VG空间的LV?

lvcreate testvg -L 60G -n datas_lv

9

步骤七: 执行以下命令,将逻辑卷“datas_lv”格式化成ext4类型的文件系统。
注意:若将逻辑卷格式化成xfs类型的文件系统后,逻辑卷将只支持扩容不支持缩容。

mkfs.ext4 /dev/testvg/datas_lv

10
步骤八: 执行以下命令,在“/”下创建datas目录。

mkdir /datas;ll / |grep datas

11
步骤九: 执行以下命令,将逻辑卷“datas_lv”挂载到“/datas”目录下。

mount /dev/testvg/datas_lv /datas/

12
步骤十: 执行以下命令,编辑“/etc/fstab”文件。

vim /etc/fstab

步骤十一: 在配置文件最后添加以下内容后保存退出,实现卷的开机自动挂载(注意参数换成自己实际的,不然会导致系统启动无法正确mount而进不去系统)。

/dev/testvg/datas_lv    /datas                  ext4     defaults       0 0

13

2.2、扩容逻辑卷

(1)扩容逻辑卷的目的是为了增加该逻辑卷文件系统的空间,步骤分为扩容逻辑卷文件系统同步扩容生效两个步骤。扩容操作既可以在文件系统已挂载的情况下进行,也可以在卸载文件系统确认文件系统状态正常后进行。
(2)逻辑卷扩容前,一定要将卷上的数据进行备份。
(3)建议在操作实际生产环境前,搭建相同的模拟环境测试操作步骤的可行性,别人的案例和方法可以借鉴但不一定就完全符合条件。

步骤一: 执行以下命令,查看系统中的逻辑卷大小和卷组空间,如下图,逻辑卷datas_lv的大小是60G,所属卷组testvg,testvg卷组的可用空间(VFree)还有39.99G。
注意:若待扩容逻辑卷所在卷组没用剩余空间的话,需要将新的磁盘或者分区做成物理卷加入卷组,操作方法在上面有提到。

lvs;vgs

1
步骤二: 执行以下命令,查看逻辑卷的文件系统类型,如下图逻辑卷datas_lv的文件系统类型为ext4。
注意:扩容逻辑卷后需要对文件系统进行同步扩容生效操作,不同的文件系统同步扩容生效命令不一样,因此扩容前确认逻辑卷的文件系统类型尤为重要。

lsblk -f

2
步骤三: 执行以下命令,扩容逻辑卷datas_lv(当前大小60G)。扩容需求不同命令参数也不同,以下三种方法根据实际情况选择。
(1)把逻辑卷datas_lv扩容到指定大小,比如70G:

lvextend -L 70g /dev/testvg/datas_lv;lvs

3
(2)给逻辑卷datas_lv扩容指定大小的空间,比如20G:

lvextend -L +20g /dev/testvg/datas_lv;lvs

4
(3)将逻辑卷datas_lv所在卷组剩余空间都扩容到逻辑卷datas_lv上:

lvextend -l +100%free /dev/testvg/datas_lv;lvs

5
步骤四: 执行以下命令,进行文件系统的同步扩容生效操作,文件系统类型不同命令也不同,以下两种种方法根据实际情况选择。
(1)xfs类型的文件系统:

xfs_growfs /dev/testvg/datas_lv

6

(2)ext2、ext3、ext4类型的文件系统:

resize2fs /dev/testvg/datas_lv

7

2.3、缩容逻辑卷

(1)缩容逻辑卷的步骤分为卸载文件系统、检查文件状态、缩容文件系统、缩容逻辑卷、挂载文件系统五个步骤。非必要情况下不建议缩容逻辑卷,xfs类型的文件系统不支持缩容
(2)逻辑卷缩容前,一定要将卷上的数据进行备份。
(3)建议在操作实际生产环境前,搭建相同的模拟环境测试操作步骤,别人的案例和方法可以借鉴但不一定就完全符合条件。

步骤一: 执行以下命令,查看逻辑卷的文件系统类型以及挂载点,如下图逻辑卷datas_lv的文件系统类型为ext4,挂载点为“/datas”。若文件系统类型为xfs则不支持缩容,不要执行本章节操作。

lsblk -f

1
步骤二: 执行以下命令,查看当前挂载点“/datas”上的文件系统大小。

df -h

2

步骤三: 执行以下命令,卸载挂载点“/datas”上的文件系统。

umount /datas

3
步骤四: 执行以下命令,检查并自动修复datas_lv上的文件系统。

e2fsck -pf /dev/testvg/datas_lv

4
步骤五: 执行以下命令,把datas_lv上的文件系统大小调整为50G。

resize2fs /dev/testvg/datas_lv 50g

5
步骤六: 执行以下命令,把逻辑卷datas_lv的大小调整为50G。

lvreduce -L 50g /dev/testvg/datas_lv

6
步骤七: 执行以下命令,再次检查并自动修复datas_lv上的文件系统。

e2fsck -pf /dev/testvg/datas_lv

7
步骤八: 执行以下命令,重新挂载datas_lv上的文件系统,可以看见“/datas”挂载点的文件系统已经变成50G了。

mount /dev/testvg/datas_lv /datas/
df -h

8

3、总结

3.1、创建物理卷

pvcreate /dev/sdb

或者

pvcreate /dev/sdb1 /dev/sdb2

3.2、查看物理卷

pvs或者pvscan或者pvdisplay

3.3、移除物理卷

pvremove /dev/sdb

3.4、创建卷组

vgcreate testvg /dev/sdb1 /dev/sdb2

3.5、激活卷组

vgchange -a y testvg

3.6、添加新的物理卷到卷组中

vgextend testvg /dev/sdc

3.7、查看卷组

vgs或者vgscan或者vgdisplay

3.8、从卷组中删除一个物理卷

vgreduce testvg /dev/sdc

3.9、删除卷组

vgremove testvg

3.10、创建普通逻辑卷

lvcreate testvg -n test -L 20G

或者(使用全部vg空间创建lv)

vgdisplay testvg | grep 'Total PE'  //查看卷组全部PE数量
lvcreate testvg -n test -l PE数量   //利用卷组的全部PE创建一个叫做test的逻辑卷

3.11、创建条块化的逻辑卷(逻辑卷在两个物理卷中条块化存放数据,默认一块大小为64KB)

lvcreate testvg -n test -L 20G -i2

3.12、创建镜像的逻辑卷(表示只生成一个单一镜像,镜像分别放在/dev/sdb1和/dev/sdc1上,镜像日志放在/dev/sdb2上)

lvcreate testvg -n test -L 20G  -m1  /dev/sdb1 /dev/sdc1 /dev/sdb2

3.13、格式化逻辑卷成ext4类型的文件系统

mkfs.ext4 /dev/testvg/test

3.14、查看逻辑卷

lvs或者lvscan或者lvdisplay

3.15、挂载逻辑卷

mount /dev/testvg/test /test

或者

mount /dev/mapper/testvg-test /test

3.16、卸载逻辑卷

umount /test

或者强制卸载

umount -l /test

3.17、删除逻辑卷(先卸载,再删除)

lvremove /dev/testvg/test

3.18、物理卷数据在线迁移

pvmove -n test /dev/sdb1 /dev/sdc1
  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JueShiYingJun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值