谷歌数据中心揭密:超过20万台服务器
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大会上展示了这张照片。