优化通过站点到站点VPN连接发送文件

我有两个数据中心(一个在圣何塞,另一个在多伦多)的站点到站点VPN连接。

我需要发送一个32GB的文件从一个直stream到另一个 – 尽可能快。

我find了一个shell脚本,将32GB的文件拼接起来,然后使用scp以并行方式传输。

问题是如何确定通过站点到站点vpn连接发送各种小文件的最佳文件大小(我想尝试最大化带宽)。

很明显,我在服务器上运行的scp进程越多,我猜这台服务器上的负载就越多。

忘记站点到站点一分钟,因为只要它的ipsec和你的端点不是烤面包机,它本身不太可能成为瓶颈,并快速浏览一下bbcp:

http://www.slac.stanford.edu/~abh/bbcp/

这里是我们在上次迁移时使用的perl脚本中的一行,与您的需求相同,即快速移动数据

sprintf('/usr/local/bin/bbcp -a -F -s 16 -P 10 -T "ssh -x -a -oFallBackToRsh=no %%I -l %%U %%H /usr/local/bin/bbcp" -d . -v %s %s:%s', join(' ', @files_to_copy), $remote_host, $destination_dir); 

玩选项,尤其是线程的数量。

您将需要回答的问题是:

  • 什么是链接的延迟
  • 包抖动可能是什么样的
  • 我能预期的总带宽是多less?
  • 我还会通过霸占整个链接跺脚

bbcp应该能够最大化任何链接到cpu成为你的瓶颈与正确的标志点。 祝你好运

我会看看rsync的大事情。

就像是:

rsync -ave“ssh -c arcfour -o Compression = no -x”source_file user @ destination:/ path / to / dest

http://en.wikipedia.org/wiki/RC4

这样,如果部分副本由于某种原因被中断,您将能够恢复利用rsync的内部的上传。

如果您愿意考虑商业解决scheme, Aspera或Signiant比scp,sftp或rsync快得多。