电子发烧友网 > 存储技术 > 正文

Docker存储驱动技术解析

2018年07月02日 15:43 次阅读

镜像的分层特性

在说docker的文件系统之前,我们需要先想清楚一个问题。我们知道docker的启动是依赖于image,docker在启动之前,需要先拉取image,然后启动。多个容器可以使用同一个image启动。那么问题来了:这些个容器是共用一个image,还是各自将这个image复制了一份,然后各自独立运行呢?

我们假设每个容器都复制了一份这个image,然后各自独立运行,那么就意味着,启动多少个容器,就需要复制多少个image,毫无疑问这是对空间的一种巨大浪费。事实上,在容器的设计当中,通过同一个Image启动的容器,全部都共享这个image,而并不复制。那么问题又随之而来:既然所有的容器都共用这一个image,那么岂不是我在任意一个容器中所做的修改,在其他容器中都可见?如果我一个容器要将一个配置文件修改成A,而另一个容器同样要将这个文件修改成B,两个容器岂不是会产生冲突?

我们把上面的问题放一放,先来看下面一个拉取镜像的示例:

Docker存储驱动技术解析

上面的示例是从docker官方镜像仓库拉取一个nginx:latest镜像,可以看到在拉取镜像时,是一层一层的拉取的。事实上镜像也是这么一层一层的存储在磁盘上的。通常一个应用镜像包含多层,如下:

Docker存储驱动技术解析

我们首先需要明确一点,镜像是只读的。每一层都只读。在上图上,我们可以看到,在内核之上,最底层首先是一个基础镜像层,这里是一个ubuntu的基础镜像,因为镜像的只读特性,如果我们想要在这个ubuntu的基础镜像上安装一个emacs编辑器,则只能在基础镜像之上,在构建一层新的镜像层。同样的道理,如果想要在当前的emacs镜像层之上添加一个apache,则只能在其上再构建一个新的镜像层。而这即是镜像的分层特性。

容器读写层的工作原理

我们刚刚在说镜像的分层特性的时候说到镜像是只读的。而事实上当我们使用镜像启动一个容器的时候,我们其实是可以在容器里随意读写的,从结果上看,似乎与镜像的只读特性相悖。

我们继续看上面的图,其实可以看到在镜像的最上层,还有一个读写层。而这个读写层,即在容器启动时为当前容器单独挂载。每一个容器在运行时,都会基于当前镜像在其最上层挂载一个读写层。而用户针对容器的所有操作都在读写层中完成。一旦容器销毁,这个读写层也随之销毁。

知识点: 容器=镜像+读写层而我们针对这个读写层的操作,主要基于两种方式:写时复制和用时分配。

写时复制

所有驱动都用到的技术——写时复制(CoW)。CoW就是copy-on-write,表示只在需要写时才去复制,这个是针对已有文件的修改场景。比如基于一个image启动多个Container,如果为每个Container都去分配一个image一样的文件系统,那么将会占用大量的磁盘空间。而CoW技术可以让所有的容器共享image的文件系统,所有数据都从image中读取,只有当要对文件进行写操作时,才从image里把要写的文件复制到自己的文件系统进行修改。所以无论有多少个容器共享同一个image,所做的写操作都是对从image中复制到自己的文件系统中的复本上进行,并不会修改image的源文件,且多个容器操作同一个文件,会在每个容器的文件系统里生成一个复本,每个容器修改的都是自己的复本,相互隔离,相互不影响。使用CoW可以有效的提高磁盘的利用率。

用时配置

用时分配是用在原本没有这个文件的场景,只有在要新写入一个文件时才分配空间,这样可以提高存储资源的利用率。比如启动一个容器,并不会为这个容器预分配一些磁盘空间,而是当有新文件写入时,才按需分配新空间。

Docker存储驱动

接下来我们说一说,这些分层的镜像是如何在磁盘中存储的。

docker提供了多种存储驱动来实现不同的方式存储镜像,下面是常用的几种存储驱动:

AUFS

OverlayFS

Devicemapper

Btrfs

ZFS

下面说一说AUFS、OverlayFS及Devicemapper:

