浅谈Google云计算架构成都信息工程大学信息安全工程学院方欣方睿廖勇摘要:本文通过对google云计算架构的介绍,分析数据在云计算中存储,读取,获取等一系列技术,本文将google云计算分为两部分分别为外网与内网,从两个部分讲解google云计算架构,重点分析云计算架构的原理。
关键字:云计算,平台,架构,技术,网络Introduction to Google cloud computing architectureAbstract:Based on the introduction to Google cloud computing architectures, analyze the data stored in the cloud computing, to read, access and a series of technology, this article will Google cloud computing is divided into two parts, respectively for the outside network and Intranet, from the two parts on Google cloud computing architectures, focuses on analyzing the principle of cloud computing architectures.Key words: Cloud computing ,platform, architecture, technology, and networks1、引言云计算(Cloud computing)是继20世纪80年代由大型计算机向客户端/服务器(C/S)模式大转变后,信息技术的又一次革命性变化。
2006年8月9日,Google首席执行官Eric Schmidt在搜索引擎大会(SES San Jose 2006)上首次提出云计算概念。
云计算是网格计算,分布式计算,并行计算、效用技术、网络存储、虚拟化和负载均衡等传统计算机和网络技术发展融合的产物。
其目的是通过基于网络的计算方式,将共享的软件/硬件资源和信息进行组织整合,按需提供给计算机和其他系统使用。
而本文就是从google云计算架构的角度来说明,云计算的原理,从云计算概念出发,自下而上的介绍云计算的关键技术,通过将客户到云计算之间的通信过程,本文将云计算分为两个部分,分别为外网和内网,并分析各种的关键技术。
2、云计算概念2.1 什么是云计算美国国家标准技术研究院(NIST)将云计算定义为“一种无处不在的、便捷的且按需的对一个共享的可配置的计算资源(如网络、服务器、存储、应用和服务)进行网络访问的模式,它能够通过最少两的管理或服务供应商的互动实现计算资源的迅速供给和释放。
”IBM认为云计算一种计算模式:把IT资源、数据、应用作为服务通过网络提供给用户(IBM)Google认为云计算以公开的标准和服务为基础,以互联网为中心,提供安全、快速、便捷的数据存储和网络计算服务。
2.2 云计算特征云计算的定义各有各的理解,但是核心思想是一样的。
根据NIST的定义,云计算具有五个关键特征:(1)按需自服务,用户在需要时自动配置计算能力;(2)宽度接入,利用网络支持各种标准接入手段;(3)虚拟化的资源“池”,按照用户需要,将物理和虚拟化资源进行动态分配和管理;(4)弹性架构、服务可以快速弹性地供应;(5)可测量服务。
2.3 云计算服务云计算具有三种典型的交付模式:(1)软件即服务(SaaS),提供给用户以服务的方式使用应用程序的能力;(2)平台即服务(PaaS),提供给用户在云基础设施之上部署和使用开发的环境的能力;(3)集成设施即服务(IaaS),提供给用户以服务的方式使用处理器、存储、网络以及其它基础性计算资源的能力。
云计算具有四种部署模型:(1)公开云,即为外部客户提供服务的云,服务对象没有特定限制;(2)私有云,即专供内部使用的云平台,不向外提供服务;(3)社区云,即云基础设施由多个组织分享,以支持特定的社区;(4)混合云,云基础设施由两个或多个云组成。
3、Google云计算架构技术云计算架构从图1,可知,访问服务可以分为两个部分,从客户到云计算的一部分通信和云计算内部处理数据通信的一部分,我将这两部分为了外网和内网。
图13.1 外部网络系统当一个互联网用户输入 时候,URL请求就会发通过DNS解析服务器获取到对应的IP地址,然后Google的DNS服务器会根据用户原IP地址来判断,这个用户请求来自哪个国家,哪个地区,根据不同用户的IP地址信息,解析到不同的Google的数据中心。
进入第一道防火墙,这次防火墙主要根据不同端口来判断应用,过滤相应的流量。
如果仅仅接受浏览器应用的访问,一般只会开放80端口http,和443端口https(通过SSL加密)。
将其他的来自互联网的非ip4/ip6h和非80/443端口的请求都放弃,避免遭受互联网上大量的DOS攻击。
3.1.1 外部网络数据传输技术(1)、在大量的web应用服务器群前,Google使用反向代理(reverse proxy)的技术。
反向代理方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客服端,此时代理服务器对外就表现为一个服务器。
(2)、Google使用的是squid cache的软件方式来实现反向代理应用,它是一个流行的自由软件的代理服务器和web缓存服务器,squid 有广泛的用途,作为网页服务器的前置cache 服务器缓存相关请求来提供web服务器的速度。
3.2 内部网络系统3.2.1 内部网络架构介绍Google拥有跨国的光纤网络,连接跨地区,跨国家的高速光纤网络,内部网络已经都是ipv6的协议在运行。
内部网关协议是基于OSPF进行修改的,在每个服务器机架内部连接每台服务器之间网络是100M以太网,在服务器机架之间连接的网络是1000M以太网。
大规模IDC(Internet Data Center)部署战略 Google目前是世界上存储信息最多的企业。
将这样海量的信息进行存储、进行处理,就需要大量的计算机服务器,Google很早就进行了全球的数据中心的布局,目前运行了38个大型的IDC中心,超过300多个GFSII服务器集群,超过80万台计算机。
部署图如图2所示。
图2在每个服务器机架内,通过IP虚拟服务器(IP Virtual Server)的方式实现传输层负载Linux内核内的平衡,四层LAN交换。
Ipvs使一个服务器机架中的众多服务成为基于Linux内核虚拟服务器。
就如一堆服务器前安装一个负载均衡的服务器一样。
当TCP/UDP的请求过来后,使一群服务器可以使用一个单一的IP地址来对外提供相关的服务支撑。
内部网络架构图,如图3所示:图3在Google web应用服务器需要调用Google内部存储信息和资源的时候,通过一个防火墙进入内部的网络,访问GFS系统应用服务和数据库,然后需要的核心技术构成实现云计算服务的基础。
(1)分布式文件系统(Google File System);(2)分布锁(Chubby);(3)Map-Reduce编程模式;(4)分布式数据库BigTable。
3.2.2内部网络架构技术3.2.2.1 IPVS负载均衡IPVS负载均衡的连接是粒度的,在HTTP协议中,每个对象从Web服务器上获取需建立一个TCP连接,同一用户的不同请求会被调度到不同的服务器上,这种细粒度的调度在一定程度上可以避免单个用户访问的突发性引起服务器间的负载不平衡。
(1) IPVS系统的实现系统实现的基本框架,如图3所示:图4其中“VS Schedule & Control Module”是虚拟服务器的主控模块,它挂接在IP报文遍历的LOCAL_IN链和IP_FORWARD链两处,用于截取/改写IP报文;“VS Rules Table”用于存放虚拟服务器的规则,“Connections Hash Table”表是用于记录当前连接的Hash表;“Stale Connection Collector”模块用于回收已经过时的连接;“Statistics Data”表记录IPVS 的统计信息。
用户空间的ipvsadm管理程序通过setsockopt()函数将虚拟服务器的规则写入“VS Rules Table”表中,通过/proc文件系统把“VS Rules Table”表中的规则读出。
(2) IPVS的实例当一个IP报文到达时,若报文的目标地址是本地的IP地址,IP报文会转到LOCAL_IN链上,否则转到IP_FORWARD链上(然后怎么处理?)。
IPVS模块主要挂接在LOCAL_IN链和IP_FORWARD链两处。
当一个目标地址为Virtual IP Address的报文到达时(说明是这个集群里的地址,应转发报文给相应的服务器),该报文会被挂接在LOCAL_IN链上的IPVS程序捕获,若该报文属于在连接Hash表中一个已建立的连接,则根据连接的信息将该报文发送到目标服务器,否则该报文为SYN时,根据连接调度算法从一组真实服务器中选出一台服务器,根据IP负载调度设置的规则将报文发送给选出的服务器,并在连接Hash表中记录这个连接。
挂接在IP_FORWARD链上的IPVS程序是改写VS/NAT中服务器响应报文的地址。
3.2.2.2GFS(1)GFS来源。
一次写入、多次读取的处理模式Google需要支持对文件进行大量的批量数据写入操作,并且是追加方式的,即写入操作结束后文件就几乎不会被修改了,与此同时,随机写入的方式可以支持,但不进行专门的优化。
高并发性系统平台需要支持多个客户端同时对某一个文件的追加写入操作,这些客户端可能分步在几百个不同的。
节点上,同时需要以最小的开销保证写入操作的原子性。
GFS由一个master和大量块服务器构成。
(2)GFS在内部网络中的作用。
GFS位于这些技术的最底层,负责许多服务器、机器数据的存储工作。
它将一个大体积数据(百兆,千兆级别)分隔成固定大小的数据块放到3个服务器上,这样做的目的是当一个服务器发送故障时,可以将数据迅速从另外一个服务器上恢复过来。
两个服务器做备份,主服务器出错,备份服务器可以比配数据,更正主服务器上出错的数据。
(3)GFS详解。
GFS上的块服务器上的存储空间以64MB为单位,分成很多的存储块,由主服务器来进行存储内容的调度和分配。
每一份数据都是一式三份,将统一的数据分布存储在不同的服务器集群中,以保证数据的安全性和吞吐的效率提高。