Google典型云计算架构分析.docx

上传人:b****1 文档编号:133795 上传时间:2022-10-04 格式:DOCX 页数:9 大小:221.90KB
下载 相关 举报
Google典型云计算架构分析.docx_第1页
第1页 / 共9页
Google典型云计算架构分析.docx_第2页
第2页 / 共9页
Google典型云计算架构分析.docx_第3页
第3页 / 共9页
Google典型云计算架构分析.docx_第4页
第4页 / 共9页
Google典型云计算架构分析.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Google典型云计算架构分析.docx

《Google典型云计算架构分析.docx》由会员分享,可在线阅读,更多相关《Google典型云计算架构分析.docx(9页珍藏版)》请在冰豆网上搜索。

Google典型云计算架构分析.docx

Google典型云计算架构分析摘要:

 讨论了云计算技术的基本原理和体系结构; 分析了云计算的几种形式和技术架构, 重点分析了Google云计算架构的原理。

关键词:

云计算; 数据存储; 数据管理; 编程模型1引言云计算(Cloud computing) 是继20世纪80年代由大型计算机向客户端/服务器(C/S) 模式大转变后, 信息技术的又一次革命性变化。

2006年8月9日, Google

首席执行官Eric Schmidt在搜索引擎大会(SES San Jose 2006) 上首次提出云计算概念。

云计算是网格计算、分布式计算、并行计算、效用计算、网络存储、虚拟化和负载均衡等传统计算机和网络技术发展融合的产物。

其目的是通过基于网络的计算方式, 将共享的软件、硬件资源和信息进行组织整合,按需提供给计算机和其他系统使用。

云计算的概念是Google公司首先提出的,其拥有一套专属的云计算平台。

这个平台先是为网页搜索应用提供服务C现在已经扩展到其他应用程序作为一种新型的计算方式。

Google云计算平台包含了许多独特的技术, 如数据中心节能技术、节点互联技术、可用性技术、容错性技术、数据存储技术、数据管理技术、数据切分技术、任务调度技术、编程模型、负载均衡技术、并行计算技术和系统监控技术等。

本文通过对Google云计算架构进行分析,进一步加深了对云计算的理解。

2 Google典型云计算技术架构分析2.1云计算概述云计算是一种新型计算模型, 是新一代基于互联网络的高性能并行计算技术,是一种共享IT基础架构的计算模式, 它基于超大规模分布式环境.“云”是指计算机集群, 包含许多互相连接的计算机, 这些计算机协同完成数据存储和计算等工作.云计算试图让用户“透明地”、“随需应变”地使用资源.

本质上, 云计算是分布式计算(Distributed Computing)、并行计算( Parallel

Computing)和网格计算(Grid Computing)等技术的综合发展.其核心是将大型数据中心的计算资源进行虚拟化并向用户提供以计算资源为形式的服务.云计算可以把服务器或者PC机连接起来以获得超级计算机的能力.云计算实现了按需计算, 它的出现使普通用户也能使用高性能并行计算, 提高了工作效率和计算资源的利用率.技术上, 云计算的实现取决于数据的存储能力和分布式计算能力两个因素.因此, 可以认为“云计算=存储云+计算云”。

“存储云”是一个大规模的分布式存储系统, 对

第三方用户公开存储接口;“计算云”包括并行计算和资源虚拟化。

云计算的体系结构主要由:

 终端、服务目录、管理系统和部署工具、资源监控、服务器集群等组成,它们通过网络协同工作,如图2-1所示。

服务目录多台便携电脑部署工具资源监控云用户终端管理系统服务器集群数据中心

(存储)

计算机节点图2-1云计算体系结构2.2云计算关键技术分析云计算主要涉及以下4种技术:

1) 计算资源虚拟化网络中的计算基础设施一般有2种形态:

 1) 大型计算中心, 主要使用集群技术将其虚拟为一个大型对称多处理系统(Virtual SMP) , 并通过运行多个虚拟机

(VM) 的方式为使用方提供定制的计算能力; 2) 分散在网络中不同物理位置的独立计算设施, 将其抽象为单个的计算资源, 以整体计算能力的形式接入云计算体系使用。

