谷歌云计算架构详解

上传人:m**** 文档编号:500670991 上传时间:2023-09-14 格式:DOCX 页数:11 大小:391.02KB
返回 下载 相关 举报
谷歌云计算架构详解_第1页
第1页 / 共11页
谷歌云计算架构详解_第2页
第2页 / 共11页
谷歌云计算架构详解_第3页
第3页 / 共11页
谷歌云计算架构详解_第4页
第4页 / 共11页
谷歌云计算架构详解_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《谷歌云计算架构详解》由会员分享,可在线阅读,更多相关《谷歌云计算架构详解(11页珍藏版)》请在金锄头文库上搜索。

1、从整体来看,Google的云计算平台包括了如下的技术层次。网络系统:包括外部网络(Exterior Network),这个外部网络并不是指运营商自己的骨干网,也是 指在Google云计算服务器中心以外,由Google自己搭建的由于不同地区/国家,不同应用之间的负载平 衡的数据交换网络。内部网络(Interior Network),连接各个Google自建的数据中心之间的网络系统。硬件系统:从层次上来看,包括单个服务器、整合了多服务器机架和存放、连接各个服务器机架的 数据中心(IDC)。软件系统:包括每个服务器上面的安装的单机的操作系统经过修改过的Redhat Linux。Google云计 算底

2、层软件系统(文件系统GFS、并行计算处理算法Mapreduce、并行数据库Bigtable,并行锁服务Chubby Lock,云计算消息队列GWQ)Google内部使用的软件开发工具Python、Java、C+等Google 自己开发的应用软件 Google Search、Google Email、Google Earth外部网络系统介绍当一个互联网用户输入的时候,这个URL请求就会发到Google DNS解析服务器当中去,Google的 DNS服务器会根据用户自身的IP地址来判断,这个用户请求是来自哪个国家、哪个地区。根据不同用户 的IP地址信息,解析到不同的Google的数据中心。进入第一

3、道防火墙,这次防火墙主要是根据不同端口来判断应用,过滤相应的流量。如果仅仅接受浏 览器应用的访问,一般只会开放80端口 http,和443端口 https (通过SSL加密)。将其他的来自互联 网上的非Ipv4 /V6非80/443端口的请求都放弃,避免遭受互联网上大量的DOS攻击。在大量的web应用服务器群(Web Server Farm)前,Google使用反向代理(Reverse Proxy)的技术。 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内 部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接

4、的客户端,此时代理服务器 对外就表现为一个服务器。Google使用的是Squid Cache的软件方式来实现反向代理应用的,Squid Cache是一个流行的自由软 件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的 前置cache服务器缓存相关请求来提高Web服务器的速度。在Google web应用服务器需要调用Google内部存储的信息和资源的时候,在通过一个防火墙进入内 部的网络,来访问其他的基于自身GFS II系统的应用服务和数据库。内部网络架构介绍Google 自己已经建设了跨国的光纤网络,连接跨地区、跨国家的高速光纤网络。内部网络已

5、经都是IPv6的协议在运行。网络中的路由交换设备主要还是来自Juniper、Cisco、Foundry、HP这四家公司。内 部网关协议(IRP)是基于OSPF(开放式最短路径优先)进行修改的。在每个服务器机架内部连接每台服务 器之间网络是100M以太网,在服务器机架之间连接的网络是1000M以太网。在每个服务器机架内,通过IP虚拟服务器(IP Virtual Server)的方式实现传输层负载Linux内核 内的平衡,这个就是所谓四层LAN交换。IPVS使一个服务器机架中的众多服务成为基于Linux内核虚拟 服务器。这就像在一堆服务器前安装一个负载均衡的服务器一样。当TCP/UDP的请求过来后

6、,使一群服务 器可以使用一个单一的IP地址来对外提供相关的服务支撑。大规模IDC部署战略Google 应该是目前世界上存储信息最多的企业了。而且还在一直不断的致力于将传统信息尽可能地数 字化。将这样海量的信息进行存储、进行处理。就需要大量的计算机服务器。为了满足不断增长的计算需 求。Google很早就进行了全球的数据中心的布局。由于数据中心运行后,面临的几个关键问题的就是充足 电力供应、大量服务器运行后的降温排热和足够的网络带宽支持。所以Google在进行数据中心布局的时 候,就是根据互联网骨干带宽和电力网的核心节点进行部署的,尽快考虑在河边和海边,想办法通过引入 自然水流的方式来降低降温排热

7、的成本。Dalles是美国俄勒冈州北部哥伦比亚河(Columbia River)岸上的一个城市,Google在Dalles的 边上拥有的30英亩土地,他们在这里建立了几乎是世界上最大,性能最好的数据中心。四个装备有巨大空 调设施的仓库内,放置着数万台Internet服务器,这些服务器每天处理着数十亿条Google网站传递给世 界各个角落的用户的数据。图表1 Google在Dalles的数据中心这个数据中心占用了附近一个180万千瓦水力发电站的大部分电力输出。对比来看目前中国长江三峡 水电站的额定功率是1820万千瓦。目前Google已经在全球运行了 38个大型的IDC中心,超过300多个GFS

8、II服务器集群,超过80 万台计算机。从服务器集群部署的数量来看美国本地的数量第一,欧洲地区第二,亚洲地区第三,在南美 地区和俄罗斯各有一个IDC数据中心。在中国的北京和香港,Google也建设了自己的IDC中心,并部署了 自己的服务器农场。其中目前还在进行建设的第38个IDC是在奥地利的林茨市(Linz)附近的Kronstorf 村。未来,Google还准备在中国台湾地区、马来西亚、立陶宛等地区来进行部署。从目前的Google数据 中心部署的情况来看,中东和非洲地区目前Google还没有建设计划。TI芒音堆画图表2 Google的IDC中心/服务器农场(Google Server Farm)

