- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
本文由简悦SimpRead转码,原文地址
上一我带你学习了什么是联合文件系统,以及AUFS的工作原理和配置。我们知道AUFS并不在
Linux内核主干中,所以如果你的操作系统是CentOS,就不推荐使用AUFS作为Docker的联合文件系
统了。
那在CentOS系统中,我们怎么实现镜像和容器的分层结构呢?我们通常使用Devicemapper作为
Docker的联合文件系统。
什么是Devicemapper?
Devicemapper是Linux内核提供的框架,从Linux内核2.6.9版本开始引入,Devicemapper与
AUFS不同,AUFS是一种文件系统,而Devicemapper是一种映射块设备的技术框架。
Devicemapper提供了一种将块设备映射到虚拟块设备的机制,目前Linux下比较流行的LVM
(LogicalVolumeManager是Linux下对磁盘分区进行管理的一种机制)和软件磁盘阵列(将多个较
小的磁盘整合成为一个较大的磁盘设备用于扩大磁盘和提供数据可用性)都是基于Devicemapper
机制实现的。
那么Devicemapper究竟是如何实现的呢?下面我们首先来了解一下它的关键技术。
Devicemapper的关键技术
Devicemapper将主要的工作部分分为用户空间和内核空间。
用户空间负责配置具体的设备映射策略与相关的内核空间控制逻辑,例如逻辑设备dm-a如何与
设备sda相关联,怎么建立逻辑设备和设备的映射关系等。
内核空间则负责用户空间配置的关联关系实现,例如当IO请求到达虚拟设备dm-a时,内核空间
负责接管IO请求,然后处理和过滤这些IO请求并转发到具体的设备sda上。
这个架构类似于C/S(客户端
/服务区)架构的工作模式,客户端负责具体的规则定义和配置下发,服
务端根据客户端配置的规则来执行具体的处理任务。
Devicemapper的工作机制主要围绕三个概念。
映射设备(mappeddevice):即对外提供的逻辑设备,它是由Devicemapper模拟的一个虚拟
设备,并不是真正存在于宿主机上的设备。
目标设备(targetdevice):目标设备是映射设备对应的设备或者设备的某一个逻辑分
段,是真正存在于机上的设备。
映射表(maptable):映射表记录了映射设备到目标设备的映射关系,它记录了映射设备在目标
设备的起始地址、范围和目标设备的类型等变量。
图1Devicemapper概念关系图
Devicemapper三个概念之间的关系如图1,映射设备通过映射表关联到具体的目标设备。事
实上,映射设备不仅可以通过映射表关联到目标设备,也可以关联到虚拟目标设备,然后虚拟目标
设备再通过映射表关联到目标设备。
文档评论(0)