大规模集群下使用P2P技术软件(Murder)分发大文件

标签: 大数据平台 | 发表时间:2018-07-22 13:41 | 作者:[email protected]
出处:http://lxw1234.com

一般情况下,在运维多台服务器的时候,使用Ansible来完成文件的分发和命令的执行。但如果运维的机器数量多,而且内网带宽有限的情况下,比如,需要向500台机器分发一个1G大小的升级包,这时候如果使用Ansible直接分发,那么肯定会引起带宽占满,导致SSH链接超时,Ansible执行卡死,分发任务执行失败。

那么对于这种大文件的大规模分发,能想到的好的解决方案就是利用P2P网络实现,节省带宽,提高效率。关于p2p网络,大家可以自行搜索,典型的代表就是BitTorrent(BT下载)。

这里介绍的P2P文件分发的软件是Twitter开源的Murder。早期Twitter每次版本更新,需要向上万台服务器分发代码,从中央服务器向那么多台服务器上分发文件,服务器越多,分发时间越长。后来Twitter研发了Murder,用来解决这个问题,以前需要40-60分钟完成的代码发布任务,使用Murder之后,只需要几十秒就可以完成。

murder

murder

murder

Murder的架构

murder

整个Murder由三个组件构成:

  • Tracker

它是运行在一台服务器上的单个服务,用来根据哪些torrent文件正在被分发,以及管理和维护Peer节点的信息和状态。

  • Seeder

存放需要向其他主机分发的文件的服务器。Seeder将要分发的真实文件制作成torrent,这个torrent文件很小,只存放关于真实文件的基本Hash信息,torrent文件需要先分发到要下载文件的服务器(peer)上。

  • Peer

就是要接收文件的服务器,他们之间可以互相传输文件。

Murder的使用示例

我这里有4台服务器,角色分别如下:

tracker  192.168.1.220

seeder  192.168.1.220

peers   192.168.1.222、192.168.1.228、192.168.1.229

Tracker和Seeder在同一服务器上。

1.    下载和部署Murder

https://github.com/lg/murder下载zip包,并解压到/opt目录下;

在所有的服务器(Tracker、Seeder、Peers)上,将Murder部署在/opt目录下,部署后的目录为:/opt/murder-master

2.    启动Tracker服务

在Tracker服务器上执行:

cd /opt/murder-master/dist

nohup python murder_tracker.py –port 8998 –dfile data –logfile urder_tracker.log &

 

–port tracker监听的端口,默认是8998

–dfile  存储近期下载信息的文件

–logfile  tracker日志文件,默认是标准输出

3.    在Seeder服务器上准备好要分发的文件,并创建种子

Seeder 服务器上,要分发的文件:

[liuxiaowen@test04v ~/lxw]$ du -h /home/liuxiaowen/lxw/test.tar.gz

3.1G    /home/liuxiaowen/lxw/test.tar.gz

制作种子:

cd /opt/murder-master/dist/

python murder_make_torrent.py /home/liuxiaowen/lxw/test.tar.gz 192.168.1.220:8998 /tmp/test.tar.gz.torrent

其中,第一个参数为要分发的文件;第二个参数为Tracker服务器的地址和端口;第三个参数为torrent文件路径。

将种子文件分发至 Peers

用Ansible将很小的torrent文件,分发至所有peers节点,关于Ansible的使用,请自行搜索,你也可以使用SCP。

ansible myhosts -m synchronize -a “src=/tmp/test.tar.gz.torrent dest=/tmp/”

启动 Seeder 服务:

cd /opt/murder-master/dist/

python murder_client.py seed /tmp/test.tar.gz.torrent /home/liuxiaowen/lxw/test.tar.gz 192.168.1.220

最后一个IP是Seeder服务器本机IP。

4.    在peer节点执行下载

单个节点下载:在peer节点上,

cd /opt/murder-master/dist/

python murder_client.py peer /tmp/test.tar.gz.torrent /tmp/test.tar.gz 192.168.1.220

单台当然不能体现Murder的优势了,使用Ansible命令,在多台Peer节点上同时下载:

ansible myhosts -m shell -a “python /opt/murder-master/dist/murder_client.py peer /tmp/test.tar.gz.torrent /tmp/test.tar.gz 192.168.1.220″

 

PS:这种P2P分发,在大规模服务器环境下才能体现出优势,节点越多,分发任务消耗的整体时间越短。。

 

 

如果觉得本博客对您有帮助,请 赞助作者

转载请注明: lxw的大数据田地 » 大规模集群下使用P2P技术软件(Murder)分发大文件

相关 [集群 p2p 技术] 推荐:

大规模集群下使用P2P技术软件(Murder)分发大文件

- - lxw的大数据田地
一般情况下,在运维多台服务器的时候,使用Ansible来完成文件的分发和命令的执行. 但如果运维的机器数量多,而且内网带宽有限的情况下,比如,需要向500台机器分发一个1G大小的升级包,这时候如果使用Ansible直接分发,那么肯定会引起带宽占满,导致SSH链接超时,Ansible执行卡死,分发任务执行失败.

