Dragonfly v2.4.0 發佈

新聞
HongKong
0
10:51 AM · Jan 13 ,2026

Dragonfly v2.4.0 現已發佈,具體更新內容包括:

新增特性

負載感知調度算法

調度算法升級為一種兩階段調度算法,結合中央調度與節點級二次調度,基於實時負載感知來優化 P2P 下載性能。

Vortex 協議支持 P2P 文件傳輸

Dragonfly 提供了基於 TLV 的新型 Vortex 傳輸協議,以提升 P2P 下載性能。使用 TLV(Tag-Length-Value)格式作為輕量級協議,替代 gRPC 進行節點間的數據傳輸。

與 gRPC 相比,基於 TCP 的 Vortex 可將大文件下載時間減少 50%,基於 QUIC 的 Vortex 可減少 40%,兩者都能有效降低峯值內存使用。

Request SDK

新增 SDK 用於將用户請求路由到 Seed Peer,使用一致性哈希算法,取代之前的 Kubernetes Service 負載均衡方式。

指定集羣 ID 實現多集羣 Kubernetes 簡化部署

Dragonfly 支持一種簡化功能,用於部署和管理多個 Kubernetes 集羣,方法是為每個集羣顯式分配一個 schedulerClusterID
這種方式允許用户直接控制集羣親和性,而無需依賴基於位置的調度元數據,例如 IDC、主機名或 IP 地址。

使用此功能,每個 Peer、Seed Peer 和 Scheduler 都通過明確定義的 Scheduler Cluster ID 來確定其目標調度器集羣。
這確保了集羣之間的精確隔離以及可預測的跨集羣行為。

Manager 和 Scheduler 組件的性能和資源優化

增強了 Manager 和 Scheduler 組件的性能和資源利用率,同時顯著降低了 CPU 和內存開銷,提升了系統效率和資源管理能力。

增強預熱功能

  • 支持預熱到指定節點:採用基於優先級的選擇邏輯,其中 IP 指定具有最高優先級,其次是基於數量的選擇,最後是基於百分比的選擇。
  • 支持在單個預熱任務中預熱多個 URL。
  • 支持通過 Scheduler gRPC 接口預熱文件和鏡像。

基於鏡像 Blob SHA256 計算 ID 以避免重複下載

客户端現已支持直接根據鏡像 Blob 的 SHA256 哈希值計算任務 ID,而不再使用下載 URL。此增強功能可以防止當同一 Blob 從不同鏡像倉庫域名訪問時產生的重複下載和數據冗餘問題,新版本默認啓用此功能。

緩存 HTTP 307 重定向 URL

新增對 HTTP 307(臨時重定向)響應 URL 的緩存支持,以優化 Dragonfly 的多分片下載性能。當下載 URL 被拆分為多個分片時,重定向目標地址現在會被緩存,從而消除冗餘的重定向請求並降低延遲。

Go 客户端已棄用,並由 Rust 客户端取代

Go 客户端已被棄用,並由 Rust 客户端[7] 取代。未來所有的開發和維護工作將專注於 Rust 客户端,它提供了更好的性能、穩定性和可靠性。

附加功能增強

  • 在 Rust 客户端中啓用 ARM64 架構的 64K 頁面大小支持。
  • 修復 dfget 版本輸出中缺失的 git commit 元數據問題。
  • 支持 containerd V3 配置中 io.containerd.cri.v1.images 插件的 config_path 配置。
  • 在 reqwest 中使用 hickory-dns 替換 glibc DNS 解析器,以實現 DNS 緩存並防止分片下載過程中過多的 DNS 查詢。
  • 支持 --include-files 配置參數,可選擇性地從目錄中下載文件。
  • 添加 --no-progress 配置參數,可禁用下載進度條輸出。
  • 支持 backend 操作中的自定義請求頭,為 HTTP 請求提供靈活的請求頭配置。
  • 重構日誌輸出,減少冗餘日誌記錄並提高日誌可讀性。

重要修復

  • 將數據庫字段類型從 text 修改為 longtext,以支持存儲預熱任務的信息。
  • 修復了 Scheduler 關閉期間重複停止 Seed Peer 服務時導致的 panic 問題。
  • 修復了在指定 Redis 密碼但未設置用户名時,Broker 認證失敗的問題。

Nydus

新增特性

  • Nydusd:為 RAFS V5 和 V6 格式添加運行時 CRC32 校驗支持,增強數據完整性驗證。
  • Nydusd:支持在 Nydusd 恢復過程中重新發送 FUSE 請求,提高進程恢復的可靠性。
  • Nydusd:增強 VFS 狀態保存機制,用於進程熱升級和故障轉移。
  • Nydusify:支持 Nydus 到 OCI 的反向轉換能力(實驗性功能),支持無縫遷移回 OCI 格式。
  • Nydusify:實現鏡像拷貝時零磁盤傳輸,顯著減少複製操作期間對本地磁盤的使用。
  • Snapshotter:將 blob.meta 打包到 Bootstrap 中,提高 RAFS V6 鏡像的 Blob 下載時的可靠性

重要修復

  • Nydusd:修復鏡像倉庫認證中 access_token 字段的認證令牌獲取問題。
  • Nydusd:為 umount API 添加了遞歸的 inode/dentry 失效處理。
  • Nydus Image:修復 optimize 子命令中的多個問題,並添加後端配置支持。
  • Snapshotter:為代理模式實現延遲父快照恢復,修復父快照缺失問題。
user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.