服务器 频道

好好学习 天天谷歌——谷歌服务器架构浅析

    【IT168 专稿】Google,无疑是互联网时代最闪亮的新星。截止到2008年1月22日,Google美国主站在Alexa排名第二,Alexa Top100中,各国的Google分站竟然霸占了超过20个名额,不得不令人感叹Google的强大。不论何时,不论何地,也不论你搜索多么冷门的词汇,只要你的电脑连接互联网,只要你轻轻点击“google搜索”,那么这一切相关内容google都会在1秒钟之内全部搞定,这甚至比你查询“我的文档”都要快捷。这也就是为什么Google创业十年,市值超过1500亿美金的原因。

    有人可能认为谷歌拥有几台“蓝色基因”那样的超级计算机来处理各种数据和搜索,事实是怎样的呢?下面我们就将详细解析神奇谷歌的神奇架构。

    硬件:

    截止到2006年,Google大约有45万台服务器,有超过200个计算机集群,处理不同地域的不同任务。可惜服务器的详细配置和最新集群的具体情况,在多个文献库里面都查询不到,我个人理解,这可能属于商业机密。大概也是因为机密的缘故,强大的Google计算机集群并没有递交Top500计算机的申请,多年来我们在Top500中都看不到Google的影子。(进入Top500需要提交并且公开自己计算机系统的详细配置)不过根据文献资料,可以肯定的是,这45万台服务器都不是什么昂贵的服务器,而是非常普通的PC级别服务器,其中的服务器硬盘在两年前还普遍是IDE接口、并且采用PC级主板而非昂贵的服务器专用主板。Google的集群也全部是自己搭建的,没有采用Myricom 的 Myrinet或者Giganet 的 cLAN等先进昂贵的集群连接技术,Google各个数据中心和服务器间不同的耦合程度都随需而定自行连接。

    那么google的存储呢?Google存储着海量的资讯,近百亿个网页、数十亿张图片。早在2004年,Google的存储容量就已经达到了5PB。可能很多读者一开始都认为Google采用了诸如EMC Symmetrix系列磁盘阵列来保存大量的资讯,但是Google的实际做法又一次让我们大跌眼镜——Google没有使用任何磁盘阵列,哪怕是低端的磁盘阵列也没用。Google的方法是将集群中的每一台PC级服务器,配备两个普通IDE硬盘来存储。不过Google倒也不是都是什么设备都落后,至少这些硬盘的转速都很高,而且每台服务器的内存也还算比较大。最大的电脑DIY消费者是谁?恐怕Google又登上了这个DIY宝座。Google的绝大部分服务器甚至也不是采购什么大品牌,而是购买各种廉价零件而后自行装配的。有趣的是,Google非常不满意现存的各种PC电源的功耗,甚至还自行设计了Google专用服务器电源。

    很快,我们就有了疑问。这样的一个以PC级别服务器搭建起来的系统,怎么能承受巨大的工作负载呢?怎么能保证高可用性呢?的确,这些低端的服务器经常出现故障——硬盘坏道、系统宕机这类的事故其实每天都在45万台服务器中发生。而Google的方法是设立镜像站。以Google主站为例,2003年就在美国硅谷和弗吉尼亚设立了多个镜像站。这些镜像站其实不是传统的镜像站。真正的镜像站是双机热备,当一台服务器宕机时,另一台服务器接管相关任务。而Google的镜像站其实真正的职责是DNS负载均衡,所以有的Google镜像站本身还有自己的镜像站。这里举例说明Google镜像站的作用:一个访问,DNS正常解析到A处,但当A处负载过大时,DNS服务就将域名解析到B处,这样既达到了冗余,也缩减了投资。由于不是双机热备,某一时间,镜像站的内容可能略有不同,不过对于精确度要求不那么高的普通检索而言,并不是问题。
0
相关文章