写点什么

Dragonfly 发布 2.3 版本,新增持久化缓存、资源搜索及 Vortex 协议等新特性

作者:蚂蚁开源
  • 2025-07-04
    新加坡
  • 本文字数:3085 字

    阅读完需:约 10 分钟

Dragonfly 发布 2.3 版本,新增持久化缓存、资源搜索及 Vortex 协议等新特性

Dragonfly 发布 2.3.0 版本,新增多个功能特性并进行安全增强。同时,子项目 Nydus 也增加多个功能特性。本篇博客将介绍最重要的变更。有关功能增强及漏洞修复的完整列表,请查看 d7y.io 官网。

 

关于 Dragonfly

Dragonfly 是一款基于 P2P 技术的文件分发和镜像加速系统,作为 CNCF 的 Incubating 项目,它旨在解决大规模文件分发场景中的效率和速度问题。通过最大限度地利用网络中对等节点(Peer)的闲置带宽,Dragonfly 能有效减少对源站的依赖和回源流量,显著提升分发效率。它致力于成为云原生场景下镜像加速领域的标准解决方案,并且近年来在 AI 推理和训练场景中的模型分发方面也得到了广泛应用。

 

功能特性

持久化缓存任务

它旨在为任务提供持久化缓存。该工具可以在 P2P 网络中导入和导出文件。该解决方案专为高速读写操作而设计。这使其在涉及大文件的场景中特别有优势,例如机器学习模型 checkpoints,在这些场景中,快速、可靠地访问和跨网络分发对于训练和推理工作流至关重要。通过利用 P2P 分发和持久化缓存,dfcache 显著减少了 I/O 瓶颈并加速了大型数据资产生命周期。

有关如何使用 dfcache 命令行工具的文档,请参阅以下链接:https://d7y.io/docs/next/reference/commands/client/dfcache/

$ dfcache import /tmp/file.txt⣷ Done: 2229733261
复制代码


$ dfcache export 2229733261 -O /tmp/file.txt
复制代码


 

资源搜索(任务和持久化缓存任务)

资源搜索功能可以无缝查询任务,包括文件、镜像和持久化缓存任务。它优化了资源访问,提高了任务管理和检索效率。

 

Vortex:基于 TLV 的 P2P 文件传输协议

Vortex 协议是 Dragonfly 项目中一个用 Rust 实现的高性能点对点(P2P)文件传输协议。它利用 TLV(Tag-Length-Value)格式实现高效灵活的数据传输,非常适合大规模文件分发场景。


包格式:

  • 包标识符(8 位):唯一标识每个包

  • 标签(8 位):指定值字段中的数据类型

  • 长度(32 位):表示值字段的长度,最大为 4 GiB

  • 值(可变):实际数据内容,最大为 1 GiB


协议格式:

-------------------------------------------------------------------------------------------------|                            |                   |                    |                         ||   包标识符 (8 bits)      |    标签 (8 bits)    |   长度 (32 bits)   |   值 (最大 4 GiB)     ||                            |                   |                    |                         |-------------------------------------------------------------------------------------------------
复制代码

更多信息,请参阅 Vortex 协议

 

增强的大文件分发

此版本显著增强了 Dragonfly 的大文件分发能力,提供了更高的效率和性能。我们针对大文件场景改进了调度算法,以确保更智能的资源和任务分配。此外,新机制现在能更有效地平衡大文件传输期间对等节点间的负载。对点对点(P2P)协议和网络传输层的优化进一步提高了传输效率。

这些改进包括对客户端和调度器的性能优化。您可以在项目的拉取请求中找到更多详细信息。

 

支持个人访问令牌(PAT)的作用域

通过允许用户为每个 PAT 定义特定的访问权限(作用域),我们显著增强了 Open API 交互的安全性。现在,PAT 可以被限制为仅有所需的权限,而不是授予宽泛的权限,以完成特定的集成或任务。

 

增强的预热

实现预热任务的分布式速率限制

 

通过限制在分布式系统中发起预热请求的速率,可以防止过多的预热活动给源站带来压力。此增强功能确保了更稳定的预热。

 

支持为预热设置分片长度

通过允许调整分片大小,用户可以优化数据传输效率,特别是在涉及大文件的场景中。

 

灵活预热:按百分比或数量设置对等节点范围

此功能通过允许用户更精确地指定预热范围来增强预热能力。

 

实现用户操作的审计日志记录

此功能引入了全面的审计日志记录功能,以跟踪系统内的用户操作。审计日志将记录用户执行的关键操作,例如发起预热任务、删除任务缓存以及其他重要的系统交互。

 

垃圾回收

