以中山大学镜像站为例谈如何利用开源来搭建镜像网站

所属分类: 建站经验 / 网站运营 阅读数: 0
收藏 0 赞 0 分享

基本流程
服务器&带宽&存储
同步源选择 ,架构选择
提供的服务:ftp | http | rsync 3.官网获取同步方法或工具,源列表(选择上游源)
配置同步工具
定时同步 (crontable)
备份工作,监控与报警,日常维护,优化
文档编写(Wiki),Submit MirrorsList
其他


0/8.服务器&带宽&存储
服务器: Linux ,maybe windows ?..orz
带宽: 越大越好(上行带宽太小无法提供更好的服务,下行太小无法及时同步完整(按网络情况分时段同步,同时尽量避开负载高峰))。 如果要对外服务,需要一个公网IP,有域名更好。
储存: 越大越好(如果是对外提供大量服务,家用的硬盘估计撑不了一年)。可考虑用SSD作为cache。


1/8.同步源选择 ,架构选择
同步源选择:

按需求选择需要的发行版,稳定性第一,多样性第二,满足需求即可。同时也要注意”性价比“(自用镜像无需考虑),例如 OpenBSD之类的性价比可能很低 ,消耗大量的同步流量和磁盘空间可能性价比不是很大,同时例如大学中的镜像站需要网络中心的支持,所以需要考虑到校内用户的支持和热度(学生支持度不 够,nc的支持可能也会下降),同时校内有一定热度才好传承,所以如果添加类似Ubuntu的发行版”性价比“会很高。 慎重选择上线的发行版(自身资源估计),上线尽量保持稳定。切勿随意更换服务。注意预留足够空间!

感谢中大IGI师兄以上给出的建议。推荐:《搭建linux mirror镜像》

架构选择:

一个发行版可能保护多种架构,(例如debian :alpha、amd64、arm、armel、hppa、hurd-i386、i386、ia64、m68k、mipsel、mips、powerpc、s390、sh and sparc,source,debian现有oldstable,stable ,testing,unstable,还有experimental版本),所以需要按需求选择需要同步的架构(因为磁盘空间不是无限的),一般来说就选择i386,amd64,外加source。

2/8.提供的服务:ftp | http | rsync
FTP:vsftpd ?还有很多,不太了解,囧。
HTTP: Webserver建议选择nginx或lighttpd,因为镜像包含大量的静态文件,这两者据说比Apache更有优势, 记得cn99挂掉后,将Apache换到nginx了? 建议 :nginx, lighttpd
Rsync:为下游提供,例如清华,中科大有开放某些发行版,国内提供rsync的镜像站不多,主要是提供rsync会有很高的IO负载,一般承受不起。如果有意愿提供rsync,google即可。


3/8.官网获取同步方法或工具,源列表(选择上游源)
同步方法或工具: 一般就是Rsync,然后从上游拉东西,可以自己写脚本,也可以用官方提供的工具,例如debian的ftpsync等。 切勿使用wget 等工具!不能保证文件link等属性,也无法做到增量同步,浪费资源!

清华的同步脚本:http://git.tuna.tsinghua.edu.cn/
北交Ideal的Mirror工具:https://github.com/ideal/mirror
(感谢ideal曾经提供的帮助,有意愿搭建镜像站的同学遇到 问题可在Twitter上找到他)Rubygems,PyPI,npm也是同样找寻或自己编写同步脚本后工具,或做反向代理。除了主动拉的,还有是官方主镜像推送到官方其他镜像,例如ArchlinuxARM。
ubuntu还有个同步工具 apt-mirror
上游源:

上发行版官网获取MirrorsList,然后找寻提供rsync服务的镜像,选择上游源,一般选择国内,日本,新加坡,台湾等亚太地区的源。 注意:官方rsync可能只对指定IP开放(负载问题)

