ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:2.03MB ,
资源ID:6546046      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6546046.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(云计算研究之数据中心.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

云计算研究之数据中心.docx

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

2、的单机的操作系统经过修改过的Redhat Linux。Google 云计算底层软件系统(文件系统GFS、并行计算处理算法Mapreduce、并行数据库Bigtable,并行锁服务Chubby Lock,云计算消息队列GWQ)4)Google 内部使用的软件开发工具Python、Java、C+ 等5)Google 自己开发的应用软件Google Search 、Google Email 、Google EarthGoogle将40台服务器编为一个集群,而在全球范围,Google拥有36个数据中心。每个数据中心有150个服务器集群。1.1数据访问1.1.1.外部访问当一个互联网用户输入 的时候,这

3、个URL请求就会发到Google DNS 解析服务器当中去,那么Google 的DNS 服务器就会根据用户自身的IP 地址来判断,这个用户请求是来自那个国家、那个地区。根据不同用户的IP地址信息,解析到不同的Google的数据中心。进入第一道防火墙,这次防火墙主要是根据不同端口来判断应用,过滤相应的流量。如果仅仅接受浏览器应用的访问,一般只会开放80 端口http,和443 端口https (通过SSL加密)。将其他的来自互联网上的非Ipv4 /V6 非80/443 端口的请求都放弃,避免遭受互联网上大量的DOS 攻击。据说Google 使用了思杰科技(Citrix Systems)的Nets

4、caler 应用交换机来做web 应用的优化。NetScaler 可将Web 应用性能加速高达5 倍。使用高级优化技术如动态缓存时,或者当网络延迟或数据包丢失增大时,性能增益会更高。这里提到的http multiplexting 技术是可以是进行http 的每个session 分解开。从不同的后端服务器(缓存)来获取内容,这样可以大大提升web http 性能,同时有效降低后端web 应用服务器的处理和联接压力。在大量的web 应用服务器群(Web Server Farm)前,Google使用反向代理(Reverse Proxy)的技术。反向代理(Reverse Proxy)方式是指以代理服务

5、器来接受internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet 上请求连接的客户端,此时代理服务器对外就表现为一个服务器。Google 使用的是Squid Cache的软件方式来实现反向代理应用的,Squid Cache一个流行的自由软件(GNU 通用公共许可证)的代理服务器和Web 缓存服务器。Squid 有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web 服务器的速度。在Google web 应用服务器需要调用Google内部存储的信息和资源的时候,再通过一个防火墙进入内部的网络,来访问其他的基于自身GF

6、S II 系统的应用服务和数据库。1.1.2.内部访问Google 自己已经建设了跨国的光纤网络,连接跨地区、跨国家的高速光纤网络。内部网络已经都是Ipv6 的协议在运行。网络中的路由交换设备主要还是来自Juniper, Cisco,Foundry, HP这四家公司。内部网关协议(IRP)是基于OSPF(开放式最短路径优先)进行修改的。在每个服务器机架内部连接每台服务器之间网络是100M以太网,在服务器机架之间连接的网络是1000M以太网。在每个服务器机架内,通过IP虚拟服务器(IP Virtual Server)的方式实现传输层负载Linux内核内的平衡,这个就是所谓四层LAN 交换。IPV

7、S使一个服务器机架中的众多服务成为基于Linux 内核虚拟服务器。这就像在一堆服务器前安装一个负载均衡的服务器一样。当TCP/UDP 的请求过来后,使一群服务器可以使用一个单一的IP 地址来对外提供相关的服务支撑。1.2.关键技术1.2.1Google分布式文件系统GFS/GFSIIGFS是Google 文件系统中最基础的模块。任何文件和数据都可以利用这种底层模块。GFS通过基于Linux 分布存储的方式,对于服务器来说,分成了主服务器(Master Servers)和块存储服务器(Chunk Servers),GFS上的块存储服务器上的存储空间以64MB为单位,分成很多的存储块,由主服务器来

8、进行存储内容的调度和分配。每一份数据都是一式三份的方式,将同样的数据分布存储在不同的服务器集群中,以保证数据的安全性和吞吐的效率提高。当需要对于文件、数据进行存储的时候,应用程序之间将需求发给主服务器,主服务器根据所管理的块存储服务器的情况,将需要存储的内容进行分配,并将可以存储的消息(使用那些块存储服务器,那些地址空间),有应用程序下面的GFS 接口在对文件和数据直接存储到相应的块存储服务器当中。块存储服务器要定时通过心跳信号的方式告知主服务器,目前自己的状况,一旦心跳信号出了问题,主服务器会自动将有问题的块存储服务器的相关内容进行复制。以保证数据的安全性。数据被存储时是经过压缩的。采用的B