2) 存储资源虚拟化存储虚拟化技术将不同规格结构的存储设施(直连存储(DAS) , 网络连接存储(NAS) 和存储局域网络(SAN) ) 等归纳为一种统一的抽象拓扑, 建立虚拟网络存储空间, 实现存储设施的一致性整合和标准化使用, 通过虚拟化数据存储服务向外提供存储资源服务。

3) 云环境编程针对云计算平台底层物理设备部署离散性、能力封装标准化以及资源管理集中性等特点, 基于云环境的研发方式与传统的编程方法有较大区别, 其编程模型应较为简单, 从而保证后台复杂的并行执行和任务调度向用户和编程人员透明化。

目前广泛采用的是服务映射—服务调度—服务执行的云环境编程模型。

4) SOA相关技术为实现云计算模式的可扩展性、可靠性、安全性、敏捷性、可维护性与效率等特点, 在PaaS和SaaS层上, 基于统一的全局服务总线(ESB) , 将使用不同硬件平台、操作系统和编程语言的功能单元联系起来, 采用独立的接口约定, 保证不同功能单元间以标准方式进行通信, 将底层技术实现与业务应用解耦。

2.3 Google云计算架构分析

Google云计算平台是建立在大量的X86服务器集群上的,Node是最基本的处理单元,其总体技术架构如图2-2所示。

在Google云计算平台的技术架构中,除了少量负责特定管理功能的节点(如GFS master、chubby和scheduler等)

所有的节点都是同构的,即同时运行Bigtable Server、GFS chunkserver和

MapReduce Job等核心功能模块,与之相对应的则是数据存储、数据管理和编程模型等3项关键技术,因此本文将重点对它们进行研究。

图2-2 Google云计算平台的技术架构

2.3.1数据存储技术网页搜索业务需要海量的数据存储,同时还需要满足高可用性、高可靠性和经济性等要求。

为此,Google基于以下几个假设开发了分布式文件系统—GFS

(google file system)。

(1)硬件故障是常态系统平台是建立在大量廉价的、消费级的IT部件之上,系统必须时刻进行自我监控、节点检测

(2)支持大数据集

(3)一次写入、多次读取的处理模式

(4)高并发性

GFS由一个master和大量块服务器构成,如图2-3所示,master存放文件系统的所有元数据,包括名字空间、存取控制、文件分块信息、文件块的位置信息等。

GFS中的文件切分成64MB的块进行存储。

图2-3 GFS的系统架构

为了保证数据的可靠性,GFS文件系统采用了冗余存储的方式,每份数据在系统中保存3个以上的备份,其中两份拷贝在同一机架的不同节点上,以充分利用机柜内部带宽,另外一份拷贝存储在不同机架的节点上。

同时,为了保证数据的一致性,对于数据的所有修改需要在所有的备份上进行,并用版本号的方式来确保所有备份处于一致的状态。

为避免大量读操作使master成为系统瓶颈,客户端不直接通过master读取数据,而是从master获取目标数据块的位置信息后,直接和块服务器交互进行读操作。

GFS的写操作将控制信号和数据流分开,即客户端在获取master的写授权后,将数据传输给所有的数据副本,在所有的数据副本都收到修改的数据后,客户端才发出写请求控制信号,在所有的数据副本更新完数据后,由主副本向客户端发出写操作完成控制信号,通过服务器端和客户端的联合设计,对应用支持达到了性能与可用性的最优化。

在Google云计算平台中部署了多个GFS集群,有的集群拥有超过1000个存储节点和超过300TB的硬盘空间,被不同机器上的数百个客户端连续不断地频繁访问着。

2.3.2数据管理技术由于Google的许多应用(包括Search History、Maps、Orkut和RSS阅读器等)需要管理大量的格式化以及半格式化数据,上述应用的共同特点是需要支持海量的数据存储,读取后进行大量的分析,数据的读操作频率远大于数据的更新频率等,为此Google开发了弱一致性要求的大规模数据库系统—BigTable。