4/8.配置同步工具
自己写同步脚本 :
失败邮件报警,同步锁控制,两步同步,其他rsync参数。
Rsync教程:读 igi的同步脚本: http://www.igigo.net/archives/65
使用同步工具:
清华的同步脚本:http://git.tuna.tsinghua.edu.cn/
北交Ideal的Mirror工具:https://github.com/ideal/mirror/
PyPI,Rubygems,npm:

读Rubygems和PyPI同步简单教程 : http://fangpeishi.com/post/da-jian-pypiji-rubygemsjing-xiang
读npm同步教程 :http://maskray.me/blog/2012-11-21-tuna-npm-mirror
注意: 添加同步锁,debian系需要两步同步(先同步pool目录)。

5/8.定时同步 (crontable)
定时同步: 把写好的cron脚本丢进 /etc/cron.d/ 《定时自动任务crontab使用教程》 注意:

/etc/cron.d the file names must conform to the filename requirements of run-parts: they must be entirely made up of let‐ters, digits and can only contain the special signs underscores (‘‘) and hyphens (‘-’). Any file that does not conform to theserequirements will not be executed by run-parts. For example, any file containing dots will be ignored. This is done to prevent cron from running any of the files that are left by the Debian package management system when han‐ dling files in /etc/cron.d/ as configuration files (i.e. files ending in .dpkg-dist, .dpkg-orig, and .dpkg-new). (特殊字符只可以使用’‘和’-’,另外以’.’开头的文件会被忽略)
crontab脚本中注意path的配置,例如使用rubygems的同步工具碰到rake abort等问题。


6/8.备份工作,监控与报警,日常维护,优化
备份:

当配置文件发生变化时候利用脚本将其备份到Dropbox. 监控与报警:

用awk等工具对同步日记进行分析。
配置邮件服务程序,例如exim4,在之前的脚本中添加出现异常时候发邮件。(移动139邮箱有短信通知功能)。
部署监控程序,例如MUNIN,对磁盘情况,网络情况,负载情况等进行监控,以图表的形式直观呈现出来。
日常维护:

当出现同步异常失败时(例如:上游down掉了,和上游的网络异常了,磁盘异常等等),需要更换上游或者其他方法。

优化: 主要是针对镜像站大量的静态文件进行的优化.以及观察监控对流量和负载进行合理分配。

7/8.文档编写(Wiki),Submit MirrorsList
文档编写: 一个是为了将经验积累,方便传承,同时也是为了方便其他搭建镜像站的朋友。例如建个wiki。

Submit your mirror to mirrorslist:

当镜像站足够稳定时,可考虑提交到官方mirrorslist,让更多的朋友知道,有小小的成就感也容易鼓励自身和传承。内网的镜像可在内部交流平台公开分享。
若是校园镜像站需要注意宣传,以得到更多师生的支持,同时方便传承。


8/8.其他
如果是在大学内要搭建一个镜像站,需要获取网络中心的支持,可能需要:

一颗“耐”心;
注意传承问题 (校内热度将影响nc对镜像站的支持程度,做好文档,发展好师弟师妹,如果有个Linux协会啥的平台组织最好不过了);
找靠谱老师支持(镜像快死掉了的时候,老师可能能救活它),熟悉nc里的老师或领导(解决问题更方便),记得镜像站要帮助宣传nc,记得感谢提供帮助的同学,老师和组织;
稳定为先。

更多精彩内容其他人还在看

当当网海量信息的组织与发布经验分享

当当网自成立以来,内部技术体系的发展已经有15年左右的历史了。系统架构也经历了从高度集成的软件向分布式、低耦合、SOA化系统的演进过程,形成全面支持网上零售业各种业态模式的系统架构,每天支撑着千万级的PV访问,承载了超过100亿元人民币的年营业额,2013年双11峰值流量达到日常... 查看详情
收藏 0 赞 0 分享

四种自助建站排版技术有什么优缺点?优劣对比分析

  现在的自助建站排版技术主要分为四种,绝对定位布局排版系统、Table布局排版系统、流式布局排版系统、综合布局排版系统,这四种排版技术都是现在自助建站使用频率比较高的,那这四种排版技术究竟有什么优缺点呢?所以今天小编就为大家分析这四种自助建站排版技术,一起来看看吧!  绝对定位... 查看详情
