1 / 23
文档名称:

云计算论文.docx

格式:docx   大小:2,894KB   页数:23页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

云计算论文.docx

上传人:艾米 2023/4/21 文件大小:2.83 MB

下载得到文件列表

云计算论文.docx

相关文档

文档介绍

文档介绍:该【云计算论文 】是由【艾米】上传分享,文档一共【23】页,该文档可以免费在线阅读,需要了解更多关于【云计算论文 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。云计算论文
SaaS:软件即服务
SaaS(Software-as-a-Service):软件即服务。它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。
云计算的基本技术
高可靠的集群技术与虚拟化,并行计算技术,分布式文件系统。
集群技术与虚拟化

集群技术就是将多台服务器用集群软件连接在一起,组成一个高度透明的大型服务器群的计算机系统,作为一个整体为客户端提供服务,客户端能共享网络上的所有资源,如数据或应用软件等,同时客户端的用户并不关心其应用Server运行在那台服务器上,只关心其应用Server是否能连续工作。当集群系统内某一台服务器出现故障时,其备援服务器便立即接管该故障服务器的应用服务,继续为前端的用户提供服务。从客户端看来,集群中的所有服务器是一个系统,就像一台大型的计算机系统,其上运行着客户端需要的应用服务。集群系统能够保证用户的业务是连续的并且具有持续可用的特性,即具有7x24的可用性,从而将系统停止运行的时间降到了最低,提供了高可靠性的保障。
从客户端看来,集群中所有的服务器是一个整体,就像一台大型的计算机,为了完成一些普通计算机或服务器难以胜任的计算密集型应用,集群可以可以集中几十台甚至成百上千台计算机服务器的计算能力来提供更高的计算能力。
用户若想扩展系统能力性能,往往不得不购买更高性能的服务器并停止系统运行来更新设备,但是采用集群技术的话,只需将新的服务器加入集群中,并不需要停机和极其昂贵的服务器,通过大量性价比高的服务器的叠加和集合就可以做的更出色,大大提高了系统的可扩展性并大大降低了成本。
集群技术在提高性能、增强可靠性的同时提供了更好的可扩展能力和更低的成本。

%可用性时,这样的集群系统我们称为高可用性的集群系统。
可用性:当用户需要数据和服务时,计算机能够根据请求完成响应则定义为可用性。可用性是以百分比形式表示的一种系统正常工作的时间。高可用性系统是由集群软件监控、具有多台服务器互相冗余的系统。此系统通过集群软件提供的故障监测和故障处理能力,可提供业务连续性的能力。高可用性系统的主要目
的是将计划内及计划外宕机时间减少到最少;其次是减少恢复一个失败系统的时间,即应在最短的时间内恢复系统。的运行。%。
容错系统:是由一台计算机系统采用专用的、昂贵的和有复制功能的设备组成的系统。如计算机内部采用特殊的双主机板、CPU锁步运行、冗余磁盘、专有的操作系统等。它是为防止系统出错、获得较高可用性的一种方法。容错性是整个操作系统统筹设计的一个功能,系统完全自发、自动响应系统故障,并提供不问断服务。
高可用性的集群系统主要包括以下几方面硬件组件:
(1)服务器组:在高可用性的集群系统中每个节点的服务器必须有自己的CPU、内存和磁盘。每个服务器节点的磁盘是用于安装操作系统和集群软件程序。
(2)对外提供服务的网路:集群系统中的服务器一般采用TCP/IP网络协议与客户端相连。每个服务器上都有自己的应用服务,客户端必须通过集群服务器中的网络通路来得到自己的服务。
(3)心跳信号通路:在高可用性的集群系统中每个节点必须有心跳接口,用于服务器节点之间互相监视和通信,以取得备援服务器的工作状态。
(4)数据共享磁盘:在高可用性的集群系统中由于运行的都是关键业务,故使用的存储服务器都应是企业级的存储服务器,这些存储服务器应具有先进技术来保障其数据安全。一般数据放在企业级的存储服务器的共享磁盘的空间中,它是各服务器节点之间维持数据~致性的桥梁,各服务器节点在集群软件的控制下不会同时访问共享磁盘。