9、的全球分布图(Lualr-4jGoogle自己设计了创新的集装箱服务器,数据中心以货柜为单位,标准Google模块化集装箱装有30 个的机架,1160台服务器,每台服务器的功耗是250KW(Google 2009年公布的信息)。这种标准的集 装箱式的服务器部署和安装策略可以使Google非常快速地部署一个超大型的数据中心。大大降低了对于机 房基建的需求。图表3 Google模块化集装箱的设计示意图。自己设计的服务器机架架构Google的服务器机架有两种规格40U/80U的。这主要是因为原来每个服务器刀片是1U高,新的服务 器刀片都是2U高的。据说Google后期使用的服务器主板是台湾技嘉,服务

10、器主板可以直接插入到服务器 机架中。图表4 Google服务器机架及主板自己设计的PC服务器刀片绝大部分企业都会跟诸如戴尔、惠普、IBM或Sun购买服务器。不过Google所拥有的八十万台服务 器都是自己设计打造来的,Google认为这是公司的核心技术之一。Google的硬件设计人员都是直接和芯 片厂商和主板厂商协作工作的。2009年,Google开始大量使用2U高的低成本解决方案。标准配置是双核双通道CPU,据说有Intel的, 也有AMD的在使用。8个2GB的DDR3,支持ECC容错的高速内存,采用RAID 1的磁盘镜像,来提升I/O 效率。磁盘采用SATA,单机存储容量可以达到1-2TB

11、。每个服务器刀片自带12V的电池来保证在短期没有 外部电源的时候可以保持服务器刀片正常运行。Google的硬件设计人员认为,这个自带电池的方式,要比 传统的使用UPS的方式效率更高。一般数据中心多倚赖称为不间断电源系统(UPS)的大型中控机型,这基 本上算是大电池,会在主电力失效而发电机还来不及启动时,暂时协助供电oGoogle的硬件设计人员表示, 直接把电力内建到服务器比较便宜,而且成本能直接跟服务器数量相符合。“这种作法比使用大型UPS节 省得多,如此也不会浪费多余的容量。”效率也是另一个财务考量因素。大型UPS可达92-95%的效率,这 意味着许多电力还是被浪费掉了。但Google采用的

12、内建电池作法却好很多,Google相关人员表示,“我 们测量的结果是效率超过99.9% o图表5内建电池的服务器刀片操作系统与云计算文件系统GFS/GFSIIGoogle服务器使用的操作系统是基于Redhat Linux2.6的内核,并做了大量修改。修改了 GNU C函 数库(glibc),远程过程调用(RPC),开发了自己的Ipvs,自己修改了文件系统,形成了自己的GFSII, 修改了 linux内核和相关的子系统,使其支持IPV6。采用了 Python来作为主要的脚本语言。Google文件系统中最基础的模块是GFSII cell。任何文件和数据都可以利用这种底层模块。GFSII通 过基于L

13、inux分布存储的方式,对于服务器来说,分成了主服务器(Master Servers)和块存储服务器(Chunk Servers),GFS 上的块存储服务器上的存储空间以64MB为单位,分成很多的存储块,由主服务器来进行 存储内容的调度和分配。每一份数据都是一式三份的方式,将同样的数据分布存储在不同的服务器集群中, 以保证数据的安全性和吞吐的效率提高。当需要对于文件、数据进行存储的时候,应用程序之间将需求发 给主服务器,主服务器根据所管理的块存储服务器的情况,将需要存储的内容进行分配,并将可以存储的 消息(使用那些块存储服务器,那些地址空间),由应用程序下面的GFS接口在对文件和数据直接存储到

14、 相应的块存储服务器当中。图表6 GFS架构块存储服务器要定时通过心跳信号的方式告知主服务器,目前自己的状况,一旦心跳信号出了问题主服务器会自动将有问题的块存储服务器的相关内容进行复制。以保证数据的安全性。数据被存储时是经过压缩的。采用的BMDiff和Zippy算法。BMDiff使用最长公共子序列进行压缩,压缩lOOMB/s,解压缩约lOOOMB/s.类似的有IBM Hash SuffixArray DeltaCompression.Zippy是LZW的改进版本,压缩比不如LZW,但是速度更快。并行计算架构-Mapreduce有了强大的分布式文件系统,Google遇到的问题就是怎么才能让公司所

15、有的程序员都学会些分布式计 算的程序呢?于是,那些Google工程师们从lisp和其他函数式编程语言中的映射和化简操作中得到灵感, 搞出了 Map/Reduce这一套并行计算的框架。Map/Reduce被Google拿来重新了 Google Search Engine的 整个索引系统。而Doug Cutting同样用Java将这一套实现和HDFS合在一起成为Hadoop的Core。MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。概念“Map (映射)”和“Reduce (化简)”,和他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程 语言借

16、来的特性。映射和化简简单说来,一个映射函数就是对一些独立元素组成的概念上的列表(例如,一个测试成绩的列表)的 每一个元素进行指定的操作(比如前面的例子里,有人发现所有学生的成绩都被高估了一分,他可以定义 一个“减一”的映射函数,用来修正这个错误。)。事实上,每个元素都是被独立操作的,而原始列表没 有被更改,因为这里创建了一个新的列表来保存新的答案。这就是说,Map操作是可以高度并行的,这对 高性能要求的应用以及并行计算领域的需求非常有用。而化简操作指的是对一个列表的元素进行适当的合并(继续看前面的例子,如果有人想知道班级的平 均分该怎么做?他可以定义一个化简函数,通过让列表中的元素跟自己的相邻的元素相加的方式把列表减 半,如此递归运算直到列表只剩下一个元素,然后用这个元素除以人数,就得到了平均分。)。虽然他不

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号