首页 > 操作系统 > Linux专区 > 理解 LVM (Logical Volume Manager)
2010
10-27

理解 LVM (Logical Volume Manager)

最近在安装 Gentoo 的过程中遇到一个新名词 ── LVM。由于在 Gentoo 官方提供的安装手册中没有对它进行介绍,因此在安装过程中的许多命令都不是很了解,于是觉得有必要写个总结来巩固和加强印象,也希望本文能够帮助你在理解了 LVM,在创建、维护和管理 LVM 时能够得心应手。


概述


LVM,逻辑卷管理器 (Logical Volume Manager),顾名思义,它就是用于管理逻辑卷的,LVM 在 Linux 内核得到支持。


在传统的存储模型中,文件系统是直接构建于物理分区之上的,物理分区的大小就决定了其上文件系统的存储容量,因此对文件系统的存储容量的调整就变得比较繁琐。


而 LVM 设计的主要目标就是实现文件系统存储容量的可扩展性,使对容量的调整更为简易。


名词解释


在介绍 LVM 的工作原理之前需要先介绍几个名词:



  • PP,物理分区(Physical Partition),如硬盘的分区,或 RAID 分区。
  • PV,物理卷(Physical Volume),是 PP 的 LVM 抽象,它维护了 PP 的结构信息,是组成 VG 的基本逻辑单元,一般一个 PV 对应一个 PP。
  • PE,物理扩展单元(Physical Extends),每个 PV 都会以 PE 为基本单元划分。
  • VG,卷组(Volume Group),即 LVM 卷组,它可由一个或数个 PV 组成,相当于 LVM 的存储池。
  • LE,逻辑扩展单元(Logical Extends),组成 LV 的基本单元,一个 LE 对应一个 PE。
  • LV,逻辑卷(Logical Volume),它建立在 VG 之上,文件系统之下,由若干个 LE 组成。

工作原理


LVM 的架构图如下:


LVM Architecture


LVM 在每个物理卷头部都维护了一个 metadata,每个 metadata 中都包含了整个 VG 的信息,包括每个 VG 的布局配置、PV 的编号、LV 的编号,以及每个 PE 到 LE 的映射关系。同一个 VG 中的每个 PV 头部的信息是相同的,这样有利于故障时进行数据恢复。


LVM 对上层文件系统提供 LV 层,隐藏了操作细节。对文件系统而言,对 LV 的操作与原先对 Partition 的操作没有差别。当对 LV 进行写入操作时,LVM 定位相应的 LE,通过 PV 头部的映射表,将数据写入到相应的 PE 上。


LVM 实现的关键在于在 PE 和 LE 间建立映射关系,不同的映射规则决定了不同的 LVM 存储模型。LVM 支持多个 PV 的 Stripe 和 Mirror,这点和软 Raid 的实现十分相似。


是否使用 LVM?


在决定是否使用 LVM 前请先了解下 LVM 的优缺点。


使用 LVM 的优势:



  • 文件系统可以跨多个磁盘,因此大小不会受物理磁盘的限制。
  • 可以在系统运行状态下动态地扩展文件系统大小。
  • 可以增加新磁盘到 LVM 的存储池中。
  • 可以以镜像的方式冗余重要数据到多个物理磁盘上。
  • 可以很方便地导出整个卷组,并导入到另外一台机器上。

使用 LVM 的限制:



  • 在从卷组中移除一个磁盘时必须使用 reducevg,否则会出问题。
  • 当卷组中的一个磁盘损坏时,整个卷组都会受影响。
  • 不能减小文件系统大小(受文件系统类型限制)。
  • 因为加入了额外的操作,存储性能会受影响(使用 Stripe 的情况另当别论)。

使用 LVM 将获得更好的可扩展性和可操作性,但却损失了可靠性和存储性能,总的说来就是在这两者间选择。


使用要点



  • 按需分配文件系统大小,不要一次性分配太大的空间给文件系统,剩余的空间可以放在存储池中,在需要时再扩充到文件系统中。
  • 把不同的数据放在不同的卷组中,这样在做系统升级或数据迁移操作时会比较方便。

操作示例


如果在安装 Gentoo 时使用 LVM,那么在 livecd 光盘中已经带有 LVM 的操作命令。如果想要在安装完的系统中使用,则需要先安装相应的管理工具,通过以下命令进行安装: emerge lvm2。


使用 LVM 的基本步骤:



  1. 在物理分区(PP)上创建物理卷(PV)
    如: pvcreate /dev/sda1
  2. 在创建卷组(VG)
    如: vgcreate vg /dev/sda1
  3. 从 VG 中分配空间,创建逻辑卷(LV)
    如: lvcreate -L10G -nhome vg
  4. 在 LV 上建立文件系统
    如: mke2fs -j /dev/vg/home

在 Gentoo 的安装文档《含软Raid和LVM2的Gentoo Linux x86快速安装指南》中有非常具体的 LVM 使用案例,这里不在累举。


更多关于 LVM 相关操作命令的使用方法,请参阅 man 手册。


延伸阅读:


作者:Hily 原始链接:http://hily.me/blog/2008/10/understanding-lvm/
coolker2010-10-27 11:04:44


留下一个回复