问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

系统镜像等大文件快速分发传输P2P方案分享

创作时间:
作者:
@小白创作中心

系统镜像等大文件快速分发传输P2P方案分享

引用
1
来源
1.
https://www.bilibili.com/read/mobile?id=35735882

在云桌面场景下,系统镜像文件的快速分发一直是一个技术难题。传统的1对多传输模式在面对大规模设备更新时效率低下,而基于点量BT SDK的P2P方案提供了一个更优的解决方案。本文将详细介绍这一方案的技术原理和具体实现方式。

需求背景

在云桌面场景下,需要给单位或者学校客户的数十台设备批量升级系统镜像文件。镜像文件对应一个系统的分区,数据量非常庞大。传统的传输方式存在以下问题:

  1. 传统方式:1对多模式
  • 服务器端通过FTP/HTTP等方式向局域网内的终端发送镜像文件。
  • 单台服务器的带宽和磁盘读性能有限,即使在千兆局域网环境下,上传能力最高也只能达到120MB/s左右。
  • 如果有100个终端同时更新下载,每个终端只能获得1.2MB/s的下载速度。
  • 传输一个256G的分区镜像需要几天的时间,周期过长。
  1. 衍生方案
  • 先服务器传给几台客户机器,等几台机器传完后再通过这些机器下发给其他机器。
  • 这种方式虽然有所改进,但整体传输时间仍然很长。

点量BT/P2P方案

该方案基于标准的BitTorrent协议进行改进优化的商业P2P SDK引擎,具备完善的P2P功能以及丰富的接口。其核心原理是:

  • 服务器同时给所有终端分发时,自动将文件切分为很多分块,随机给每个终端一个分块。
  • 每个终端拿到分块后,再互相连接分享已有的分块,实现分布式集群的自主分发。
  • 人越多,下载速度越快,分发效率越高。
  • 让每个终端都能获得接近服务器最大带宽的下载速度(如120MB/s)。
  • 一个本来需要几天才能传输完成的文件,可以在几十分钟内完成传输。

针对系统镜像传输的高级功能

点量BT除了传统P2P的功能外,还针对系统镜像传输场景做了以下优化:

  1. 提供自定义IO接口
  • 可以将P2P内部所有针对文件、文件夹的IO操作,调用外部自定义的IO函数。
  • 实现分区的读写等由外部用户自定义处理,可以针对/dev/sda1等分区直接当一个标准文件处理。
  • 用于制作torrent文件、进行文件的读写。
  1. 镜像下载优化版,可设置跳过传统校验
  • 专门提供镜像下载优化版本,可设置跳过传统校验。
  • 磁盘镜像分区比较大,传统BT/P2P在进行分块校验等操作时会耗费时间太久。
  • 通过自定义IO,以及高级设置,可以跳过这些校验,提升制作种子、下载完成的时间。
  • 由外部校验镜像完整性。
  1. 自定义设置文件分块大小
  • 由于磁盘分区镜像可能是256G甚至更大的文件,因此建议设置4M等超大分块大小。
  • 这些在普通BT软件里面是不支持的。
  1. 支持更多分块数量
  • 镜像下载优化版本的点量BT可以支持4M/8M等超大分块大小,以及更多的分块数量支持。
  • 也可通过自定义IO,可以将一个超大镜像,拆分成多个虚拟文件,比如每个虚拟文件64G,以实现更好的并发传输效果。
  1. 支持局域网自建Tracker,提升P2P效率
  • 针对局域网传输,可通过高级参数去除UPnP等映射,以及停止局域网自动发现。
  • 支持设置局域网自建Tracker,通过局域网Tracker的策略高效调度,以及指定节点之间的传输关系。
  • 可以减少多层路由器的多级子网下的端口映射干扰,让P2P连接更直接、迅速。
  • 除了针对Windows下的SDK,还可提供Linux下的SDK以及对应的Tracker,满足多场景的实际需求。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号