当前,无论在局域网还是在广域网上,业务量的发展都超出了过去最乐观的估计,即使按照当时最优配置建设的网络,也很快会感到吃不消。尤其是各个网络的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担,而如何在完成同样功能的多个设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,负载均衡集群机制也因此应运而生。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它为用户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率避避,免了网络关键部位出现单点失效。
负载均衡又可以分为静态负载均衡和动态负载均衡。
静态负载均衡:它只是把有可能拥塞于一个服务器的负载交给多个服务器分担。就像轮流值日制度,把任务分给大家来完成,以免让一台服务器超负荷运算。不过,这种意义上的均衡一般是静态的,也就是事先确定的“轮值”策略。
动态负载均衡:它是通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理分配出去。结构上分为本地负载均衡和地域负载均衡
(全局负载均衡),前一种是指对本地的服务器集群做负载均衡,后一种是指对分别放置在不同的地理位置、在不同的网络及服务器群集之间作负载均衡。在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要解决网络拥塞问题,服务就近提供,实现地理位置无关性;为用户提供更好的访问质量,提高服务器响应速度,提高服务器及其他资源的利用效率,避免了网络关键部位出现单点失效。
负载均衡集群通常采用专门的负载均衡路,负载均衡器通过虚拟IP地址方法,解决了轮流排程所面临的许多问题。使用了负载均衡器的集群系统,在外部看来,像是具有一个IP地址的单一服务器一样,当然,这个IP地址是虚拟的,它映射了集群中的每一台机器的地址。所以,在某种程度上,负载均衡器是将整个集群的IP地址报漏给外部网络。当请求到达负载均衡器时,它会重写该请求的头文件,并将之指定到集群中的机器上。如果某台机器被从集群中移除了,请求不会别发往已经不存在的服务器上,因为所有的机器表面上都具有同一个IP地址,即使集群中的某个节点被移除了,该地址也不会发生变化。而且,internet上缓存的DNS条目也不再是问题了。当返回一个应答时,客户端看到的只是从负载均衡器上所返回的结果。也就是说,客户端操作的对象是负载均衡器,对于其更后端的操作,对客户端来讲,是完全透明的。
负载均衡路由设备由于采用了特殊的硬件结构及专门开发的配置软件,通常易于配置及管理,性能较好,但是其价格较高
负载均衡器的优点:
(1)通过故障恢复机制获得高可靠性。某一故障发生在当集群中某个节点不能处理请求,需将请求重新导向到其他节点时,负载均衡器会将之发送到集群中其他的节点上。
(2)便于统计计量。既然所有的请求都经过负载均衡器,那么系统就可以确定活动的数量,在任何实例访问中的活动的数目,应答的次数,高峰负载次数,以及在高峰期和低谷期的会话的数目,还有其他更多的。所有的这些统计信息都可以被很好的用来调整整个系统的性能。
负载均衡器的缺点在于费用、复杂性以及单点失败的。由于所有的请求均是通过硬件负载均衡器来传递,因此,负载均衡器上的任何故障都将导致整个站点的崩溃而且负载均衡器将会成为整个系统性能提升的瓶颈。

随着近年集群、网格甚至云计算的广泛部署,虚拟化技术在商业应用上的优势日益体现,不仅降低了IT成本,而且还增强了系统安全性和可靠性,虚拟化的概念也逐渐深入到人们日常的工作与生活中。
虚拟机管理器(VMM)是整个虚拟机系统的核心,它承担了资源的调度、分配和管理、保证多个虚拟机能够相互隔离的同时运行多个客户操作系统。虚拟机管理器运行在硬件平台之上,操作系统之下,不同的系统需求有不同的实现方式。
虚拟机管理器主要包括对CPU的虚拟化,对内存的虚拟化,对I/O的虚拟化。

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密集/计算密集等,VCPU的调度策略必须考虑这些虚拟机之间的不对等。
常用的VCPU的调度算法有:BVT算法,sEDF算法,credit算法。