9、MDiff 和Zippy 算法。BMDiff 使用最长公共子序列进行压缩, 压缩100MB/s, 解压缩约1000MB/s.类似的有IBM Hash Suffix Array Delta Compression. Zippy 是LZW 的改进版本, 压缩比不如LZW, 但是速度更快。1.2.2.Google并行计算构架Mapreduce有了强大的分布式文件系统,Google 遇到的问题就是怎么才能让公司所有的程序员都学会些分布式计算的程序呢?于是,那些Google 工程师们从lisp 和其他函数式编程语言中的映射和化简操作中得到灵感,搞出了Map/Reduce 这一套并行计算的框架。Map/R

10、educe被Google 拿来重新了Google Search Engine的整个索引系统。而Doug Cutting同样用Java 将这一套实现和HDFS 合在一起成为Hadoop 的Core。MapReduce 是Google 提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(化简)”,和他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程语言借来的特性。映射和化简简单说来,一个映射函数就是对一些独立元素组成的概念上的列表(例如,一个测试成绩的列表)的每一个元素进行指定的操作(比如前面的例子里,有人发现所有学生的成绩都被高估了一分,

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

12、简函数在高度并行环境下也很有用。分布和可靠性MapReduce 通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性;每个节点会周期性的把完成的工作和状态的更新报告回来。如果一个节点保持沉默超过一个预设的时间间隔,主节点(类同Google File System中的主服务器)记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。每个操作使用命名文件的原子操作以确保不会发生并行线程间的冲突;当文件被改名的时候,系统可能会把他们复制到任务名以外的另一个名字上去。(避免副作用)。化简操作工作方式很类似,但是由于化简操作在并行能力较差,主节点会尽量把化简操作调度在一个节点上,或者离需要

13、操作的数据尽可能进的节点上了;这个特性可以满足Google的需求,因为他们有足够的带宽,他们的内部网络没有那么多的机器。在Google,MapReduce用在非常广泛的应用程序中,包括“分布grep,分布排序,web连接图反转,每台机器的词矢量,web访问日志分析,反向索引构建,文档聚类,机器学习,基于统计的机器翻译.”值得注意的是,MapReduce 实现以后,它被用来重新生成Google的整个索引,并取代老的ad hoc 程序去更新索引。MapReduce会生成大量的临时文件,为了提高效率,它利用Google 文件系统来管理和访问这些文件。Map reduce编程模型1.2.3.Googl

14、e分布式数据库技术BigtableBigTable用来管理应用中那些结构化、半结构化的数据,BigTable 是建立在GFS ,Scheduler ,Lock Service 和MapReduce 之上的。上图是一个存储Web网页的范例列表片断。行名是一个反向URL即n.www。contents列族存放网页内容,anchor列族存放引用该网页的锚链接文本。CNN的主页被Sports Illustrater和MY-look的主页引用,因此该行包含了名叫“anchor:”和 “anchhor:my.look.ca”的列。每个锚链接只有一个版本由时间戳标识,如t9,t8;而contents列则有三个

15、版本,分别由时间 戳t3,t5,和t6标识。每个Table 都是一个多维的稀疏图sparse map。Table 由行和列组成,并且每个存储单元cell 都有一个时间戳。在不同的时间对同一个存储单元cell有多份拷贝,这样就可以记录数据的变动情况。数据存储的结构是(row:string, column:string, time:int64) - string行:表中的行键(目前任意字符串至64KB的大小)。每一个读取或写入的数据下单行的关键是原子(不论数目不同的列被读取或行中写的),更容易为客户的原因关于系统中的行为同时存在对同一行的更新。列:列项分为集合称为列的家族,它们形成了访问控制的基本

16、单位。所有数据在一列中存储的家族通常是同一类型。当数据以这个列键值被存储之前,列的家族必须被创建。家族内的任何列键值可以使用。因为,重叠的列键值比较少,与此相反,一个表可能有无限的列数。时间戳:Bigtable的每一个细胞中可以包含多个版本同样的数据,这些版本的时间戳索引。Bigtable的时间戳64位整数。它们可以被分配由Bigtable的,在这种情况下,他们真正代表联聪以微秒的时间,或明确指定的客户端应用程序。应用程序需要避免冲突必须创造自己独特的时间戳。不同一个单元格的版本都存储在时间戳顺序递减,因此,最近的版本可以首先阅读。1.2.4.Google并行锁服务Chubby lock在 G

17、oogle 这种的分布式系统中,需要一种分布式锁服务来保证系统的一致性。于是Google有了Chubby lock service。而同样是Yahoo!Research向开源贡献了Zookeeper,一个类似Google Chubby 的项目。在Google File System(GFS)中,有很多的服务器,这些服务器需要选举其中的一台作为master server。Value就是master server的地址,GFS 就是用Chubby 来解决的这个问题,所有的server 通过Chubby提供的通信协议到Chubby server 上创建同一个文件,当然,最终只有一个server 能够

18、获准创建这个文件,这个server 就成为了master,它会在这个文件中写入自己的地址,这样其它的server 通过读取这个文件就能知道被选出的master 的地址。Chubby 首先是一个分布式的文件系统。Chubby 能够提供机制使得client 可以在Chubby service 上创建文件和执行一些文件的基本操作。说它是分布式的文件系统,是因为一个Chubby cell 是一个分布式的系统。但是,从更高一点的语义层面上,Chubby 是一个lock service,一个针对松耦合的分布式系统的lock service。所谓lock service,就是这个service能够提供开发人

19、员经常用的“锁”,“解锁”功能。通过Chubby,一个分布式系统中的上千个client都能够对于某项资源进行“加锁”,“解锁”。Chubby 中的“锁”就是建立文件,在上例中,创建文件其实就是进行“加锁”操作,创建文件成功的那个server其实就是抢占到了“锁”。用户通过打开、关闭和读取文件,获取共享锁或者独占锁; 并且通过通信机制,向用户发送更新信息。1.2.5.Google消息序列处理系统Google WorkqueueGWQ (Google Workqueue)系统是负责将Mapreduce的工作任务安排各个各个计算单位的(Cell/Cluster)。仲裁(进程优先级)附表,分配资源,处

20、理故障,报告情况,收集的结果- 通常队列覆盖在GFS 上的。消息队列处理系统可以同时管理数万服务器。通过API接口和命令行可以调动GWQ 来进行工作。1.2.6.Google分布式存储技术MegastoreMegastore是谷歌一个内部的存储系统,它的底层数据存储依赖Bigtable,也就是基于NoSql实现的,但是和传统的NoSql不同的 是,它实现了类似RDBMS的数据模型(便捷性),同时提供数据的强一致性解决方案(同一个datacenter,基于MVCC的事务实现),并且将数据 进行细颗粒度的分区(这里的分区是指在同一个datacenter,所有datacenter都有相同的分区数据)

21、,然后将数据更新在机房间进行同步复制 (这个保证所有datacenter中的数据一致)。Megastore的数据复制是通过paxos进行同步复制的,也就是如果更新一个数据,所有机房都会进行同步更新,因为使用paxos进行复制, 所以不同机房针对同一条数据的更新复制到所有机房的更新顺序都是一致的,同步复制保证数据的实时可见性,采用paxos算法则保证了所有机房更新的一致 性,所以个人认为megastore的更新可能会比较慢,而所有读都是实时读(对于不同机房是一致的),因为部署有多个机房,并且数据总是最新。Scalable replication为了达到高可用性,megastore实现了一个同步的

22、,容错的,适合长距离连接的日志同步器为了达到高可扩展性,megastore将数据分区成一个个小的数据库,每一个数据库都有它们自己的日志,这些日志存储在NoSql中。Megastore将数据分区为一个Entity Groups的集合,这里的Entity Groups相当于一个按id切分的分库,这个Entity Groups里面有多个Entity Group(相当于分库里面的表),而一个Entity Group有多个Entity(相当于表中的记录)。Operation Across Entity Groups在同一个Entity Group中(相当于单库)的多个Entity的更新事务采用singl

23、e-phase ACID事务,而跨Entity Group(相当于跨库)的Entity更新事务采用two-phase ACID事务(2段提交),但更多使用Megastore提供的高效异步消息实现。需要说明的一点是,这些事务都是在同一个机房的,机房之间的数据交互都 是通过数据复制来实现的。1.3.数据中心灾备灾难备份与恢复有两个指标,一个是 RPO (Recovery Point Objective), 一个是 RTO (Recovery Time Objective),也就是数据丢失率和恢复间隔。对传统的 SAN 或异地备份,这两个指标基本取决于成本,指标越好,成本越高,Google 在这方面

24、,使用的是同步复制技术,同步复制使 RPO 接近于 0, 而 RTO 接近实时,也就是说,灾难发生时,Google 所有在线应用的数据丢失基本为 0,恢复间隔接近实时,使用户完全觉察不到(可是,Gmail 的几次宕机是怎么回事)。数据同步复制技术应用到所有 Google 在线应用(包括 Gmail,Google Calendar,Google Docs,以及Google Sites 等),用户需要保存的任何数据,都同步存储到 Google 的两个不同地理位置的数据中心,当任何一个数据中心发生故障,系统会立即切换到另一个数据中心。Google的备用数据中心并不是在灾难发生时才启用,而是一直在使用

25、中,Google 始终在这些数据中心之间进行平衡,保证没有资源浪费。Google的数据中心之间有他们自己的高度连接网络,保证数据快速传送。2.微软数据中心微软的动态数据中心方案通过Windows Server自带的Hyper-V技术和System Center完美整合,提供了高可用、动态资源调配、配置管理和数据备份等功能,通过部署Virtual Machine Manager还能对异构的虚拟化环境做统一的管理。微软的动态数据中心方案集成了Hyper-V,Cluster Service以及System Center四大核心产品,能对宿主机(包括Windows Server 2008/2008 R

26、2/2003 R2,Server Core或Hyper-V Server 2008 R2)以及不同类型的虚拟机(包括Windows 2000,Windows Server 2003/Windows XP,Windows Server 2008/Windows Vista,Windows Server 2008 R2/Windows 7,SUSE/Red Hat Linux)做统一的管理,例如配置兼容性管理、点对点服务监控、数据保护和备份等,而不是仅仅对虚拟机做一些配置管理。微软动态数据中心2.1.数据访问应用程序与存储数据的工作有许多不同的方式。有时人们需要的只是简单的块,而其他情况下则要求有

27、条理的方式来存储信息。在某些情况下,人们真正需要的是一种不同部分之间的交换数据指令。对于Azure允许的Windows数据存储块,表格和队列,所有通过HTTP进入同样的REST方式,使用REST API访问Storage Service。当前模式会产生的瓶颈微软云计算Windows Azure解决方案2.2.关键技术2.2.1.Azure Blob StorageBlob可以看做文件系统。是的,它确实和文件系统有非常多的相似之处。Blob storage有两个概念:Container:可以类比成文件夹Blob:可以类比成文件和文件系统一样,用户可以针对每个container设置访问权限,可以对

28、某个blob进行加锁(lease)从而防止concurrency问题,还可以使用诸如创建,删除,复制,备份,等众多功能。从存储结构上来说,我们提供了两种类型的blob:Block blob:其存储方式类似于传统的文件系统中的簇(cluster)的概念。一个blob被分成一个或多个block进行存储。Page blob:Page blob对随机读写进行了优化,大家可以把它类比成大型文件,例如.vhd和.mdf文件。Account下可以有许多 Container,Container下可以有许多Blob,每个Blob最大50GB,不同Container可以位于不同的存储节点。2.2.2.Azure

29、Table Storage千万不要把table storage和关系型数据库混淆起来。Windows Azure的table storage提供了一种结构化的存储方式。通俗来说,一个table可以被想象成一个xml文件。在xml文件中我们存放各种各样的数据,在一个table中我们也可以存放各种各样的entity。同一个table可以存储结构完全不同的两个entity,这和关系型数据库中需要对每张表制定统一的schema是不同的。Table storage的可变的schema充分体现出了其灵活性。例如,你的业务需要扩展,需要往数据结构中添加新的字段,你可以在完全不修改table schema,完

30、全不影响现有entity的情况下,对新的entity添加新的字段。如果你的程序可以被二次开发,第三方开发人员也完全可以在不影响你的程序所需要的entity的情况下,在同一张表中存储他们的程序所需要的,结构不同的entity。Account下可以有许多Table,Table可以划分为无限多的Partition,通过partition来扩展,不同Partition可以位于不同的存储节点,Table是Entity的集合,Entity是属性的集合,两个关键属性:PartitionKey提供可扩展性,RowKey唯一标示该partition中的Entity,相同PartitionKey的Entity存在

31、同个存储节点,使数据操作更有效。Azure Table Storage-例子Table Partition是拥有相同partition 键值的所有Entity的集合,高效地获取所有版本的FAQ Doc文档 (单一 Partition查询),该两个partition可以由不同服务器提供,实现高扩展的访问性能 Windows Azure的Table 及Blob存储通过Account自然实现 示例2.2.3.QueueQueue提供了一种先进先出的存储方式。它通常被用于各种不同的程序间的通信。例如一个经典的应用场景:Web Role接受用户请求,针对每个请求,在一个queue中创建一条消息(mess

32、age)。Worker Role则不断的从queue中取出消息,并且一一处理。2.2.4.Drive目前尚处于beta阶段的drive storage让开发人员能够使用标准的NTFS API读写文件。一个drive可以被挂接(mount)到某个特定的实例上,当作该实例对应的虚拟机的一块硬盘使用。由于drive在后台是由page blob实现的,因此你往drive中写入的文件也会自动被写入后台的page blob。这样一来数据便得到了持久化,即使万一运行当前实例的虚拟机出了问题,你还可以在其它实例中再次挂接这块虚拟硬盘,数据并不会丢失。需要注意的是,当前一个drive在同一时间只能被单个实例挂接。如果你需要在不同的实例中同时访问文件,还是推荐使用blob。Dive更常被用于移植现有的那些需要执行大量I/O操作的程序。2.2.5.SQL AzureSQL Azure是微软提供的一个云数据库系统,由微软SQL Server 2008为主,建构在Windo

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

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