Dragonfly 支持垃圾回收(GC)审计日志和 GC 作业记录,以跟踪和管理垃圾回收活动。管理器支持自动 GC 保留,允许记录保留可配置的时间段。此外,它还提供了根据需要手动触发强制 GC 操作的功能。

此功能通过自动保留策略和手动干预以立即执行 GC,确保了对 GC 流程的高效监控和管理,提供了灵活性。


使用硬链接优化文件下载

文件下载需要以高效和安全的方式完成。如果用户正在下载大文件,下载文件并复制到输出路径效率不高。相反,我们可以创建文件的硬链接并将链接发送给用户。这样,我们可以避免复制文件并节省时间和资源。如果硬链接失败(例如,由于不同的文件系统),dfdaemon 将回退到复制文件。更多信息,请参阅文件下载工作流。

 

分片哈希计算支持硬件加速

此功能启用了硬件加速的分片哈希计算,显著提高了性能和效率。通过利用专用硬件,哈希计算过程得到加速,从而可以更快地处理大文件。


高级存储管理

 

操作的磁盘空间验证

此功能通过实现磁盘空间验证来增强客户端的存储功能。当检测到磁盘空间不足时,客户端将返回失败响应,防止潜在的数据损坏或不完整的操作。


磁盘垃圾回收管理

此功能通过引入基于磁盘使用情况的可配置垃圾回收(GC)阈值来增强 Peer 的磁盘管理。distThreshold 参数允许用户定义特定的磁盘容量(例如 10TiB)作为计算 GC 触发点的基础。如果设置了该参数,则 distHighThresholdPercent(例如 80%)和 distLowThresholdPercent(例如 60%)将相对于此容量应用。如果未提供 distThreshold 或设置为 0,则这些百分比将根据总实际磁盘空间计算。当磁盘使用率超过高阈值时,Dragonfly 会触发 GC(LRU) 来回收空间;当使用率低于低阈值时,GC 停止。这可以有效管理用于缓存的逻辑磁盘部分,从而提高资源利用率和系统性能。

 

支持 OpenTelemetry 追踪


Dragonfly 支持基于 OpenTelemetry 的追踪,涵盖了 Manager、Scheduler 和 Peers。这使得下载过程具有端到端的可视性,允许用户使用特定的任务 ID 查询详细信息,例如整体下载延迟。该集成确保了整个系统的高效监控和性能分析。

添加如下追踪配置(在 Manager、Scheduler 和 Peer 中):

您可以访问 Jaeger UI 来可视化追踪。

更多信息,请参阅更多信息,请参阅追踪。

 

安全增强

 

我们衷心感谢 CNCF TAG Security 在联合安全审计方面的合作。他们的专业知识和彻底审查对于帮助我们识别 Dragonfly 内需要改进的安全领域非常有价值。有关已解决的特定安全问题和相应修复的详细信息,请参阅以下 issue:

https://github.com/dragonflyoss/dragonfly/issues/3811

 

Nydus

新功能和增强

 

  • nydusify copy:支持分块上传和重试机制以处理大型镜像 blob。

  • nydusify check:重构以支持 OCI v1 和 nydus 格式镜像作为源和目标。

  • nydusd:支持块级 CRC 数据验证以确保镜像数据一致性。

 

重大错误修复

 

  • 修复了 sysinfo 库引起的内存泄漏和文件描述符泄漏问题。

  • 清理 Unix 域套接字(UDS)以防止 dfdaemon 启动崩溃。

  • 防止客户端从多个父节点重复下载同一分片。


其他

您可以在 CHANGELOG 中查看更多详细信息。

链接

  • Dragonfly 网站:https://d7y.io/

  • Dragonfly 仓库:https://github.com/dragonflyoss/dragonfly

  • Dragonfly 客户端仓库:https://github.com/dragonflyoss/client

  • Dragonfly 控制台仓库:https://github.com/dragonflyoss/console

  • Dragonfly Charts 仓库:https://github.com/dragonflyoss/helm-charts

  • Dragonfly 监控仓库:https://github.com/dragonflyoss/monitoring


用户头像

蚂蚁开源

关注

为社区带来微小而美好的改变。 2025-01-23 加入

开源是蚂蚁的核心技术战略,十余年来经历了海量数据场景下的严苛考验,蚂蚁自研了数据库、云原生、隐私计算为代表的数字化“根技术”,在人机交互、人工智能、分布式计算、安全可信等核心领域都有标志性的开源项目。

评论

发布
暂无评论
Dragonfly 发布 2.3 版本,新增持久化缓存、资源搜索及 Vortex 协议等新特性_蚂蚁开源_InfoQ写作社区