我希望能够向企业“外联网”(基本上是使用各种私有机制连接的少数局域网,包括租用线路和VPN)分发每捆大约500 MB的文件捆绑。 / p>
主机总数大约为100,目标是可靠,快速,高效地将捆绑包的副本从一个主机获取到所有其他主机上。一个重要的问题是一些主机在单个快速LAN上组合在一起,在这种情况下,网络I / O应该从一个组到下一个组完成一次,然后在所有对等体之间的每个组内完成。这与严格的中央服务器系统相反,在这个系统中,多个主机可能通过慢速链接获取相同的捆绑,而不是通过慢速链接再快速获取相同的捆绑包。
每隔几天就会生成一个新的捆绑包,偶尔会删除旧的捆绑包(但这个问题可以单独解决)。
有问题的机器碰巧运行最近的Linux,但奖励点将转到至少在某种程度上跨平台的解决方案(在这种情况下,捆绑包可能因平台而异,但可能使用相同的机制)。
这就是它。我并不反对编写一些代码来处理这个问题,但如果它是bash,Python,Ruby,Lua,C或C ++之类的话会更好。
答案 0 :(得分:0)
rsync怎么样?
答案 1 :(得分:0)
我建议你使用compie的rysnc概念来复制文件,在这种情况下你可以使用你选择的脚本语言。
在传播系统上,您需要一个脚本,其中包含主机的某种形式的表示形式,以及它们之间的矩阵,用速度加权。然后,您需要根据该信息计算最小生成树。然后,您可以将消息发送到要传播的系统,详细说明MST和要获取的包,从而开始传输脚本/守护程序。然后该主机通过最快的链接与主机联系......
你可以在bash中实现它 - python可能更好或者是自定义C守护进程。
更新网络时,您需要根据最新信息更新矩阵。
请参阅:Prim's Algorithm。
答案 2 :(得分:0)
我认为所有这些问题都已经通过对p2p网络的现代研究得到了解决,并且很好地打包成了很好的形式。一些脚本和比特洪流应该解决这些问题。所有现代操作系统都存在torrent客户端,然后每台机器上都有一个脚本来检查新torrent文件的位置,启动DL,然后在DL完成后删除旧包。