将大文件复制到局域网上的多台计算机


9

我需要将一些大文件从一台Linux计算机复制到大约20台其他Linux计算机,所有这些文件都尽可能快地位于同一LAN上。哪种工具/方法最适合复制这些文件,请注意,这将不是一次复制。这些机器将永远不会连接到Internet,并且安全性不是问题。

更新:

我之所以这样问,是因为(据我所知),我们目前正在scp以串行方式将文件复制到每台计算机上,并且我被告知这太慢了,正在寻求一种更快的选择。据我scp所知,由于硬盘驱动器的搜寻,试图并行化这些调用只会进一步降低其速度。


定义“大”。数百MB / GB / TB /更多?
Janne Pikkarainen

目前,总数约为4 GiB(压缩),尽管将来可能会增加。
乔纳森·卡伦

也就是说,即使在2011年,也无论如何-不算大。假设正确交换了1吉比特的链路(2011年成为标准链路),那将是一件很受欢迎的事情。运行它的10g服务器(即使在2011年也很少见)……很好;)
TomTom,

Answers:


27

BitTorrent。这就是Twitter内部部署某些事情的方式。

http://engineering.twitter.com/2010/07/murder-fast-datacenter-code-deploys.html(网络归档链接)


3
除了我的答案(如果可以实施,我认为它会做得很好),以下针对NFS的答案也是非常好的。好的NFS服务器应该缓存文件,这样就不会再打磁盘了。同样,不要将文件服务器复制客户端。从客户端启动它,然后让NFS服务器的缓存提​​供帮助。
mfinni 2011年

1
一定要在非生产环境中进行尝试,在他们的演示中,他们说(iirc)由于交换的数据包数量很多,使得某些交换机在首次部署期间遭受了很多损失。
Shadok

1
@psusi为什么说它必须发送所有数据20次?一旦其他对等方拥有文件的一部分,他们就可以开始将自己拥有的部分发送给其他对等方。
乔纳森·卡伦

2
OP的问题不是LAN,而是中央服务器上的磁盘。
mfinni 2011年

1
@pSusi-多播肯定是另一个有效答案。将其发布为答案,而不是敲响我的答案。
mfinni 2011年

12

UFTP怎么,它使用多播通过UDP将文件一次传送到多个客户端。并非适合所有人,我也不是专家,但这听起来像它可以满足您的要求。


1
免责声明:这将需要支持多播的设备。
2011年

我宁愿希望它在同一个VLAN上-减少这种使用的影响。
Chopper3 2011年

@ user606723:一切不是现代的吗?也许有些消费者的垃圾不会,但是我有一段时间没有遇到多播中断的情况了。这些天太多使用它。我认为Windows Active Directory甚至使用多播。
Zan Lynx

我实际上没有这个@ZanLynx的经验。我知道许多办公室/计算机实验室在最后一跳都使用使用者/不受管理的交换机。这些交换机在多播时将如何表现?
2011年

3

您是否尝试过复制数据rsync?如果您具有1 Gbit或更快的LAN,则复制4 * 20 GB应该不是问题。

此副本多久出现一次?是否需要几分钟才能完成?



2

设置NFS共享并使每台计算机从此共享的大文件存储库中拉出可能是最快的方法(NFS非常快且开销很小)。

您可以在源服务器上添加一个或两个附加的NIC,并将它们绑定在一起,以提高吞吐量。

在每个目标服务器上,实现可能只是一个简单的cron作业,每小时,每天或任何时间都盲目地从共享中获取。您还可以设置一个守护程序来轮询新文件。您也可以只将控制会话的SSH(带有密钥对)脚本编写到每个目标框中,并指示它们在执行脚本时提取文件。


1
我相信我的前任试图为此使用NFS,并发现(当时)RAM缓存不足以进行整个传输,这导致硬盘驱动器的负载成为限制因素,而非网络速度。
乔纳森·卡伦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.