1、1Distributed and Cloud Computing分布式与云计算系统分布式与云计算系统2Distributed and Cloud ComputingKai Hwang,Geoffrey Fox,Jack Dongarra,published by Morgan Kaufmann,Oct.2011(648 pages)3 随着信息技术的广泛应用和快速发展,云计算作为一种新兴的商业计算模型日益受到人们的广泛关注。本书是国际上第一本完整讲述云计算与分布式系统基本理论及其应用的教材。书中首先简要介绍现代分布式模型,然后介绍了并行、分布式与云计算系统的设计原理、系统体系结构和创新应用,并
2、通过开源应用和商业应用例子,阐述了如何为科研、电子商务、社会网络和超级计算等创建高性能、可扩展的、可靠的系统。本书的目的是介绍从传统多处理器和多计算机集群到Web规模网格、云和未来互联网中泛在使用的P2P网络,包括大型社会网络和快速发展的物联网。4作者简介作者简介Kai HwangKai Hwang(黄铠)(黄铠)美国南加州大学电子工程系与计算机系教授,清华大学首席讲席教授,IEEE终身会士。Geoffrey FoxGeoffrey Fox 美国印第安那大学信息、计算与物理学的杰出教授,信息与计算研究生院副院长。Jack DongarraJack Dongarra 田纳西大学电子工程与计算机科
3、学系的大学杰出教授,橡树岭国家实验室杰出研究员,曼彻斯特大学Turning Fellow。5 “你是学分布式系统或分布式计算课程的学生吗?如果是,那么这本书是你的最佳选择。作者首先评价了过去30年计算和IT趋势中的变革,并讨论了集群计算系统和大规模并行处理器。接着,针对云计算应用,他们介绍了虚拟机、虚拟机在线迁移、虚拟集群构建、资源配置和虚拟数据中心设计。然后,作者介绍了云体系结构和数据中心设计的设计原理与使能技术,探究了两种主要的分布式服务(REST和Web服务)以及Web服务在网格系统中的扩展。此外,作者还介绍了主要的云编程范式:MapReduce、BigTable、Twister、Dry
4、ad、DryadLINQ、Hadoop、Sawal和Pig Latin。而且书中还介绍了计算/数据网格中的设计原理、平台体系结构、中间件、资源管理和服务标准。之后,作者描述了非结构化、结构化和混合式覆盖网络。最后,他们检测了 IBM、Salesforce、SGI、Manijarsoft、NASA和CERN构建的一些公有云和私有云。”摘自Amazon读者评论6第一部分 系统建模、集群化和虚拟化l第1章分布式系统模型和关键技术。介绍过去30年在并行、分布式、云计算领域发生的一些变革。l第2章可扩展并行计算集群。主要研究集群计算系统和大规模并行处理器。l第3章虚拟机和集群与数据中心虚拟化。介绍了虚拟
5、机、虚拟机在线迁移、虚拟集群构建、资源配置、虚拟配置适应,以及用于云计算应用的虚拟化数据中心的设计。7Chapter 1:Enabling Technologiesand Distributed System Models分布式系统模型和关键技术分布式系统模型和关键技术 8 本章介绍过去30年在变化负载和大数据集的应用驱动下,并行、分布式、云计算领域发生的一些变革。研究了并行计算领域要求高性能和高吞吐量的一些计算系统,如计算机集群、SOA、计算网格、P2P网络、互联网云和物联网。这些系统在硬件体系结构、系统平台、处理算法、通信协议、提供的服务模型等方面均有所不同。也介绍了分布式系统中可扩展性、
6、性能、可用性、安全、节能等方面的基本问题。91.1 互联网之上的可扩展计算 一个并行的、分布式的计算系统使用大量的计算机解决互联网上的大规模计算问题。分布式计算的缺点是数据敏感和网络中心化。互联网计算的时代 平台的变革:1950年代起大型机、小型机、个人计算机、便携式计算机 高性能计算:HPC系统强调系统的原生速度性能 高吞吐量计算:HTC主要应用于被百万以上用户同时使用的互联网搜索和Web服务 讨论的问题包括集群、MPP、P2P网络、网格、云、Web服务、社会网络和物联网。事实上,集群、网格、P2P网络和云之间的区别将会越来越模糊10HPC:HPC:High-High-Performance
7、 Performance ComputingComputingHTC:HTC:High-High-Throughput Throughput ComputingComputingP2P:P2P:Peer to PeerPeer to PeerMPP:MPP:Massively Parallel Massively Parallel ProcessorsProcessors图1-1 HPC和HTC系统的演化趋势(并行、分布式、云计算,具有集群、MPP、P2P网络、网格、云、Web服务和物联网)11计算范式间的区别:集中式计算:这种计算范式是将所有计算资源集中在一个物理系统之内。所有资源(处理器、
8、内存、存储器)是全部共享的,并且紧耦合在一个集成式的操作系统中。并行计算:在并行计算中,所有处理器或是紧耦合于中心共享内存或是松耦合于分布式内存。分布式计算:一个分布式系统由众多自治的计算机组成,各自拥有其私有内存,通过计算机网络通信。分布式系统中的信息交换通过消息传递的方式完成。12 云计算:一个互联网云的资源可以是集中式的也可以是分布式的。云采用分布式计算或并行计算,或两者兼有。云可以在集中的或分布式的大规模数据中心之上,由物理的或虚拟的计算资源构建。普适计算是指在任何地点和时间通过有线或者无线网络使用普遍的设备进行计算。物联网是一个日常生活对象(包括计算机、传感器、人等)网络化的连接。物
9、联网通过互联网云实现任何对象在任何地点和时间的普适计算。互联网计算这一术语几乎涵盖了所有和互联网相关的计算范式。13HPC和HTC系统需要遵从如下设计原则:效率:在HPC系统中开发大规模并行计算时,度量执行模型内资源的利用率。对于HTC系统,效率更依赖于系统的任务吞吐量、数据访问、存储、节能。可信:度量从芯片到系统到应用级别的可靠性和自管理能力。目的是提供有服务质量(QoS)保证的高吞吐量服务,即使是失效的情况下。编程模型适应性:度量在海量数据集和虚拟云资源上各种负载和服务模型下支持数十亿任务请求的能力。应用部署的灵活性:度量分布式系统能够同时很好地运行在HPC(科学和工程)和HTC(商业)应
10、用上的能力。14可扩展性计算趋势和新的范式l位级并行(BitLevel Parallelism,BLP)l指令级并行(InstructionLevel Parallelism,ILP)。通过指令流水线、超标量计算、VLIW体系结构、多线程实践了ILP。ILP需要分支预测、动态规划、投机预测、提高运行效率的编译支持。l数据级并行(DataLevel Parallelism,DLP)的流行源于SIMD和使用向量与数组指令类型的向量机l任务级并行(TaskLevel Parallelism,TLP)l作业级并行(JobLevel Parallelism,JLP)1516图1-2 现代分布式计算系统中
11、的计算机效用愿景(Courtesy of Raj Buyya,University of Melbourne,2011)Copyright 2012,Elsevier Inc.All rights reserved.172011 Gartner 2011 Gartner“IT Hype CycleIT Hype Cycle”for Emerging Technologies for Emerging Technologies20072008200920102011新技术成熟周期 18物联网和CPS 物联网是指日常生活中对象、工具、设备或计算机间存在网络互连。物联网为互联了所有我们生活中的对象的
12、无线传感器网络。CPS是计算过程和物理世界之间交互的结果。CPS集成了“计算节点”(同构,异构)和“物理”(并发和信息密集的)对象。CPS在物理世界和信息世界之间将“3C”技术(计算、通信、控制)融合到了一个智能闭环反馈系统中。物联网强调物理对象之间的多样化连接,而CPS强调物理世界中虚拟现实应用的开发和研究。191.2 基于网络的系统技术 多核CPU和多线程技术20图1-5 现代多核CPU芯片的层次cache示意图,其中L1 cache是每个核私有的,片上L2 cache是共享的,L3 cache和DRAM是非片上的21图1-6 现代CPU处理器的5种微体系结构,通过多核和多线程技术支持IL
13、P和TLP22图1-7 数百或数千处理核心的海量并行处理中协同CPU的GPU使用大规模和超大规模GPU计算 23图1-8 16个流式多处理器(SM),每个有32个CUDA核的NVIDIA Fermi GPU,只一个SM被展示出来 24图1-9 GPU性能(中间的曲线,2011年每个核心5 Gflops/W),相比较低的CPU性能(下面的曲线,2011年每个核心08 Gflops/W),以及2011年预计未来每个核心60 Gflops/W的性能(上面曲线中的EF)25内存、外部存储和广域网 图1-10 过去33年中内存和磁盘技术的改进。2011年,Seagate Barracuda XT磁盘容量
14、为3TB26图1.11三种连接服务器、客户机、存储设备的互连网络,LAN连接客户机和服务器,SAN连接服务器和磁盘阵列,NAS连接客户机和网络环境中大规模存储系统系统区域互连 27图1-12 三种虚拟机体系结构与传统的物理机的比较虚拟机和虚拟化中间件 建立大规模集群、网格和云,我们需要以虚拟的方式访问大量的计算、存储和网络化资源。我们需要集群化这些资源,并希望提供一个单独的系统镜像。28Primitive Operations in Virtual Machines:图1-13 分布式计算环境中的虚拟机复用、挂起、供应和迁移29Datacenter and Server Cost Distri
15、bution图1-14 近年来,数据中心的服务器数量增长和成本分析30Data Deluge Enabling New Challenges(Courtesy of Judy Qiu,Indiana University,2011)31Concept of Virtual Clusters(Source:W.Emeneker,et et al,“Dynamic Virtual Clustering with Xen and Moab,ISPA 2006,Springer-Verlag LNCS 4331,2006,pp.440-451)Copyright 2012,Elsevier Inc.A
16、ll rights reserved.321.3 分布式和云计算系统模型 分布式和云计算系统都建立于大量自治的计算机节点之上。这些节点通过SAN、LAN或WAN以层次方式互连。大系统被认为高可扩展,并能在物理上或逻辑上达到Web规模互连。大系统被划分为四组:集群、P2P网络、计算网格、大数据中心之上的互联网云。3334A Typical Cluster Architecture协同计算机集群图1-15 服务器集群通过高带宽SAN或LAN互连以共享I/O设备和磁盘阵列;集群以一个单独计算机的身份接入互联网 35单系统镜像 集群应该合并多个系统镜像到一个单系统镜像(SSI)。集群设计者期待一个集群
17、操作系统或者一些中间件在各个级别支持SSI。硬件、软件和中间件支持 几乎所有的Top500中的HPC集群都是MPP的。基本的构成部件包括计算机节点(PC、工作站、服务器或SMP)、特殊的通信软件(如PVM或MPI)和每个计算机节点上的网络接口卡。特殊的集群中间件支持是用来实现SSI或高可用性主要的集群设计问题 没有一个适合集群的完全资源共享的操作系统。软件环境和应用依靠中间件来达到高性能。36网格计算的基础设施 在过去30年,用户经历了一个从互联网到Web和网格计算服务的自然发展。互联网服务(如Telnet命令)使本地计算机可以连接到一台远程计算机。一个Web服务(如HTTP)使远程访问Web
18、页面成为可能。网格计算被预想用于同时在多台远距离计算机上运行的应用间进行近距离交互。网格呈现为集成的计算资源。它们也可以被视为支持虚拟组织的虚拟平台。2024/3/11 周一3738图1-16 计算网格或数据网格通过资源共享和多个组织间合作提供了计算效用、数据和信息服务3940A Typical Computational Grid41对等网络家族 客户端服务器体系结构。客户机(PC和工作站)被连接到一个中央服务器,用来进行计算、电子邮件、文件访问和数据库应用。P2P体系结构提供了一个分布式的网络化系统模型。在一个P2P系统中,每个节点既是客户端又是服务器,提供部分系统资源。节点机器都是简单的
19、接入互联网的客户机。所有客户机自治、自由地加入和退出系统。不存在主从关系。无需中心协作或中心数据库。系统是分布式控制下自组织的。42 覆盖网络:数据项或文件分布在一起参加的节点中。基于通信或文件共享需求,对等节点ID在逻辑层形成一个覆盖网络。P2P计算在硬件、软件和网络需求上面临三类异构问题。有太多的硬件模型和体系结构而无法选择;软件和操作系统间不相容;33不同的网络连接和协议使其过于复杂而无法应用于真实应用。数据位置对集体性能的影响也很重要。数据局部性、网络邻近性和互操作性是分布式P2P应用的设计目标。43图1-17 通过映射物理IP网络到一个覆盖网络络建立虚拟链接的P2P系统结构4445互
20、联网上的云计算互联网上的云计算 n n数据爆炸促发了云计算的思想。数据爆炸促发了云计算的思想。n nIBMIBM给出了如下定义:给出了如下定义:“云是虚拟云是虚拟计算机资源池。云可以处理各种不计算机资源池。云可以处理各种不同的负载,包括批处理式后端作业同的负载,包括批处理式后端作业和交互式用户界面应用。和交互式用户界面应用。”n n云通过迅速提供虚拟机或物理机允云通过迅速提供虚拟机或物理机允许负载被快速配置和划分。云支持许负载被快速配置和划分。云支持冗余、自恢复、高可扩展编程模型,冗余、自恢复、高可扩展编程模型,以允许负载从许多不可避免的硬件以允许负载从许多不可避免的硬件/软件错误中恢复。最终
21、,云计算软件错误中恢复。最终,云计算系统可以通过实时监视资源来确保系统可以通过实时监视资源来确保分配在需要时平衡。分配在需要时平衡。Copyright 2012,Elsevier Inc.All rights reserved.46Basic Concept of Internet Clouds图1.18数据中心的虚拟化资源形成互联网云,向付费用户提供硬件、软件、存储、网络和服务以运行他们的应用47The Next Revolution in ITCloud Computingn nClassical ComputingClassical ComputingqqBuy&OwnBuy&Ownn
22、nHardware,Hardware,System System Software,Software,Applications Applications often to meet often to meet peak needs.peak needs.qqInstall,Configure,Install,Configure,Test,Verify,Test,Verify,EvaluateEvaluateqqManageManageqq.qqFinally,use itFinally,use itqq$.$(High$.$(High CapEx)CapEx)n nCloud Computin
23、gqqSubscribeSubscribeqqUseUseqq$-pay for what you$-pay for what you use,based on QoSuse,based on QoSEvery 18 months?Copyright 2012,Elsevier Inc.All rights reserved.(Courtesy of Raj Buyya,2012)48 云计算提供了一个虚拟化的按需动态供应硬件、软件和数据集的弹性资源平台。基础设施即服务(IaaS):这个模型将用户需要的基础设施(即服务器、存储、网络和数据中心构造)组合在一起。用户可以在使用客户机操作系统的多个
24、虚拟机上配置和运行指定应用。平台即服务(PaaS):这个模型使用户能够在一个虚拟的云平台上配置用户定制的应用。PaaS包括中间件、数据库、开发工具和一些运行时支持(如Web 2.0和Java)。软件即服务(SaaS):这是指面向数千付费云用户的初始浏览器的应用软件。SaaS模型应用于业务流程、工业应用、客户关系管理、企业资源计划、人力资源和合作应用。49图1-19 主要提供商的云前景中的三个云服务模型50Cloud Computing Challenges:Dealing with too many issues(Courtesy of R.Buyya)VirtualizationQoSSer
25、vice Level AgreementsResource MeteringBillingPricingProvisioning on DemandUtility&Risk ManagementScalabilityReliabilityEnergy EfficiencySecurityPrivacyTrustLegal&RegulatorySoftware Eng.ComplexityProgramming Env.&Application Dev.51图1-20 Web服务和网格的层次化体系结构 1.4 1.4 分布式系统和云计算软件环境分布式系统和云计算软件环境面向服务的体系结构(面向服
26、务的体系结构(SOASOA)52图1-21 SOA变革:云网格和网格,其中“SS”指传感器服务,“fs”指过滤或转化服务53网格与云 网格和云之间的界限近年来变得越来越模糊。对于Web服务,工作流技术用于协调或编排具有指定规范的服务,其中这些规范用于定义关键业务流程模型,如两阶段事务。网格系统使用静态资源,而云强调弹性资源。网格和云之间的不同仅限于基于虚拟化和自治计算的动态资源管理。可以通过多个云建立网格。这种网格比一个单纯的云能更好的工作,因为它能明确支持协议资源分配。从而可以建立系统的系统,如云之云、云网格、网格云,或互联云作为一个基本SOA体系结构。54分布式操作系统趋势 55Trans
27、parent Cloud Computing Environment图1-22 在时间和空间上分离了用户数据、应用、操作系统和硬件的透明计算环境 云计算的一个理想模型56并行和分布式编程模型 57Grid Standards and Middleware:581.5 性能、安全和节能性能度量:l分布式系统中性能与许多因素相关。系统吞吐量经常用MIPS、Tflops(每秒T浮点运算次数)或TPS(Transactions Per Second,每秒事务数)测量。其他度量包括作业响应时间和网络延迟。l系统开销通常归因于操作系统启动时间、编译时间、I/O数据速率和运行时支持系统消耗。其他性能相关度量
28、包括互联网和Web服务的QoS、系统可用性和可靠性,以及系统抵抗网络攻击的安全弹性。59可扩展性:l规模可扩展性:指通过增加机器数量来获取更高的性能和更多的功能。l软件可扩展性:指升级操作系统或编译器,增加数学和工程库,移植新的应用软件,安装更多的用户友好的编程环境。l应用可扩展性:指问题的规模扩展与机器的大小扩展相匹配。l技术可扩展性:指系统可以适应构建技术的变化60System Scalability vs.OS Multiplicity图1-23 基于2010年技术的多重操作系统镜像与系统可扩展性61Amdahl定律:加速比=S=T/T+(1-)T/n=1/+(1-)/n 固定负载加速比
29、:E=S/n=1/n+1-(12)系统效率通常非常低,尤其是当集群规模非常大时。Gustafson定律:扩展负载加速比S=W/W=W+(1-)nW/W=+(1-)n通过固定并行处理时间在级别W,可以得到效率:E=S/n=/n+(1-)在不同的负载条件下,应该灵活选用Amdahl定律和Gustafson定律。对于固定负载,应采用Amdahl定律。为了解决扩展规模的问题,应采用Gustafson定律。62系统可用性系统可用性系统可用性系统可用性=MTTF/(MTTF+MTTR)=MTTF/(MTTF+MTTR)=MTTF/(MTTF+MTTR)=MTTF/(MTTF+MTTR)图1-24 通过2010年常规配置的系统规模估计系统可用性63网络威胁与数据完整性图1-25 对计算机的各种系统袭击和网络威胁及造成的4种损失64运行服务器的节能 图1-26 分布式运算系统的4个操作层65DVFSDVFS节能方法能够利用因任务交互而招致的松弛时节能方法能够利用因任务交互而招致的松弛时间以一个低电压、频率执行任务间以一个低电压、频率执行任务 图1-27 通过在松弛时间降低频率或电压,DVFS技术(右)节约的能量与传统方式(左)的比较 THE END2024/3/11 周一66