云计算平台相关研究_第1页
云计算平台相关研究_第2页
云计算平台相关研究_第3页
云计算平台相关研究_第4页
云计算平台相关研究_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云计算平台虚拟机调度策略研究摘要虚拟化是云计算平台资源能够灵活分配的基础,虚拟机资源分配和调度策略是影响用户体验与云平台性能的主要瓶颈。传统的随机分配与轮询调度方式存在资源负载失衡、调度延时、扩展困难等问题。本文考虑负载均衡、资源利用、用户体验、优化配置、高可靠性等,分别研究了集中式云平台与多域分布式云平台的虚拟机分配和资源调度策略。针对IaaS模式下的云计算平台进行了调研分析。首先对云计算平台进行了详细介绍,特别是IaaS模式的云计算平台的相关知识进行重点介绍。在此基础上介绍了IaaS资源调度的相关理论和技术,其次是分析了当前IaaS模式云平台的资源管理技术现状与使用的虚拟机调度算法,然后对本文研究工作所要用到的基本理论进行介绍,主要包括具体的负载均衡理念和系统中使用到的一致性哈希算法。关键字:云平台,虚拟机调度,集中式调度,分布式调度ABSTRACTVirtualizationisthebasisforflexibleallocationofcloudcomputingplatformresources.Virtualmachineresourceallocationandschedulingstrategyisthemainbottleneckaffectingtheuserexperienceandcloudplatformperformance.Traditionalrandomallocationandpollingschedulingmethodshavesomeproblems,suchasresourceloadimbalance,schedulingdelay,andexpansiondifficulties.Consideringtheloadbalancing,resourceutilization,userexperience,optimizedconfiguration,andhighreliability,thispaperstudiesthevirtualmachineallocationandresourceschedulingstrategyofcentralizedcloudplatformandmultidomaindistributedcloudplatform.FortheIaaSmodeofcloudcomputingplatformtocarryouttheinvestigationandanalysis.Firstofall,thecloudcomputingplatformisintroducedindetail,especiallytheIaaSmodelofcloudcomputingplatformrelatedknowledgeisintroduced.OnthebasisoftheIaaStheoryisintroducedandtheresourceschedulingtechnology,thesecondistheanalysisofthevirtualmachineschedulingalgorithmusingresourcemanagementtechnologystatusandthecurrentIaaSmodeofcloudplatform,andthenthebasictheoryoftheresearchworkinthispaperwilluseareintroduced,includingtheconsistenthashingalgorithmtousethebalancedideaandconcretesystemloadin.Keywords:CloudPlatform,VirtualMachineScheduling,CentralizedScheduling第一章绪论 41.1引言 41.2研究背景与意义 4第二章云计算平台概述 52.1云计算平台 52.3云计算平台的服务类型 6第三章云平台虚拟机资源调度策略研究 83.1IaaS模式介绍 83.1.1基础设施即服务模式简介 93.1.2IaaS模式逻辑架构 93.1.3Iaas模式关键技术 11第四章IaaS模式资源管理与虚拟机调度策略分析 13第五章虚拟机管理与调度关键技术 155.1负载均衡理论与相关算法 155.2一致性哈希算法 16第六章结论 17参考文献 17第一章绪论借助于云计算平台,用户可以使用云存储、服务计算、云应用,也可以利用云计算平台提供的虚拟机进行计算或者搭建自有服务,如何能够高效的利用云计算平台的虚拟机,将是我们主要关注并解决的问题。1.1引言云计算平台也称为云平台,云计算平台可以分为三种模式:以数据存储为主的存储型云平台,以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台[1]。云平台能够利用互联网提供各种服务与资源,包括软硬件资源与各种云计算服务。云平台可以提供给用户各种配置的机器,从而省去用户自己购置、部署、维护自己的硬件设备的麻烦,并且可以随时随地去访问各种云平台服务[2]。云计算平台中包含大量的物理硬件资源,这些资源或集中或分散的放置在各个地域,包括存储设备、网络设备、主机设备、处理器、内存、数据库等等[3]。云平台要解决的首要问题就是如何利用这些硬件设备构建安全、高效的云计算资源池,将这些资源以虚拟机的形式提供给用户使用或者构建属于用户自己的服务。1.2研究背景与意义如今,在云计算技术及相关产品的不断发展与普及下,越来越多的企业与个人已经将云计算平台作为使用IT资源的首要选择。云平台的许多优良的特性使得他在民生、金融、军事、商业领域有广泛的应用,很多国家的相关领域已把云计算纳入国家重点发展规划中。在我国,关于云计算的研究与应用正处于摸索阶段,很多技术与方案也都是借鉴与国外的成熟商业应用或者开源框架,自身关于云计算研究方向的人员与规划也较少,因此,积极开展云计算领域相关研究与工作是当前我国信息化建设的重中之重。规模化的硬件部署与较高的资源利用率是云计算平台重点关注的两个问题,同时也是决定整个云计算平台发展与应用的重要因素。云计算平台利用虚拟化技术将大量的物理硬件资源整合成虚拟的巨大的网络资源池,形成源源不断的云资源,云服务提供商可以将普通硬件资源划分成具体配的虚拟机,用户根据自己的需求去支配虚拟机,而不用关心这些具体资源的来源与维护。作为云平台提供者必须关注各式各样的用户需求,可提供的资源利用方式也是难以预料的规模[4],因此,能够在尽可能保证用户具体需求的前提下,运用较为合理的云计算资源分配策略与针对性的资源调度方案,避免用户使用成本的增加与不可靠情况出现,降低云计算服务提供商设备成本与资源浪费情况,已经成为当前云计算平台领域较为突出的问题。第二章云计算平台概述2.1云计算平台云计算技术是信息技术产业发展的大趋势,是近年逐渐兴起的一种共享基础架构的方法。云计算技术将庞大的资源池连接在一起,通过互联网提供多种应用和服务。云计算技术可以延伸到IT基础设施、软件研发等方面的服务。随着云计算技术的兴起,云计算平台己经成为全球信息技术行业的热门话题。转向云计算,是业内的趋势,各种类型的云平台在这种环境下应运而生。云计算平台包含:SaaS(Software-as-a-Service)软件即服务,PaaS(Plartform-as-a-Service)平台即服务以及laaS(Infrastructure-as-a-Service)基础设施即服务。SaaS是Software-as-a-service的简称,意为软件即服务。随着互联网技术的发展,SaaS从21世纪之初开始兴起,是一种新颖的软件模式,是逐渐成熟的应用软件技术在互联网环境下的产物。它是云计算领域应用最广泛的服务,也是最成熟的产品。用户可以通过互联网使用SaaS提供的软件和应用程序。SaaS模式大幅降低了软件的使用成本,同时,由于软件是托管在供应商的服务器上,可以降低客户运维的成本,安全性和可靠性也相应提高。Salesforce是SaaS模式的一个典型代表。PaaS是Platform-as-a-Service的简称,意为平台即服务。PaaS将提供计算能力和开发环境的平台作为一种服务提供给用户来使用。使PaaS平台的开发人员可以在不购买服务器的情况下,方便、高效地开发应用程序。Google的App引擎,微软的Azure是PaaS模式的典型代表。laaS是Infrastructure-as-a-Service的简称,意为基础设施即服务。laaS把数据、虚拟资源、基础设施等资源通过互联网提供给用户。laaS领域最引人瞩目的产品是亚马逊公司的ElasticComputeCloud。同时,IBM、VMware等公司也推出了相应的laaS产品。laaS模式体现了云计算按需付费的理念,通过“弹性计算云”,用户可以根据自身的需要选择接入基础设施资源。清华大学陈康与郑纬民在《云计算:系统实例与研究现状》一文中指出了云计算所包含的三个基本的特征:第一个是云计算平台由大规模的廉价服务器所构成的集群所支撑;第二是应用程序与底层服务协作开发,最大限度地利用云计算平台各个节点的系统资源;第三个是通过使用廉价服务器进行数据资源的冗余存储,之后通过软件来保证云计算平台的高可用性。Google云计算平台的实践表明用廉价服务器组成的超大规模集群,在可靠性、稳定性和计算能力上,均能达到大型计算机的标准。即对于Google每天需要处理的海量数据和复杂计算,在保证系统延展性和良好运行效率的基础上,都可以通过架构在廉价集群之上的云计算平台得以实现。Hadoop是Apache软件基金会旗下的一个开放源码的分布式计算编程工具和分布式文件系统,它主要包括两方面的内容:HDFS——分布式文件系统,MapReduce—分布式计算模型,它们是Google云计算平台中MapReduce计算模型与和Google文件系统(GFS)的一个开源实现。在世界范围内,Hadoop在地震研究、自然语言处理研究、数据挖据等方面也有着广泛的用途[5]2.2云计算平台的特点云计算平台,尤其是PaaS平台,具有以下特征:1.需要互联网接入,通过互联网连接用户和云计算平台,使用户获得云计算平台所提供的服务。服务无所不在,没有时间、地点限制,任何设备上只要登录后即可使用。2.服务无所不在,没有时间、地点限制,任何设备上只要登录后即可使用云平台的服务。3.用户决定应用,用户只需要使用云计算平台提供的计算能力,遵守云计算平台设置的限制,开发出多种多样的应用。4.服务按需付费,比如存储服务,数据服务,带宽等,用户可以根据需求定制。5.云计算平台通常提供给多于一个的租户,各租户之间相互隔离,像不能感知彼此存在一样地独立的使用平台。6.云计算租户内部会有不同用户的分工,用户会被指派不同的角色,不同角色对平台的使用各不相同。2.3云计算平台的服务类型计算机体系结构将计算机划分为拥有CPU、硬盘、内存等硬件设施的硬件层,运行在硬件层使用和管理这些具体硬件资源的操作系统层,以及运行在操作系统上运用系统提供的开发平台并依靠这些平台开发的具有具体功能的应用软件层。云计算平台正是依照这一思想,将整个云计算平台根据逻辑和运行在云计算按照服务提供方式大致上可以分为三种类型:以基础设施作为服务(IaaS)、将平台作为服务(PaaS)和将软件作为服务(SaaS),如图2.1所示:图2.1云计算的服务类型1)基础设施即服务(IaaS)IaaS通过将基础硬件设备等计算机相关硬件资源封装成服务以便客户使用,例如亚马逊云计算AWS(AmazonWebService)的弹性计算云平台EC2与简单存储服务S3[15]。在基础设施即服务环境下,用户使用服务就如同使用一些基本的计算机裸机和存储介质,既可以选择windows,也可以选择linux,因此用户可以使用服务完成任何需要的服务。IaaS最显而易见的优势是可以允许用户动态申请或者释放服务节点,按使用规格收费。搭建IaaS平台的服务器数量能够达到百万台甚至更高数量级,因而可以保证用户能够使用的平台资源是绝对能够保证需求的。2)平台即服务(PaaS)PaaS对物理硬件资源的抽象更加深了一层,它可以将硬件资源搭建成一个软件平台,提供云应用的运行环境以及构建云应用的一些开发环境,例如GoogleAppEngine,微软公司的云计算操作形同MicrosoftWindowsAzure也属于这一类应用。PaaS模式能够自我进行资源的动态变化与稳定性管理,用户完全不用考虑应用在多个节点间的协同工作问题。但是这种模式带来了一定的问题,用户失去了自主权,无法自主决定和配置相应的软件环境,必须利用平台提供的编程环境以及遵守平台特有的程序编写模型。这种方式如同在高性能计算机集群里面执行MPI编程,它只应用于解决一些需求既定的计算问题。比如,上面提到的GoogleAppEngine只能限制用户使用Python和Java语言、依靠Djiango的web服务框架、借助于自身提供的GoogleAppEngineSDK来编写平台在线服务程序。平台即服务的最关键的技术点是利用分布式系统技术,平台即服务中的整个平台的操作系统的组织结构是将资源以分布式集群的方式组织利用起来,在此结构上,平台提供相应的系统开发环境已经系统软件和应用平台供用户使用。3)软件即服务(SaaS)软件及服务利用Internet来提供软件应用的模式,服务提供商将自由的软件应用部署在云计算服务器上,使得用户可以根据自身需求,利用互联网向云计算服务提供者订购符合自己业务需求的软件应用,按照使用时长与服务类型支付费用。这样可以免去用户购买某些高昂软件所需的代价,而是根据需求去租用部署在云平台上面以web应用方式提供的软件应用,来完成具体的工作或者任务。用户无需对这些软件应用进行升级或者维护,而把所有的软件应用管理和维护重担都落在了服务提供商的身上,使得用户可以把更多的精力放在自己的核心业务上,而且平台服务提供者在向用户提供互联网应用的同时,也向用户提供数据存数等附加业务,这样便方便用户随时随地订购和使用平台软件服务。在很多小企业或者一般用户看来,软件即服务是自身能够采用先进的IT技术的最佳方式,这种模式免去了用户或者企业购买、搭建和后期维护硬件设施和所需要的软件应用的巨大的工作量,大大提高了硬件资源的利用率以及降低自身使用成本。软件即服务的针对性更强,它将一些特定功能的软件应用封装成云服务供用户使用。例如Salesforce公司推出的客户在线关系管理CRM(ClientRelationshipManagement)服务。软件即服务既不同于平台即服务一样可以提供操作系统以及存储资源等平台性的软件框架,也不同于基础设施即服务一样提供用户人已部署或者使用的硬件平台基础设施,它只是提供给用户一些特定功能的软件应用供用户使用,目前Amazon的EC2/S3也是此种模式的典型应用。第三章云平台虚拟机资源调度策略研究3.1IaaS模式介绍在云计算平台的以上三种构建模式中,IaaS模式是现有的平台使用最广泛也是最可靠的使用模式,因为无论是PaaS和SaaS两种模式,用户只能使用现有的平台提供的服务,因此上述两种模式由于平台提供服务类型的局限性以及用户需求的多样性很难满足现有的市场需要,而IaaS模式只是提供硬件资源,而允许用户搭建任意满足自身需要的软件及应用环境,因此具有相当大的市场前景。由于IaaS使用模式对用户限制最小而且也对云服务提供者留下更多的业务扩展空间,并且PaaS模式与SaaS模式都可以在IaaS模式的基础上扩展而来[8],使得IaaS成为最主要的云平台最初部署方式,本文所研究的虚拟机分配算法即是针对IaaS模式的。3.1.1基础设施即服务模式简介如上文所述,IaaS模式是以基础硬件设施为具体服务的资源应用模式,以目前云计算平台的发展与现状来看,IaaS模式是当前云计算领域最具有发展前景的平台部署方式。就应用方式来看,用户在使用IaaS服务过程中,用户的使用模式与其使用普通web资源的方式无太大差别,用户设置可以利用浏览器来获取具体的服务。但是,这种新型的互联网资源获取方式与之前的通过web浏览器获取资源的方式的主要区别在于,以往的互联网资源都只是一些具体的信息资源,而IaaS模式下的用户可以访问到具体的硬件资源,比如存储、网络带宽、服务器、分布式计算资源等一些基础硬件设施资源,用户可以利用这些基础资源自主化的部署并使用互联网服务。通常情况下,IaaS模式的出发点是将一些IaaS服务(例如存储、网路、计算能力等)组合搭配起来提供给用户,而这种方式最直接的办法就是将这些硬件资源虚拟成具体配置的虚拟机[9],由于地域等原因,用户并不能直接去接触到具体的服务器、存储设备、网络设备等,因此服务提供者将用户所需的具体资源配置划归到一个虚拟机中。客户根据需求申请到相应的虚拟机,利用账户名和密码就可以登陆进具体的虚拟机来进行操作,就如同使用自己配置的具体硬件设备,从而节省大量的成本。IaaS模式具有特别弹性的资源利用机制,用户在使用时获取到一定量的资源组合,在使用结束后,平台便可以将这些资源回收回去,继续组成资源池,各部分资源可以按一定的需求随意组合。因此,这种使用方式必然会需要特别严密的逻辑结构以保证合理的平台资源管理。3.1.2IaaS模式逻辑架构在IaaS模式下,虚拟化技术主要是对硬件资源池进行物力资源的抽象化管理,划归成各种配置的虚拟机。平台底层主要是对部署的物理资源的虚拟化,中间层就主要是对整个虚拟化资源池的管理与接入优化,服务层则主要是针对相应的用户进行管理与虚拟机的使用调度。IaaS模式的逻辑结构如图3.11)资源层位于平台架构最底层的是资源层,即是整个平台的基础设施部分,主要包含有整个平台所拥有的物理硬件资源,如硬件服务器、网络资源、存储资源与其他硬件资源。在基础设施云计算平台中,资源层的所有设备都不是单一或者独立的物理硬件,也不局限于特定的地域范围,而是将可用的物理硬件整合起来,构建一个超大规模的硬件资源池。2)虚拟化层处在底层资源层之上的是虚拟化层,虚拟化的目的就是将物理资源池的硬件资源按照用户需求或者相关业务需要,按照一定的组合将各部分硬件打包成一个虚拟机,即特定规模的计算资源。虚拟化层主要囊括了各种虚拟化技术,其是IaaS平台的核心功能,是确保IaaS平台能够顺利实施的基础。凭借这些先进的虚拟化技术,才能够使得IaaS模式下的云平台灵活构建不同规模、不同配置的资源组合方式,并且也能够在使用过程中对相应的资源进行动态调整。在IaaS模式的云平台构建中,虚拟化技术是必不可少的一项技术。图3.1IaaS模式逻辑架构3)管理层虚拟化层之上则是平台的管理层,管理层的主要任务是对下层资源组织方式的管理与维护,包括对虚拟机资源池的管理,也包括对物力资源的分配,并且也肩负着对硬件资源运行状况的收集与维护。管理层要时刻关注当前物理资源的运行状况,决定如何依靠虚拟化技术将组成平台的物理硬件资源打包划归到具体虚拟机,也要时刻关注当前平台运行的可靠性、稳定性与负载均衡。4)服务层服务层处在整个平台架构的最上层,同时也是处在直接与用户进行交互的地位,主要任务是面向用户,给用户提供使用上述的管理层、虚拟化层和资源层的方式。该层不论是利用虚拟化层将物理硬件资源构建出特定需求的虚拟机,或是利用管理层的功能去调度或者控制虚拟机以及虚拟机所使用的资源,都是需要一种很易于交互的方式来使用这些具体服务,因此能够在IaaS平台上成功跨越多层的提供服务将是一个具有挑战性的工作。3.1.3Iaas模式关键技术IaaS模式之所以成为主流云平台搭建模式,主要依赖于该模式下相应的技术支撑,多项先进技术不但能够确保云平台的服务提供可靠稳定,也是确保云平台管理者高效、合理的利用或者部署硬件资源的前提。其中,虚拟化技术、平台管理技术、调度监控技术是最主要的核心技术。1)虚拟化技术虚拟化技术最初是在上世纪六十年代被IBM所提出的,当时的出发点是IBM想用此技术来保证对公司内部的所有的代价高的硬件最优化利用。随后由于IT产业的不断发展,各种硬件成本的快速下降以及硬件性能的不断提升,个人计算机的性能越来越强大,导致虚拟化技术应用的场景不断缩小,其关注度迅速降温,但是伴随着云计算以及分布式平台的发展又导致虚拟化技术越来越被人重视,而且虚拟化技术的发展前景也是一片光明。虚拟化技术采用硬件模拟与仿真的方式,可以利用现有的硬件设施虚拟出相互独立的虚拟硬件集成环境,即虚拟机。用户使用这些虚拟机就如同使用自己的个人PC或者相关设备,可以自主部署各种操作系统以及运行相关的应用程序。虚拟化技术主要是对主要的硬件设备进行虚拟化操作,包括CPU虚拟化、内存虚拟化、存储设备虚拟化和I/O虚拟化等,为了确保底层设备的抽象,保证上层虚拟机与相关硬件的低耦合性,虚拟机被屏蔽掉对底层硬件的直接访问而是将指令或者请求发送到硬件服务器上的虚拟机监控守护程序,然后监控程序对相关指令进行解释,并交由底层硬件完成具体指令。虚拟机监控器可以对下层硬件诸如CPU、内存、硬盘、网络、IO等任何设备进行调度,然后会将这些硬件资源根据虚拟机配置划归给相应的虚拟机,并且也能够对上层的虚拟机进行控制。为了方便平台使用者利用平台资源,虚拟机监控程序可以将上述管理方式以API的形式提供给用户,这就保障了平台管理者不用去关注具体实现细节,而将精力放在具体的调度维护上。2)平台管理技术正是由于虚拟化技术将云计算底层硬件设备完全利用,同时也提供了相应的管理接口供管理者利用,因此,管理者只需将工作重点放在如何合理的管理并调用大量的服务器与硬件资源[10]。这就需要如何利用底层接口并配合高效的平台管理技术去对资源池进行合理的规划与调度,从而确保服务的可靠性与稳定性。现如今,很多企业或者组织都关注着IaaS模式下的平台管理技术,例如vmware公司的vSphere,很多开源机构的cloudstack、openstack和Eucalyptus等一系列开源平台架构。这些现有的系统大多数都会囊括服务器资源管理、网络设备管理和相应的存储等服务,而且会提供相应的操作接口或者交互性良好的界面管理面板。底层主要是利用XEN或者KVM等虚拟化平台对服务器进行虚拟化,从而去管理硬件资源。网络设备管理则是可以提供虚拟的网络配置、网络路由的网络划分等网络服务。开放接口和图形界面都可以提供给上层管理者相应的管理、监控、调度资源池资源的功能,例如对虚拟机的创建、删除、挂起、关闭等基本操作,而且也包含有对虚拟机的资源进行动态扩展、磁盘分配、网络划分等高级操作,功能十分健全。3)平台监控技术为了确保IaaS模式云平台的可靠运行,对平台的监控则成为了一项必要的工作任务。监控管理是云平台必不可少的一项举措,特别是针对云平台运行时的故障检测、负载均衡以及动态资源调整是监控工作的核心内容。监控程序可以统计并反馈控制云平台的资源利用、健康程度、资源调度并提供处理依据,监控功能在云平台中具有极其重要的作用。由于云计算平台规模十分庞大,因此在设立监控模块时不仅要对平台能够进行可靠地监控,而且还要考虑规模过大而导致的监控性能下降等因素,因此要针对不同的云平台部署防暑提供不同的监管机制。在规模较小的情况下,一般考虑对所有的资源进行集中式监控,只设立一个监控服务中心,各节点监控守护程序需要收集本地信息并上报给监控中心,并且监控守护程序也可以识别主控节点的控制指令已完成具体的控制操作。在平台规模十分巨大的情况下,可以采用层次化的监控体系。云平台可以根据相应的地域或者位置划分为多个协同的工作区域,每个工作区域形成自治系统,这样每个区域部署本区域的监控服务程序,只负责本区域内的平台运行监测功能,同时设立一个全局的控制节点,负责整个平台的负载状况与协调工作,这样就可以将单个控制节点的工作量下发到相应域的监管节点,而且也可以将控制命令下发到任何子域的监管程序。层次化的监控体系能够有效地降低网络负载,并且能够将故障隔离在较小的区域内。第四章IaaS模式资源管理与虚拟机调度策略分析综合上述IaaS模式下的云平台所面临的资源管理与调度现状,如何能够有效地解决之前提到的各种问题,已成为当前云计算研究领域的主要关注点,现如今很多企业或者学术组织都对IaaS模式下的云计算平台资源组织架构与管理的研究做出了很大贡献,同时也取得了丰硕的成果。但是伴随着越来越高的服务要求,之前的很多举措或者经验都已不能很好地满足当前需求,资源的按需供应、动态可扩展、虚拟化等一系列新特性使得平台资源管理调度面临更高的要求。因此需要针对现有云计算平台特性指定更有效、更可靠的资源调度策略,以充分适应当前云平台的要求。4.1资源管理技术概述对于IaaS模式下的云平台分布式集群系统,同时会有多个作业或者请求会消耗资源池资源,并且各硬件服务器会同时处理计算任务,因此,资源管理必须要合理的调配这些服务器或者计算节点去承担具体的工作,即按照一定的规则去满足资源分配任务以及服务列表映射工作。实际应用中,用户的需求是各种各样的,对资源的需求情况也是多种多样,而且任务之间也有优先级管理。这些因素导致资源管理的目标就是在充分考虑性能指标以及任务优先级影响的情况下,将申请执行的作业或者计算任务依照系统默认的资源分配指标确定运行顺序,并及时下发给各具体服务器或者机架执行,从而达到合理调配资源,缩短请求时间,提高系统的资源利用率以及较高的性能。依照不同的管理方式,资源管理具有不同的处理方式。依据资源调度方式的差别,资源管理能够划分为静态资源管理和动态资源管理。静态方式是评估用户的任务规模和用户申请时的具体资源配置,在系统中挑选到合适的计算节点,将任务分配给相应的节点固定执行。动态方式是挑选可用计算节点,将任务发送给计算节点,并在执行过程中根据运行状况与服务器资源状况动态调整CPU、内训、磁盘、网络等虚拟设备。依照处理作业方式的差别,资源管理能偶划分为实时资源管理和批量处理资源管理。实时处理方式是在系统收到用户请求时,在满足需求的前提下直接为具体任务分配相应的资源,并下发到具体主机去执行。批量处理方式是在系统接收到用户请求时并不直接为任务分配资源并执行,而是将某一时间段内的任务汇总起来,等到满足一定的设定条件时,进行统一处理,系统的设定条件一般为调度管理程序执行的时间因素或者当前系统负载信息与用户任务的需求信息。依照用户具体需求的关联因素,资源管理可以划分为有依赖的管理模式和无依赖的管理模式。有依赖的管理方式是指有些单个任务的执行过程会依赖相关的作业执行过程,也就是代表用户请求的任务之间会有一定的关联关系。无依赖的管理方式是指每个用户作业或者任务都是相互隔离的,都不会受其他任务或者作业的影响。4.2资源调度算法研究资源管理与调度最核心的内容就是具体的资源调度算法,已有很多组织与个人在此领域做了大量的研究工作,为云平台运行过程中的资源管理与调度提供了足够的理论支撑。而且很多领域外的研究成果也都被成功移植到云平台管理上,诸如人工智能、并行计算、动态规划等,对云平台资源管理的发展提供了很多可靠的技术与理论。1)基础的资源调度算法基础的资源调度算法都具有简单易懂、执行快速等特点,在之前的简单场景下被广泛利用。其中最知名的如简单轮询算法、最少连接调度算法、源/目标地址哈希调度以及后来改进的例如加权轮询机制、加权最少连接算法、最优化理论算法。这些算法有的是采取静态与在线调度机制,有的只是对负载状况进行简单考虑,有的是采用动态资源调度方式。但是这些算法或多或少都只是考虑简单集群状况,没能结合资源利用率、负载均衡、时间复杂度等当前平台算面临的种种难题,因此它们很难适应如今庞大而复杂的平台架构。2)批量处理调度机制传统的资源调度机制大多采取直接调度的方法,每个作业请求时系统会立即进行调度,只考虑了实时性,而没有从平台整体框架上考虑。当平台规模过大时,如果莫一时间段有海量作业请求到来时,单任务实时处理就会导致平台硬件资源运行状况极不平衡,导致某些节点负载过大,从而会影响平台整体性能。因此,有学者提出Min-min策略,以及Max-max算法与Sufferage策略,上述算法都是采用批量处理思想,会尽可能将作业或者任务需求分配到性能高的硬件资源上运行,以保证当前任务在最少时间内完成,上述算法都是针对某一单一条件而用优先级的方式去调度,他们的实现也是比较容易,而且时间复杂度较小。但是,由于是针对优先级调用,因此会导致若干计算能力较强的服务器上会有太多的作业排队,会造成负载极度失衡。3)启发式资源调度策略就当前规模大且结构复杂的云计算集群系统来说,在进行资源调度时不但要保证任何用户的需求,也要兼顾整个平台系统的资源利用效率。但是就实际应用中遇到的问题来看,很难在同时考虑各种因素的前提下保证寻找到全局情况下的最优化策略,因此必须引入启发式算法,较早出现的遗传算法,进而提出的智能神经网络、模拟退火等,再加上后来出来的蚁群算法、演化算法等仿生学理论。4)领域外引入的资源调度策略由于云计算的普及,资源调度策略在云平台中的核心作用,很多其他领域的专家学者也加入到寻找资源优化提供方法,从而导致很多领域外的理论都被引入到云计算平台资源调度中。这里面最著名的就是以Agent为基础的资源调度,以及采用经济学模型的管理策略。上述两种方式只是两种理论上的调度策略,并没有去考虑比较细致的调度过程,但是他们的出现也为该领域的研究提供了更广阔的思路。第五章虚拟机管理与调度关键技术5.1负载均衡理论与相关算法IaaS云计算平台是将资源以虚拟化的形式添加进虚拟的资源池中,将基础的计算机硬件资源进行整合,并根据用户需求按虚拟机的形式向用户提供相应服务。因此,平台管理首先解决的问题就是如何在资源池中分配资源并调用。负载均衡就是分析个服务器计算节点性能和云平台当前负载情况,制定合适的分配策略,将用户需求分配到最合适的服务节点上面,从而达到平台各服务器性能最佳效果。负载均衡方式主要有静态调度策略和动态调度策略两种,主要包括对服务节点进行简单轮转调度,向具体服务节点配置权值的加权最少连接算法,根据平台实时状况指定的动态反馈调整算法。1)简单轮转算法。轮转调度是最容易实施的负载均衡机制,其实现过程就是对组成云平台的具体服务器按次序依次轮换调用,对所有的服务节点按同等位置对待,不会考虑服务器性能等指标,因此也不会有硬件配置与当前活动任务连接等区别。轮转算法开销小,并且易于执行,在云计算最初发展阶段有广泛应用,但是伴随着云计算平台规模的扩大,应经很难适应当前需求。2)加权最小连接算法。加权最少连接算法根据其字面意思就是以权值和连接数作为指标调用具体的硬件服务节点,因为单一就权值或者链接数量都不能准确的反映个物理节点的负载状况,因此按照个物理节点的硬件性能,对其标记不同的权值,在进行调度时,结合活动的连接数以及当前节点权值,按照两者的综合指标反映该节点的负载状况。但是由于节点规模的扩大以及节点的删减,如何合理的调整权值则又是该算法所面临的一个难点。3)动态反馈调整算法。上述两种方式都是默认在平台资源稳定的情况下指定的调度算法,其都属于静态调度策略。考虑静态调度很难适应当前应用场景下的海量规模的任务处理需求与平台资源动态调整现状,发掘动态调度算法则成为了当前平台调度策略的主要任务。当前相关组织以及学者对基于反馈的动态调度算法的研究已有较为成熟的成果,其充分考虑到负载均衡,实现原理就是根据节点负载变化,收集负载反馈信息,根据统计收集到的实际负载状况从而对用户的需求进行重定向或者动态迁移,从而保证资源负载均衡。5.2一致性哈希算法一致性哈希算法是由美国麻省理工学院学院于1997年提出的哈希算法,其设计初衷是解决互联网中的热点问题,该算法与CARP很相似。一致性哈希算法很好地解决了CARP所使用的一般哈希算法造成的问题,可以很好地将DHT应用到网络环境中的P2P应用。一致性哈希算法明确规定在有动态因素影响的Cache环境中,其所要采用的哈希算法必须满足一下四个条件:平衡性:利用哈希的思想就是为了解决多个同等地位的热点如何能够均衡的利用。所谓平衡性就是将哈希算法的运算结果能够均衡的导入到集群中所有的目标节点,实际中就可以将所有的资源以及空间都能利用到,所有的节点地位都是相同的。目前基本上大多数哈希算法都可以实现这一要求。单调性:该特性是指之前的哈希函数已经将已有的内容分配到相应的热点,如果有新的热点加入到集群中,如果继续利用原有的哈希函数,可能会导致之前已经分配过的内容会被重新定向到其他热点上面,这样就会导致现有系统与之前的哈希内容不匹配,会造成很大的迁移工作,所以一致性哈希算法就要尽量保证新加入的热点会对之前的系统造成的影响最小,只需要迁移之前很少一部分结果并且不会重新定义哈希函数。分散性:在现有的分布式集群环境中,设备终端在某些情况先可能察觉不到所有的热点,而是只能应用到其中的一部分。因此当设备利用哈希算法将内容映射到具体热点时,会产生不同的设备拥有不同的热点范围,使得哈希过程的结果会不一致。分散性就是为了限制上述情况出现,一个好的哈希算法可以尽量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论