我有两个数据中心(一个在圣何塞,另一个在多伦多)的站点到站点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);
玩选项,尤其是线程的数量。
您将需要回答的问题是:
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快得多。