我有1个源服务器,包含大约30GB的文件,我想复制到其他7个服务器。 我现在将这些文件传送给前四台服务器,并且当这个传输完成时,SCP传送到最后的三台服务器。
将使用BitTorrent更快地分发文件到所有7一次? 内部连接在每个服务器之间已经很快且一致。 我知道它可能会消耗源服务器的一些负载,但分发文件只需要更长的时间?
什么是我可以从shell中使用的好的可编写脚本的客户端? 我希望大家在100%以后停止播种。
这取决于你的networking布局和瓶颈,但是,使用BitTorrent可以更快。 从理论上说,你的源服务器不应该发送同一个文件的7个副本,而只需要发送1个副本,在接收者之间进行拆分。 到那时候,剩下的同伴们将分享他们之间没有直接收到的部分。
但是,如果你的networking支持多播,那么设置udpcast , mdp , multisend或类似的东西可能更容易:你的源将发送一个数据副本,networking将把它路由到所有的收件人。
比起其他文件分发工具,比如rsync ,BitTorrent的优势在于客户端开始向其他客户端提供数据,所以如果服务器与客户端的连接速度较慢,吞吐量将会更好。
BT是一个专为全球共享而devise的协议。 所以你必须find一种方法来locking所有其他的客户,但是你想要提供的7(或者你的洪stream将很快在海盗湾结束)。
至于100%停止,每个BT客户端都会这样做:由于没有客户端请求数据,就不会有更多的播种。 应用程序仍然可以运行,但它们只会在客户端和跟踪器之间引起一些小小的数据告诉它们仍然可用。
尝试使用Python编写的原始BitTorrent客户端。 这将允许你做任何你想要的修改。 不幸的是,我找不到自动取款机。 任何人?
[编辑]根据评论saua :如果你使用私人跟踪器,你的种子不应该意外蔓延。 也就是说,你应该只使用来自可靠来源的torrent客户端。 否则,你可能会冒险,一些黑客已经在代码中发布了一些额外的function,发布私人种子的地方,你不希望他们出现。
如果你想通过服务器树来复制文件,BitTorrent是一个好主意,例如不必发出远程命令到所有的服务器从同一个地方复制; 可能造成瓶颈。
Twitter工程师与现在在github上的谋杀案取得巨大成功。
http://engineering.twitter.com/2010/07/murder-fast-datacenter-code-deploys.html
如果所有8台服务器都使用Bit Torrent插入networking的同一部分,则不太可能加快速度。 事实上,你会碰到这么多的碰撞,可能会很慢。 如果您使用完全交换networking,BitTorrent只会加快速度,八台服务器可以独立对话,而不会影响其他服务器之间的通信。