AUFS

AUFS(AnotherUnionFS)是一种Union FS,是文件级的存储驱动。AUFS是一个能透明覆盖一个或多个现有文件系统的层状文件系统,把多层合并成文件系统的单层表示。简单来说就是支持将不同目录挂载到同一个虚拟文件系统下的文件系统。这种文件系统可以一层一层地叠加修改文件。无论底下有多少层都是只读的,只有最上层的文件系统是可写的。当需要修改一个文件时,AUFS创建该文件的一个副本,使用CoW将文件从只读层复制到可写层进行修改,结果也保存在可写层。在Docker中,底下的只读层就是image,可写层就是Container。结构如下图所示:

Docker存储驱动技术解析

OverlayFS

Overlay是Linux内核3.18后支持的,也是一种Union FS,和AUFS的多层不同的是Overlay只有两层:一个upper文件系统和一个lower文件系统,分别代表Docker的镜像层和容器层。当需要修改一个文件时,使用CoW将文件从只读的lower复制到可写的upper进行修改,结果也保存在upper层。在Docker中,底下的只读层就是image,可写层就是Container。目前最新的OverlayFS为Overlay2。结构如下图所示:

Docker存储驱动技术解析

Devicemapper

Device mapper是Linux内核2.6.9后支持的,提供的一种从逻辑设备到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略。前面讲的AUFS和OverlayFS都是文件级存储,而Device mapper是块级存储,所有的操作都是直接对块进行操作,而不是文件。Device mapper驱动会先在块设备上创建一个资源池,然后在资源池上创建一个带有文件系统的基本设备,所有镜像都是这个基本设备的快照,而容器则是镜像的快照。所以在容器里看到文件系统是资源池上基本设备的文件系统的快照,并没有为容器分配空间。当要写入一个新文件时,在容器的镜像内为其分配新的块并写入数据,这个叫用时分配。当要修改已有文件时,再使用CoW为容器快照分配块空间,将要修改的数据复制到在容器快照中新的块里再进行修改。Device mapper 驱动默认会创建一个100G的文件包含镜像和容器。每一个容器被限制在10G大小的卷内,可以自己配置调整。结构如下图所示:

Docker存储驱动技术解析

常用存储驱动对比

Docker存储驱动技术解析

Docker存储驱动技术解析

AUFS VS OverlayFS

AUFS和Overlay都是联合文件系统,但AUFS有多层,而Overlay只有两层,所以在做写时复制操作时,如果文件比较大且存在比较低的层,则AUSF可能会慢一些。而且Overlay并入了linux kernel mainline,AUFS没有。目前AUFS已基本被淘汰。

OverlayFS VS Device mapper

OverlayFS是文件级存储,Device mapper是块级存储,当文件特别大而修改的内容很小,Overlay不管修改的内容大小都会复制整个文件,对大文件进行修改显示要比小文件要消耗更多的时间,而块级无论是大文件还是小文件都只复制需要修改的块,并不是整个文件,在这种场景下,显然device mapper要快一些。因为块级的是直接访问逻辑盘,适合IO密集的场景。而对于程序内部复杂,大并发但少IO的场景,Overlay的性能相对要强一些。

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

ARM谈新兴NVM存储技术 存储市场将改变游戏规...

ARM正在关注这些前沿的存储技术,因为它有可能对逻辑空间产生巨大的颠覆性,在硬件和软件平台层面也是如...

发表于 2018-12-24 11:56 394次阅读
ARM谈新兴NVM存储技术 存储市场将改变游戏规...

简单了解缩微存储技术

缩微制品按其类型可分为卷式胶片与片式胶片两大类。卷式胶片采用16mm和35mm的卤化银负片缩微胶卷作...

发表于 2018-12-24 11:40 55次阅读
简单了解缩微存储技术

新兴存储技术的详细知识分析

当下,新兴存储技术越来越受到业界的瞩目,如PCM、MRAM、ReRAM、FRAM等存储器已经蛰伏待机...

发表于 2018-12-15 09:44 568次阅读
新兴存储技术的详细知识分析

