lvm分析之简介

来源:互联网 发布:公安数据恢复 编辑:程序博客网 时间:2024/06/06 07:40

LVM 是一个应用于 Linux 内核的本地卷管理器 (Logical Volume Manager)。LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。LVM术语:

Ø  物理存储介质(Thephysicalmedia):系统的存储设备--硬盘,是存储系统最低层的存储单元

Ø  物理卷(physicalvolume):硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

Ø  卷组(VolumeGroup):由一个或多个物理卷组成,可以在卷组上创建一个或多个LVM逻辑卷。

Ø  逻辑卷(logicalvolume):类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统。

Ø  PE(physicalextent):每一个物理卷被划分为称为PE(PhysicalExtents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

Ø  LE(logicalextent):逻辑卷也被划分为被称为LE(LogicalExtents)的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

物理卷(PV)被由大小等同的基本单元PE组成;一个卷组由一个或多个物理卷组成;逻辑卷建立在卷组上。磁盘分区、卷组、逻辑卷和文件系统之间的逻辑关系的示意图如图1-1所示:

  

图1-1 lvm各层关系图

逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的VGDA(卷组描述符区域)中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符、和一些PE描述符。系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。

集群化的 LVM (ClusteredLVM,CLVM)是 LVM 的一个集群方面的扩展。允许一个集群的计算机通过 LVM 管理共享存储。clvmd 守护进程是 CLVM 的核心。clvmd 守护进程在每个集群计算机上运行,并更新 LVM 元数据,让集群的每个计算机上的 LVM 信息都保持一致。用 CLVM 在共享存储上建立的逻辑卷对于访问过该共享存储的计算机都是可视的。CLVM 允许一个用户在共享存储上配置逻辑卷时,锁住正被配置的物理存储设备。CLVM 使用锁服务来保证基础信息方面的一致性。CLVM 要求改变 lvm.conf以使用 cluster-wide 的锁服务。CLVM示意图见图1-2所示。


图1-2 CLVM示意图

lvm主要基于linux内核的device mapper框架,逻辑卷实际是一种dm虚拟设备,lvm通过ioctl创建和管理这些dm虚拟设备。lvm用户态代码主要是创建和管理这些dm设备,其内核实现为dm驱动,lvm主要使用了device mapper的liner、dm-snapshot等模块。其系统结构图如下所示:


与lvm相关的dm设备驱动类型有:mirror、stripped、linear、origin、snapshot、merger

devicemapper相关资料较多,下面这篇文章介绍了dm的整体设计和数据结构。基本还是比较清晰的。

http://www.ibm.com/developerworks/cn/linux/l-devmapper/index.html


0 0