
今年 1 月,云原生计算基金会(CNCF)发布 了 Dragonfly 2.2.0 版,为这个开源的点对点(P2P)文件分发和镜像加速系统引入了几项重大改进。
Dragonfly 是一个基于点对点(P2P)的开源系统,旨在提高大规模文件分发和镜像加速的效率。利用来自对等点的空闲带宽可加速各个领域的数据分发,包括镜像和文件分发、AI 模型传播和数据集共享操作。Dragonfly 的主要特性包括对多个容器运行时和下载工具的非侵入式支持、可配置的对等点设置(例如负载和流量限制)以及确保文件一致性和隔离异常以提高下载稳定性的机制。其架构包括了管理器、调度器、Seed Peer 和 Peer 等组件,它们协作管理任务并优化 P2P 网络内的数据传输。
2.2.0 版本中的一个显著改进是用 Rust 重新实现了 Dragonfly 客户端。这种转变提高了内存安全性并增强了性能,有助于提供更强大、更高效的客户端体验。
更新后的客户端现在支持对预取请求进行带宽速率限制。此特性可防止网络拥塞并减少与活动下载任务的竞争,从而优化整体系统性能。用户可以通过 proxy.prefetchRateLimit 选项配置此设置。

下载速率限制
Dragonfly v2.2.0 引入了一个纯下载模式,允许客户端禁用共享。当配置为该模式时,客户端仅作为下载器运行,而不会对分发网络做出贡献,这一特性为有特定要求的用户提供了灵活性。
该版本还包括了几项优化,以增强客户端在管理大量小型输入 / 输出操作方面的性能,尤其有利于 Nydus 等应用程序。主要改进包括:
引入 X-Dragonfly-Prefetch HTTP 标头,以启用范围请求的全任务预取。
实现独立的 HTTP 代理缓存,通过减少 gRPC 服务器请求来降低延迟。
扩展 RocksDB 内存缓存大小,并启用前缀搜索功能,加快片段元数据检索速度。
采用带硬件加速的 CRC-32-Castagnoli 算法,降低片段内容哈希计算开销。
重用 gRPC 连接,优化下载逻辑,提升效率。
Dragonfly v2.2.0 定义了其 P2P 传输协议的第二个版本,旨在更加标准化、更清晰、更高效。这一更新有望提升 P2P 网络内的数据传输效率。
新版本加强了与 Harbor v2.13 的集成,重点关注镜像的 P2P 预热。改进包括:
支持预热多架构镜像。
用户定义的预热范围允许在单个 Seed Peer、所有 Seed Peers 或所有 Peers 中选择,以实现多粒度预热。
用户能够指定调度程序集群 ID,以将预热定向到所需的 Dragonfly 集群。
这些改进旨在让用户在管理镜像分发和加速任务时拥有更多控制权和效率。
有几种工具提供与 Dragonfly v2.2.0 类似的功能,用于大规模文件分发、容器镜像加速和点对点数据传输:
BitTorrent 是一种广泛使用的 P2P 协议,可在去中心化网络中高效分发大文件,使其成为通用文件共享的可行替代方案。
JFrog Artifactory 是一个强大的工件存储库管理器,为容器镜像、二进制文件和其他软件工件提供缓存和分发。
FastDFS 是一种轻量级开源分布式文件系统,针对小文件存储和同步进行了优化,但它缺乏容器镜像加速功能。
Amazon S3 Transfer Acceleration 利用亚马逊的全球边缘网络来加速大规模文件传输,使其成为已经使用 AWS 的组织的理想选择。
总之,Dragonfly v2.2.0 通过其新的基于 Rust 的客户端、改进的带宽管理和增强的 Harbor 集成增强了 P2P 文件分发效率。虽然存在 BitTorrent 和 Amazon S3 Transfer Acceleration 等替代方案,但 Dragonfly 对 I/O 操作和容器镜像加速的优化使其非常适合需要高效、大规模文件分发的云原生环境。
原文链接:
Dragonfly v2.2.0 Released: Rust Client, P2P Upgrades, and Enhanced Image Acceleration (https://www.infoq.com/news/2025/01/dragonfly-rust-client/)
评论