新兴存储技术蛰伏待机了几十年 终于迎来了它们的机...

实际上,在以上提到的几种存储类型中,有一些已经批量生产了,且这些芯片也带来了较好的销售收入。随着先进...

发表于 2018-12-14 15:40 412次阅读
新兴存储技术蛰伏待机了几十年 终于迎来了它们的机...

希捷数据预测:2025年企业存储数据量将超过全球...

IDC报告认为,企业将成为全球数据的管理者;医疗保健将是数据圈增长最快的行业

发表于 2018-11-27 15:06 1317次阅读
希捷数据预测:2025年企业存储数据量将超过全球...

什么是QoS? 去中心化存储QoS的作用是什么

无用协议率。在P2P传输系统中,只要不是实际传输文件内容的协议消耗,就是无用协议。无用协议率就是指无...

发表于 2018-11-14 10:03 193次阅读
什么是QoS? 去中心化存储QoS的作用是什么

云是怎么来的 云存储的优缺点分析

云本质是一种服务,而不是一种物质,正因为此,它必须基于物质才能显示功效,《易经》有云:“形而上者谓之...

发表于 2018-11-14 09:58 194次阅读
云是怎么来的 云存储的优缺点分析

如何看待传统存储复制存在的8大痛点

灾备技术涉及的领域很多,有很多厂商提供了多种技术解决方案,当前比较常见的数据复制技术有几大类,例如基...

发表于 2018-11-14 09:55 151次阅读
如何看待传统存储复制存在的8大痛点

新型存储技术3D XPoint目前处于发展初期 ...

近期,美光正式宣布,对IM Flash Technologies,LLC(简称“IM Flash”)...

发表于 2018-11-11 09:54 384次阅读
新型存储技术3D XPoint目前处于发展初期 ...

江波龙电子宣称公司已完成股份制改造

江波龙电子从1999年成立至今19年来,始终坚持聚焦存储产业,连续多年居于国内存储企业的领先位置。从...

发表于 2018-10-15 14:21 1376次阅读
江波龙电子宣称公司已完成股份制改造

IPFS存储技术将是下个千亿商机市场吗?

DATx将打造一个开源的开发平台,使 DATXChain成为所有相关生态系统参与者的易于实施、量身定...

发表于 2018-09-21 15:04 2211次阅读
IPFS存储技术将是下个千亿商机市场吗?

江波龙:存储技术与品牌升级将是芯片行业的主流趋势

深耕行业应用,FORESEE品牌目前拥有3条产品线:固态硬盘存储、嵌入式存储及微存储。FORESEE...

发表于 2018-09-21 15:00 298次阅读
江波龙:存储技术与品牌升级将是芯片行业的主流趋势

希捷推出业界领先的14TB存储产品组合

全新功能丰富的硬盘提供无与伦比的性能,帮助客户最大化其数据价值。

发表于 2018-09-11 10:43 1458次阅读
希捷推出业界领先的14TB存储产品组合

云存储技术与传统存储技术对比 云存储有何优势

当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计...

发表于 2018-09-08 10:37 1204次阅读
云存储技术与传统存储技术对比 云存储有何优势

希捷与京东云达成合作 覆盖云计算、存储技术、电...

9月6日消息,存储解决方案提供商希捷今天宣布与京东云建立全面战略合作伙伴关系。双方将在云计算、存储技...

发表于 2018-09-07 14:57 1830次阅读
 希捷与京东云达成合作 覆盖云计算、存储技术、电...

希捷与京东云建立全面战略合作伙伴关系 在云计算、...

全球领先的存储解决方案提供商希捷科技(NASDAQ:STX)日前宣布与京东集团下属全平台云计算综合服...

发表于 2018-09-07 10:44 1466次阅读
希捷与京东云建立全面战略合作伙伴关系 在云计算、...

云存储技术与传统存储技术有什么区别 又有何局限性

当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计...

发表于 2018-09-02 10:30 1272次阅读
云存储技术与传统存储技术有什么区别 又有何局限性

美高森美发布业界首个用于数据中心存储的24G S...

