LVM中物理卷、物理区块、卷组、逻辑卷的概念以及它们之间的关系

管理存储时,最怕听到的一句话可能就是:"根目录满了。"

面对这种报警,如果你用的是传统硬盘分区,那简直是场灾难。你看着隔壁 /home 还有一大半空闲空间,却只能干瞪眼,因为它们之间隔着一道物理分区的"铁墙"。要想挪空间?你得备份、删除、重新分区、再恢复数据------这折腾一圈,谁受得了?

为什么软件的需求变了,我们却还要被几年前装机时划分的硬盘边界给困死?

LVM(逻辑卷管理)就是为了砸碎这堵墙而生的。它在物理硬盘和操作系统之间加了一层"变压器",把僵硬的硬件变成了可以随意揉捏的"橡皮泥"。今天我们不背定义,就顺着数据流动的方向,看看 LVM 到底是怎么把物理硬盘"变没"的。

第一关:给硬盘穿上工装(PV 与 PE)

这就好比你去建房子,刚从采石场运来的原始石头(物理硬盘 /dev/sda)是没法直接砌墙的。你得先加工、打磨,让它符合建筑标准。

PV(物理卷) 就是这个"标准化"的过程。我们把一块普通的物理硬盘初始化,给它打上 LVM 的标签。这就相当于告诉操作系统:"这块盘现在归 LVM 管了,别的地方别来沾边。"

但光打标签还不够,为了方便搬运,LVM 还会把这块盘切得碎碎的。它把整块硬盘切分成无数个大小完全一样的小方块,这些小方块就叫 PE(物理区块)。

你可能会问,好好的硬盘为什么要切碎?

其实这才是 LVM 灵活的根源。就像乐高积木一样,只有把巨大的硬盘拆解成一个个标准的"积木颗粒",我们在后续才能随心所欲地拼装。如果没有这些 PE 小方块,所谓的"动态扩容"岂不成了天方夜谭?

第二关:汇聚成海(VG)

当你把手里的几块硬盘都变成了标准化的 PV,也就是一堆堆的 PE 积木后,神奇的事情发生了。

LVM 会把这些积木全部倒进同一个大池子里,这个池子就叫 VG(卷组)。到了这一层,操作系统的视野里已经没有了什么"第一块硬盘"、"第二块硬盘"的区别,它只看到一个容量巨大的存储池。

这时候你想想,原本受限于物理硬盘大小的存储上限,是不是瞬间就被突破了?

不管底层是两块 500G 的盘,还是一块 1T 的盘,在 VG 这个大池子看来,都是一样的 1000G 资源。VG 彻底屏蔽了底层的物理硬件差异,让分散的硬盘在逻辑上"合体"了。

第三关:按需取用(LV)

池子建好了,最后一步当然是"打水"来用。

我们在 VG 这个大池子里划出一块空间,把它格式化、挂载给系统用,这个东西就是 LV(逻辑卷)。我们在 Linux 里看到的 /dev/mapper/xxx,我们在上面存文件、跑数据库的,实际上就是它。

LV 看起来和普通分区一模一样,但骨子里完全不同。普通分区是死死钉在硬盘扇区上的,而 LV 本质上就是一串 PE 积木的清单。

当你的业务突然暴涨,原本划分的 100G 空间不够用了怎么办?

如果是传统分区,你可能得通宵加班迁移数据。但在 LVM 里,你只需要告诉系统:"嗨,再给我来 50 个 PE 积木。"系统就会自动从 VG 池子里抓取空闲的积木拼到你的 LV 屁股后面。这一切都是在线进行的,业务甚至都不用停。

到底怎么理解它们的关系?

把这套逻辑盘下来,你会发现 LVM 其实就在玩一个"障眼法":

它先把硬盘打磨成 PV,切成 PE 小块;

然后把所有 PE 扔进 VG 这个大仓库里;

最后根据你的需求,从仓库里调拨积木组成 LV 给你用。

所以,LVM 的本质是什么?

它就是用软件层面的复杂性,换取了管理上的极致灵活性。它让你忘掉硬盘的物理边界,从此以后,你不再是守着几块死板硬盘的"看门人",而是坐拥整个存储资源池的"调度官"。

相关推荐
wuminyu33 分钟前
C++协程实现接收端的零拷贝Buffer管理原理剖析
java·linux·c语言·jvm·c++
优化Henry39 分钟前
LTE 载波频率与频点配置详解
运维·网络·学习·5g·信息与通信
程序员清风39 分钟前
Docker、Nginx 与 Kubernetes 部署 AI 后端服务
nginx·docker·kubernetes
代码方舟1 小时前
数据科学风控实战:基于天远全能消金报告构建自动化信用评估网关
运维·人工智能·自动化
科力锐品牌君1 小时前
应用级灾备 | 海量非结构化数据如何实现高效数据保护
linux·运维·网络·安全·系统安全·数据安全·灾备
KaiwuDB1 小时前
KaiwuDB 运维实战04:DRBD + KaiwuDB——物联网场景下的低成本数据库高可用方案
运维·数据库·物联网·时序数据库·kaiwudb·aiot·多模数据库
zhangrelay1 小时前
ROS项目设计案例智能大模型正经乱答案例
linux·笔记·学习·ubuntu·机器人
Zhu7582 小时前
离线二进制部署-Kubernetes-v1.36.4
容器·贪心算法·kubernetes
福建佰胜张工2 小时前
A5E00839230西门子工业核心配件详解:参数、安装调试与故障运维全攻略
运维·网络·安全·自动化
流浪0012 小时前
Linux系统篇39——线程(四) pthread库的由来和线程的创建与等待
linux·操作系统·线程·pthread库