收藏 0 赞 0 分享

如何注册网站 新人注册网站图文步骤

由于目前所见即所得类型的工具越来越多,使用也越来越方便,所以网站制作已经变成了一件轻松的工作,不像以前要手工编写一行行的源代码那样。一般初学者经过短暂的学习就可以学会制作网站,于是他们认为网页制作非常简单,就匆匆忙忙制作自己的网站,可是做出来之后与别人一比,才发现自己的网站非常粗... 查看详情
收藏 0 赞 0 分享

浅析豆瓣网站运营的主要技术模式

豆瓣全部使用python开发。网站后台的搜索引擎基于Twisted, GUI基于Quixote,还用到了cElementTree, MySQL和 PIL,这是豆瓣技术的基础。纯粹的技术原理之外,相关豆瓣技术还有三个核心原则:以用户为中心、简单的前台与复杂的后台、快速开发。以用户为... 查看详情
收藏 0 赞 0 分享

深入分析京东云数据库的运营模式

电商不仅仅是大数据驱动的,京东用大数据为用户、商品等带来运营效率的提升。同时,从在线的数据访问来讲,电商业务需要非常快速的数据访问。大家可以看到,京东随便打开京东首页或类似的电商首页,图片是京东的资产,是商品形象的描述,可以用CDN加速。除了图片之外,其他几乎都是动态内容,量很大... 查看详情
收藏 0 赞 0 分享

剖析美团的以Python为主导的云平台发展战略

独立出来的美团云业务部目前有十几位工程师。虽然部门独立,但工作中仍然跟系统运维组有紧密的配合。美团系统运维组原本就有三分之二的开发工程师,而运维工程师也全部具备编写代码的能力,因此开发与运维工程师能够进行紧密的配合。相关厂商内容美团云的最初版本起步于2012年7月,一开始是作为私... 查看详情
收藏 0 赞 0 分享

浅谈如何提高网站内页权重

近期发现手上优化的网站收录量还好,收录率达到40%以上,但是就是没排名,分析了下作了相应调整,后续优化效果将相继文章分享出来。以下是关于提高网站内页权重的看法,算是抛砖引玉,有不妥的地方,欢迎大家联系本人探讨。   一、提高文章质量   高质量的内容搜索引擎一旦收录,认可了也会给... 查看详情
收藏 0 赞 0 分享

搜狐云发展中DomeOS的开发与Docker的应用

2011年初,为解决搜狐内部各部门海量数据存储和数据在线快速读取的问题,北京研发中心利用半年的时间,汇聚国内多位存储方面的顶尖人才自主研发了一整套分布式存储系统,其中包括针对海量小文件的 BFS 存储系统,针对大文件的 Blade Store 存储系统,以及针对元数据的 Blad... 查看详情
收藏 0 赞 0 分享

郝志中搜狐运营总监/迅雷看看CEO演讲总结 产品运营周期的系统方法

  本文为作者根据郝志中授课的课堂笔记整理而成:  讲师:郝志中  著作:《用户力》  工作经历:搜狐运营总监、百度销售市场、酷六高级副总裁、灵图CEO、迅雷看看CEO、大咖说创始人  产品运营周期:种子期、爆发期、平台期  种子期:新产品上线,第一批产品用户形成阶段  爆发期:... 查看详情
收藏 0 赞 0 分享

BAOCMS带你了解网站设计应该注意的4大注意事项

  O2O作为当下最为热门的行业,吸引着无数投资和创业者投身其中,O2O平台作为行业的的窗口当然至关重要,如何才能搭建好一个用户体验高、功能全面的生活O2O网站,一直是投资和创业者所思考的。纵观现在整个互联网行业,美团、大众点评、百度糯米等为数不多的O2O网站平台是比较完善而且有... 查看详情
收藏 0 赞 0 分享
查看更多