Linux CentOS7 LVM

LVM(Logical Volume Manger)逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分区管理的灵活性。物理设备,是用于保留逻辑卷中所存储数据的存储设备。它们是块设备,可以是磁盘分区、整个磁盘、RAID阵列或SAN磁盘。

一般来说,对于物理磁盘,我们直接分区、格式化之后就可以使用,那为什么还需要使用逻辑卷来管理磁盘呢?

这主要有两方面的原因:

a.业务上使用大容量的磁盘。当我们需要以TB为大小的存储时,对于单个磁盘,是无法满足要求的,市场上没有那么大的单块磁盘。但如果使用逻辑卷,将多个小容量的磁盘聚合为一个大的逻辑磁盘,就能满足需求。

b.扩展和收缩磁盘。在业务初期规划磁盘时,我们并不能完全知道需要分配多少磁盘空间是合理的,如果使用物理卷,后期无法扩展和收缩;如果使用逻辑卷,可以根据后期的需求量,手动扩展或收缩。

一、基本概念

1.物理卷pv

就是实实在在的物理实体。可以是一个分区或者一个硬盘。通过系统划分为众多的存储介质,最小单位是PE(一般默认是4MB)。

实践证明,当把一块硬盘或一个分区转为物理卷,再加入一个卷组,与由一块硬盘或一个分区直接加入卷组,效果一样(这说明创建物理卷不是必要的步骤!)

另外,把一块硬盘分成一个分区与不分区,没有任何区别。且分区时设置为83 类型与设置为8e 类型也没有根本性区别(原理也很简单:不分区的硬盘都可以直接转化为物理卷,再分区,且设置为8e 类型,也就无所谓了)。

2.卷组vg

将多个物理卷组合到一起,成为一个卷组。

创建卷组时,多少个物理卷都可以,如三块硬盘。创建后再想加上一块硬盘,这就由创建卷组变为了扩展卷组(命令不一样,原理也不一样)。由此提示我们,在创建卷组时要规划一下硬盘或分区数量!

3.逻辑卷lv

在卷组的基础上再次划分,最小单位是LE,与PE一样,并且一一对应。逻辑卷跟物理卷没有本质区别,只是站在不同的层次。

三个概念的基本关系图如下:

二、常用操作

为了讨论LVM,我们在系统中新添加了三块硬盘,并对后两块硬盘作了分区处理:

1.创建

a.物理卷

要创建物理卷,需要先有物理磁盘或者磁盘分区,然后使用物理磁盘或磁盘分区创建物理卷。

因为一块大硬盘分成多个分区,可以在构造多个卷组时有多种组合与选择,建议先对硬盘分区(本文不对硬盘分区展开讨论,感兴趣的可自行搜索相关内容)

创建物理卷是多余的步骤,我们直接跳过。

b.卷组

把一块或多块硬盘组成卷组,命令与操作简单:

vgcreate 卷组名 构成卷组的硬盘/分区

如把sdb、sdc1、sdd1组成卷组vg01; 把sdc2、sdd2组成卷组vg02

c.逻辑卷

从现有卷组中创建逻辑卷,要指定名称,指定大小:

lvcreate -n '逻辑卷名称' --L '逻辑卷大小' '来自卷组名称'

如从卷组vg01中创建逻辑卷lv001、lv002;从卷组vg02中创建逻辑卷lv003、lv004

2. 查看

分简单查看与详细信息查看:

(物理卷/卷组/逻辑卷)名称后加s或加scan 简单查看

(物理卷/卷组/逻辑卷)名称后加display 详细信息查看

如简单查看卷组 vgs vgscan

详细信息查看逻辑卷 lvdisplay

3.删除

从逻辑关系上要求,先删除逻辑卷,再删除卷组,最后可以删除物理卷。

命令格式:(物理卷/卷组/逻辑卷)名称后加remove

删除物理卷时,可以批量多个(利用正则式)

三、应用案例

1.常用命令

在命令行执行lvm help

根据对帮助信息的了解,可以执行lvm命令

录入quit退出(也可以ctrl+d退出)。

查看lvm版本:

2.扩展逻辑卷

当逻辑卷容量需要加大时,可进行扩展:

3.创建文件系统

逻辑卷与硬盘分区的处理一样,可以创建文件系统:

4.挂载

与硬盘挂载、分区挂载和U盘挂载一样,逻辑卷也可以挂载:

小结

LVM是Linux操作系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上、文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,因此能够在保持现有数据不变的情况下动态调整磁盘容量,从而增强磁盘管理的灵活性。

相关推荐
WTT001129 分钟前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
苹果醋337 分钟前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
了一li1 小时前
Qt中的QProcess与Boost.Interprocess:实现多进程编程
服务器·数据库·qt
日记跟新中1 小时前
Ubuntu20.04 修改root密码
linux·运维·服务器
唐小旭1 小时前
服务器建立-错误:pyenv环境建立后python版本不对
运维·服务器·python
码农君莫笑1 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
明 庭1 小时前
Ubuntu下通过Docker部署NGINX服务器
服务器·ubuntu·docker
BUG 4041 小时前
Linux——Shell
linux·运维·服务器
007php0072 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程