码迷,mamicode.com
首页 > 其他好文 > 详细

结合P2P软件使用Ansible分发大文件

时间:2016-06-27 00:08:28      阅读:358      评论:0      收藏:0      [点我收藏+]

标签:p2p   ansible   murder   

一 应用场景描述

 现在我需要向50+数量的服务器分发Logstash新版本的rpm包,大概220MB左右,直接使用Ansible的copy命令进行传输,命令如下:

 

ansible all  -m copy -a "src=/opt/software/logstash/logstash-agent-2.3.3-fb.centos6.x86_64.rpm dest=/opt/software/logstash"


在执行的过程中,很快就收到Zabbix网络监控的报警,报警项目就是瞬间流量变化大于5Mbps。同时,有的服务器很快执行完成,有很多出现ssh连接错误,Ansible卡死。

 开启Ansible的pipelining功能依然卡在ssh连接上。分发文件失败!!


所以,使用Ansible来分发执行命令很快速,但是如果直接使用Ansible来处理稍微大一点的文件分发就是一个很大的问题,即使耗费点时间可以忍受,但是单个分发点的带宽也会直接影响分发效率。

对于大文件分发,首先想到的就是BitTorrent,利用P2P协议实现快速分发,节省带宽,提高效率。


二 P2P软件介绍

 这里我们使用Twitter开源的murder。Twitter用它来分发大文件完成代码更新。在早期,Twitter为每天向上万太台的服务器发布代码而头疼,从中央代码服务器向其他成千上万的节点分发代码存在很大瓶颈,因为分发代码的执行时间与需要更新代码的节点成线性关系,节点越多,分发时间越长。为了解决这个问题,Twitter抛弃了以往的集中式架构,转向分布式架构,取名叫murder。使用murder后,他们以前需要40~60分钟的代码发布任务,现在12秒以内就可以完成。


技术分享     技术分享


技术分享





三 使用Ansible执行分发命令





参考文档:

http://blogs.cornell.edu/info4220/2013/04/05/murder-distributed-large-scale-code-deployment/

http://www.royans.net/wp/tag/tools/


本文出自 “Linux SA John” 博客,请务必保留此出处http://john88wang.blog.51cto.com/2165294/1793080

结合P2P软件使用Ansible分发大文件

标签:p2p   ansible   murder   

原文地址:http://john88wang.blog.51cto.com/2165294/1793080

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!