BVT(BorrowedVirtualTime)算法:BVT是一种公平性优先的调度算法。该算法将时间分为实际时间和虚拟时间:真实时间为硬件计时器记录的时间;虚拟时间为对真实时间经过某种规则计算后得到的时间值。
该算法用虚拟时间来监控进程的执行时间,每次总是调度具有最早的有效虚拟时间的VCPU。这种调度算法允许这些操作系统“借”一些时间片,就是说:在一定范围内将未来分配给它运行的时间片先“借”过来用一段时间。这种“借”过来的虚拟时间片只能是当前真实的时间片中的某个虚拟时间片,不能借下一个真实时间片中的虚拟时问片。在系统初始化时,每个VCPU将分配一个权值来代表该VCPU能获得的处理器份额。VCPU根据其权值来实现处理器的公平共享。系统用实际虚拟时间和有效虚拟时间来记录VCPU运行状态。其计算方式如下:
每一个VCPU维护一组状态:<Et,At,Wt,warpBackt>,其中:Et表示它某时刻t的EVT;At表示它实际的virtualtime;Wt表示它可以借的virtualtime;warpBackt表示是否允许借virtualtime。
当选择下一个要运行的VCPU时,选择Et最小的VCPU,Et按照下式计算:Et=At-(warpBackt?Wt:0)
若是延迟敏感的VCPU,warpBackt是1,需要从实际的At减去一个Wt值,从而能够获得较小的Et,使得能较早执行。
BVT的优缺点:
BVT调度算法的优点在于可以将物理时间片公平、均匀地分配两次被调度的时间间隔不会超过一个真实的时间片;能够满足I/O密集型和实时应用的低时延要求,能较好地调度某些实时性要求比较高的操作系统;在单CPU和多CPU环境下的调度开销都比较小。
BVT调度算法的缺点:
首先,每当当前虚拟机被加载运行时,它将获得整个CPU。用户不能把某个将某个虚拟机对CPU的使用限制在某个比例以下。其次,每个虚拟机只能借用分给它的时间片部分,而不会剥夺其他虚拟机的时间片。即当确定了各个虚拟机的时间片分配比例后,这个比例在下次分配之前不会改变。

简单最小时限调度sEDF(simpleEarliestDeadlineFirst)源于EDF(EarliestDeadlineFirst)算法是一种动态调度算法,用于实时操作系统中。
他将所有任务放在优先级队列中,当发生调度事件时(如任务结束、新任务加入等),从队列中找出时限最短的任务并调度运行。sEDF是一种最小时限调度算法,它为每个VCPU设置一个三元组(s,
p,x),其中s,p指的是在p毫秒内,虚拟机至少运行s毫秒,而x指的是如果在p时间片内,还有空余时间的话,是否允许该VCPU占用这些空余的时间片;而每个VCPU都有一个“最迟调度时间”(例如,0-100ms这个时间片内,若VCPU至少运行30ms那么它的最迟运行时间是70ms),sEDF用一个队列管理所有当前周期内还有可运行时间的VCPU,这些VCPU按照时限递增排列;用一个等待队列管理当前周期的运行时间已用完的VCPU,这些VCPU按照下一周期的开始时间递增排列。每次调度时,从可运行队列头取得可以运行的VCPU。如果虚拟机A还在运行,虚拟机B的调度时间片已经到来,那么sEDF将选用虚拟机B进行调度。
sEDF的优缺点:
sEDF调度算法是根据任务满足截止期限的紧迫性,来修改任务的优先级,以保证最紧迫的任务能够及时完成。当系统的负载相对较低时,这种算法非常有效;但是当系统负载极端沉重时,这就会使大量的任务发生时间错误,因此很可能使一些进程来不及处理而夭折。在sEDF算法中,一旦VCPU的调度参数被初始化后,就不能根据该VCPU的运行状况进行修改。
sEDF算法同时支持连续工作和断续工作模式,在断续工作模式下可以精确限定某个虚拟机使用的CPU资源比例,即使没有其他虚拟机运行,该虚拟机也只能使用一定的CPU资源。sEDF并不支持全局(多个CPU情况下)的负载均衡。例如存在如下分配:
分配CPU1:VCPU-1--80%CPU,分配CPU2:VCPU-2--80%CPU,如果此时有VCPU3,需要30%CPU空间,那么VCPU3将无法被分配和加载。即使两个CPU的剩余部分相加起来足够VCPU3的使用,但是由于每个CPU的剩余部分都不足,VCPU3只能等待。

