阿里云、蚂蚁开源 Nydus——容器镜像加速服务

2020年10月22日

近日,Dragonfly 项目引入了一个容器镜像加速服务 nydus。据悉,nydus 是由阿里云和蚂蚁集团的工程师合作开发,并大规模部署在内部的生产环境中。

Dragonfly 发布的消息,在其的测试中, nydus 能够把常见镜像的启动时间,从数分钟缩短到数秒钟。另外,容器运行时数据一致性校验方面,nydus 镜像不会被解压到本地,同时可以对每一次数据访问进行校验,如果数据被篡改,则可以从远端数据源重新拉取。

nydus 通过优化现有的 OCI 镜像标准格式提供:

  • 容器镜像按需下载,用户不再需要下载完整镜像就能启动容器

  • 块级别的镜像数据去重,最大限度为用户节省存储资源

  • 镜像只有最终可用的数据,不需要保存和下载过期数据

  • 端到端的数据一致性校验,为用户提供更好的数据保护

  • 兼容 OCI 分发标准和 artifacts 标准,开箱即可用

  • 支持不同的镜像存储后端,镜像数据不只可以存放在镜像仓库,还可以放到 NAS 或者类似 S3 的对象存储上

  • 与 Dragonfly 的良好集成

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

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

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

查看详情

展开阅读全文
11 收藏
分享
加载中
精彩评论
替换docker的产品?
2020-10-22 17:18
1
举报
最新评论 (6)
为什么需要加速?
2020-10-26 19:00
0
回复
举报
在docker.img外面包了一层新的镜像格式, 然后在主机上还要启动个daemon挂载新镜像. 再加上额外的下载服务器. 等于是三包.
2020-10-23 09:42
0
回复
举报
dockerhub真是gou东西
2020-10-22 17:55
0
回复
举报
替换docker的产品?
2020-10-22 17:18
1
回复
举报
应该是替代Docker的镜像仓库和获取镜像的方式,Docker是目前容器化标准,哪能那么容易替换
2020-10-22 18:47
0
回复
举报
更多评论
6 评论
11 收藏
分享
返回顶部
顶部