Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 跨外联网分发文件包_Linux_File_Distribution_Lan_Extranet - Fatal编程技术网

Linux 跨外联网分发文件包

Linux 跨外联网分发文件包,linux,file,distribution,lan,extranet,Linux,File,Distribution,Lan,Extranet,我希望能够将文件包(每个包大约500 MB)分发到公司“外部网”(基本上是使用各种专用机制连接的几个局域网,包括租用线路和VPN)上的所有计算机 主机总数约为100台,目标是将捆绑包的副本从一台主机可靠、快速、高效地复制到所有其他主机上。一个重要的问题是,一些主机在单个快速LAN上分组在一起,在这种情况下,网络I/O应从一个组到下一个组进行一次,然后在所有对等方之间的每个组中进行一次。这与严格的中央服务器系统不同,在中央服务器系统中,多个主机可能通过慢速链接各自获取相同的捆绑包,而不是通过慢速链

我希望能够将文件包(每个包大约500 MB)分发到公司“外部网”(基本上是使用各种专用机制连接的几个局域网,包括租用线路和VPN)上的所有计算机

主机总数约为100台,目标是将捆绑包的副本从一台主机可靠、快速、高效地复制到所有其他主机上。一个重要的问题是,一些主机在单个快速LAN上分组在一起,在这种情况下,网络I/O应从一个组到下一个组进行一次,然后在所有对等方之间的每个组中进行一次。这与严格的中央服务器系统不同,在中央服务器系统中,多个主机可能通过慢速链接各自获取相同的捆绑包,而不是通过慢速链接一次,然后在彼此之间快速获取

每隔几天就会产生一个新的捆绑包,偶尔会删除旧的捆绑包(但这个问题可以单独解决)

有问题的机器碰巧运行最新的Linuxes,但额外的积分将流向至少有点跨平台的解决方案(在这种情况下,捆绑包可能因平台而异,但可能使用相同的机制)


差不多就是这样。我不反对编写一些代码来处理这个问题,但是如果它是BASH、Python、Ruby、Lua、C或C++中的一个,那么最好是。

< P> > RSyc?< /P> < Pr> RScC?< /P> > P>我建议你使用CyMy的RySNC的想法来复制文件,在这种情况下,你可以使用你所选择的脚本语言。 在传播系统上,您将需要一个脚本,其中包含主机的某种形式的表示,以及它们之间的矩阵,并以速度加权。然后需要根据这些信息计算最小生成树。然后,您可以向要传播的系统发送消息,详细说明要获取的MST和捆绑包,从而该脚本/守护进程开始传输。然后该主机通过最快的链接与主机联系

您可以在bash中实现它—python可能更好,或者使用自定义C守护进程

更新网络时,需要根据最新信息更新矩阵


请参阅:。

我建议您使用compie的rysnc思想来复制文件,在这种情况下,您可以使用自己选择的脚本语言

在传播系统上,您将需要一个脚本,其中包含主机的某种形式的表示,以及它们之间的矩阵,并以速度加权。然后需要根据这些信息计算最小生成树。然后,您可以向要传播的系统发送消息,详细说明要获取的MST和捆绑包,从而该脚本/守护进程开始传输。然后该主机通过最快的链接与主机联系

您可以在bash中实现它—python可能更好,或者使用自定义C守护进程

更新网络时,需要根据最新信息更新矩阵


请看:。

我认为所有这些问题都已经通过对p2p网络的现代研究得到了解决,并被很好地包装成了良好的形式。一点脚本和一点torrent应该可以解决这些问题。torrent客户端适用于所有现代操作系统,然后每台机器上都有一个脚本,用于检查新torrent文件的位置,启动DL,然后在DL完成后删除旧的捆绑包。

我认为所有这些问题都已通过对p2p网络的现代研究得到解决,并被很好地打包成漂亮的表单。一点脚本和一点torrent应该可以解决这些问题。torrent客户端适用于所有现代操作系统,然后每台机器上都有一个脚本,用于检查新torrent文件的位置,启动DL,然后在DL完成后删除旧包。

听起来这里有某种基于权重的最小生成树。另外一个问题-你是否打算让这个网络动态变化?网络可能会有所变化……特别是可以添加或删除主机,尽管图中的慢速(长)链接不经常变化。听起来这里有某种基于权重的最小生成树。另外一个问题-您是否打算让此网络动态变化?网络可能会有所变化…特别是可以添加或删除主机,尽管图中的慢速(长)链接不会经常变化。rsync本身很好,这不是一个完整的解决方案:我们希望在每个较慢的链路上复制一次,然后在局域网内复制多次。rsync本身不够聪明,无法做到这一点——你可以用一种聪明的方式调用rsync,但理想情况下,我希望它不需要对主机之间的路径进行大量手工编码,诸如此类(否则我只需要为每个主机编写一个包含不同情况的巨型脚本或其他任何东西)。rsync本身就很好,这不是一个完整的解决方案:我们希望在每个较慢的链路上复制一次,然后在局域网内复制多次。rsync本身还不够聪明,无法做到这一点——您可以用一种聪明的方式调用rsync,但理想情况下,我希望有一种不需要对主机之间的路径进行大量手工编码的东西,等等(否则我只需要为每个主机编写一个包含不同情况的大型脚本或其他东西)。您如何处理主机故障?给定LAN上的一台主机宕机不应影响整个系统,而且,如果该主机知道如何在重新联机时赶上,那就更好了。听起来你需要有效地构建一个路由系统-在这种情况下,每个主机都会根据它可以ping的主机重新计算MST,然后联系他们,告诉他们您收到了数据包吗?如果没有,请升级。让每台主机都知道它的最新捆绑包,这样它就可以轻松地回复并让每台主机跟踪其他主机拥有的内容以及它从谁那里收到的信息。我忍不住认为一定有一些现有的程序或系统可以编写脚本,不过--“构建路由系统”可能需要比我希望的更多的开发工作。迷你