Nydus 镜像加速插件迁入 Containerd 旗下
文|葛长伟(花名:川朗 )
蚂蚁集团技术专家
负责容器镜像加速项目 Nydus 的开发和维护,专注于容器镜像存储、持久存储和文件系统领域。
本文 1344 字 阅读 4 分钟
前言
今年 1 月 ,Containerd 社区通过投票接收 Nydus-snapshotter 成为 Containerd 社区的子项目。这是继 ttrpc-rust 之后,蚂蚁容器团队再次向 Containerd 捐赠子项目。
此举将方便 Nydus 和 Containerd 的开发协同,减少项目迭代过程中可能出现的不兼容问题,也让用户可以更容易地使用 Nydus 镜像加速服务。
目前 Nydus 已经将 Nydus-snapshotter 的代码迁移到了 Containerd 组织下的新仓库[1]。
Nydus 简介
Nydus 是蚂蚁集团和阿里云共同开源的容器镜像加速项目,属于 CNCF Dragonfly 项目,是其中的镜像服务部分。
Nydus 是在最新的 OCI Image-Spec 基础之上设计的容器镜像加速服务,重新设计了镜像格式和底层文件系统,从而加速容器启动速度,提高大规模集群中的容器启动成功率。
Nydus 设计了一个为镜像优化的文件系统—Rafs。
Nydus 镜像可以推送和保存在标准的容器镜像中心,Nydus 镜像格式完全兼容 OCI Image Spec 和 Distribution Spec。成功转换或者创建镜像后,Nydus 镜像会生成一个元数据文件 Bootstrap、若干个数据文件 blob、manifest.json、config.json。
目前可以通过 Nydusify 、Acceld 或者 Buildkit 创建 Nydus 加速镜像。
其中,Acceld[2] 是 Nydus 和 eStargz 的开发者正在合作开发的 Harbor 开源企业级镜像中心的一个子项目,它提供了一个通用的加速镜像转换服务和框架。基于 Acceld,Nydus 和 eStargz 可以方便地从 Harbor 触发加速镜像转换。
与此同时,Nydus 也在开发 Buildkit 相关的支持,在未来也可以直接通过 Buildkit 从 Dockerfile 直接创建加速镜像。
Nydus-snapshotter 是 Containerd 的 Remote Snapshotter 插件,它是一个独立于 Containerd 的进程。
当集成 Nydus-snapshotter 到 Containerd 后,Nydus-napshotter 在容器镜像准备阶段,只会将 Nydus 镜像的元数据部分 Bootstrap 从镜像中心下载下来,并且创建了一个新的进程 Nydusd。Nydusd 是处理文件系统操作的用户态进程。通过配置,Nydusd 可以作为基于 Linux FUSE 的用户态文件系统 Virtio-fs Vhost-user Backend,甚至可以是 Linux Fscache 的用户态进程。
Nydusd 负责从镜像中心或者对象存储下载文件数据以响应读文件的请求,并可以将文件数据块缓存在 Host 的本地文件系统。
Nydus 特性
Nydus 有如下重要的特性:
1、镜像层间块级数据去重,可以减少镜像中心的存储成本,降低数据传输的带宽消耗。
2、Whiteout 文件不会再被打包进 Nydus 镜像。
3、端到端的数据完整性校验。
4、作为 CNCF 孵化项目 Dragonfly 的子项目,Nydus 可以接入 P2P 分发系统,以此降低对镜像中心的压力。
5、支持数据和元数据分离存储。可以将数据保存在 NAS、阿里云 OSS 或者 AWS S3。
6、支持文件访问行为记录,这样就可以审计和分析容器内应用的访问行为。增强安全能力、优化镜像数据排布。
除了以上的关键特性,Nydus 可以灵活地配置成 Linux FUSE 用户态文件系统、基于轻量虚拟化技术容器的 Virtio-fs daemon,或者 Linux 内核磁盘文件系统 EROFS 的用户态 on-demand 数据下载服务:
1、轻量化地集成到 vm-based 容器运行时。现在 KataContainers 正在考虑原生地支持 Nydus 作为容器镜像加速方案。
2、Nydus 和 EROFS 紧密合作,期望可以直接使用 EROFS 作为容器镜像的文件系统。相关修改的第一部分已经合并入 Linux Kernel v5.16。
Nydus 部署形态
支持 Runc 时,Nydus 作为 FUSE 用户态文件系统进程:
支持 KataContainers 时,Nydus 作为 Virtio-fs daemon:
目前 EROFS 正在尝试联合 Fscache 一起,以内核文件系统 EROFS 直接作为容器 Rootfs:
Nydus 将与 Containerd 社区紧密合作,致力于提供更优秀的容器镜像加速方案,提高镜像的存储和分发效率,提供安全可靠的容器镜像服务。
求贤若渴:
关于蚂蚁集团可信原生技术部安全容器和存储团队
在蚂蚁集团内部主要负责公司内部容器运行时和云原生存储技术,是公司数据链路的守护者,运行时环境的看门人。我们团队也是 Kata Containers 的创立者,镜像加速服务 Nydus 的发起者,分布式事务服务 Seata 的维护者,也维护着公司内数据访问组件 ZDal/ZCache/XTS 等产品。
我们是开源精神的信徒,也是实现开源软件和公司业务双赢的践行者。我们是一个关注业务、关注业界前沿、关注基础设施技术,更关心成员成长的团队。目前我们正在招收 2023 届实习生,有兴趣的可以参考蚂蚁集团2023届实习生招聘。
联系邮箱:liyuming.lym@antgroup.com
本周推荐阅读

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
当你了解了 Apahce 的过去,你就了解了 Apache Way
在 16 世纪开始的北美印第安战争中,其中有一个与之抗争达数世纪,最后一个向美国政府投降部族——Apache 部族。他们的最后一任首领杰罗尼莫带领部族抗击美军直到 1909 年。 约莫一个世纪之后,同样是在美洲大地上,一个自称是“hanging out with radicals”的计算机系学生 Brian Behlendorf 带领一小撮人站在了反抗大型科技公司的擂台上,并将自己的队伍命名为“Apache Group”。 之后的故事基本就人尽皆知了。Brian 等人所发布的 Apache 在 Web 服务器领域攻城略地,巅峰时期市场占有率超过 7 成。而在 Apache HTTP 服务器的基础之上,一个更大的、为自由而战的软件“部落”Apache 软件基金会(Apache Software Foundation,简称为ASF)随之创立。到今天,ASF 中已经有来自全世界各地贡献者维护的近两百多个项目,在互联网中提供着“Trillions and Trillions Served”数以万亿的服务,也正应了那句“开源吞噬世界”。 许多开源项目以被冠“Apache”之名为荣,也有人形容 A...
- 下一篇
TVM:成为深度学习领域的“Linux”
来源|wandb.ai 翻译|刘志勇 如你所知,PyTorch、TensorFlow、OneFlow等深度学习框架关注的重心是在GPU等硬件上训练模型,但要想将训练的模型部署到手机、物联网设备以及专用加速器(FPGA、ASIC)等不同平台,就需要TVM、XLA、TensorRT等深度学习编译器来解决。 作为目前业界炙手可热的编译器,TVM(Tensor Virtual Machine)于2017年8月由华盛顿大学的Luis Ceze、陈天奇等人开源,利用这一工具,机器学习算法可以被自动编译成可供下层硬件执行的机器语言,从而可以利用多种类型的算力。 TVM主要用于张量计算,提供独立于硬件底层的中间表示,采用各种方式(循环分块、缓存优化等)对相应的计算进行优化。第一代TVM的设计借鉴了传统编译器框架LLVM的设计思路,设计抽象出中间表示层,不同的模型只需要开发相应的前端接口,不同的硬件只需要开发相应的后端。 2019年,华盛顿大学TVM团队成立创业公司OctoML,联合创始人包括华盛顿大学计算机科学教授Luis Ceze(CEO)、前英特尔首席工程师和 AI 负责人Jason Kn...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7安装Docker,走上虚拟化容器引擎之路