BigTable针对数据读操作进行了优化,采用基于列存储的分布式数据管理模式以提高数据读取效率。

BigTable的基本元素是行"列"记录板和时间戳。

其中记录板Table就是一段行的集合体。

图2-4 BigTable的存储服务体系结构

BigTable系统依赖于集群系统的底层结构。

一个是分布式的集群任务调度器,一个是前述的GFS文件系统,还有一个分布式的锁服务Chubby,如图2-4所示, Chubby是一个非常健壮的粗粒度锁,BigTable使用Chubby来保存Root Table

的指针,并使用一台服务器作为主服务器,用来保存和操作元数据。

当客户端读取数据时,用户首先从Chubby Server中获得Root Tablet的位置信息,并从中读取相应的元数据表Metadata的位置信息,接着从Metadata Tablet中读取包含目标数据位置信息的User Table的位置信息,然后从该User Table中读取目标数据的位置信息项。

BigTable的主服务器除了管理元数据之外,还负责对Tablet Server进行远程管理与负载调配。

客户端通过编程接口与主服务器进行控制通信以获得元数据,与Tablet Server进行数据通信,而具体的读写请求则由Tablet Server负责处理。

与前述的系统类似,BigTable也是客户端和服务器端的联合设计,使得性能能够最大程度地符合应用的需求。

2.3.3编程模型

Google构造了Map-Reduce编程框架来支持并行计算,应用程序编写人员只需将精力放在应用程序本身,关于如何通过分布式的集群来支持并行计算,包括可靠性和可扩展性,则交由平台来处理,从而保证了后台复杂的并行执行和任务调度向用户和编程人员透明。

Map-Reduce是一种处理和产生大规模数据集的编程模型,同时也是一种高效的任务调度模型,它通过Map和Reduce这样两个简单的概念来构成运算基本单元,程序员在Map函数中指定对各分块数据的处理过程,在Reduce函数中指定如何对分块数据处理的中间结果进行归约,就能完成分布式的并行程序开发。

当在集群上运行Map-Reduce程序时,程序员不需要关心如何将输入的数据分块、分配和调度,同时系统还将处理集群内节点失败以及节点间通信的管理等,图2-5给出了一个Map-Reduce程序的具体执行过程。

输出文件0

输出文件1

worker

worker

worker

master

worker

worker

用户程序分块0

分块1

分块2

分块3

分块4

1)fork

2)分配map

2)分配reduce

1)fork

3)读4)本地写5)远程读6)写输入文件写中间文件

(在本地)

Map阶段

Reduce

阶段输出文件图2-5 Map-Reduce程序的执行过程

Map-Reduce模型具有很强的容错性,当worker节点出现错误时,只需要将该worker节点屏蔽在系统外等待修复,并将该worker上执行的程序迁移到其他

worker上重新执行,同时将该迁移信息通过master发送给需要该节点处理结果的节点。

Map-Reduce使用检查点的方式来处理master出错失败的问题,当

master出现错误时,可以根据最近的一个检查点重新选择一个节点作为master

并由此检查点位置继续运行。

3总结综上所述,云计算是一种新型的计算模式。

它的最主要特征是系统拥有大规模数据集、基于该数据集,向用户提供服务。

它使用大量的普通商用机来构建系统,通过冗余存储的方式确保整个系统的可靠性和可用性。

与传统超级计算机在底层编程不同,数据密集计算的云系统上使用基于Map-Reduce的高级编程模式。

这使得编程人员可以不用考虑底层的并行化方式,专心与程序的逻辑实现。

越来越多的IT厂商提出了自己的“云”计划,并投入大量资金推动云计算的发展。

这恰恰为云计算提供了良好的发展机遇。

虽然现在的云计算并不能完美地解决所有的问题,但是在不久的将来,一定会有越来越多的云计算系统投入实用,云计算系统也会不断地被完善,并推动其他科学技术的发展。

参考文献1 Sanjay Ghemawat,Howard Gobioff,Shun-Tak Leung.The google file

system,

2陈康,郑纬民.云计算

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1