您好,欢迎访问三七文档
云计算的集群与分布式摘要尽管我们已经有了高速的个人计算机,尽管我们有了储存大量信息的网络,但是随着社会的发展我们对其的要求也越来越高,为了满足越来越高的需求水平并降低升级的成本,一个新的观念出现了,并为IT业的发展指明了方向,这就是“云计算”。无疑,近年来,云计算已经成为最热门的技术话题之一,云计算技术已经成为了继个人计算机、互联网之后出现的第三次技术革命浪潮。国家“十二五”规划纲要和《国务院关于培育和发展战略性新兴产业的决定》均把“云计算”作为新一代信息技术的重要组成部分。由此可见“云计算”重要性和发展云计算的必要性。本文将从云计算组成的角度来粗浅的介绍云计算的概念。关键词集群技术与虚拟化,并行计算技术,分布式文件系统。第一章绪论1.1课题背景技术是云计算发展的基础。首先是云计算自身核心技术的发展,如:硬件技术,虚拟化技术,并行编程模型、海量数据分布存储技术、海量数据管理技术、云平台管理技术;其次是云计算赖以存在的移动互联网技术的发展,如:高速、大容量的网络,无处不在的接入,灵活多样的终端,集约化的数据中心,WEB技术。可以将云计算理解为八个字按需即用、随需应变,使之实现的各项技术已基本成熟。1.2什么是云计算云计算是通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。按照云计算的服务层次可以把云计算服务分为基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。IaaS:基础设施即服务IaaS(Infrastructure-as-a-Service):基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。PaaS:平台即服务PaaS(Platform-as-a-Service):平台即服务。PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。SaaS:软件即服务SaaS(Software-as-a-Service):软件即服务。它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。1.3云计算的基本技术高可靠的集群技术与虚拟化,并行计算技术,分布式文件系统。第二章集群技术与虚拟化2.1集群技术集群技术就是将多台服务器用集群软件连接在一起,组成一个高度透明的大型服务器群的计算机系统,作为一个整体为客户端提供服务,客户端能共享网络上的所有资源,如数据或应用软件等,同时客户端的用户并不关心其应用Server运行在那台服务器上,只关心其应用Server是否能连续工作。当集群系统内某一台服务器出现故障时,其备援服务器便立即接管该故障服务器的应用服务,继续为前端的用户提供服务。从客户端看来,集群中的所有服务器是一个系统,就像一台大型的计算机系统,其上运行着客户端需要的应用服务。集群系统能够保证用户的业务是连续的并且具有持续可用的特性,即具有7x24的可用性,从而将系统停止运行的时间降到了最低,提供了高可靠性的保障。从客户端看来,集群中所有的服务器是一个整体,就像一台大型的计算机,为了完成一些普通计算机或服务器难以胜任的计算密集型应用,集群可以可以集中几十台甚至成百上千台计算机服务器的计算能力来提供更高的计算能力。用户若想扩展系统能力性能,往往不得不购买更高性能的服务器并停止系统运行来更新设备,但是采用集群技术的话,只需将新的服务器加入集群中,并不需要停机和极其昂贵的服务器,通过大量性价比高的服务器的叠加和集合就可以做的更出色,大大提高了系统的可扩展性并大大降低了成本。集群技术在提高性能、增强可靠性的同时提供了更好的可扩展能力和更低的成本。2.1.1高可用性集群在一年之内可达99.99%可用性时,这样的集群系统我们称为高可用性的集群系统。可用性:当用户需要数据和服务时,计算机能够根据请求完成响应则定义为可用性。可用性是以百分比形式表示的一种系统正常工作的时间。高可用性系统是由集群软件监控、具有多台服务器互相冗余的系统。此系统通过集群软件提供的故障监测和故障处理能力,可提供业务连续性的能力。高可用性系统的主要目的是将计划内及计划外宕机时间减少到最少;其次是减少恢复一个失败系统的时间,即应在最短的时间内恢复系统。的运行。高可用性即确保计算机系统的运行时间达到99.99%。容错系统:是由一台计算机系统采用专用的、昂贵的和有复制功能的设备组成的系统。如计算机内部采用特殊的双主机板、CPU锁步运行、冗余磁盘、专有的操作系统等。它是为防止系统出错、获得较高可用性的一种方法。容错性是整个操作系统统筹设计的一个功能,系统完全自发、自动响应系统故障,并提供不问断服务。高可用性的集群系统主要包括以下几方面硬件组件:(1)服务器组:在高可用性的集群系统中每个节点的服务器必须有自己的CPU、内存和磁盘。每个服务器节点的磁盘是用于安装操作系统和集群软件程序。(2)对外提供服务的网路:集群系统中的服务器一般采用TCP/IP网络协议与客户端相连。每个服务器上都有自己的应用服务,客户端必须通过集群服务器中的网络通路来得到自己的服务。(3)心跳信号通路:在高可用性的集群系统中每个节点必须有心跳接口,用于服务器节点之间互相监视和通信,以取得备援服务器的工作状态。(4)数据共享磁盘:在高可用性的集群系统中由于运行的都是关键业务,故使用的存储服务器都应是企业级的存储服务器,这些存储服务器应具有先进技术来保障其数据安全。一般数据放在企业级的存储服务器的共享磁盘的空间中,它是各服务器节点之间维持数据~致性的桥梁,各服务器节点在集群软件的控制下不会同时访问共享磁盘。2.1.2负载均衡性集群当前,无论在局域网还是在广域网上,业务量的发展都超出了过去最乐观的估计,即使按照当时最优配置建设的网络,也很快会感到吃不消。尤其是各个网络的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担,而如何在完成同样功能的多个设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,负载均衡集群机制也因此应运而生。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它为用户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率避避,免了网络关键部位出现单点失效。负载均衡又可以分为静态负载均衡和动态负载均衡。静态负载均衡:它只是把有可能拥塞于一个服务器的负载交给多个服务器分担。就像轮流值日制度,把任务分给大家来完成,以免让一台服务器超负荷运算。不过,这种意义上的均衡一般是静态的,也就是事先确定的“轮值”策略。动态负载均衡:它是通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理分配出去。结构上分为本地负载均衡和地域负载均衡(全局负载均衡),前一种是指对本地的服务器集群做负载均衡,后一种是指对分别放置在不同的地理位置、在不同的网络及服务器群集之间作负载均衡。在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要解决网络拥塞问题,服务就近提供,实现地理位置无关性;为用户提供更好的访问质量,提高服务器响应速度,提高服务器及其他资源的利用效率,避免了网络关键部位出现单点失效。负载均衡集群通常采用专门的负载均衡路,负载均衡器通过虚拟IP地址方法,解决了轮流排程所面临的许多问题。使用了负载均衡器的集群系统,在外部看来,像是具有一个IP地址的单一服务器一样,当然,这个IP地址是虚拟的,它映射了集群中的每一台机器的地址。所以,在某种程度上,负载均衡器是将整个集群的IP地址报漏给外部网络。当请求到达负载均衡器时,它会重写该请求的头文件,并将之指定到集群中的机器上。如果某台机器被从集群中移除了,请求不会别发往已经不存在的服务器上,因为所有的机器表面上都具有同一个IP地址,即使集群中的某个节点被移除了,该地址也不会发生变化。而且,internet上缓存的DNS条目也不再是问题了。当返回一个应答时,客户端看到的只是从负载均衡器上所返回的结果。也就是说,客户端操作的对象是负载均衡器,对于其更后端的操作,对客户端来讲,是完全透明的。负载均衡路由设备由于采用了特殊的硬件结构及专门开发的配置软件,通常易于配置及管理,性能较好,但是其价格较高负载均衡器的优点:(1)通过故障恢复机制获得高可靠性。某一故障发生在当集群中某个节点不能处理请求,需将请求重新导向到其他节点时,负载均衡器会将之发送到集群中其他的节点上。(2)便于统计计量。既然所有的请求都经过负载均衡器,那么系统就可以确定活动的数量,在任何实例访问中的活动的数目,应答的次数,高峰负载次数,以及在高峰期和低谷期的会话的数目,还有其他更多的。所有的这些统计信息都可以被很好的用来调整整个系统的性能。负载均衡器的缺点在于费用、复杂性以及单点失败的。由于所有的请求均是通过硬件负载均衡器来传递,因此,负载均衡器上的任何故障都将导致整个站点的崩溃而且负载均衡器将会成为整个系统性能提升的瓶颈。2.2虚拟化技术随着近年集群、网格甚至云计算的广泛部署,虚拟化技术在商业应用上的优势日益体现,不仅降低了IT成本,而且还增强了系统安全性和可靠性,虚拟化的概念也逐渐深入到人们日常的工作与生活中。虚拟机管理器(VMM)是整个虚拟机系统的核心,它承担了资源的调度、分配和管理、保证多个虚拟机能够相互隔离的同时运行多个客户操作系统。虚拟机管理器运行在硬件平台之上,操作系统之下,不同的系统需求有不同的实现方式。虚拟机管理器主要包括对CPU的虚拟化,对内存的虚拟化,对I/O的虚拟化。2.2.1CPU的虚拟化CPU的虚拟化是为每个虚拟机提供一个或多个虚拟CPU(virtualCPU,VCPU)。多个虚拟CPU分时复用物理CPU,任意时刻一个CPU只能被一个虚拟CPU使用。VMM必须为各个虚拟CPU合理分配时间片并维护所有虚拟CPU的状态,当一个虚拟CPU的时间片用完需要切换时,要保存当前虚拟CPU状态,将被调度的虚拟CPU的状态载入物理CPU。因此VMM对于CPU虚拟化需要解决一下两个问题:(1)虚拟CPU的正确运行。(2)虚拟CPU的调度。虚拟CPU正确运行的关键是保证虚拟机的指令正确执行并且保证各个虚拟机之间不互相影响。现有的实现技术包括模拟执行和监控执行。模拟执行是指由VMM模拟所有指令的运行效果,包括解释执行和二进制代码翻译。通常用在物理机器指令集与虚拟机指令集不同的情况下,模拟执行方式效率较低。监控执行是指虚拟机的绝大部分指令都能在物理主机上直接执行,少量可能影响虚拟机运行或影响其他虚拟机状态的指令,必须由VMM监控并模拟其执行效果,监控执行方式效率较高,在理想状态下,虚拟机甚至可以达到接近物理主机的速度。虚拟CPU的调度是指由VMM决定当前哪一个虚拟CPU实际在物理CPU上运行。虚拟CPU的调度除了保证虚拟机之间的性能隔离性,还应该保证虚拟CPU的性能,保证调度的公平性:要考虑调度算法既能够充分利用物理CPU资源,又能实现精确的CPU资源分配;要根据虚拟机上运行的应用服务的特点以及虚拟机之间的依赖关系合理调度虚拟CPU。对运行虚拟机的环境来说,有如下调度需求:充分利用CPU资源:为了减小虚拟化的性能开销,使虚拟机尽可能接近物理主机的性能,调度算法需要保证物理CPU资源能充分利用,不浪费任何处理器周期。因此,通常采用连续工作型调度算法。性能隔离:VCPU的调度必须保证一个VCPU的运行不会影响其他VCPU的性能。考虑虚拟机之间的不对等:目前虚拟机常见的应用是服务器整合,可以把若干应用服务器合并在一台物理主机上分别作为不同的虚拟机同时运行。这些虚拟机可能有不同的应用特点,例如,交互/批处理,I/O密集
本文标题:云计算论文
链接地址:https://www.777doc.com/doc-5752439 .html