【原创】IP摄像头技术纵览(七)---P2P技术—UDP打洞实现内网NAT穿透 - 池上好风---码农改变世界 - CSDN博客

- -
【原创】IP摄像头技术纵览(七)—P2P技术—UDP打洞实现内网NAT穿透. 本文属于《IP摄像头技术纵览》系列文章之一:. 本文可以自由转载,但转载请务必注明出处以及本声明信息. NAT技术的实际需求在10几年前就已经出现,为了解决这个问题,10几年来全世界的牛人早已经研究好了完整的解决方案,网上有大量优秀的解决方案文章,笔者自知无法超越,所以秉承拿来主义,将优秀文章根据个人实验及理解整理汇录于此,用于解释IP摄像头整个技术链路.

udp打洞穿透nat实现p2p GitHub - pannzh/P2P-Over-MiddleBoxes-Demo: A simple demo of P2P communication over middle boxes such as NAT

- -
一个P2P聊天程序,使用UDP打洞创建链接. ./p2pchat/server <服务器端口号> ./p2pchat/client <服务器IP>:<服务器端口号> >>> help. 该UDP打洞示例仅支持锥形地址转换器(Cone NAT),如果两个客户端都在同一个公网结点下,需要确保出口路由器支持.

W3C将开发P2P浏览器标准

- guangtao - cnBeta.COM
万维网联盟W3C今天透露,将制定一项直接让浏览器和浏览器之间对等通信的标准,而不需要中央服务器. 该标准可以减少认为干扰和嗅探,提高互联网络通信的可靠性,让浏览器可以实时运用P2P的特性传送内容,包括视频、音频和用于实时通信的“补充”.

P2P网站应用安全报告

- - WooYun知识库
有关e租宝公司被调查的新闻在微博、朋友圈被引爆刷屏. 许多人看中P2P理财的高收益,却忽视其中的风险. 猎豹移动安全实验室监测发现,P2P网站已成钓鱼欺诈网站的重灾区,大量P2P手机理财软件也存在安全隐患. 网民须小心选择P2P类理财产品. P2P网贷在2007开始传入国内,2015年呈现爆发态势,成交规模已进入万亿元时代.

视频监控P2P解决方案

- -
本文分析了日益增长的民用级别家庭和个人网络视频监控市场的需求特点,并给出了一种经济可行易于大规模部署的P2P解决方案. 由于篇幅有限,本文只给出了方案的思路,未对更深入的技术细节做详细的论述,有兴趣的朋友可以继续深入研究. 网络视频监控市场持续火爆升温,除了公共安全市场持续高速增长之外,民用市场中家庭和个人视频监控的需求近年也在逐渐增多.

P2P 文件分发系统 Dragonfly

- - OSCHINA 社区最新软件
Dragonfly(蜻蜓)是阿里自研的 P2P 文件分发系统,用于解决大规模文件分发场景下分发耗时、成功率低、带宽浪费等难题. 大幅提升发布部署、数据预热、大规模容器镜像分发等业务能力. 开源版的 Dragonfly 可用于 P2P 文件分发、容器镜像分发、局部限速、磁盘容量预检等. 它支持多种容器技术,对容器本身无需做任何改造,镜像分发比 natvie 方式提速可高达 57 倍,Registry 网络出流量降低99.5%以上.

OneSwarm – P2P 私密共享 | 小众软件 > 网络工具

- 本 - 小众软件
OneSwarm 是华盛顿大学的研究试验项目制作的 BT 下载客户端,旨在为朋友之间的 P2P 文件共享增加更多隐私保护和用户控制. OneSwarm 采用网页界面,可以作为普通 BitTorrent 下载客户端使用,此时与普通 BitTorrent 下载软件没有区别. 软件特色在于文件共享过程的私密安全.

T週刊:由宅男角度看 P2P 崛起的10年

- Cary - T客邦
網際網路的發達,促成了許多文化交流. P2P 的出現,讓許多當日播出的電視影集,第一時間就能傳送到世界各地. 除了讓轉播商與影集的代理商顏面無光,利益受損,更引起了一連串的法律爭議,以及無心插柳,意外得利的 ACG 產業. 不管是女僕咖啡廳,或是動漫同人誌,都間接受惠於網路傳來的動漫文化. 網際網路的歷史從1983年開始,經歷了20多年的時光,若把1999年,第一個將P2P技術用來「分享好物」的Napster當作是P2P抓檔的始祖,利用P2P技術分享檔案的歷史算起來就已經突破了11年.

P2P租车服务Getaround模式被证明可行

- kxxoling - 36氪
在今年5月份,P2P租车服务Getaround获得了TC Disrupt冠军大奖并正式上线,由于Airbnb的火热,不管他们喜不喜欢,人们现在已经把它叫做“租车领域的Airbnb”. 刚开始很多人认为没有人愿意把自己的车租给别人使用,我也这样想,但就像Airbnb一样,人们错了. 现在每位车主平均每月可以获得325美元(2000人民币左右)的收入,其中收入排前25%的车主更是平均每月可以获得910美元的收入.