将文件分发到大量服务器

将文件分发到大量服务器

我正在寻找一种将大文件分发到我的服务器的方法,相同的文件需要位于所有目标服务器上......

文件大小为 30-600Gb。

问题:我将 NFS 共享源挂载到目标上并同时开始复制。

在我的源服务器上,我可以看到由于 IO 密集,磁盘利用率很高(我猜这是因为它需要一遍又一遍地读取相同的文件),而且网络利用率也接近顶部。

我尝试了 UDP 广播,但它不起作用,因为我的托管环境不允许这样做......

我听说过谋杀,但我没有找到任何人真正参与过谋杀(除了 Twitter :))。

我的问题是:

  1. 有人对这个应用程序有任何经验吗(谋杀,或任何其他类似“同步”的洪流)?
  2. 是否有其他选项可以在尽可能短的时间内将相同的文件复制到我的服务器(我可以将文件分别复制到每个目标服务器,这不会让我的源服务器屈服,但会花费很多时间)?

任何想法将不胜感激

谢谢,

吉利

答案1

我想到了几个想法。

如果这是您经常做的事情并且有节奏,那么可能值得设置一个 rsync 服务器并在客户端上配置一个 cron 作业以从 rsync 中提取文件。

如果不经常执行此操作并且根据需要执行此操作,您仍然可以手动使用 rsync。我也经常使用 ansible 来处理这类事情,但是 ansible 需要一个允许与其交互的主机列表(清单),并且如果您设置了 ssh 密钥,效果最好。你的 ansible ad-hoc 命令看起来像

ansible <target hosts> -m copy -a "src=<your file> dest=<location of file on destination host>"

说实话,我不确定这些选项中的任何一个都会多播该文件(听起来这就是您正在寻找的),但您仍然可能在其他地方看到一些性能提升。

相关内容