无疑,对于云计算模式,最大的挑战是使“云端”具备超高的计算性能、海量的数据存储、超常的网络吞吐能力,以及近乎无限的扩展能力。摩尔定律在过去几十年间对我们都是适用的,但解决大规模计算问题却不能单纯依赖于制造越来越大型的服务器(通常称为向上扩展)。把许多常规的PC服务器组织在一起,形成一个功能专一的分布式处理的集群系统(通常称为向外扩展)是一种已经获得普及的、可行的方案。
2006年8月9日,Google首席执行官埃里克·施密特(Eric Schmidt)在搜索引擎大会(SES San Jose 2006)上首次提出“云计算”(Cloud Computing)的概念。1998年Google公司成立时,只是一家搜索网络信息的公司。而当时没有人会想到,Google采用的技术会演变成一种典型的云计算技术。
随着互联网的发展,新兴互联网公司面临业务数据量超乎想象地急剧增长,采用高成本的传统IT架构应付海量数据的存储、查询、处理要求将难以为继。以Google公司为例,其核心业务是搜索,这对大规模并发用户请求的处理有极高要求。而对于初创时期的Google,通过传统IT架构实现高性能计算、海量存储、高网络吞吐及高可靠性既不现实,更不能满足快速扩展的需求。唯有在采用廉价的普通PC服务器、Linux等开源软件的基础架构上,自行设计开发并行计算、分布式文件系统、并行网络访问控制等软件系统。这种尝试无疑获得了成功,甚至可以认为,这种创新性的技术对现有IT基础架构是一种颠覆性的变革。
在人们的观念里也总感觉服务器是稳定的、可靠的,若不是软件或操作引起的故障,仿佛服务器硬件一般是不会出故障的。相较于个人PC,PC服务器在设计和制造时就以追求高可靠性为目标,选用的配件也更精良。然而,构成“云端”的大规模并行系统,服务器集群中的服务器数量已经是以千、万、十万甚至更高的单位在计数。在这样巨大的集群规模下,节点失效问题是不可忽略的。既然在大规模服务器集群面前,节点失效是不可避免的,而且是必须解决的问题,他们索性就采用低档服务器大大降低服务器成本,并将节点的失效作为系统的常态来对待。在云计算技术框架下,将服务器失效设想为常态化,是云计算硬件系统的一个重要特征。
以Google为例,经过长期的发展,其服务器数量已经大得惊人。按照传统配置的服务器,每个服务器管理人员所能管理的服务数量是相当有限的,而Google服务器在配置上充分考虑到了服务器管理的工业化,在Google机房的一名管理人员所管理的服务器数据量是相当多的,当服务器出现故障时采用直接更换的简化方式。这种工业化运营管理下的服务器具有以下几个特点:简约化的设计,不追求最高的性能,去掉一切冗余组件;模块化的设计,可以以集装箱方式部署。
据有关资料介绍,一款采用技嘉主板9IVDP的Google定制服务器配置如下。
● 芯片组描述:Intel E7320。
● CPU类型:2×Xeon (nocona)2.80GHz。
● 总线频率:533MHz。
● 主板结构:ATX。
● 内存结构:8个ECC DDR1插槽,最大支持16GB的内存。
● IDE控制器:2个IDE接口。
● SATA控制器:6个SATA接口。
● PCI插槽:1×PCI,1×PCI-X。
● I/O接口:2个USB接口,2个PS/2键盘/鼠标接口,1个RJ-45网卡接口。
与配置相近的商用PC服务器相比,Google定制服务器在存储和内存上做了强化,减少了一些服务器使用率低的接口,包括显卡芯片、RAID卡等。对外接口方面,Google服务器提供一个串口、两个USB接口、一个RJ-45网络接口、两个PS/2接口,由于服务器节点不需要用户交互功能,这一接口数量比一台普通的PC还要少。