美高森美公司推出全新SXP 24G系列器件,全新系列满足高带宽存储需求,充分发挥 PCIe Gen ...

发表于 2018-08-29 11:25 1527次阅读
美高森美发布业界首个用于数据中心存储的24G S...

希捷技术再创新,存储江湖再现领头羊

2018年大容量存储行业的主要供应商如西部存储、日立、东芝、希捷基本上是齐头并进,大家都能开发出10...

发表于 2018-08-28 10:43 1783次阅读
希捷技术再创新,存储江湖再现领头羊

3D XPoint发展迅速,下一代存储技术之争越...

多年来,业界一直致力于各种新兴存储技术,包括纳米管RAM、FRAM、MRAM、相变存储器和ReRA...

发表于 2018-08-27 09:19 1728次阅读
3D XPoint发展迅速,下一代存储技术之争越...

磁带是否完全消失?磁带存储技术迎来新突破

将磁带纳入企业的数据保护策略并不一定意味着必须回到使用过时的技术。即使在当今世界,磁带也在不断发展并...

发表于 2018-08-25 11:13 1075次阅读
磁带是否完全消失?磁带存储技术迎来新突破

Exten Technologies推出其Hyp...

HyperDynamic RESTful API中包含对Redfish和Swordfish开放式管理...

发表于 2018-08-21 15:21 1266次阅读
Exten Technologies推出其Hyp...

Docker到底是什么,要解决什么问题,好处又在...

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Lin...

发表于 2018-08-16 16:56 3023次阅读
Docker到底是什么,要解决什么问题,好处又在...

加拿大展示他们新的自动探针存储技术

加拿大研究人员采用了一种不同的方法,通过将一种已知的技术自动化使STM进到了数据存储设备中。这种技术...

发表于 2018-08-15 09:37 670次阅读
加拿大展示他们新的自动探针存储技术

Docker容器构建环境及安全措施分析

