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

一 应用场景描述

现在我需要向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/

时间: 2024-10-18 16:28:35

结合P2P软件使用Ansible分发大文件的相关文章

如何分发大文件、大文件传输解决方案

随着云计算.大数据技术不断发展,4K 视频.虚拟现实(VR).视频直播等互联网应用领域不断升级更新,企业网.数据中心规模持续扩大,企业拥有的数据急剧增长,海量文件随之产生. 同时,互联网时代,众多行业都面临大型文件传输的问题,速度慢,是否安全,是优先考虑的前提! 一直以来,企业通常使用QQ软件.FTP.网盘或拆分数据.快递硬盘等方式进行海量文件上传和下载. 但是这些方式存在很多弊端,导致企业不能有效利用海量文件: 通常的一些方法: 1.使用QQ等软件直接对传:这种方法在线随时都可以传,比较方便,

如何分发大文件、文件夹传输解决方案

总结一下大文件分片上传和断点续传的问题.因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况.http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件切片(分块),但这不是我们现在说的重点,我们要做的事是保证在网络中断后1G的文件已上传的那部分在下次网络连接时不必再重传.所以我们本地在上传的时候,要将大文件进行分片,比如分成1024*1024B,即将大文件分成1M的片进行上传,服务器在接收后,再将这些片合并成原始文件,这就是分片的基本原理.断点续

如何分发大文件、大文件传输解决方案-JS

前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对 Http 协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践.该博客重在实践. 一. Http协议原理简介 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且H

浅谈HTTP FTP和P2P网络大文件传输的优劣势

随着各种行业和硬件设备的发展,大文件越来越多,比如在媒体行业为了保证图片和视频的清晰,和以前的相比,都比较大,尤其是出版社等行业.确保大文件能快速的传输,现在很多企业还是使用的硬盘邮寄的方式.如果使用网上传输的方式,可以实现吗? 想弄清楚这个问题,我们首先用知道现在网上信息传输常用的方式HTTP FTP和P2P优劣势.我们一起来看下吧: 1. Http传输:比较传统的文件分发方式,优点是部署方便,一般会采用IIS.Apache.Nginx.Tomcat等web服务器,基本上能运行网站的web服务

不使用软件在Win7下查找大文件的方法

最近发现了一种可以不使用软件在win7系统下查找大文件的方法,分享如下: 第一步:打开我的电脑,进入要查找文件的磁盘.然后找到上边的搜索栏,如图: 第二步:在搜索栏中输入"大小:",如图: 第三步:输入完成后,在搜索栏下会弹出一个选项栏,可以选择查找文件的大小范围,如图: 第四步:可以直接选择需要查找的文件大小范围,如我选择巨大的查找结果如图: 第五步:如果感觉巨大的范围还是不够大,可以自己填写软件大小的查找范围,如"大小:>3GB"或"大小:>

免费云主机文件传输软件推荐,大文件极速秒传

在对云主机进行运维的过程中,我们总是需要在云主机和本地之间进行文件传输.但是文件传输的过程往往会受到带宽的限制,譬如小编仅从云主机上下载一个300兆大小的文件就需要10分钟,上传一个60兆大小的文件需要2分钟,如果上传下载更大的文件,将耗时更长,运维效率将更加低下,并且传输过程中还会和业务系统争夺带宽资源,严重影响应用质量.而市面上大多能够实现快速上传下载大文件的软件工具,都需要支付一定的费用,并且安全性无法得到保障. 为了解决这一困扰,小编测试并试用了众多文件传输类软件或工具,终于发现一款高效

百度云无需软件下载大文件方法

chrome浏览器或者同内核浏览器要下载的大文件页面  按F12  点一下Console Object.defineProperty(this , 'navigator' , {value: { platform: "" }}); 粘贴上面一行 回车然后点下载就行了  浏览器或者迅雷下

怎么远程传输大文件?

在日常工作中,我们常常会遇到将电脑的文件,特别是大文件资料进行传输,比如设计稿件,软件开发包,视频素材等等大文件资料进行传输发送.虽然网络通信技术不断发展,对大数据量,高频次,远距离的文件传输成为我们工作中常常遇到的问题.常用的QQ文件传输,微信发送,邮箱,FTP等常规方式,都要面对一方发送,一方接收,或者提前上传到服务器,然后接收方下载,同时也收到附件大小的限制,导致工作效率大大降低.传统的传输方式主要分为:http与ftp.我们常用的邮件发送就是http的一种,其主要是便捷,简单.然后很多h

为N台linux服务器传输大文件

1.服务端与客户端建立公钥及私钥信任关系.服务端作为原始文件存储地,ansible主机.1.1. 在ansible主机上创建公钥.ssh-keygen -b 1024 -t rsa[[email protected] ~]# ssh-keygen -b 1024 -t rsaGenerating public/private rsa key pair. #提示正在生成rsa密钥对Enter file in which to save the key (/home/usrname/.ssh/id_