了解云计算标杆Google的技术构架
- 格式:pdf
- 大小:739.99 KB
- 文档页数:17
了解云计算标杆Google的技术构架
一、前言
云计算无疑是今年IT技术界最热点的关键词之一。从谷歌趋势分析来看,国际上Cloud
computing 是从2007年中期开始成为整个业界关注的重点,在中国云计算是从2008年开始
成为中国IT界和通信界关注的核心。特别是,当中国移动2008年开始关注云计算,并推动
中国移动相关的业务支撑系统、业务软件平台开始向云计算的平台迁移。使得整个中国IT
界、通信界的相关产业力量更加关注云计算,同时大家也开始意识到了云计算确实可以大大
的节省海量计算的总体拥有成本。
云计算
当业界 谈到云计算的时候,都会第一个想到谷歌Google。我们日常在使用的Google
Search,Google Earth,Goolge Map,Google Gmail,Google Doc等等业务都是Google基于自
己云计算平台来提供的。Google也是通过云计算的方式,大量的降低计算成本,使之业务
更具有竞争力。
Google原先企业初期阶段,获得的投资有限,只能自己攒机,但是很差的机器不可能
发挥服务器的性能和稳定性,于是只有去想该如何提高可靠性,如何利用很多"破烂"机器获
得更高的性能。这就有了云计算的雏形。
今天我们都知道Google的规模,而如果我们不去认清云计算的强大,我们就不知道互联网的未来和规则。Google在98年的时候被迫发现了这一规则,然后我们看到了聚合的力
量,今天微软、IBM、雅虎、百度、亚马逊这些企业看到了规则,于是开始进入云计算领域。
所以我们研究云计算,可以系统剖析一下Google 的技术构架,这对于我们搭建自己自身的
云计算平台有比较好的借鉴意义和标杆意义!
二、Google的整体技术构架说明
由于Google 没有官方发布一个自身的技术构架说明。本文主要的信息都来自互联网中
对于Google 网络技术构架的分析,大量信息来自labs.google.com 。
Google 最大的IT优势在于它能建造出既富于性价比(并非廉价)又能承受极高负载的高
性能系统。因此Google认为自己与竞争对手,如亚马逊网站(Amazon)、电子港湾(eBay)、微
软(Microsoft)和雅虎 (Yahoo)等公司相比,具有更大的成本优势。其IT系统运营约为其他互
联网公司的60%左右。
同时Google程序员的效率比其他Web公司同行们高出50%~100%,原因是Google已
经开发出了一整套专用于支持大规模并行系统编程的定制软件库。
从整体来看,Google的云计算平台包括了如下的技术层次。
1)网络系统:包括外部网络(Exterior Network) ,这个外部网络并不是指运营商自己的
骨干网,也是指在Google云计算服务器中心以外,由Google 自己搭建的由于不同地区/国
家,不同应用之间的负载平衡的数据交换网络。内部网络(Interior Network),连接各个Google
自建的数据中心之间的网络系统。
2)硬件系统:从层次上来看,包括单个服务器、整合了多服务器机架和存放、连接各
个服务器机架的数据中心(IDC)。
3)软件系统:包括每个服务器上面的安装的单机的操作系统经过修改过的Redhat Linux。
Google云计算底层软件系统(文件系统GFS、并行计算处理算法Mapreduce、并行数据库
Bigtable,并行锁服务Chubby Lock,云计算消息队列 GWQ)
4)Google 内部使用的软件开发工具 Python、Java、C++ 等 5)Google 自己开发的应用软件 Google Search 、Google Email 、Google Earth
三、Google 各个层次技术介绍
1、Google外部网络系统介绍
当一个互联网用户输入www.google.com 的时候,这个URL请求就会发到Google DNS 解
析服务器当中去,那么Google 的DNS服务器就会根据用户自身的IP地址来判断,这个用
户请求是来自那个国家、那个地区。根据不同用户的IP地址信息,解析到不同的Google的
数据中心。
进入第一道防火墙,这次防火墙主要是根据不同端口来判断应用,过滤相应的流量。如
果仅仅接受 浏览器应用的访问,一般只会开放80端口http,和443端口https (通过SSL
加密)。将其他的来自互联网上的非Ipv4 /V6 非 80/443 端口的请求都放弃,避免遭受互联
网上大量的DOS攻击。
据说Google 使用了思杰科技(Citrix Systems)的 Netscaler 应用交换机来做web 应用的优化。NetScaler 可将Web 应用性能加速高达5 倍。使用高级优化技术如动态缓存时,
或者当网络延迟或数据包丢失增大时,性能增益会更高。这里提到的http multiplexting 技术
是可以是进行http 的每个session 分解开。从不同的后端服务器(缓存)来获取内容,这
样可以大大提升web http 性能,同时有效降低后端web 应用服务器的处理和联接压力。
在大量的web 应用服务器群(Web Server Farm)前,Google使用反向代理(Reverse Proxy)
的技术。反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,
然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求
连接的客户端,此时代理服务器对外就表现为一个服务器。
Google 使用的是Squid Cache的软件方式来实现反向代理应用的 ,Squid Cache一个流
行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的
用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度。
在Google web 应用服务器需要调用Google内部存储的信息和资源的时候,在通过一个
防火墙进入内部的网络,来访问其他的基于自身GFS II系统的应用服务和数据库。
2、Google 内部网络架构介绍
Google 自己已经建设了跨国的光纤网络,连接跨地区、跨国家的高速光纤网络。内部
网络已经都是Ipv6 的协议在运行。网络中的路由交换设备主要还是来自Juniper, Cisco,
Foundry, HP这四家公司。内部网关协议(IRP)是基于OSPF(开放式最短路径优先)进行
修改的。在每个服务器机架内部连接每台服务器之间网络是100M以太网,在服务器机架之间连
接的网络是1000M以太网。
在每个服务器机架内,通过IP虚拟服务器(IP Virtual Server)的方式实现传输层负载Linux
内核内的平衡,这个就是所谓四层LAN交换。 IPVS使一个服务器机架中的众多服务成为基
于Linux内核虚拟服务器。这就像在一堆服务器前安装一个负载均衡的服务器一样。当
TCP/UDP 的请求过来后,使一群服务器可以使用一个单一的IP地址来对外提供相关的服务
支撑。
3、Google 的大规模IDC部署战略
Google 应该是目前世界上存储信息最多的企业了。而且还在一直不断的致力于将传统
信息仅可能的数字化。将这样海量的信息进行存储、进行处理。就需要大量的计算机服务器。
为了满足不断增长的计算需求。Google很早就进行了全球的数据中心的布局。由于数据中
心运行后,面临的几个关键问题的就是充足电力供应、大量服务器运行后的降温排热和足够
的网络带宽支持。所以Google在进行数据中心布局的时候,就是根据互联网骨干带宽和电
力网的核心节点进行部署的,尽快考虑在河边和海边,想办法通过引入自然水流的方式来降
低降温排热的成本。
达拉斯(Dalles)是美国俄勒冈州北部哥伦比亚河( Columbia river)岸上的一个城市,
Google在Dalles的边上拥有的30英亩土地,他们在这里建立了几乎是世界上最大,性能最
好的数据中心。四个装备有巨大空调设施的仓库内,放置着数万台Internet服务器,这些服
务器每天处理着数十亿条Google网站传递给世界各个角落的用户的数据。
Google达拉斯这个数据中心占用了附近一个180万千瓦(1.8GW)水力发电站的大部分
电力输出。对比来看目前中国长江三峡水电站的额定功率是1820万千瓦。
目前Google 已经在全球运行了38个大型的IDC 中心,超过300多个GFSII 服务器集
群,超过 80万台计算机。从服务器集群部署的数量来看美国本地的数量第一,欧洲地区第
二,亚洲地区第三,在南美地区和俄罗斯各有一个IDC 数据中心。
目前Google在中国的北京和香港建设了自己的IDC中心,并部署了自己的服务器农场。
其中目前还在进行建设的第38个IDC 是在奥地利的林茨市(Linz)附近的Kronstorf村。
未来,Google还准备在中国台湾地区、马来西亚、立陶宛等地区来进行部署。从目前
的Google 数据中心部署的情况来看,中东和非洲地区目前Google还没有建设计划。
下图是Google 的IDC 中心/服务器农场(Google Server Farm)的全球分布图。
Google 自己设计了创新的集装箱服务器,数据中心以货柜为单位,
标准谷歌模块化集装箱装有30个的机架,1160台服务器,每台服务器的功耗是250KW。
(Google2009年公布的信息)。下图是Google 模块化集装箱的设计示意图。这种标准的
集装箱式的服务器部署和安装策略可以是Google非常快速的部署一个超大型的数据中心。
大大降低了对于机房基建的需求。
4、Google自己设计的服务器机架构架
Google 的服务器机架有两种规格40U/80U的。这主要是因为原来每个服务器刀片是
1U