1、1,Distributed and Cloud Computing 分布式与云计算系统,2,分布式系统模型和关键技术,3,1.1 互联网之上的可扩展计算 分布式系统是个由多个互相连接的处理资源组成的计算机系统,它们在整个系统的控制下协同执行同一个任务,最少依赖于集中的程序、数据或硬件。 优点:缺点:,4,互联网之上的可扩展计算,平台的变革:1950年代起大型机、小型机、个人计算机、便携式计算机 高性能计算:HPC系统强调系统的原生速度性 高吞吐量计算:HTC主要应用于被百万以上用户同时使用的互联网搜索和Web服务 讨论的问题包括集群、MPP、P2P网络、网格、云、Web服务、社会网络和物联网。
2、事实 上,集群、网格、P2P网络和云之间的区别将会 越来越模糊。,5,HPC: High-Performance Computing HTC: High-Throughput Computing P2P: Peer to Peer MPP: Massively Parallel Processors,图1-1 HPC和HTC系统的演化趋势(并行、分布式、云计算,具有集群、MPP、P2P网络、网格、云、Web服务和物联网),6,计算范式间的区别:集中式计算:这种计算范式是将所有计算资源集中在一个物理系统之内。所有资源(处理器、内存、存储器)是全部共享的,并且紧耦合在一个集成式的操作系统中。 并行
3、计算:在并行计算中,所有处理器或是紧耦合于中心共享内存或是松耦合于分布式内存。 分布式计算:一个分布式系统由众多自治的计算机组成,各自拥有其私有内存,通过计算机网络通信。分布式系统中的信息交换通过消息传递的方式完成。 ,7,云计算:一个互联网云的资源可以是集中式的也可以是分布式的。云采用分布式计算或并行计算,或两者兼有。云可以在集中的或分布式的大规模数据中心之上,由物理的或虚拟的计算资源构建。普适计算是指在任何地点和时间通过有线或者无线网络使用普遍的设备进行计算。物联网是一个日常生活对象(包括计算机、传感器、人等)网络化的连接。物联网通过互联网云实现任何对象在任何地点和时间的普适计算。互联网计
4、算这一术语几乎涵盖了所有和互联网相关的计算范式。,8,HPC和HTC系统需要遵从如下设计原则: 效率:在HPC系统中开发大规模并行计算时,度量执行模型内资源的利用率。对于HTC系统,效率更依赖于系统的任务吞吐量、数据访问、存储、节能。 可信:度量从芯片到系统到应用级别的可靠性和自管理能力。目的是提供有服务质量(QoS)保证的高吞吐量服务,即使是失效的情况下。 编程模型适应性:度量在海量数据集和虚拟云资源上各种负载和服务模型下支持数十亿任务请求的能力。 应用部署的灵活性:度量分布式系统能够同时很好地运行在HPC(科学和工程)和HTC(商业)应用上的能力。,9,可扩展性计算趋势和新的范式位级并行(
5、BitLevel Parallelism,BLP) 指令级并行(InstructionLevel Parallelism,ILP)。通过指令流水线、超标量计算、VLIW体系结构、多线程实践了ILP。ILP需要分支预测、动态规划、投机预测、提高运行效率的编译支持。 数据级并行(DataLevel Parallelism,DLP)的流行源于SIMD和使用向量与数组指令类型的向量机 任务级并行(TaskLevel Parallelism,TLP) 作业级并行(JobLevel Parallelism ,JLP),10,11,新技术成熟周期,第一阶段技术萌芽期,这意味着一种新技术诞生。往往是这种新技术
6、在参加了一些行业前沿展会譬如消费电子展(CES)之后,由于其新奇性、高科技含量被各大媒体广泛报道。,12,新技术成熟周期,第二阶段期望膨胀期,一些企业推出产品。在这一阶段,有很多成功的案例,也有很多失败的案例,让很多企业暂停创新。 第三阶段幻想破灭期,新产品、新服务达不到公众的预期。,13,新技术成熟周期,第四阶段复苏期。在此阶段,新技术将稳步发展,步入成熟期并最终跻身主流市场.第五阶段成熟期。在此阶段,新科技产生的利益与潜力被市场实际接受,支援此经营模式的工具、方法论经过数代的演进,进入了非常成熟的阶段。,14,新技术成熟周期,通过“技术成熟周期”五阶段发展曲线,可以认识清楚,哪些是炒作,哪
7、些将成为真正火热的产品。 握好时间点是一切成功的关键。如果过早推出一个产品,消费者可能还没有准备好。但是,如果适时抢在别人前面推出新产品,那么企业将独占鳌头。,15,2011 Gartner “IT Hype Cycle” for Emerging Technologies,新技术成熟周期,16,物联网和CPS物联网是指日常生活中对象、工具、设备或计算机间存在网络互连。物联网为互联了所有我们生活中的对象的无线传感器网络。CPS是计算过程和物理世界之间交互的结果。CPS集成了“计算节点”(同构,异构)和“物理”(并发和信息密集的)对象。CPS在物理世界和信息世界之间将“3C”技术(计算、通信、控
8、制)融合到了一个智能闭环反馈系统中。物联网强调物理对象之间的多样化连接,而CPS强调物理世界中虚拟现实应用的开发和研究。,17,1.2 基于网络的系统技术 多核CPU和多线程技术,18,摩尔定律,摩尔定律是由英特尔(Intel)创始人之一戈登摩尔(Gordon Moore)提出来的。其内容为:当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18个月翻两倍以上。这一定律揭示了信息技术进步的速度。,19,图1-5 现代多核CPU芯片的层次cache示意图,其中L1 cache是每个核私有的,片上L2 cache是共
9、享的,L3 cache和DRAM是非片上的,20,图1-6 现代CPU处理器的5种微体系结构,通过多核和多线程技术支持ILP和TLP,21,图1-7 数百或数千处理核心的海量并行处理中协同CPU的GPU使用,大规模和超大规模GPU计算,22,GPU与CPU(一),GPU的竞争远比CPU的竞争来得激烈。通用PC的CPU就只有英特尔和AMD两家大厂。而在GPU方面领先的是NVIDIA和AMD两家厂商,但能生产中低端产品的还有英特尔、三星等好几家厂商。它们的产品虽然不如前两家,但在很多应用方面也能满足用户的需要,所以N记和A记只有拼命往前跑才不会死掉。,23,GPU与CPU(二),CPU除了处理游戏
10、的AI,情节等方面的数据外,对于有些图像方面也是由它完成的。当微软每次发布新的DX时,并不是每款GPU都能支持DX新的特性,所以有些图像方面的任务还得由CPU来完成。,24,GPU与CPU(三),GPU相当于专用于图像处理的CPU,正因为它专,所以它强,在处理图像时它的工作效率远高于CPU,但是CPU是通用的数据处理器,在处理数值计算时是它的强项,它能完成的任务是GPU无法代替的,所以不能用GPU来代替CPU。,25,GPU与CPU(四),微软发布Windows7 其中一个显著特性就是 联合GPU和CPU的强大实力,提升GPU在硬件使用的价值,在Windows7中,CPU与GPU组成了协同处理
11、环境。CPU运算非常复杂的序列代码,而GPU则运行大规模并行应用程序。,26,内存、外部存储和广域网,图1-10 过去33年中内存和磁盘技术的改进。2011年,Seagate Barracuda XT磁盘容量为3TB,27,图1.11三种连接服务器、客户机、存储设备的互连网络,LAN连接客户机和服务器,SAN连接服务器和磁盘阵列,NAS连接客户机和网络环境中大规模存储系统,系统区域互连,28,图1-12 三种虚拟机体系结构与传统的物理机的比较,虚拟机和虚拟化中间件建立大规模集群、网格和云,我们需要以虚拟的方式访问大量的计算、存储和网络化资源。我们需要集群化这些资源,并希望提供一个单独的系统镜像
12、。,29,Primitive Operations in Virtual Machines:,图1-13 分布式计算环境中的虚拟机复用、挂起、供应和迁移,30,1.3 分布式和云计算系统模型分布式和云计算系统都建立于大量自治的计算机节点之上。这些节点通过SAN、LAN或WAN以层次方式互连。大系统被认为高可扩展,并能在物理上或逻辑上达到Web规模互连。大系统被划分为四组:集群、P2P网络、计算网格、大数据中心之上的互联网云。,31,32,A Typical Cluster Architecture,协同计算机集群,图1-15 服务器集群通过高带宽SAN或LAN互连以共享I/O设备和磁盘阵列;集
13、群以一个单独计算机的身份接入互联网,33,计算机集群,计算机集群简称集群是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。 集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。,34,计算机集群,高可用性集群一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。,35,计算机集群,负载均衡集群负载均衡集群运行时一般通过一个或者多个
14、前端负载均衡器将工作负载分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性。这样的计算机集群有时也被称为服务器群(Server Farm)。,36,计算机集群,高性能计算集群高性能计算集群采用将计算任务分配到集群的不同计算节点儿提高计算能力,因而主要应用在科学计算领域。比较流行的HPC采用Linux操作系统和其它一些免费软件来完成并行运算。,37,网格计算在过去30年,用户经历了一个从互联网到Web和网格计算服务的自然发展。互联网服务(如Telnet命令)使本地计算机可以连接到一台远程计算机。一个Web服务(如HTTP)使远程访问Web页面成为可能。网格计算被预想用于同时在多台远距离
15、计算机上运行的应用间进行近距离交互。网格呈现为集成的计算资源。它们也可以被视为支持虚拟组织的虚拟平台。,38,图1-16 计算网格或数据网格通过资源共享和多个组织间合作提供了计算效用、数据和信息服务,39,网格计算,网格计算通过共享网络将不同地点的大量计算机相联,从而形成虚拟的超级计算机,将各处计算机的多余处理器能力合在一起,可为研究和其他数据集中应用提供巨大的处理能力。 有了网格计算,那些没有能力购买价值数百万美元的超级计算机的机构,也能利用其巨大的计算能力。,40,41,对等网络家族客户端服务器体系结构。客户机(PC和工作站)被连接到一个中央服务器,用来进行计算、电子邮件、文件访问和数据库
16、应用。P2P体系结构提供了一个分布式的网络化系统模型。在一个P2P系统中,每个节点既是客户端又是服务器,提供部分系统资源。节点机器都是简单的接入互联网的客户机。所有客户机自治、自由地加入和退出系统。不存在主从关系。无需中心协作或中心数据库。系统是分布式控制下自组织的。,42,覆盖网络:简单说来覆盖网络就是应用层网络,它是面向应用层的,不考虑或很少考虑网络层,物理层的问题。如p2p、基于内容的网络。P2P计算在硬件、软件和网络需求上面临三类异构问题。有太多的硬件模型和体系结构而无法选择;软件和操作系统间不相容;不同的网络连接和协议使其过于复杂而无法应用于真实应用。,43,图1-17 通过映射物理
17、IP网络到一个覆盖网络络建立虚拟链接的P2P系统结构,44,45,互联网上的云计算,数据爆炸促发了云计算的思想。 IBM给出了如下定义:“云是虚拟计算机资源池。云可以处理各种不同的负载,包括批处理式后端作业和交互式用户界面应用。” 云通过迅速提供虚拟机或物理机允许负载被快速配置和划分。云支持冗余、自恢复、高可扩展编程模型,以允许负载从许多不可避免的硬件/软件错误中恢复。最终,云计算系统可以通过实时监视资源来确保分配在需要时平衡。,Copyright 2012, Elsevier Inc. All rights reserved.,46,Basic Concept of Internet Clo
18、uds,图1.18数据中心的虚拟化资源形成互联网云,向付费用户提供硬件、软件、存储、网络和服务以运行他们的应用,47,1.4 分布式系统和云计算软件环境 面向服务的体系结构(SOA),面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。,48,面向服务的体系结构,1、服务请求者:服务请求者是一个应用程序、一个软件模块或需要一个服务的另一个服务。它发起对注册中心中的服务的查询,通过传输绑定服务,并且执行服务功能。服务请求者根据接口契约来执行服务。
19、 2、服务提供者:服务提供者是一个可通过网络寻址的实体,它接受和执行来自请求者的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务请求者可以发现和访问该服务。 3、服务注册中心:服务注册中心是服务发现的支持者。它包含一个可用服务的存储库,并允许感兴趣的服务请求者查找服务提供者接口。,49,面向服务的体系结构,发布:为了使服务可访问需要发布服务描述以使服务请求者可以发现和调用它。 查询:服务请求者定位服务方法是查询服务注册中心来找到满足其标准的服务。 绑定和调用:在检索完服务描述之后,服务请求者继续根据服务描述中的信息来调用服务。,50,网格与云网格和云之间的界限近年来变得越来越模糊。网
20、格系统使用静态资源,而云强调弹性资源。网格和云之间的不同仅限于基于虚拟化和自治计算的动态资源管理。可以通过多个云建立网格。这种网格比一个单纯的云能更好的工作,因为它能明确支持协议资源分配。从而可以建立系统的系统,如云之云、云网格、网格云,或互联云作为一个基本SOA体系结构。,51,分布式操作系统趋势,52,Transparent Cloud Computing Environment,图1-22 在时间和空间上分离了用户数据、应用、操作系统和硬件的透明计算环境,53,并行和分布式编程模型,54,Grid Standards and Middleware :,55,1.5 性能、安全和节能 性能
21、度量: 分布式系统中性能与许多因素相关。系统吞吐量经常用MIPS、Tflops(每秒T浮点运算次数)或TPS(Transactions Per Second,每秒事务数)测量。其他度量包括作业响应时间和网络延迟。系统开销通常归因于操作系统启动时间、编译时间、I/O数据速率和运行时支持系统消耗。其他性能相关度量包括互联网和Web服务的QoS、系统可用性和可靠性,以及系统抵抗网络攻击的安全弹性。,56,可扩展性:规模可扩展性:指通过增加机器数量来获取更高的性能和更多的功能。 软件可扩展性:指升级操作系统或编译器,增加数学和工程库,移植新的应用软件,安装更多的用户友好的编程环境。 应用可扩展性:指问题的规模扩展与机器的大小扩展相匹配。用户可以通过放大问题的规模来提高系统效率。 技术可扩展性:指系统可以适应构建技术的变化,57,网络威胁与数据完整性 图1-25 对计算机的各种系统袭击和网络威胁及造成的4种损失,58,运行服务器的节能,图1-26 分布式运算系统的4个操作层,59,运行服务器的节能,应用层:计算和存储中间层:任务调度资源层:动态电能管理网络层:智能网络,