每个CPU管理一个本地可运行的VCPU队列,该队列根据VCPU的优先级排序,每个VCPU的优先级可能是over或者under,表示该VCPU当前是否已经透支了它应该分配到的CPU资源。当一个VCPU被放入一个运行队列时,将其插在相同优先级的VCPU后面。一个VCPU运行时,将消耗它的CPU额度。每隔一段时间,由一个结算线程重新计算每个VCPU消耗了或者获得了多少额度。当额度为负时,则将优先级改为over;直到一段时间以后,额度又积累为整数,则优先级变为under,每结算一次,则运行队列要重排一次。当一个VCPU的时间片用完或被阻塞时,排在CPU的运行队列头的VCPU将被调度运行。若此时该CPU的运行队列中没有优先级为under的VCPU,则将从其它CPU的运行队列中寻找一个under的VCPU,也就是说,当一个CPU空闲时,将运行等待其它CPU的VCPU。这一策略保证了虚拟机共享整个物理主机的资源,也保证了在整个物理主机环境内所有CPU的负载均衡,也保证了对系统资源的充分利用:当系统中有可运行的VCPU时,不会有任何一个CPU空闲。

内存虚拟化是VMM的重要功能之一。VMM通常采用分块共享的思想来虚拟计算机的物理内存。也就是说,VMM需要将机器的内存分配给各个虚拟机,并维护机器内存和虚拟机所见到的“物理内存"的映射关系,使得这些内存在虚拟机看来是一段从地址0开始的、连续的物理地址空间。现代计算机通常都具备内存分页保护机制,这给VMM进行内存虚拟化提供了必要的硬件支持,因为VMM能够以页面为单位建立虚拟地址到机器地址的映射关系,并利用页面权限设置实现不同虚拟机间内存的隔离和保护。但是,由于客户操作系统本身也会进行叶式内存管理,虚拟机与传统计算机相比,其内存系统多了一种地址,共包括以下3种地址:
(1)机器地址(machineaddress)指真实硬件的机器地址,即地址总线上应该出现的地址信号。
(2)物理地址(physicaladdress)指经过VMM抽象的、虚拟机所看到的伪物理地址。
(3)虚拟地址(virtualaddress)指虚拟机提供给其应用程序使用的线性地址空间。
显然,VMM的内存模块负责完成物理地址到机器地址的映射,将这个映射记为f;虚拟机的内存管理模块要完成虚拟地址到物理地址的映射,将这个映射记为g,则虚拟地址、物理地址和真实地址之间的关系。
虚拟机会把虚拟地址映射到物理地址,而VMM再进一步把物理地址映射到机器地址。在两个不同的虚拟机中的进程,分别有一个页表(pagetable)进行地址转换。页表将进程的虚拟地址转换为物理地址。为了将物理地址转为最终使用的机器地址,虚拟机管理器维护着从物理地址到机器地址的真正的页表。如图所示。
为了使虚拟机系统具有更好的伸缩性和可扩展性,在充分保证虚拟机访问内存的性能的前提下,提出了理想的VMM应该提供以下一些内存管理功能:
(1)按需取页只有当虚拟机真正需要的时候,VMM才将物理内存分配给它,而不是简单地将固定大小的内存空间划分给虚拟机。按需取页能够提高内存资源的利用率。
(2)虚拟存储VMM能够利用交换(swap)等技术,给虚拟机提供超过实际机器内存大小的内存空间。虚拟机上的操作系统能够像运行在裸机上一样,透明地使用VMM提供的整个“物理内存"。
(3)内存共享VMM应该允许虚拟机之间只读地共享完全相同的内存区域,从而缓解大量虚拟机并发运行时的内存资源紧缺。实现内存共享的重要基础是内存写时复制机制(copyOnwrite)。

I/O虚拟化往往是VMM设计最复杂的部分。它涉及中断的捕获和分发、I/O地址空间的隔离和转换、大量I/O数据的传递、DMA页面的保护等。I/O的效率对于系统的成败更加至关重要。实现I/O虚拟最简单的方法是:将一台物理主机作为特殊的I/O处理机,它连接所有I/O设备,其它任何接点需要进行I/O操作时都要先