论文笔记《Wharf_Sharing_Docker Images_in_a_Distributed_File_System》

Wharf是一个旨在通过分布式文件系统共享Docker镜像的系统,解决了镜像冗余存储和网络带宽浪费的问题。通过层级别的锁,Wharf允许守护进程并行拉取不同层,提高了效率。它还提供了用户透明度,与Docker兼容,且可部署在多种存储系统上。实验表明,Wharf在减少网络和存储开销方面表现优秀,且对容器运行时性能的影响微乎其微。
摘要由CSDN通过智能技术生成

《论文笔记》:Wharf: Sharing Docker Images in a Distributed File System

会议:SoCC’ 18

原文:https://doi.org/10.1145/3267809.3267836

梗概

Wharf:通过分布式文件系统进行 Docker 镜像文件的共享,而不是一个物理机一个镜像文件。 Wharf将Docker的运行时状态划分为本地和全局部分,并有效地同步对全局状态的访问。

思维导图

在这里插入图片描述

1. 介绍

四个问题

现状:在Docker中,每个守护进程都是不共享的,也就是说,它在本地存储中提取和存储图像,然后从本地副本启动容器。

主要针对目前的 Docker 守护进程的管理方式的现状提出4个主要问题

  1. 如果容器从不同节点上的相同镜像启动,则相同的镜像会存在于所有节点上。这就浪费了储存空间;
  2. 大规模节点同时拉取同一镜像,浪费网络带宽并且拖延容器启动时间
  3. 研究表明容器启动只需要6.4%的镜像数据,但每个节点均拉取完整镜像,这进一步浪费了存储空间和网络带宽
  4. 有一些集群仅提供共享存储,而计算节点无磁盘,这限制了容器的使用

三个贡献

  1. 分析了将Docker存储模型移植到分布式存储中的意义
  2. 为Docker设计了一个共享的镜像存储库,可以在分布式文件系统中存储镜像
  3. 文章实现了 Wharf,并应用了细粒度的层锁,这是一种利用Docker图像分层结构的同步机制,以减少同步开销

wharf 的特点与优势

分布式存储

Wharf使分布式Docker守护进程能够协同检索和存储共享存储中的容器映像,并从共享映像创建容器。通过在中央存储中为所有守护进程只保留一个映像的副本,Wharf可以显著降低网络和存储开销。

分层拉取,层锁

Wharf利用Docker图像的结构来降低同步开销。图像由几个层组成,可以并行下载。Wharf实现了一个细粒度的层锁来协调对共享映像存储的访问。这允许守护进程并行地拉取同一映像的不同层和不同的映像,从而提高网络利用率并避免过度阻塞。Wharf将每个守护进程的数据和元数据分割为全局和本地状态,以最小化必要的同步。另外,使用层锁,Wharf确保每个守护进程只能看到一致的层状态,并防止在单个守护进程失败时整个集群失败。

用户透明和兼容性

Wharf被设计为对用户透明,并允许重用现有的Docker图像而不做任何更改。Wharf独立于分布式存储层,可以部署在任何存储系统上,提供简易的语义。Wharf目前支持两种常见的Docker即写即拷存储驱动程序AUFS和overlay2。此外,虽然我们为Docker实现了Wharf,但所提出的设计也适用于其他容器管理框架。

2. Docker 背景知识

这里仅提取一些关键点

层是一组文件,表示容器文件系统树的一部分。

Docker 容器通过hash 在本地实现了共享层缓存,这节省了存储空间并提高了容器的启动时间。

Docker push 时将镜像分层并压缩归档为 tar,然后附带一份 manifest 文件用于 pull 的时候的镜像检索

2.3 容器创建和图驱动

当创建一个新容器时,Docker 守护进程的创建步骤:

  1. 首先检查所需的镜像是否已经在本地可用
  2. 如果没有,则从注册表中检索清单,通过首先读取清单,然后下载并提取对应的层到本地存储,
  3. 如果守护进程检测到其中一个层已经在本地存在,它将不会下载该特定层
  4. 默认情况下,守护进程并行下载三层。
COW(写时复制):

检索映像之后,守护进程将创建容器。因此,它首先在一个挂载点上联合只读层,然后在其上创建一个可写层。对容器根文件系统所做的任何更改都通过写时复制(COW)机制存储在可写层中。这意味着,在从只读层修改文件之前,将其复制到可写层,并对该副本进行所有更改。一旦容器退出,可写层通常被丢弃。

Docker 的图形驱动

具体的创建联合挂载点与COW能力取决于 Docker 的图形驱动程序;目前应用最广泛的为层叠驱动和专用驱动

层叠驱动

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值