首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从一台服务器到100台服务器的文件拷贝

从一台服务器到100台服务器的文件拷贝
EN

Stack Overflow用户
提问于 2013-05-19 11:18:16
回答 8查看 2.4K关注 0票数 0

我想通过1Gbps线路将驻留在单个服务器上的100 GB文件传输到网络中的100个其他服务器。做这件事最好的方法是什么?我的解决方案是将文件复制到k个服务器(比如9个),然后将剩余的(100-9)个服务器分配给9个服务器中的每一个。这是一种比按顺序将文件从1台服务器复制到100台服务器更好的解决方案。我的问题是如何确定k?或者如何计算确定k的最有效值。请建议是否有更好的解决方案。对不起,我忘了说..无法使用TORRENT。并不是所有的公司都允许激流。这是一个面试问题。感谢您的回复。谢谢

EN

回答 8

Stack Overflow用户

发布于 2013-05-19 12:36:18

假设您一次只能复制到一台服务器,则可以执行以下操作。

  1. 主服务器拷贝到服务器S1。
  2. S1拷贝到S2 (1个拷贝)
  3. S1拷贝到S3,S2拷贝到S4 (2个拷贝并行)
  4. S1拷贝到S5,S2拷贝到S6,拷贝到,拷贝到(4个拷贝并行)<代码>G29

以此类推..

因此,副本数量模式如下:2次方0,2次方1,2次方2等等

1+2+4+8+ 16 + 32 + 64 > 100

因此,可以使用以下公式来计算S1必须执行的副本数量

代码语言:javascript
运行
复制
(2 pow k >= 100)  and (2 pow (k-1) < 100)

在这种情况下,k的计算结果为7(在第一次复制之后)

票数 4
EN

Stack Overflow用户

发布于 2013-05-19 12:50:16

一种观点是在网络上多播文件。这样,第一个服务器将只发送一次文件(其他服务器同时接收文件)。这可能会变得非常棘手,但我想这将是最快的方法。您可能需要设计自己的自定义协议,当一台计算机丢失数据包时该怎么办。

https://github.com/windsurfer/C-Sharp-Multicast

票数 1
EN

Stack Overflow用户

发布于 2013-07-12 20:21:07

我知道面试可能为时已晚,但为了记录在案,也许你可以考虑这样的事情:

https://code.google.com/p/castcopy/

或一些其它多播复制工具。不需要为每个或一些接收客户端重复数据包。你只需要发送一个数据包的副本,所有其他的都会同时收听!

窗格

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16631114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档