上G大文件双机互传工具BBCP

原由


局域网双机拷贝单个大文件 【200G大小】,不要问我是啥! 也不要问我为毛会生成那么大的单文件,事实就是这样!然后就开始了操蛋之旅!再次做下记录备忘!

方法尝试对比


方式一:scp
什么是scp: scp 命令是 SSH中最方便有用的命令了,scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证。 与rcp 不同的是,scp 在需要进行验证时会要求你输入密码或口令。
速度:刚开始的时候33M/s 持续3分钟左右就跌落到3M左右的传输速度
方式二:rsync
什么是rsync: rsync是rcp的替代品之一,rsync 是一款高效的远程数据备份和镜象工具,
速度:无响应
方式三:wget
什么是wget: wget 是一个经由 GPL 许可的可从网络上自动获取文件的自由软件包。它是一个非交互式的命令行工具。支持 HTTP,HTTPS 和 FTP 协议,支持代理服务器以及断点续传功能。 wget 可实现递归下载,即可跟踪 HTML 页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构,实现远程网站的镜像。在递归下载时,wget 将页面中的超级链接转换成指向本地文件,方便离线浏览。由于非交互特性,wget 支持后台运行,用户在退出系统后,仍可继续运行。功能强大,设置方便简单。
速度:刚开始的时候50M/s 持续3分钟左右就跌落到3M左右的传输速度
方式四:bbcp
什么是bbcp: bbcp 是由SLAC(斯坦福直线加速器中心)的Andy Hanushevsky创立的点对点网络文件拷贝工具。经过简单测试,发现速度比 scp 快了10倍左右,因此推荐大家采用bbcp来取代scp等老家伙 :)
速度:针对20G的文件进行了测试,测试下来平均下来速度在21M左右,耗时16分钟
附图为2G文件的传输速度:
bbcp.jpg

总结


不同的应用场景使用不同的工具,单个大文件个人感觉bbcp还是极好极好的!
安装bbcp【两端都要安装】
wget http://www.slac.stanford.edu/~abh/bbcp/bin/amd64_rhel60/bbcp -O /usr/bin/bbcp
chmod +x /usr/bin/bbcp
来自http://heylinux.com/archives/2984.html的中文参数解释:
-k 保留所有未传输完成的文件,并允许在重试时进行覆盖
-a 保留checkpoint信息用于校验文件的完整性
-r 递归传输指定路径下的所有文件
-P 2 每两秒显示传输的进程
-V 打印调试信息
-f 强制清除远程主机上传输失败的数据
-w 设置Disk (I/O) buffers
算法为(window = netspeed/8[i]RTT = 1000Mb/8[/i]74ms = 1000/1000/8*74 = 9.25 M)
对应链接:http://www.slac.stanford.edu/~abh/bbcp/#_Toc332986061
-s 16 设置并发数为16
参考官方建议:http://www.slac.stanford.edu/~abh/bbcp/#_Streams_(-s)
-T "ssh -x -a -p 2222 -oFallBackToRsh=no -i /home/dong.guo/.ssh/id_rsa -l heydevops heylinux.com /usr/bin/bbcp"
指定远端主机的认证方式:
采用-p 2222指定端口;
设置-oFallBackToRsh=no减少ssh响应时间;
设置-i /home/dong.guo/.ssh/id_rsa指定SSH Key;
设置-l heydevops指定登陆用户;
heylinux.com为远程主机地址;
/usr/bin/bbcp为远程主机的bbcp路径;
参考文档:

http://pcbunn.cithep.caltech.edu/bbcp/using_bbcp.htm 
http://heylinux.com/archives/2984.html 
http://imysql.cn/2008_12_08_using_bbcp_instead_scp 
http://linux.cn/article-4527-1-rss.html 
http://teachmyself.blog.163.com/blog/static/188814229201242314917237/
阅读分享原文:http://www.dwz.cn/2D55vI


0 个评论

要回复文章请先登录注册