注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

简洁即美

最简洁的手法保存记忆

 
 
 

日志

 
 

【转】理解 LVM (Logical Volume Manager)  

2011-01-29 20:51:19|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
原文: http://hily.me/blog/2008/10/understanding-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实现原理

LVM 的架构图如下:

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
补充:LVM扩容步骤
1.  将欲处理的 LV 卸载;  
2.  建立 PV;  
3.  将建立的 PV 以 vgextend 增加到 VG 当中;  
4.  利用 lvextend 增加刚刚 VG 所增加的容量;  
5.  利用 resize2fs 将 LV 的容量确实增加!  
  评论这张
 
阅读(192)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017