linux 内核中的 device mapper 机制

linux 内核中的 device mapper 机制

ID:14165165

大小:105.28 KB

页数:9页

时间:2018-07-26

linux 内核中的 device mapper 机制_第1页
linux 内核中的 device mapper 机制_第2页
linux 内核中的 device mapper 机制_第3页
linux 内核中的 device mapper 机制_第4页
linux 内核中的 device mapper 机制_第5页
资源描述:

《linux 内核中的 device mapper 机制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux内核中的DeviceMapper机制尹洋,在读博士生简介: 本文结合具体代码对Linux内核中的devicemapper映射机制进行了介绍。Devicemapper是Linux2.6内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略,当前比较流行的Linux下的逻辑卷管理器如LVM2(LinuxVolumeManager2version)、EVMS(EnterpriseVolumeManagementSystem)、dmr

2、aid(DeviceMapperRaidTool)等都是基于该机制实现的。理解该机制是进一步分析、理解这些卷管理器的实现及设计的基础。通过本文也可以进一步理解Linux系统块一级IO的设计和实现。发布日期: 2006年6月29日 级别: 初级 访问情况: 13591次浏览 评论: 0 (查看 

3、 添加评论 -登录) 平均分(45个评分)为本文评分DeviceMapper是Linux2.6内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构,如图1。

4、图1DeviceMapper的内核体系架构 在内核中它通过一个一个模块化的targetdriver插件实现对IO请求的过滤或者重新定向等工作,当前已经实现的targetdriver插件包括软raid、软加密、逻辑卷条带、多路径、镜像、快照等,图中linear、mirror、snapshot、multipath表示的就是这些targetdriver。Devicemapper进一步体现了在Linux内核设计中策略和机制分离的原则,将所有与策略相关的工作放到用户空间完成,内核中主要提供完成这些策略所需要的机

5、制。Devicemapper用户空间相关部分主要负责配置具体的策略和控制逻辑,比如逻辑设备和哪些物理设备建立映射,怎么建立这些映射关系等等,而具体过滤和重定向IO请求的工作由内核中相关代码完成。因此整个devicemapper机制由两部分组成--内核空间的devicemapper驱动、用户空间的devicemapper库以及它提供的dmsetup工具。在下文中,我们分内核和用户空间两部分进行介绍。内核部分Devicemapper的内核相关代码已经作为Linux2.6内核发布版的一部分集成到内核源码中了

6、,相关代码在内核源码的driver/md/目录中,其代码文件可以划分为实现devicemapper内核中基本架构的文件和实现具体映射工作的targetdriver插件文件两部分。文章下面的分析结果主要是基于上述源码文件得到的。重要概念Devicemapper在内核中作为一个块设备驱动被注册的,它包含三个重要的对象概念,mappeddevice、映射表、targetdevice。Mappeddevice是一个逻辑抽象,可以理解成为内核向外提供的逻辑设备,它通过映射表描述的映射关系和targetdevic

7、e建立映射。从Mappeddevice到一个targetdevice的映射表由一个多元组表示,该多元组由表示mappeddevice逻辑的起始地址、范围、和表示在targetdevice所在物理设备的地址偏移量以及target类型等变量组成(这些地址和偏移量都是以磁盘的扇区为单位的,即512个字节大小)。Targetdevice表示的是mappeddevice所映射的物理空间段,对mappeddevice所表示的逻辑设备来说,就是该逻辑设备映射到的一个物理设备。Devicemapper中这三个对象和t

8、argetdriver插件一起构成了一个可迭代的设备树。在该树型结构中的顶层根节点是最终作为逻辑设备向外提供的mappeddevice,叶子节点是targetdevice所表示的底层物理设备。最小的设备树由单个mappeddevice和targetdevice组成。每个targetdevice都是被mappeddevice独占的,只能被一个mappeddevice使用。一个mappeddevice可以映射到一个或者多个targetdevice上,而一个mappeddevice又可以作为它上层mappe

9、ddevice的targetdevice被使用,该层次在理论上可以在devicemapper架构下无限迭代下去。图2Devicemapper内核中各对象的层次关系 在图2中我们可以看到mappeddevice1通过映射表和a、b、c三个targetdevice建立了映射关系,而targetdevicea又是通过mappeddevice2演化过来,mappeddevice2通过映射表和targetdeviced建立映射关系。我们进一步看一下上述三个对象在代

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。