2024年6月5日发(作者:)

逻辑卷管理(LVM)指系统将物理卷管理抽象到更高的层次,常常会形成更简单的管理模式。通过使用 LVM,

所有物理磁盘和分区,无论它们的大小和分布方式如何,都被抽象为

单一存储(

single storage

源。例如,

在图 1 所示的物理到逻辑映射布局中,最大的磁盘是 80GB 的,那么用户如何创建更大(比如 150GB)

的文件系统呢?

图 1. 物理到逻辑的映射

LVM 可以将分区和磁盘聚合成一个

虚拟磁盘(

virtual disk

,从而用小的存储空间组成一个统一的大空间。

这个虚拟磁盘在 LVM 术语中称为

卷组(

volume group

建立比最大的磁盘还大的文件系统并不是这种高级存储管理方法的惟一用途。还可以使用 LVM 完成以下

任务:

在磁盘池中添加磁盘和分区,对现有的文件系统进行在线扩展

用一个 160GB 磁盘替换两个 80GB 磁盘,而不需要让系统离线,也不需要在磁盘之间手工转

移数据

当存储空间超过所需的空间量时,从池中去除磁盘,从而缩小文件系统

使用

快照(

snapshot

执行一致的备份(本文后面会进一步讨论)

LVM2 是一个新的用户空间工具集,它为 Linux 提供逻辑卷管理功能。它完全向后兼容原来的 LVM 工具

集。在本文中,将介绍 LVM2 最有用的特性以及几种简化系统管理任务的方法。(随便说一句,如果您正

在寻找关于 LVM 的基本指南,那么可以看看 参考资料 中列出的 LVM HowTo。)

我们来看看 LVM 的结构是什么样子的。

LVM 的结构

LVM 被组织为三种元素:

卷(Volume):

物理

逻辑卷

卷组

区段(Extent):

物理

逻辑区段

设备映射器(Device mapper):Linux 内核模块

Linux LVM 组织为物理卷(PV)、卷组(VG)和逻辑卷(LV)。

物理卷

是物理磁盘或物理磁盘分区(比

如 /dev/hda 或 /dev/hdb1)。

卷组

是物理卷的集合。

卷组

可以在逻辑上划分成多个逻辑卷。

图 2 显示一个三个磁盘构成的布局。

图 2. 物理到逻辑卷的映射

物理磁盘 0 上的所有四个分区(/dev/hda[1-4])以及完整的物理磁盘 1(/dev/hdb)和物理磁盘 2

(/dev/hdd)作为物理卷添加到卷组 VG0 中。

卷组是实现 n-to-m 映射的关键(也就是,将 n 个 PV 看作 m 个 LV)。在将 PV 分配给卷组之后, 就

可以创建任意大小的

逻辑卷

(只要不超过 VG 的大小)。在图 2 的示例中,创建了一个称为 LV0 的卷

组,并给其他 LV 留下了一些空间(这些空间也可以用来应付 LV0 以后的增长)。

LVM 中的逻辑卷就相当于物理磁盘分区;在实际使用中,它们

就是

物理磁盘分区。

在创建 LV 之后,可以使用任何文件系统对它进行格式化并将它挂载在某个挂载点上,然后就可以开始使

用它了。图 3 显示一个经过格式化的逻辑卷 LV0 被挂载在 /var。

图 3. 物理卷到文件系统的映射

区段

为了实现 n-to-m 物理到逻辑卷映射,PV 和 VG 的基本块必须具有相同的大小;这些基本块称为

物理区

段(

PE

逻辑区段(

LE

。尽管 n 个物理卷映射到 m 个逻辑卷,但是 PE 和 LE 总是一对一映射的。

在使用 LVM2 时,对于每个 PV/LV 的最大区段数量并没有限制。默认的区段大小是 4MB,对于大多数

配置不需要修改这个设置,因为区段的大小并不影响 I/O 性能。但是,区段数量太多会降低 LVM 工具的

效率,所以可以使用比较大的区段,从而降低区段数量。但是注意,在一个 VG 中不能混用不同的区段大

小,而且用 LVM 修改区段大小是一种不安全的操作,会破坏数据。所以建议在初始设置时选择一个区段

大小,以后不再修改。

不同的区段大小意味着不同的 VG 粒度。例如,如果选择的区段大小是 4GB,那么只能以 4GB 的整数

倍缩小或扩展 LV。

图 4 用 PE 和 LE 显示与前一个示例相同的布局(VG0 中的空闲空间也由空闲 LE 组成,尽管图中没

有显示它们)。