浅谈云计算架构.docx
- 文档编号:27202650
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:14
- 大小:344.51KB
浅谈云计算架构.docx
《浅谈云计算架构.docx》由会员分享,可在线阅读,更多相关《浅谈云计算架构.docx(14页珍藏版)》请在冰豆网上搜索。
浅谈云计算架构
浅谈Google云计算架构
成都信息工程大学信息安全工程学院
方欣方睿麼勇
摘要:
木文通过对google云计算架构的介绍,分析数据在云计算中存储,读取,获取等一系列技术,本文将google云计算分为两部分分别为外网与内网,从两个部分讲解google云计算架构,重点分析云计算架构的原理。
关键字:
云计算,平台,架构,技术,网络
IntroductiontoGooglecloudcomputingarchitecture
Abstract:
BasedontheintroductiontoGooglecloudcomputingarchitectures,analyzethedatastoredinthecloudcomputing,toread,accessandaseriesoftechnology,thisarticlewillGooglecloudcomputingisdividedintotwoparts,respectivelyfortheoutsidenetworkandIntranet,fromthetwopartsonGooglecloudcomputingarchitectures,focusesonanalyzingtheprincipleofcloudcomputingarchitectures.
Keywords:
Cloudcomputing,platform,architecture,technology,andnetworks
1、引言
云计算(Cloudcomputing)是继20世纪80年代由大型计算机向客户端/服务器(C/S)模式大转变后,信息技术的乂一次革命性变化。
2006年8月9日,Google首席执行官EricSchmidt在搜索引擎大会(SESSanJose2006)上首次提出云计算概念。
云计算是网格计算,分布式计算,并行计算、效用技术、网络存储、虚拟化和负载均衡等传统计算机和网络技术发展融合的产物。
其U的是通过基于网络的计算方式,将共享的软件/硬件资源和信息进行组织整合,按需提供给计算机和其他系统使用。
而本文就是从google云计算架构的角度来说明,云计算的原理,从云计算概念出发,自下而上的介绍云计算的关键技术,通过将客户到云计算之间的通信过程,本文将云计算分为两个部分,分别为外网和内网,并分析各种的关键技术。
2、云计算概念
什么是云计算
美国国家标准技术研究院(NIST)将云计算定义为“一种无处不在的、便捷的且按需的对一个共学的可配置的计算资源(如网络.服务器、存储.应用和服务)进行网络访问的模式,它能够通过最少两的管理或服务供应商的互动实现计算资源的迅速供给和释放
IBM认为云计算一种计算模式:
把IT资源、数据、应用作为服务通过网络提供给用户(IBM)
Google认为云计算以公开的标准和服务为基础,以互联网为中心,提供安全、快速、便捷的数据存储和网络计算服务。
云计算特征
云计算的定义各有各的理解,但是核心思想是一样的。
根据NIST的定义,云计算具有五个关键特征:
(1)按需自服务,用户在需要时自动配置计•算能力;
(2)宽度接入,利用网络支持各种标准接入手段;(3)虚拟化的资源“池匕按照用户需要,将物理和虚拟化资源进行动态分配和管理;(4)弹性架构、服务可以快速弹性地供应;(5)可测量服务。
云计算服务
云计算具有三种典型的交付模式:
(1)软件即服务(SaaS),提供给用户以服务的方式使用应用程序的能力;
(2)平台即服务(PaaS),提供给用户在云基础设施之上部署和使用开发的环境的能力;(3)集成设施即服务(IaaS),提供给用户以服务的方式使用处理器、存储、网络以及其它基础性讣算资源的能力。
云计算具有四种部署模型:
(1)公开云,即为外部客户提供服务的云,服务对象没有特定限制;
(2)私有云,即专供内部使用的云平台,不向外提供服务;(3)社区云,即云基础设施由多个组织分享,以支持特定的社区;(4)混合云,云基础设施由两个或多个云组成。
3、Google云计算架构技术
云计算架构从图1,可知,访问服务可以分为两个部分,从客户到云计算的一部分通信和云计算内部处理数据通信的一部分,我将这两部分为了外网和内网。
图1
外部网络系统
当一个互联网用户输入时候,URL请求就会发通过DNS解析服务器获取到对应的IP地址,然后Google的D\S服务器会根据用户原IP地址来判断,这个用户请求来自哪个国家,哪个地区,根据不同用户的IP地址信息,解析到不同的Google的数据中心。
进入笫一道防火墙,这次防火墙主要根据不同端口来判断应用,过滤相应的流量。
如果仅仅接受浏览器应用的访问,一般只会开放80端口http,和443端口https(通过SSL加密)。
将其他的来自互联网的非ip4/ip6h和非80/443端口的请求都放弃,避免遭受互联网上大量的DOS攻击。
外部网络数据传输技术
(1)、在大量的web应用服务器群前,Google使用反向代理(reverseproxy)的技术。
反向代理方式是指以代理服务器来接受Internet±的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客服端,此时代理服务器对外就表现为一个服务器。
(2)、Google使用的是squidcache的软件方式来实现反向代理应用,它是一个流行的自由软件的代理服务器和web缓存服务器,squid有广泛的用途,作为网页服务器的前置cache服务器缓存相关请求来提供web服务器的速度。
内部网络系统
内部网络架构介绍
Google拥有跨国的光纤网络,连接跨地区,跨国家的高速光纤网络,内部网络已经都是ipv6的协议在运行。
内部网关协议是基于OSPF进行修改的,在每个服务器机架内部连接每台服务器之间网络是100M以太网,在服务器机架之间连接的网络是1000M以太网。
大规模IDC(InternetDataCenter)部署战略Google□前是世界上存储信息最多的企业。
将这样海量的信息进行存储、进行处理,就需要大量的计算机服务器,Google很早就进行了全球的数据中心的布局,H前运行了38个大型的IDC中心,超过300多个GFSII服务器集群,
超过80万台计算机。
部署图如图2所示。
图2
在每个服务器机架内,通过IP虚拟服务器(IPVirtualServer)的方式实现传输层负载Linux内核内的平衡,四层LAN交换。
Ipvs使一个服务器机架中的众多服务成为基于Linux内核虚拟服务器。
就如一堆服务器前安装一个负载均衡的服务器一样。
当TCP/UDP的请求过来后,使一群服务器可以使用一个单一的IP地址来对外提供相关的服务支撑。
内部网络架构图,如图3所示:
图3
在Googleweb应用服务器需要调用Google内部存储信息和资源的时候,通过一个防火墙进入内部的网络,访问GFS系统应用服务和数据库,然后需要的核心技术构成实现云计算服务的基础。
(1)分布式文件系统(GoogleFileSystem):
(2)分布锁(Chubby);(3)Map-Reduce编程模式;(4)分布
式数据库BigTableo
内部网络架构技术
IPVS负载均衡
IPVS负载均衡的连接是粒度的,在HTTP协议中,每个对象从Web服务器上获取需建立一个TCP连接,同一用户的不同请求会被调度到不同的服务器上,这种细粒度的调度在一定程度上可以避免单个用户访问的突发性引起服务器间的负载不平衡。
(1)IPVS系统的实现
系统实现的基本框架,如图3所示:
IPPacketTraversing
IPYSADM
图4
其中“VSSchedule&ControlModule"是虚拟服务器的主控模块,它挂接在IP报文遍历的LOCAL.IN链和IP_FORWARD链两处,用于截取/改写IP报文;“VSRulesTable”用于存放虚拟服务器的规则,"ConnectionsHashTablen表是用于记录"1前连接的Hash表;"StaleConnectionCollectorn模块用于回收已经过时的连接;"StatisticsData"表记录IPVS的统计信息。
用户空间的ipvsadm管理程序通过setsockopt()函数将虚拟服务器的规则写入“VSRulesTable”表中,通过/proc文件系统把"VSRulesTablev表中的规则读出。
(2)IPVS的实例
当一个IP报文到达时,若报文的忖标地址是本地的IP地址,IP报文会转到L0CAL_IN链上,否则转到IP_FORWARD链上(然后怎么处理?
)。
IPVS模块主要挂接在L0CAL.IN链和IP_FORWARD链两处。
当一个LI标地址为VirtualIPAddress的报文到达时(说曲是这个集群里的地址,应转发报文给相应的服务器),该报文会被挂接在L0CAL.IN链上的IPVS程序捕获,若该报文属于在连接Hash表中一个已建立的连接,则根据连接的信息将该报文发送到口标服务器,否则该报文为SYN时,根据连接调度算法从一组真实服务器中选出一台服务器,根据IP负载调度设置的规则将报文发送给选出的服务器,并在连接Hash表中记录这个连接。
挂接在IP_FORWARD链上的IFVS程序是改写VS/NAT中服务器响应报文的地址。
3.2.2.2GFS
(1)GFS来源。
一次写入、多次读取的处理模式Google需要支持对文件进行大量的批量数据写入操作,并且是追加方式的,即写入操作结束后文件就儿乎不会被修改了,与此同时,随机写入的方式可以支持,但不进行专门的优化。
髙并发性系统平台需要支持多个客户端同时对某一个文件的追加写入操作,这些客户端可能分步在儿百个不同的。
节点上,同时需要以最小的开销保证写入操作的原子性。
GFS由一个master和大量块服务器构成。
(2)GFS在内部网络中的作用。
GFS位于这些技术的最底层,负责许多服务器、机器数据的存储工作。
它将一个大体积数据(白•兆,千兆级别)分隔成固定大小的数据块放到3个服务器上,这样做的tl的是当一个服务器发送故障时,可以将数据迅速从另外一个服务器上恢复过来。
两个服务器做备份,主服务器出错,备份服务器可以比配数据,更正主服务器上出错的数据。
(3)GFS详解。
GFS上的块服务器上的存储空间以64MB为单位,分成很多的存储块,山主服务器来进行存储内容的调度和分配。
每一份数据都是一式三份,将统一的数据分布存储在不同的服务器集群中,以保证数据的安全性和祚吐的效率提高。
当需要对于文件、数据进行存储的时候,应用程序之间将需求发给主服务器,主服务器根据所管理的块服务器的情况,将需要存储的内容进行分片,并将可以存储的消息,山应用程序下面的gfs接口对文件和数据直接存储到相应的块存储服务器当中。
块存储服务器要定时通过心跳信号的方式告知主服务器,一旦心跳信号出了问题,主服务器会自动将有问题的块存储服务器的相关内容进行复制,保证数据的安全性。
而将同一个文件分割成多个小文件存储在服务器上,然后在读取文件的时候,通过一个相同的编号连接起来。
GFS图解如5所示。
量小文件,可以方便地增加ChunkServer,避免大量读操作使master成为系统瓶颈,客户端不直接通过master读取数据,而是从master获取□标数据块的位置信息后,直接和块服务器交互进行读操作。
(4)GFS容错机制。
Master容错:
Chunk与文件名映射。
Chunk副本的位置信息(默认有三个副本),单个master,对于前两种元数据,GFS通过操作日志来提供容错功能。
第三种元数据信息保存在各个ChunkServer±,Master故障时,磁盘恢复。
GFS还提供了Master远程的实时备份,防止Master彻底死机的情况。
ChunkServer容错:
采用副本方式实现ChunkServer容错,每一个Chunk有多个存储副本(默认为三个),分布存储在不同的ChunkServer±用户态的GFS不会影响ChunkServer的稳定性,GFS中的每一个文件被划分成多个Chunk,Chunk的默认大小是64MB,ChunkServer存储的是Chunk的副本,副本以文件的形式进行存储,每个Chunk乂划分为若干Block(64KB),每个Block对应一个32bit的校验码,保证数据正确(若某个Block错误,则转移至其他Chunk副本)。
分布式锁Chubby
(1)Chubby在内部网络的的作用。
主要拥有解决分布式一致性问题
在一个分布式系统中,有一组的进程,它们需要确定一个value,于是每个process都踢出来一个value,—致性就是指只有其中的一个value能够被选中作为最后确定的值,并且当一个值被选出来以后,所有的进程都需要被通知到。
比如,GFS使用Chubby选取一个GFS主服务器,Bigtable使用Chubby指定一个主服务器并发现、控制与其相关的子表服务器,Chubby还可以作为一个稳定的存储系统存储包括元数据在内的小数据,Google内部还使用Chubby进行名字服务(NameServer)。
(2)Chubby技术实现。
LeslieLamport最先提出的一种基于消息传递的一致性算法,用于解决分布式系统中的一致性问题,也就是PdXOS算法。
Map-reduce
(1)Map-reduce定义。
Google构造Tmap-reduce编程框架来支持并行计算,应用程序编写人员只需将精力放在应用程序本身,关于如何通过分布式的集群来支持并行计算,包括可靠性和可扩展性,则交由平台来处理,从而保证了后台复杂的并行执行和任务调度向用户和编程人员透明。
Map-reduce是一种处理和产生大规模数据集的编程模型,同时也是一种高效的任务调度模型,它通过map和reduce构成运输基本单元,程序员在map函数中指定对各分块数据的处理过程,在reduce函数中指定如何对分块数据处理的中间结果进行归约,就能完成分布式的并行程序开发。
程序员不需要关心如何将输入的数据分块。
分配和调度,同时系统还将处理集群内节点失败以及节点间通信的管理等。
图解如6所示。
图6
(2)MapReduce在内部网络中的作用。
MapReduce(映射-化简),是Google提出的一个软件架构,它是Google发C++编程工具,用于大于1TB数据的大规模数据集并行计算。
实现跨越大量数据结点将任务进行分割,使得某项任务可被同时分拆在多台机器上执行。
例如,把一项搜索任务拆成一两百个小的子任务,经并行处理后,将运算结果在后台合并,最后把最终结果返回到客户端。
(3)可靠性与分布。
Mapreduce通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性,每个节点会周期性的把完成的工作和状态的更新报告回来。
若节点保持沉默超过预设的时间间隔,主节点(master)记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。
每个操作使用命名文件的原子操作以确保不会发生并行线程间的冲突;当文件被改名的时候,系统可能会把他们复制到任务名以外的另一个名字上去。
化简操作在并行能力较差,主节点会尽量把化简操作调度在一个节点上,或者需要操作的数据尽可能进的节点上了。
(4)Map-reduce编程实例。
统讣文本中单词数LI:
map函数,将文本中所有出现的单词都按照出现讣算1(以key-value对的形式)发射到mapreduce给出的一个中间临时空间中。
reduce函数:
把计•算累加在一起获得最后结果。
实现代码如图7所示。
“1“即Ij& docu-niCLiioame .■/“yf&g: docunxciitcozitc-mi foi-rachwordttlh门沪财: ivrf"® Em”血厂l… 泞芒超: InT^rarorfziftf-1-w^fjrr^vJ? j>^5) •<;i-itoiJ • 3Ll^IofCOtHltS-mr厂c? ml=O; euKlh、•LtaIZnT/prfi ^iirjirJ.rrrcv) En\斑〉ej川»: 图7 (5)Mapreduce优点。 执行一个map-reduce程序需要5个步骤: 输入文件,将文件分配给多个worker并行地执行,打中间文件,多个reduceworker同时运行,输入最终结果。 本地写中间文件减少了对网络带宽的压力,同时减少了写中间文件的时间耗费;执行reduce时,根据从master获得的中间文件位置信息,reduce使用远程过程调用,从中间文件所在节点读取所需的数据。 map-reduce模型具有很强的容错性,当worker节点岀现错误时,只需要将该worker节点屏蔽在系统外等待修复,并将该worker上执行的程序迁移到其他worker上重新执行,同时将该迁移信息通过master发送给需要改节点处理结果的节点。 map-reduce使用检查点的方式来处理master出差失败的问题,"1master出现错误时,可以根据最近的一个检查点重新选择一个节点作为新的mastero Bigtable (1)分布式数据库Bigtable的简介。 由于Google的许多应用(如output>RSS阅读器,Search.History等)需要管理大量的格式化以及半格式化数据,上述应用的共同特点是需要支持海量的数据存储,读取后进行大量的分析,数据的读操作频率远大于数据的更新频率等,为此Google开发了弱一致性要求的大规模数据库系统-bigtableobigtable针对数据读操作进行了优化,釆用基于列存储的分布式数据管理模式以提高数据读取效率,bigtable的基本元素是行、列、记录板和时间戳。 (2)Bigtable在内部网络系统的作用。 Bigtable,作为Google一种对于半结构化数据进行分布存储和访问的接口或服务,它是建立在GFS和Mapreduce之上的结构化分布式存储系统,可以帮助Google最大限度利用已有的数据存储能力和计算能力,在提供服务时降低运行成本。 (3)Bigtable数据模型。 行列以及每个存储单位都有一个时间戳,在不同的时间对同一个存储单位有多份拷贝,这样就可以记录数据的变动情况,不同单元格的版本都有存储在时间戳顺序递减,因此,最近的版本可以首先阅读。 按行来划分,将多行组成一个小表,存放到服务器节点,图解如图8所示。 column "Contents" 图8而存储网页如图9所示: 图9 这一“行”的名字是网页的反向URL—名为“contents”: 的这一“列”存储网页内容,带有名为"anchor"的列存储所有引用该网页的锚文本。 CNN的首页被与这两个网站的首页引用,所以该行就包含了这两列: "anchor: "和"anchor: o这两列下的单元都只有一个版本,而“contents”: 这列下的单元有三个版本,分别是时间戳tn、ts和tg,分别对应着网页变动的情况。 4、展望 虽然,云计算平台的各项技术相应出现,但是处于试用与研发阶段。 主要存在一些技术还处于研究阶段,比如 (1)存在存储的安全问题。 (2)在断网的情况下怎么获取数据。 (3)怎么说服普通用户(不懂IT的人)保存数据到云服务器上。 (4)法律怎么约束云服务器提供商保护用户的隐私安全。 突破这些技术,相信在未来的不久,我们就能安全的用上云计算服务。 通过云平台与传统平台之间的比较,如图10所示: 叽机PC Googlo点平伶 彳滋z注存介咅 GFS IVIapReduce ClhutDtDy BigtatDle 图10 云平台与传统的平台,都可以看成是一个操作系统,而云平台非常大的操作系统,可以实现并行处理,加快了N倍的处理速度,然后存储更方便,服务上可以随着用户的需求的变化而变化,而不需要向传统PC或者服务器一样,需要更快的速度或存储空间就需要重新购买,用户每过一段时间就需要重新购买新的机子,造成了资源浪费,但是口前云平台最大的问题就是安全问题,用户还不能信任云平台提供的服务。 综上所述,虽然云计算存在一些还没法突破的技术,但是云计算是一种新型的计算模式,它的出现将突破现有传统网络的限制,合理利用资源,花费更小的代价获取更多的服务。 通过对现在的云计算并不断完善地解决所有的问题,在不久的将来,一定会有越来越多的云计算系统投入实用,进而推动其他学科技术的发展。 6、参考文献 Ll-SanjayGhemawat,HowardGobioff,Shun-Takgooglefilesystem,陈康,郑纬民。 云计算: 系统实例与研究现状 [3]孙建,驾晓W.Google云计算平台的技术架构及其成本的影响研 究.电信科学,2010(5) [4]陈全,邓倩妮.云计算及其关键技术.计算机应用,2009(9) [5]冯登国,张敏,张研等.云计算安全研究[J].软件学报,(01): 71-83 [6]王鹏.云计算的关键技术与应用实例[M].北京: 人民邮电出版 社,2010 [7]刘鹏.云计算[M].北京: 电子工业出版社,2010 [8JChangF,DeanJ,distributedstroragesystemforstructureddata[J]・ACMTransactiononComputerSystems,2008,26 (2): 1-26 [9]NIST.杨文志.云计算技术指南-应用、平台与架构[M].北京: 化学 工业出版社,2010
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浅谈 计算 架构