Google一向很少对外透露其数据中心的工作,但5月28日,Google伙伴Jeff Dean在Google I/O会议的听众前,轻轻撩起了Google公司基础设施的神秘面紗。
第二页
Dean说,每次新业务上线最能显示出硬件的脆弱。一般每个新业务上线的第一年,通常会发生1000次个别主机的故障、数千次硬盘故障;一次电力输送问题,会导致500至1000太主机失效约6小时;20次机柜损坏,每次会造成40至80台主机下线;5次机柜摇晃,会导致一半的网络封包在传送过程中遗失;整个业务至少一次重新上线,在两天之内的任何时间,影响5%到主机。整个业务中还有一半的几率会过热,可能导致5分钟内让几乎所有服务器当机,恢复则需要花费1到2天地时间。
虽然Google用一般的硬件组装其服务器,却不用传统的封装,他们要求英特尔提供特制的主机板。Dean表示,Google目前在每40台服务器的机柜外,都包了一层外壳,这是Google自行开发的设计,而不是服务器厂商提供的外壳。
Dean表示,Google使用了几种服务器组装的方式,有些配备了很多硬盘,有点则数量比较少。还有一些大范围的差异,他说:“我们不同的数据中心都有一些差异,但数据中心内部不会。”
对于服务器本身,Google偏好使用多核心晶片。许多习惯追求运算速度的软件公司其实很难适应多核心的晶片,但Google沒有这种问题。他们在技术上早就必须适应横跨数万台电脑的结构,因此他们已经进入平行运算的世界。
Dean说:“我们真的很喜欢使用多核心主机。对我们而言,多核心主机就像很多相互连接、性能优越的小机器,对我们来说相对好用。”
虽然Google对搜索和其他服务都要求快速回应,其平行运算能在单一指令的执行相对较慢时产生快速回应的结果。这对于多核心处理器和多线程模式设计者是一大鼓励。Dean說:“单线程的表现对我们来说无关紧要,我们有很多平行化的问题。”
那么Google要如何处理这些一般的硬件问题呢?用软件。
Dean说明了Google软件的三个核心要素:GFS(Google档案系统)、BigTable和MapReduce演算法。虽然Google资助了许多有助于其开展的开放源代码的计划,这些仍然属于专有软件。
Dean表示,三者中级别最低的GFS几乎在所有主机中运作,负责储存资料。某些GFS的化身是“许多petabyte大小”的档案系统。目前有超过200个业务在执行GFS,其中许多都包含数千台主机。
GFS把一块储存的资料(通常是64MB),至少放在三台称为chunkserver的主机內;假如chunkserver发生故障,主服务器便负责吧资料备份到一个新的地方。Dean說:“至少在储存层级,主机故障完全由GFS系统处理。”
一窥Google数据中心自行定制的40台服务器机柜。基础建设大师Jeff Dean在Google I/O大会上展示了这张照片。
网友评论