DevOps概念的流行跟近些年微服务架构的兴起有很大关系,DevOps是Dev(Developmen...

发表于 2018-07-31 16:03 741次阅读
Docker容器构建环境及安全措施分析

氢原子存储技术:实现了0与1的数据存储,存储密度...

Alberta 大学的科学家演示了最新的氢原子存储技术,科学家表示目前他们可以使用氢原子来实现0与1...

发表于 2018-07-31 14:27 192次阅读
氢原子存储技术:实现了0与1的数据存储,存储密度...

Docker最初的两小时--从入门到入门

比如我们在现实生活里面是个屌丝,但是在虚拟人生的游戏里面,我们可以是王思聪++,集美貌智慧财富正义于...

发表于 2018-07-11 15:43 1356次阅读
Docker最初的两小时--从入门到入门

师法自然,论仿生技术是如何改变世界的

大自然经过45亿年的演变与发展,独创出一套生命法则。例如高大的红杉树,可以抵抗重力作用将水分营养,输...

发表于 2018-07-09 11:50 657次阅读
师法自然,论仿生技术是如何改变世界的

Docker占用资源过高,如何快速清理Docke...

如果经常使用 docker,你会发现 docker 占用的资源膨胀很快,其中最明显也最容易被察觉的应...

发表于 2018-07-06 10:05 1318次阅读
Docker占用资源过高,如何快速清理Docke...

对象存储是什么?块存储又是什么?

“对象存储”或“基于对象的存储”一词是由它的名称派生出来的,因为它将数据和元数据封装到对象中。元数据...

发表于 2018-07-03 12:37 2651次阅读
对象存储是什么?块存储又是什么?

docker存储驱动的工作原理

Docker的存储驱动官方有介绍其工作原理,这里只是简单概括一下。Docker使用了层的概念,doc...

发表于 2018-06-26 11:49 991次阅读
docker存储驱动的工作原理

关于云存储发展至今的必然手段与未来趋势详解

起初,云存储是为了解决存储的低成本、可扩展和资源池化,从而实现所谓的按需所取,涉及的技术不仅有虚拟...

发表于 2018-06-26 10:26 1395次阅读
关于云存储发展至今的必然手段与未来趋势详解

Docker最初的2小时 从入门到入门

KVM, Virtualbox, Vmware是虚拟出机器,让每个实例看到一个单独的机器;而Dock...

发表于 2018-06-25 09:34 1616次阅读
Docker最初的2小时 从入门到入门

一粒云新品发布:推动云存储行业未来发展

本次发布会很荣幸地邀请到华为、supermico等合作伙伴代表以及全国30多家存储及企业服务行业资...

发表于 2018-06-24 11:11 249次阅读
一粒云新品发布:推动云存储行业未来发展

学习 Docker 容器的 8 个命令分享

利用这 8 个命令可以学习 Docker 容器的基本管理方式。这是一个为 Docker 初学者准备的...

发表于 2018-06-22 12:03 357次阅读
学习 Docker 容器的 8 个命令分享

装上SSD开机超慢?这些方法你可以试试

如今新装机多半会选择安装SSD(固态硬盘),而要想让固态硬盘发挥应有的实力,4K对齐是一项必做的操...

发表于 2018-06-22 11:54 1714次阅读
装上SSD开机超慢?这些方法你可以试试

华邦电:下半年存储器市场良好,有望再创佳绩

存储器大厂华邦电昨(11)日召开股东常会,顺利通过今年每普通股配发1元现金股利。华邦电董事长焦佑钧...

发表于 2018-06-21 14:05 218次阅读
华邦电:下半年存储器市场良好,有望再创佳绩

QNAP携手东芝,展示高效能存储解决方案

如今,各行业的数字化转型都在如火如荼地进行中,作为承担广播宣传责任、推动社会进步的主力军,广播电视...

发表于 2018-06-19 15:41 184次阅读
QNAP携手东芝,展示高效能存储解决方案

ODSP全新升级:效率方面的诸多特性让人眼前一亮

宏杉科技,作为一家专业的存储系统及解决方案供应商,产品早已覆盖数据管理各个领域。在这其中,开放数据...

发表于 2018-06-19 15:32 324次阅读
ODSP全新升级:效率方面的诸多特性让人眼前一亮

Intel 傲腾 vs AMD StoreMI,...

简单的说,傲腾技术是通过算法感知,将机械硬盘中经常调用的文件镜像一份到基于3D XPoint技术的...

发表于 2018-06-15 12:58 2977次阅读
Intel 傲腾 vs AMD StoreMI,...

130亿元投资相变存储,加快速度打造新一代存储器...

但不得不面对的现实是,我国的芯片产业还处在起步阶段,尤其在DRAM领域中,巨大的市场被国外的巨头瓜...

发表于 2018-06-15 09:20 1290次阅读
130亿元投资相变存储,加快速度打造新一代存储器...

第三种存储技术:既能保证读写速度,又能保证断电后...

现在的存储技术有两种,一种是以内存为代表的易失性存储,速度很快,但断电后数据就没有,无法保存;另一...

发表于 2018-06-14 14:12 608次阅读
第三种存储技术:既能保证读写速度,又能保证断电后...

兆易创新:独特的存储产业布局 获得了业界的肯定

半导体行业中,存储芯片一直都是产业的重中之重,2017年存储芯片销售额占据了半导体市场销售额的三分...

发表于 2018-06-14 11:06 2245次阅读
兆易创新:独特的存储产业布局 获得了业界的肯定

浪潮存储高竞争力的存储产品 驱动未来增长三大政策

孙钢:全智能产品线就绪,浪潮存储携伙伴冲向中国前二 IPF2018存储分论坛上,浪潮集团存储产品部总...

发表于 2018-06-13 07:40 525次阅读
浪潮存储高竞争力的存储产品 驱动未来增长三大政策

无锡SK海力士工厂大火,据悉对目前的生产线没有影...

6月5日晚间有消息称,位于无锡的SK海力士工厂突然发生火灾。据悉,发生火灾的是无锡海力士正在建设的...

发表于 2018-06-11 09:04 1402次阅读
无锡SK海力士工厂大火,据悉对目前的生产线没有影...

详解英特尔重塑数据中心内存和存储层次结构

如今,数据浩如烟海、不断累积,对此我们都有耳闻目睹。的确,海量的数据每天都在产生,而这些数据都需...

发表于 2018-06-08 20:52 222次阅读
详解英特尔重塑数据中心内存和存储层次结构

中国存储器产业的未来市场预测

近日消息,研究机构指出,中国存储器产业目前以投入NAND Flash市场的长江存储、专注于行动式内...

发表于 2018-06-07 12:28 565次阅读
中国存储器产业的未来市场预测

国产SSD主控性能全解

大幅简化机房建设 浪潮为建筑工程行业提供MDC解决方案 在我国铁路、公路等基础设施建设不断加速的背景...

发表于 2018-06-07 12:27 757次阅读
国产SSD主控性能全解

开源存储的六大优势

扩展的软件定义存储服务都被添加到传统绑定专有代码的方法中。开源软件包现在是存储中的主流解决方案。

发表于 2018-06-07 11:21 865次阅读
开源存储的六大优势

全球芯片销售额创新高,迎来了强劲有希望的开局

据报道,根据美国半导体行业协会(SIA)周一晚间发布的数据显示,今年1月全球半导体销售额增长22....

发表于 2018-06-07 08:04 148次阅读
全球芯片销售额创新高,迎来了强劲有希望的开局

浅析分场分区存储技术的原理及应用

LED视频显示屏由于亮度高、视角广、寿命长、性价比高,而且具有可与计算机同步显示各种文字、图形、图...

发表于 2018-06-05 11:05 196次阅读
浅析分场分区存储技术的原理及应用

基于嵌入式数据库的海量存储技术解析

通常, 我们采用数据库来实现对数据的存储、检索等功能。像MySQL这类基于C/S结构的关系型数据库...

发表于 2018-06-05 11:00 444次阅读
基于嵌入式数据库的海量存储技术解析

四种常见的网络存储技术对比分析

随着计算机网络技术的飞速发展,各种网络服务器对存储的需求随之发展,但由于商业企业规模不同,对网络存...

发表于 2018-06-05 09:55 2854次阅读
四种常见的网络存储技术对比分析

云时代下的专业设计教学应用简介

据南开大学文学国家级实验教学中心实验师冯欢博士介绍,正因为多媒体教室空间狭小,之前使用传统工作站时占...

发表于 2018-06-03 11:32 154次阅读
云时代下的专业设计教学应用简介

AMD EPYC性能再更新,带来更好享受

近日,在一场大型AMD企业级说明会上,我向参加了去年六月发布会的媒体和分析师介绍了AMD EPYC(...

发表于 2018-06-03 11:27 474次阅读
AMD EPYC性能再更新,带来更好享受

DAS、NAS和SAN三种存储技术全面解析

如今,随着移动计算时代的来临,更多的非结构化数据产生,这对NAS和SAN都是一个挑战,NAS+SAN...

发表于 2018-05-24 14:41 2333次阅读
DAS、NAS和SAN三种存储技术全面解析

SSD硬盘为什么成主要存储技术 主要是这6个原因

第一批基于闪存的固态(SSD)硬盘在12年前就已经出现,但直到现在,该技术才有望取代数据中心的机械(...

发表于 2018-05-15 09:14 1745次阅读
SSD硬盘为什么成主要存储技术 主要是这6个原因

Docker五种存储驱动原理详解

Docker最开始采用AUFS作为文件系统,也得益于AUFS分层的概念,实现了多个Container...

发表于 2018-05-13 10:33 647次阅读
Docker五种存储驱动原理详解

HBase2.0中引入Accordion算法的使...

未来的压缩可能会在basic压缩策略和eager压缩策略之间实现自动选择。例如,该算法可能会在一段时...

发表于 2018-05-07 10:35 1380次阅读
HBase2.0中引入Accordion算法的使...

什么是虚拟化?什么是Docker ?Docker...

Docker是一个虚拟环境容器,可以将你的可执行文件、配置文件及一切其他你需要的文件一并打包到这个容...

发表于 2018-05-03 14:18 4260次阅读
什么是虚拟化?什么是Docker ?Docker...