网上笑话转载
樵夫的斧头掉进了河里,河神为了奖励他的诚实给了他一把金斧头一把银斧头,樵夫很高兴的回到家,结果发现这两把斧头河神从某P电商买的,一把是全斧头,一把是很斧头。
山寨源站系统里惊悚吐血故事系列之第一季第三集:起源~!
2015年我们CDN运营团队开始接应海外CDN运营服务工作,在运营初期,就有某位神仙大佬提出我们要建立自己的源站系统,理由如下:
1、无论内容是出国,还是进口,在现有国际带宽及其超级防火墙的共同作用之下,必定大文件传输会非常之缓慢;
2、客户需要一种途径,将大文件内容传输到境外或境内,这里需要做中转。
综上所述,我们需要在境内和境外建设大文件中转站系统,接应进出大陆网络的内容。中转站之间要用CTG高速网络进行同步内容。
需求有了,开始逐步山寨~!
根据需求看,我们至少需要2个部件,1、上传部件,接收客户上传的大文件;2、分发部件,CDN需要通过http回源获取内容。
1、上传部件,业界常规都是FTP,考虑到中国网络的情况,我们特意论证引入了一套IBM的高速传输软件系统(Aspera),可以实现高速的上传,不过客户那边需要安装客户端。FTP的软件,我们直接选择了vsFTPd开源软件。
2、分发部件,我们直接选择 Nginx作为http分发器。
仅仅有了上传和分发这些功能部件是不够的,从文件保护的角度,以及负载均衡,我们还需要一个文件系统,需要形成一个集群内服务器文件的共享和保护。换句话说,如果服务器1挂了,服务器2可以顶上,这些物理服务器之间的文件需要共享,文件需分布式存放。
根据这个需求,我们有以下三个方案做选择:
1、挂NAS盘,NAS盘内部做Raid磁盘保护;挂NAS盘的好处是,挂载简单,只要网络和磁盘IO足够强大,应付一般性任务足够。唯一可能的故障就是NAS盘的网口如果挂了,就数据读写就挂了。
2、HDFS文件系统:脱胎于hadoop的分布文件系统,最大的好处是1主2副的数据保护,在集群内只有不是3台机器同时挂掉,这个目标文件始终可以在其他的机器上完整拼接起来;但是致命问题是他自带的http分发的链接是飘忽的,比如你想访问http://ip/123.zip,这个IP很可能是集群中的某一个IP,这样对于CDN回源访问时不可以预知,也就是会造成回源不可预测的失败。
3、OpenStack的ceph文件系统:ceph也是采用了1主2副的分发布文件保护,最大的好处是从系统层面看到的文件与本地文件系统无异,类似透明方式进行读取和写入,这样非常适合与Nginx进行集成。但是最大问题是ceph的稳定性非常不好,4台组建的集群服务,经常会莫名其妙的挂了,同时没有可视化的监控手段,都只能采用命令行ceph -s的轮询监控,一旦出现大批量文件读写操作,我们其实无法获知ceph是否稳定工作,因为那个ceph -s经常不响应。
两权相害取其轻,我们愉快的走上了CEPH这条不归路,惨痛教训随之而来。请看下集~!
如有兴趣可关注公众号:国际cdn讲堂