百度云计算数据中心的节能和降耗
DOIT云计算 12年09月10日 11:12 【转载】 作者:三水 责任编辑:张文希
百度发展到今天,已经拥有5亿的网民,每天接收来自全世界138个国家的,超过60亿次的搜索请求。搜索引擎公司很大的一个特点就是,要处理互联网上几乎所有的数据,只要你连接进互联网,这些数据都要被百度这样的搜索引擎公司索引,然后来供广大网民来使用。
目前,已经处理的数据量是百PB量级,而且这个数量还在以更快的速度发展。如今,随着带宽的进一步提高,以及移动设备的进一步发展和普及,需要处理的数据量增长得越来越快,特别是近几年来,多媒体数据大量产生。占得空间要大很多,而且对上传的频率和速度要求也比以前高很多。一个工作就是对数据中心进行节能减排,另一个工作就是数据中心的设计。
百度研究数据中心的设计,实际是研究如何把这些分散的服务器资源集中管理起来,然后将这些计算和存储资源进行统一的调度和分配。
从更高层面看,在云计算时代,或者说互联网发展得比较成熟的时候,整个的计算体系都在发生一些变化。
百度主要关注数据中心的几个方面。
第一个就是容量,由于互联网产业的快速发展,用户和数据量随之激增,百度的后台在不断扩容。由最开始的几百台服务器规模的单体数据中心,发展到现在的十万量级服务器规模的单体数据中心。
第二个是密度。如果密度问题不解决的话,服务器所占用的空间、消耗的能源都是非常巨大的。过去是单立一个标准的服务器,发展到今天是几十个服务器在一个机柜里面。
第三个是扩展性。由于互联网的快速发展,使得数据中心数量高速增长,由一开始的单体建筑,发展到数据中心集群。
第四个是传输带宽方面的要求。包括带宽的稳定性、传输速率等。
第五个是快速交付能力。交付能力主要指的是部署数据中心。哪怕是部署一个一万台服务器规模的数据中心,都是一个极其复杂的事情,这里涉及每一个服务器的安装、每一个服务器里面的操作系统和一些软件的安装。如果说每一天能够部署一千台,一万多台服务器只要半个多月时间就可以部署完成。
在服务器很少的情况下,对服务器减排、提高能效,并不会显得非常重要。但是,随着互联网的高速发展,特别数据的爆炸式正在,百度服务器的规模每年增长速度超过了100%。这意味着,百度每一年买的服务器的数量比历史上库存下来服务器的总数还要多,比历史总数还要多。
为什么要关注数据中心的节能问题,最根本的因素是考虑成本。成本包括三个方面,第一个是购置相关设备,包括服务、器网络设备,以及其他的一些配件。第二块成本是运营成本,第三块是用电的成本。从这三块成本来看,服务器的购置成本约占其中的一半,也就是说一台服务器假如是三万元,在整个服务器的生命周期里面,要付出约六万元的总价,这就是为什么要关心服务器,关心数据中心节能降耗,以及维护成本的问题。
那么以单体10万台服务器规模的数据中心来算,PUE每降0.1,百度每年节约一千万元的成本。通过多年的摸索和探索,百度自建了自己的数据中心,百度数据中心的PUE由传统的2.5左右,降到了现在的1.3。
百度已成长比较大型的企业,国家各个部门对百度的期望也很高,百度的搜集引擎不仅仅是公司的盈利手段,更已经成为一种非常重要的社会资源。在十多年的高速发展中,百度在各个方面所做出的各种努力,对社会起到了积极的示范效应,数据中心的节能建设就是其中一个方面。
传统的数据中心是比较粗放型的,它表现在有很多的冗余设备以及设备的负载偏低,制冷设备的利用率比较低,这造成了资源浪费。一个方面,是设备本身的浪费,通常采用的是标准化的服务器。标准的服务器里面有很多的设备是业务所不需要的;另一个方面,浪费了大量的电能。
一般来讲,在传统的数据中心统计中,一个服务器利用率不到20%,而云计算时代的数据中心,就是要充分利用每一台服务器的能力。
首先,在服务器方面,首先采用定制化的硬件。定制化就是把在标准服务器里,业务所用不到的那些设备去掉,同时利用一些高效的设备,以替代传统的设备。其次,我们采用平衡设计方式。在服务器平衡设计方面,目前流行的一个趋势就是多核高频率服务器,但是如果仅是CPU的频率很高,而磁盘、IO的能力还很低,这样就会导致了CPU能力的浪费。在设计服务器的时候,通常会针对不同业务,对CPU、IO设备等进行均衡设计。
第三,将多台服务器集中放在一个机柜里面。原来每一个服务器都有自己的电源、风扇。而把几十台服务器集中到一个ROK里头,然后用一个大的风扇、大的电源,对这些服务器进行集中供电、集中散热。这样,作为一个单个服务器来讲,平均能耗就降低很多。
第四,采用了直流高压供电。这种供电方式省去了两个转换,第一个是在UPS阶段的转换,第二个就是在服务器环节的转换。因为每次转换都是有这个电能损耗的,损失的电能是10%左右。而采用了高压直流供电之后,就没有了这10%的损耗。
第五,在辅助设备方面,辅助设备主要是制冷设备。前面两个方法都是从硬件方面解决性能问题,还从软件架构层面提高了服务器的使用效率。提高效率的手段主要是两个方面:资源池化和单点多任务化。