您的位置:首页 > 互联网

Nydus:开源的下一代容器镜像加速服务

发布时间:2020-10-26 00:00:00  来源:互联网     背景:

  导语:近日,蚂蚁联合阿里云宣布开源容器镜像加速服务Nydus,并加入由阿里开源的CNCF孵化项目Dragonfly,共同构建云原生技术生态。本文我们来一起了解下这个项目的技术原理与架构,欢迎合作交流。

  镜像对容器部署的挑战

  在容器的生产实践中,偏小的容器镜像能够很快的部署启动。当应用的镜像达到几个GB以上的时候,在节点上下载镜像通常会消耗大量的时间。Dragonfly 通过引入 P2P 网络有效的提升了容器镜像大规模分发的效率。然而,用户还是必须等待镜像数据完整下载到本地,然后才能创建自己的容器。我们希望进一步缩减镜像下载的时间,让用户能够更快地部署容器应用。同时,如何更好的保护用户的数据,也是容器行业近年来的重要关注点。

  为此,我们为Dragonfly项目引入了一个容器镜像加速服务 nydus 。nydus 能够极大缩短镜像下载时间,并提供端到端的镜像数据一致性校验,从而让用户能够更安全快捷地管理容器应用。nydus 由阿里云和蚂蚁集团的工程师合作开发,并大规模部署在内部的生产环境中。作为云原生生态的一部分, nydus 在生产环境的优秀表现,让我们有信心现在将项目开源,让更多的容器用户能够体验到容器快速启动和安全加载方面的能力。

  https://github.com/dragonflyoss/image-service

  Nydus: Dragonfly 的容器镜像服务

  nydus 项目优化了现有的 OCI 镜像标准格式,并以此设计了一个用户态的文件系统。通过这些优化,nydus 能够提供这些特性:

  • 容器镜像按需下载,用户不再需要下载完整镜像就能启动容器
  • 块级别的镜像数据去重,最大限度为用户节省存储资源
  • 镜像只有最终可用的数据,不需要保存和下载过期数据
  • 端到端的数据一致性校验,为用户提供更好的数据保护
  • 兼容 OCI 分发标准和 artifacts 标准,开箱即可用
  • 支持不同的镜像存储后端,镜像数据不只可以存放在镜像仓库,还可以放到 NAS 或者类似 S3 的对象存储上
  • 与 Dragonfly 的良好集成

  架构上, nydus 主要包含一个新的镜像格式,和一个负责解析容器镜像的 FUSE 用户态文件系统进程。

  nydus 能够解析 FUSE 或者 virtiofs 协议来支持传统的 runc 容器或者 Kata 容器。容器仓库,OSS 对象存储,NAS,以及 Dragonfly 的超级节点和 peer 节点都可以作为 nydus 的镜像数据源。同时, nydus 还可以配置一个本地缓存,从而避免每次启动都从远端数据源拉取数据。

  镜像格式方面, nydus 把一个容器镜像分成元数据和数据两层。其中元数据层是一颗自校验的哈希树。每个文件和目录都是哈希树中的一个附带哈希值的节点。一个文件节点的哈希值是由文件的数据确定,一个目录节点的哈希值则是由该目录下所有文件和目录的哈希值确定。每个文件的数据被按照固定大小切片并保存到数据层中。数据切片可以在不同文件以及不同镜像中的不同文件共享。

  Nydus 能为用户带来什么?

  用户如果部署了 nydus 镜像服务,最直观的一个感受就是,容器启动变快了,从以前的明显时间消耗,变成了几乎瞬间就能启动起来。在我们的测试中, nydus 能够把常见镜像的启动时间,从数分钟缩短到数秒钟。

  另外一个不那么明显但也很重要的改进,是 nydus 能够为用户提供容器运行时数据一致性校验。在传统的镜像中,镜像数据会先被解压到本地文件系统,再由容器应用去访问使用。解压前,镜像数据是完整校验的。但是解压之后,镜像数据不再能够被校验。这带来的一个问题就是,如果解压后的镜像数据被无意或者恶意地修改,用户是无法感知的。而 nydus 镜像不会被解压到本地,同时可以对每一次数据访问进行校验,如果数据被篡改,则可以从远端数据源重新拉取。

  未来规划

  前面我们介绍了 nydus 的架构和优点。在过去的一年里,我们和内部的产品团队一起致力于让 nydus 项目更稳定,安全和易用。在把 nydus 项目开源之后,我们将会更关注广泛的云原生容器生态。我们的愿景是,当用户在集群中部署 Dragonfly 和 nydus 服务的时候,无论镜像大小,用户都能够方便快捷地运行他们的容器应用,同时不需要为容器镜像的数据安全性担忧。

  OCI 社区容器镜像标准

  虽然我们已经在内部生产环境中大规模部署 nydus,我们坚信对 OCI 镜像标准的改进需要广泛的社区合作。为此,我们积极地参与了 OCI 社区关于下一代镜像标准的讨论,并发现 nydus 能够广泛地符合 OCI 社区对下一代镜像格式的要求。所以我们提议把 nydus 作为 OCI 社区下一代镜像格式的示例实现,并期待和更多的云原生行业领导者们一起推进下一代镜像标准的制定和实现。

  FAQ

  Q: 现有的 OCI 镜像标准有什么问题?

  • SUSE 的 Aleksa Sarai 写过一个 blog (The Road to OCIv2 Images: What's Wrong with Tar?),详细地描述了现有 OCI 镜像标准的一系列问题,简单总结就是 OCI 镜像标准使用的 tar 格式太古老并不适合作为容器镜像格式。

  Q: nydus 和 CRFS 有什么区别?

  • CRFS 是 GO build team 设计的一个镜像格式。二者在主要设计思想上非常相似。细节上, nydus 支持块级别的数据去重和端到端的数据一致性校验,可以说是在 CRFS 的 stargz 格式上的进一步改进。

  Q: nydus 和 Azure 的 Teleport 有什么区别?

  • Azure Teleport 更像是现有 OCI 镜像标准在基于 SMB 文件共享协议的 snapshotter 上的一个部署实现,能够支持容器镜像数据按需下载,但保留了所有目前 OCI 镜像 tar 格式的缺陷。相对的, nydus 抛弃了过时的 tar 格式,并使用 merkle tree 格式来提供更多的高级特性。

  Q: 如果运行基于 nydus 的容器的时候网络断了怎么办?

  • 使用现有 OCI 镜像的时候,如果在容器镜像还没有完整下载的时候网络断了,容器会一开始就无法启动。nydus 很大程度上改变了容器启动的流程,用户不需要再等待镜像数据完整下载就能启动容器。而容器运行时如果网络断了,将无法访问没有下载到本地的镜像数据。nydus 支持在容器启动后在后台下载容器镜像数据,所以当容器镜像数据完整下载到本地后,基于 nydus 的容器也不会受到网络中断的影响。

  附录:OCIv2 镜像标准

  从 2020 年 6 月开始,OCI 社区花了一个多月时间密集讨论了当前 OCI 镜像标准的缺陷,以及 OCIv2 镜像格式需要满足哪些要求。OCIv2 在这里只是一个宣传命名,实际上 OCIv2 是当前 OCI 镜像标准的改进,而不会是一个全新的镜像标准。

  这次镜像格式大讨论从一个邮件和一份共享文档开始,并促成了多次在线的 OCI 社区讨论会议。最后的结论也很鼓舞人心,OCIv2 镜像格式需要满足下列要求:

  • 更少的重复数据
  • 可重建的镜像格式
  • 明确的更少的文件系统元数据
  • 可以 mount 的文件系统格式
  • 镜像内容列表
  • 镜像数据按需加载
  • 可扩展性
  • 可校验和/或可修复
  • 更少的上传数据
  • 可以工作在不可信存储上

  在这份共享文档中可以找到每一个要求的详细描述。我们全程参与了整个 OCIv2 镜像格式要求的讨论,并发现 nydus 很好地满足了全部的这些要求。这进一步促使我们开源 nydus 项目来为社区讨论提供一个工作的代码基础。

  https://hackmd.io/@cyphar/ociv2-brainstorm

特别提醒:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。


返回网站首页

本文评论
中国移动咪咕构建全平台内容生态,CBA独家IPTV转播权打造全屏实力
2018年,对于中国移动咪咕和中国篮球来说,都是至关重要的一年。2018年,中国移动咪咕依靠技术优势......
日期:04-09
共享充电大幅涨价:行业规范缺失、标准未定问题待解
近日,多家媒体报道,共享充电宝已告别“一元时代”,租金甚至涨至8元每小时。蓝鲸TMT记......
日期:10-21
倍声动铁单元将是无线耳机的未来,三大优势解决现在TWS耳机的痛点
自从苹果在2016年发布了第一代真无线耳机AirPods以来,真无线耳机便渐渐成为了主流,现在像苹果、华......
日期:07-09
海信5G手机F50超实用功能分享 畅享5G新体验
以前出门“身、手、钥、钱”,现在出门,手机在手,天下我有!一部好手机,方便你我他!当5......
日期:09-23
不愧是影音巨头!OPPO智能电视S1音质获权威媒体一致好评
前不久,颇受外界关注的OPPO首款智能电视在上海发布。作为在影音领域拥有深厚技术积累,并曾在海外......
日期:10-23
深信服携手江苏移动,共同打造云桌面服务新模式
随着网络时代的发展,传统PC已无法满足各行业信息化发展的需求,云桌面正逐渐替代传统PC,成为政企......
日期:10-09
网易音乐与环球音乐达成合作
(原标题:网易云音乐与环球音乐达成全新战略合作,获海量曲库授权)...
日期:08-11
百度地图行业首发《开发者发展趋势报告》 与180万开发者共同成长
百度地图App直接服务用户出行,同时也通过服务开发者间接服务着公众,通过开发者移动应用对公众的线......
日期:12-11
Q1中国游戏出海收入排行:PUBG Mobile、万国觉醒、荒野行动前三
5月9日消息 今日,App Annie发布了2020年一季度中国游戏出海收入前十强。收入统计商店包含 iOS 与 G......
日期:05-09
专访融云CEO韩迎:从SDK迈入通信中台,互联网通信云未来可期
疫情“黑天鹅”冰冻了全国各行各业,尤其是像房产经纪这样的传统服务......
日期:05-06
realme 125W充电器曝光
(原标题:realme 125W充电器曝光 3分钟闪回33%今年可能没有)...
日期:09-30
老撕鸡:游戏主播还是生活vlogger?我都要
什么样的创作人才能在西瓜视频走红?拥有百万粉丝,单条视频下的评论超过千条,靠拍视频月收入过万,......
日期:08-20
时尚不等于珠光宝气,Garmin腕表带你引领潮流
每逢换季,都是一次穿搭功力大考查。可搭配的单品并不少,却总觉得欠点儿火候?从不随波逐流的潮人往......
日期:04-23
Linksys领势MR9000X三频电竞MESH路由器火爆上市
随着时代的变迁、科技的进步,网络已成为传递信息、促进交流、休闲娱乐的最好工具。...
日期:11-07
当贝投影F1和极米H3、坚果J9哪个性价比高?看完你就知道了
不得不说,现如今投影仪的火热程度已经完全超乎想象了,一是因为投影仪打破了以往家庭影音只用液晶电......
日期:12-24
天猫精灵上线新冠病毒肺炎疫情查询服务
2月3日消息 继此前陆续在手机淘宝、支付宝、UC、钉钉等平台上线疫情信息查询服务后,2月3日,阿里巴......
日期:02-03
三星第二季度芯片销量大增 但难弥补智能手机的疲软
据外媒报道,分析师称,随着在家办公流量激增,数据中心需求旺盛,因此,三星芯片销售强劲,但这不......
日期:07-06
极光:超八成房产经纪疫情期间收入减少,11.4%选择承接兼职工作
极光(Aurora Mobile, NASDAQ:JG)发布《2020年房产经纪行业和购房市场洞察报告》,洞悉房产行业发展......
日期:06-30
帕斯卡契约今日上线 北通G2组合手游手柄轻松制敌
5月29日动作角色扮演游戏《帕斯卡契约》安卓版正式发售了。相信期待已久的各位都已经等不及想要进入......
日期:05-29
走进WICC2019,预见互联网通信云未来技术
11月30日,主题为“融视界·云通信”的全球互联网通信云大会(以下简称WICC)在上海......
日期:11-30