了解 LVM
在您初次安装 RockyLinux 时,您需要对磁盘执行分区操作,若不执行,则默认选择 LVM。
对于新手而言,我们建议您选择 标准分区。
当我们选择 标准分区 且后续执行挂载操作后,分区的容量大小就被完全固定,这种约束性在服务器上是不被允许的,因此我们需要有一种技术可以实现对硬盘资源的动态调整,也就是我们说的 LVM
基本原理
LVM(Logical Volume Manager,逻辑卷管理)的原理比较简单,简单来说就是在 磁盘分区 和 文件系统 之间加一个逻辑抽象层,把多块硬盘进行卷组合并,通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。
相关术语
- 物理存储介质(The physical media):LVM 的存储介质可以是整个硬盘,也可以是硬盘分区或 RAID 等。介质必须转换或初始化为 LVM 物理卷(即 PV)才能进行下一步的操作。
- PV(Physical Volume,物理卷):LVM 的基本存储逻辑块。创建物理卷可以用硬盘分区,也可以用硬盘本身。
- VG(Volume Group,卷组):类似于标准分区中的物理硬盘,一个 VG 由一个或多个 PV 组成。
- LV(Logical Volume,逻辑卷):类似于标准分区当中的硬盘分区,LV 建立在 VG 之上,您可以在 LV 上写入相应的文件系统。
- PE(Physical Extent,物理区域):PV 中可以分配的最小存储单位,可以单独指定大小,默认为 4MB
- LE(Logical Extent,逻辑区域):LV 中可以分配的最小存储单位,在同一个 VG 中,PE 和 LE 是相同的
请注意不同对象中对最小存储单位的定义:
- 在 RAID 当中,最小的存储单位被称为 chunk
- 在 ext4 文件系统中,最小的存储单位被称为 block
- 在 NTFS 文件系统中,最小的存储单位被称为 cluster
- 在物理硬盘中,最小的存储单位被称为扇区
从上图可知,组成 LVM 其实是三部分(不同颜色),分别是蓝色的物理分区层、绿色的 LVM 层、黑色的文件系统层。
从系统管理员的角度来说,也是按照上图的顺序进行使用,依次是:硬盘分区/硬盘/RAID —> 初始化为一个或多个 PV —> 合并组合成为 VG —> 划分出一个或多个 LV —> 格式化写入文件系统,挂载后进行使用
LVM 的写入机制
LVM 的写入机制主要涉及两种数据分布模式,两者的核心区别在于数据如何跨物理卷(PV)存储:
-
线性模式(Linear Mode)– 默认写入机制,即新数据按顺序写入到物理卷,只有当前 PV 空间用尽后,才会使用下一个 PV
- 优点:数据的连续性高,单块物理卷损坏时,未写入的 PV 数据仍可保留
- 缺点:无法并行读写,性能受限于单块磁盘的速度
-
条带模式(Striped Mode) – 类似于 RAID 0 的读写机制。数据会被拆分为固定大小的条带单元(Stripe Unit)并轮流写入到多个 PV 中,实现并行读写。比如,若条带单元大小为 64KB 且使用了 3 块 PV,则第 1 个 64KB 数据写入到 PV1 中,第 2 个 64KB 数据写入到 PV2 中,第 3 个 64KB 数据写入到 PV3 中,第 4 个 64KB 数据再次写入到 PV1 中,依此类推。
- 优点:显著提升多磁盘的读写性能
- 缺点:任意一个 PV 故障都会导致 LV 不可用;扩容的复杂度较高;需要搭配额外的数据备份方案或技术
两者的对比:
模式 | 数据分布 | 性能 | 冗余 | 使用场景 |
---|---|---|---|---|
线性模式 | 按照顺序依次填充 PV | 较低 | 有 | 通用场景 |
条带模式 | 轮流写入到多个 PV 中 | 较高 | 无 | 有单独的备份方案或技术的情况下,追求高性能的磁盘 I/O ,如数据库的读写、大文件的连续读写等 |
