一种云平台中分布式应用的智能部署方法及系统的制作方法

文档序号:6539701阅读:220来源:国知局
一种云平台中分布式应用的智能部署方法及系统的制作方法
【专利摘要】本发明涉及一种云平台中分布式应用的智能部署方法及系统,其方法为用户提交运行作业及资源需求;调度管理器将运行作业指定的可执行程序存储到分布式存储系统中,并记录存储位置;调度管理器根据运行作业中包含实例的个数形成相应数量的任务,为各个任务匹配物理节点,并将各任务下发给最匹配物理节点的任务执行器;最匹配物理节点的任务执行器根据任务中包含的信息配置虚拟机并启动;虚拟机根据任务中包含的信息自动从分布式存储系统中获取可执行程序并运行;本发明其使得云平台中多个分布式应用程序可以共享一个物理集群的资源,并给用户提供一种简单、透明、自动的部署接口,方便分布式应用程序的智能化部署,提高了资源的利用率。
【专利说明】一种云平台中分布式应用的智能部署方法及系统
【技术领域】
[0001]本发明涉及计算机虚拟化领域及云计算领域,尤其涉及一种云平台中分布式应用的智能部署方法及系统。
【背景技术】
[0002]近年来,随着计算资源种类日益增加、规模不断扩大、计算能力不断加大以及应用需求日渐多样化的背景下,新型的计算模式迫在眉睫。很多分布式应用程序不停的涌现出现,比如多种多样的编程模型。对于一个典型的互联网公司来说,通常部署新的分布式应用程序的方式就是增加更多的机器形成不同的应用集群,然后将这些集群给不同的分布式应用程序或者服务,从而使得一个应用或服务独占一个集群。这个做法会有以下不足:
[0003]1.集群资源利用率极低
[0004]每个应用程序都单独使用一个物理集群,会造成资源利用率极低。因为对于每种应用,都或多或少有一种固定负载的模式,比如某种互联网应用的负载只是在早上或晚上某个时间点达到峰值,其余大部分时间它的负载只处于很低的情况。而另外一种互联网应用可能在一天中其他某个时间内到达负载的峰值,其余时间也是低负载情况。每种应用程序除了在负载达到峰值时对资源利用率达到一定值,其余时间资源利用率极低,造成资源的浪费。
[0005]2.集群不能统一管理
[0006]每个分布式应用部署在一个集群之上,则需要对每种应用分别管理,不能实现统一的管理,从而使得成本较高。数据中心的运维成本主要有人员管理费用、建设费用、供电费用、冷却费用还有维护费用等。根据目前的估计来看,多个集群带来的这些建设维护费用加起来可能比数据中心物理机器的费用还要高。
[0007]3.多个应用程序无法实现数据共享
[0008]不同应用程序可能对于同批数据进行不同的处理,这样就涉及到数据复用问题。如果不进行统一集群管理,单一应用部署在独立集群上,那么数据复用就需要迁移数据,由于大数据时代的到来,数据规模很大,数据迁移的代价会很大。
[0009]为解决上述问题,可以想到使多个应用程序共享一个物理集群,但要实现会存在以下问题。
[0010]1.使用多个应用程序共享物理集群时对用户技术水平要求高
[0011]使用多个应用程序共享物理集群时,用户在云平台上部署分布式应用程序,需要手动完成以下步骤:
[0012]a.在启动虚拟机之前,配置网络虚拟化相关软件、配置网络、添加网桥等;
[0013]b.在启动虚拟机时,需要为单个虚拟机手动指定资源,并指定这个虚拟机部署在哪个物理节点上;
[0014]c.启动虚拟机之后,需要手动配置虚拟机,尤其需要配置虚拟机的IP地址,这样虚拟机才能正确接入局域网中。最后需要用户手动拷贝分布式应用程序到虚拟机中,并将这个程序运行起来。
[0015]所有以上这些步骤对用户提出了很高的要求,用户需要了解很多有关虚拟化技术的知识,而且用户在进行这些操作也极易出错,并不方便普通用户使用.[0016]2.部署机制不能进行负载均衡
[0017]另外,由于用户不知道哪些物理节点上负载比较高,这个手动的部署机制并不能很好的进行负载均衡。尤其当用户希望大规模部署集群时候,这些不方便性体现的尤其明显。

【发明内容】

[0018]本发明所要解决的技术问题是针对现有技术的不足,提供一种云平台中分布式应用的智能部署方法及系统,其使得云平台中多个分布式应用程序可以共享一个物理集群的资源,并给用户提供一种简单、透明、自动的部署接口,方便分布式应用程序的智能化部署。
[0019]本发明解决上述技术问题的技术方案如下:一种云平台中分布式应用的智能部署方法,包括如下步骤:
[0020]步骤1:用户提交运行作业及资源需求到调度管理器;
[0021]步骤2:所述调度管理器将运行作业指定的可执行程序存储到分布式存储系统中,并记录存储位置;
[0022]步骤3:调度管理器根据运行作业中包含实例的个数形成相应数量的任务,为各个任务匹配物理节点,并将各任务下发给最匹配物理节点的任务执行器;
[0023]步骤4:最匹配物理节点的任务执行器根据任务中包含的信息配置虚拟机并启动;
[0024]步骤5:虚拟机根据任务中包含的信息自动从分布式存储系统中获取可执行程序并运行。
[0025]本发明的有益效果是:
[0026]I)不同需求的用户可以共享一个运行Linux操作系统的物理集群,并可以在上面运行需要各种平台(Linux和Windows)的分布式应用程序;
[0027]2)用户不需要懂得虚拟化技术任何底层知识,只需要提交作业即可;
[0028]3)用户不需要配置任何虚拟化环境,包括极易出错的网络虚拟化相关软件、配置网络、添加网桥等;
[0029]4)用户不需要为单个虚拟机手动指定资源,也不需要并指定这个虚拟机部署在哪个物理节点上;
[0030]5)启动虚拟机之后,用户不需要手动配置虚拟机的网络等,也不需要手动拷贝分布式应用程序到虚拟机中,分布式应用程序会自动的下装以及运行;
[0031]6)系统会自动的保证关键资源的公平性、减少资源碎片;
[0032]综上所述,本发明其使得云平台中多个分布式应用程序可以共享一个物理集群的资源,并给用户提供一种简单、透明、自动的部署接口,方便分布式应用程序的智能化部署,提高了资源的利用率。
[0033]在上述技术方案的基础上,本发明还可以做如下改进。
[0034]进一步,步骤I中用户提交的运行作业包括分布式应用的可执行程序,可执行程序运行需要的操作系统环境,需要运行的实例个数,每个实例运行时的相应参数;用户提交的资源需求包括每个实例的资源需求;
[0035]步骤3中每个实例对应的任务中记录该实例对应的可执行程序在分布式存储系统中的存储位置、每个实例的资源需求及相应的启动参数。
[0036]进一步,步骤3为各个任务匹配物理节点的具体实现为:
[0037]步骤3.1:调度管理器的调度模块将生成的任务存储到任务队列中,并周期性地从任务队列中调度任务;
[0038]步骤3.2:调度模块从监控模块中获取物理集群的全局状态信息;
[0039]步骤3.3:调度模块根据调取任务的资源需求及物理集群的全局状态信息,利用关键资源公平算法计算出与该任务最匹配的物理节点;
[0040]步骤3.4:调度模块将任务下发到最匹配的物理节点的任务执行器的任务执行模块。
[0041]进一步,上述技术方案还包括所述每个物理节点的任务执行器的心跳上报模块实时向调度管理器上报心跳信息;所述调度管理器的监控模块接收所有心跳信息,存储物理集群的全局状态信息。
[0042]其中,步骤3.3中所述利用关键资源公平算法具体实现为:计算每个物理节点每种资源的资源需求可用比,选取资源需求可用比中最高的一个即为该物理节点的关键资源比例。
[0043]进一步,步骤4中最匹配物理节点的任务执行器根据任务中包含的信息配置虚拟机并启动的具体步骤:
[0044]步骤4.1:最匹配物理节点的任务执行器根据任务指定的资源调用底层虚拟化技术接口,准备虚拟机的配置文件并创建相应操作系统的虚拟机;
[0045]步骤4.2:利用增量拷贝技术快速创建虚拟机镜像;
[0046]步骤4.3:利用ISO注入技术自动将配置文件中的参数注入到虚拟机,并启动虚拟机;
[0047]步骤4.4:利用虚拟机内代理技术自动配置虚拟机;
[0048]步骤4.5:虚拟机内代理程序根据任务中指定的位置,自动从分布式存储中下载分布应用的可执行程序,并根据任务参数运行分布式应用。
[0049]本发明解决上述技术问题的另一技术方案如下:一种云平台中分布式应用的智能部署系统,包括一个调度管理器、若干个任务执行器和分布式存储系统;
[0050]所述调度管理器,其运行在主节点上,用于接收用户提交的运行作业和资源需求,将运行作业指定的可执行程序存储到分布式存储系统中,并记录存储位置;还用于根据运行作业中包含实例的个数形成相应数量的任务,将各个任务下发给最匹配物理节点的任务执行器;
[0051]所述任务执行器,其运行在从节点上,用于根据任务中包含的信息配置虚拟机并启动,进而虚拟机根据任务中包含的信息自动从分布式存储系统中获取可执行程序并运行;
[0052]所述分布式存储系统,其用于存储调度管理器上传的分布式应用的可执行程序。
[0053]进一步,所述调度管理器包括监控模块和调度模块;[0054]所述监控模块,其用于接收各任务执行器上报的心跳信息,监控各任务执行器的运行状态,并存储全局状态信息,为调度模块提供决策依据;
[0055]所述调度模块,其用于根据运行作业生成若干个任务,并存储在任务队列中,并周期性地从调度队列中调度任务,并根据监控模块中存储的全局状态信息为各任务匹配物理节点,并将各任务下发给最佳匹配物理节点的任务执行器。
[0056]进一步,所述任务执行器包括心跳上报模块和任务执行模块;
[0057]所述心跳上报模块,其用于定时向调度管理器上报该任务执行器的心跳信息;
[0058]所述任务执行模块,其用于执行调度模块下发的任务,并根据任务指定的资源调用底层的虚拟化技术接口,准备虚拟机的配置文件并创建相应操作系统的虚拟机,利用创建的虚拟机从分布式存储系统中获取相应可执行程序并运行。
[0059]进一步,所述心跳信息包括该任务执行器的各种资源分配情况以及各种资源利用率。
【专利附图】

【附图说明】
[0060]图1为本发明所述一种云平台分布式应用的自动智能部署方法流程图;
[0061]图2为本发明所述步骤3的具体流程图;
[0062]图3为本发明所述步骤4的具体流程图;
[0063]图4为本发明所述一种云平台分布式应用的自动智能部署系统框图;
[0064]图5为本发明实施例中提交作业示意图;
[0065]图6为本发明实施例中形成的3个任务配置示意图;
[0066]图7为本发明实施例中任务Tl形成的ISO配置文件。
[0067]附图中,各标号所代表的部件列表如下:
[0068]100、调度管理器,200、任务执行器,300分布式存储系统,101、监控模块,102、调度模块,201、心跳上报模块,202、任务执行模块。
【具体实施方式】
[0069]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0070]如图1所示,一种云平台中分布式应用的智能部署方法,包括如下步骤:
[0071]步骤1:用户提交运行作业及资源需求到调度管理器;
[0072]步骤2:所述调度管理器将运行作业指定的可执行程序存储到分布式存储系统中,并记录存储位置;
[0073]步骤3:调度管理器根据运行作业中包含实例的个数形成相应数量的任务,为各个任务匹配物理节点,并将各任务下发给最匹配物理节点的任务执行器;
[0074]步骤4:最匹配物理节点的任务执行器根据任务中包含的信息配置虚拟机并启动;
[0075]步骤5:虚拟机根据任务中包含的信息自动从分布式存储系统中获取可执行程序并运行。
[0076]其中,步骤I中用户提交的运行作业包括分布式应用的可执行程序,可执行程序运行需要的操作系统环境,需要运行的实例个数,每个实例运行时的相应参数;用户提交的资源需求包括每个实例的资源需求;步骤3中每个实例对应的任务中记录该实例对应的可执行程序在分布式存储系统中的存储位置、每个实例的资源需求及相应的启动参数。
[0077]如图2所示,步骤3为各个任务匹配物理节点的具体实现为:
[0078]步骤3.1:调度管理器的调度模块将生成的任务存储到任务队列中,并周期性地从任务队列中调度任务;
[0079]步骤3.2:调度模块从监控模块中获取物理集群的全局状态信息;
[0080]步骤3.3:调度模块根据调取任务的资源需求及物理集群的全局状态信息,利用关键资源公平算法计算出与该任务最匹配的物理节点;
[0081]步骤3.4:调度模块将任务下发到最匹配的物理节点的任务执行器的任务执行模块。
[0082]其中,上述技术方案还包括所述每个物理节点的任务执行器的心跳上报模块实时向调度管理器上报心跳信息;所述调度管理器的监控模块接收所有心跳信息,存储物理集群的全局状态信息。
[0083]其中,步骤3.3中所述利用关键资源公平算法具体实现为:计算每个物理节点每种资源的资源需求可用比,选取资源需求可用比中最高的一个即为该物理节点的关键资源比例。
[0084]如图3所示,步骤4中最匹配物理节点的任务执行器根据任务中包含的信息配置虚拟机并启动的具体步骤:
[0085]步骤4.1:最匹配物理节点的任务执行器根据任务指定的资源调用底层虚拟化技术接口,准备虚拟机的配置文件并创建相应操作系统的虚拟机;
[0086]步骤4.2:利用增量拷贝技术快速创建虚拟机镜像;
[0087]步骤4.3:利用ISO注入技术自动将配置文件中的参数注入到虚拟机,并启动虚拟机;
[0088]步骤4.4:利用虚拟机内代理技术自动配置虚拟机;
[0089]步骤4.5:虚拟机内代理程序根据任务中指定的位置,自动从分布式存储中下载分布应用的可执行程序,并根据任务参数运行分布式应用。
[0090]如图4所示,一种云平台中分布式应用的智能部署系统,包括一个调度管理器100、若干个任务执行器200和分布式存储系统300 ;
[0091]所述调度管理器100,其运行在主节点上,用于接收用户提交的运行作业和资源需求,将运行作业指定的可执行程序存储到分布式存储系统300中,并记录存储位置;还用于根据运行作业中包含实例的个数形成相应数量的任务,将各个任务下发给最匹配物理节点的任务执行器200 ;
[0092]所述任务执行器200,其运行在从节点上,用于根据任务中包含的信息配置虚拟机并启动,进而虚拟机根据任务中包含的信息自动从分布式存储系统300中获取可执行程序并运行;
[0093]所述分布式存储系统300,其用于存储调度管理器100上传的分布式应用的可执行程序。
[0094]其中,调度管理器100和务执行器200之间不同的模块通过调用(RPC)进行远程通信,这个通信包括用户提交作业到调度管理器100,调度管理器100下发任务到任务执行器200等所有的跨节点通信;分布式存储系统300提供文件传输功能,实现中使用的是HDFS (Hadoop分布式文件系统,Hadoop是Google MapReduce编程框架的一个开源实现)。
[0095]任务执行器200还需要在对应的物理节点上启动/关闭虚拟机以运行/销毁分布式应用。它根据调度管理器100调度模块下发的任务,根据其指定的资源调用底层的虚拟化技术接口,准备虚拟机的配置文件并创建相应操作系统的虚拟机以供运行任务。
[0096]其中,所述调度管理器100包括监控模块101和调度模块102 ;
[0097]所述监控模块101,其用于接收各任务执行器200上报的心跳信息,监控各任务执行器200的运行状态,并存储全局状态信息,为调度模块102提供决策依据;
[0098]所述调度模块102,其用于根据运行作业生成若干个任务,并存储在任务队列中,并周期性地从调度队列中调度任务,并根据监控模块中存储的全局状态信息为各任务匹配物理节点,并将各任务下发给最佳匹配物理节点的任务执行器200。
[0099]其中,所述任务执行器200包括心跳上报模块201和任务执行模块202 ;
[0100]所述心跳上报模块201,其用于定时向调度管理器100上报该任务执行器200的心跳息;
[0101]所述任务执行模块202,其用于执行调度模块102下发的任务,并根据任务指定的资源调用底层的虚拟化技术接口,准备虚拟机的配置文件并创建相应操作系统的虚拟机,利用创建的虚拟机从分布式存储系统中获取相应可执行程序并运行。
[0102]其中,心跳上报模块201负责定时向调度管理器100上报它的心跳信息,以告诉调度管理器100的监控模块101它目前处于活跃状态,可以接受任务。
[0103]其中,所述心跳信息包括该任务执行器的各种资源分配情况以及各种资源利用率。如CPU、内存以及网络1/0,包括已经分配出去多少资源,还剩下多少资源,各种资源利用信息,比如CPU利用率,内存利用率等。
[0104]下面以一个网络爬虫实例进一步描述本发明的实现。
[0105]假设一个用户需要在一个运行Linux操作系统上面启动3个Windows运行环境的网络爬虫可执行程序exe,每个程序被分配了一定扫描的区段分别为,10.168.1.1-10.168.50.1,10.168.50.1-10.168.100.1 和 10.168.100.1-10.168.150.1。每个实例的资源需求为I个CPU,IGB内存,IMb/s网络I/O带宽,用户最终提交的作业如图5所示。
[0106]调度管理器100首先会根据用户提交的任务中可执行程序的位置读取文件,并将文件上传到分布式存储系统300 (HDFS)中,并记录下这个可执行程序在分布式存储系统300 (HDFS)中的位置,假设为A。随后系统会为这个用户提交的请求创建3个任务,并放在调度管理器100里面的调度队列中,形成的3个任务配置如图6所示。
[0107]调度模块102根据“关键资源公平算法”进行任务调度。所谓的关键资源,就是对于某一个用户任务来说最需要的资源,也即它所要求的每种资源占物理机可用资源的比例最大的那个资源。具体的计算方法是,计算每个物理节点每种资源的资源需求可用比,所述资源需求可用比是处理单元的资源需求量与物理节点的资源可用量的比例,多种资源需求可用比中最高的一个即为该物理节点的关键资源比例。下面举个例子说明关键资源:假设一个物理机器有10个CPU核心、40G的内存以及100Mb/S的千兆网络I/O带宽。一个用户任务要求I个CPU,IG内存和IMb/s的网络带宽,对于这个用户来说,CPU就是它的关键资源,因为它需求的CPU资源占可用CPU资源的10%,而需要其他种类的资源分别占2.5%和1%。另外,对于公平性的考量可以见如下的例子:考虑一个物理机拥有12个CPUU2GB内存(为了说明问题的简单性,暂时不考虑网络I/O资源,但是如果考虑,情况是一样的),一个用户任务要求4CPU和IGB内存,另一个用户要求ICPU和2GB内存。假设在这个例子中,每个有无都有无限的任务请求。关键资源公平算法尝试去给所有用户同等比例的关键资源数量。在上述例子中,关键资源公平算法将要分配给两个用户2和4个任务的资源。因此,两个用户的资源使用量分别为〈8,2>以及〈4,8>。在这个情况下,每个用户都得到了他们相应关键资源的2/3。
[0108]下面仍以上述分布式爬虫为例,假设一共有两台的可用物理机作为任务执行器,初始资源分别为Ml (2CPU, 6G内存,100Mb/s网络带宽),和M2 (2CPU, 6G内存,100Mb/s网络带宽)。系统首先取得任务1,它的资源需求是Rl (1CPU,IG内存,IMb/s网络带宽)。分别计算它对于两个的物理机的关键资源比均为1/2,这个任务就被顺序匹配到机器I ;重复这个过程,任务2也会被匹配到机器1,最终的任务3会被匹配到机器2 ;从分配过程来看,关键资源优先算法可以减少不同物理机内的资源碎片,并保证关键资源的公平性。
[0109]上述方法中,提到配置虚拟化运行环境,主要由任务执行器200自动配置包括网络虚拟化相关软件、配置网络、添加网桥等。另外,虚拟机的配置文件指的是虚拟机使用的资源量R(CPU,内存,I/O),要运行作业的分布式应用及其相应启动参数和虚拟机拟分配的IP地址等。该配置文件中的信息大部分来自任务的指定,除了虚拟机拟分配的IP地址来自系统保留的所有可用IP地址池分配的下一个可用的IP地址;任务执行器200将这些配置文件形成一个标准的ISO格式文件。
[0110]上述方法中,提到增加拷贝虚拟机镜像技术,详细如下:
[0111]要创建一个虚拟机实例并运行一个应用。首先需要创建一个虚拟机镜像。但是创建虚拟机镜像并不是一个容易的事情,因为创建了镜像之后需要在这个镜像里面安装一个操作系统,而这个过程一般必须要人工地参与。本系统中任务执行器200会事先部署好一个安装好指定系统的镜像模版,然后在创建虚拟机之前,创建这个虚拟机镜像模版的一个拷贝,然后将这个虚拟机运行起来并执行应用。但是,如果一个虚拟机镜像模版大小为上百G,拷贝一个镜像的时间可能长达十几分钟,这是一个不可接受的事情。另外,每一个镜像存在大量相同的部分数据,每次都从新拷贝一份完全的虚拟机镜像对于操作系统的存储来说是一个极大的浪费。本系统对镜像采取的特殊地处理,镜像采用的是qcow2格式,qcow2是虚拟机镜像存储的一种特殊的文件格式,在每次拷贝镜像模版的时候都是使用增量创建,只保存于镜像模版不同的数据,因此无论虚拟机镜像有多大,这个增量很小的,所以创建一个新的虚拟机镜像耗时几乎可以不计。
[0112]上述方法中,提到ISO注入配置技术,具体如下:
[0113]启动虚拟机的时候会将形成的ISO格式文件传递通过ISO注入的方式传递给虚拟机内部。在虚拟机启动时候,由于虚拟机内部操作系统存在一个开机引导过程,不能直接将虚拟机配置的参数在创建的时候直接传递到虚拟机内部中。本专利利用创建虚拟机时候可以指定一个ISO文件这个机会作为传递参数机制,这个ISO镜像文件初始是用来在空的虚拟机镜像上面安装操作系统时候使用的,本专利利用这个机制向虚拟机内部传递参数,以供虚拟机内部系统引导起来之后的处理。
[0114]最后任务执行器根据200任务的操作系统要求以及资源需求量,利用底层虚拟化技术提供的接口启动相应虚拟机。
[0115]上述方法中,提到利用虚拟机内代理技术自动配置虚拟机,具体如下:
[0116]虚拟机在引导操作系统之后,会开机自动启动一个代理程序,这个程序运行在虚拟机内部,随着虚拟机的启动而运行,它会挂载传入的ISO配置到系统光盘中,读取里面的配置文件,根据配置文件的信息配置这个虚拟机的IP以及其他任何需要配置的参数。配置虚拟机IP之后,该虚拟机就可以自动与外界通信。
[0117]代理程序会根据配置文件中记录的作业可执行程序的地址,到分布式存储系统300中自动下装可行程序到虚拟机中,随后代理程序根据配置文件中记录的作业启动参数运行分布式程序;
[0118]下面仍以分布式爬虫为例子,第一个任务Tl被下发到物理机Ml之后,会进行以下操作:
[0119]1.任务执行器200会首先配置物理机的虚拟网桥,以及其他运行虚拟机需要配置的软件,另外,执行器从系统可用IP资源池中获得下一个可用IP,假设为192.168.1.11。
[0120]2.根据任务Tl的操作系统需求,通过qcow2格式增量创建一个Window XP操作系统的镜像,假设生成的镜像名为tL qcow20
[0121 ] 3.将配置文件制作成标准ISO文件,配置文件内容如图7所示,假设这个配置文件名为tl.1so。在启动虚拟机的时候,任务执行器200会将所需要的资源以及此ISO配置文件地址告诉底层的虚拟化技术KVM。KVM是目前进入Linux内核的基于内核的全虚拟化技术。任务执行器200根据另外一个配置文件与KVM进行通信。
[0122]4.KVM虚拟机启动之后,内部会开机自动运行一个代理程序,这个程序是在镜像模版中已经预先配置好的,它会挂载传入的ISO配置到系统光盘中,读取里面的配置文件,根据配置文件的信息读取到IP信息192.168.1.11,并自动将虚拟机配置为这个IP地址,以达到这个虚拟机能自动连入局域网的目的。
[0123]5.代理程序配置好网络之后,会根据配置文件里面的分布式爬虫在分布式存储HDFS中的位置/A/Crawler, exe下装应用到虚拟机中,并根据参数10.168.1.1?
10.168.50.1调用这个可执行程序,完成这个可执行程序的部分扫描任务。
[0124]6.其余的2个任务会经历类似的过程,等它们完全运行起来之后,系统就运行了完成了整个用户提交的作业,一共启动了 3个分布式爬虫程序一起完成了扫描
10.168.1.1-10.168.150.1 网段的工作。
[0125]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种云平台中分布式应用的智能部署方法,其特征在于,包括如下步骤: 步骤1:用户提交运行作业及资源需求到调度管理器; 步骤2:所述调度管理器将运行作业指定的可执行程序存储到分布式存储系统中,并记录存储位置; 步骤3:调度管理器根据运行作业中包含实例的个数形成相应数量的任务,为各个任务匹配物理节点,并将各任务下发给最匹配物理节点的任务执行器; 步骤4:最匹配物理节点的任务执行器根据任务中包含的信息配置虚拟机并启动; 步骤5:虚拟机根据任务中包含的信息自动从分布式存储系统中获取可执行程序并运行。
2.根据权利要求1所述一种云平台中分布式应用的智能部署方法,其特征在于, 步骤1中用户提交的运行作业包括分布式应用的可执行程序,可执行程序运行需要的操作系统环境,需要运行的实例个数,每个实例运行时的相应参数;用户提交的资源需求包括每个实例的资源需求; 步骤3中每个实例对应的任务中记录该实例对应的可执行程序在分布式存储系统中的存储位置、每个实例的资源需求及相应的启动参数。
3.根据权利要求1所述一种云平台中分布式应用的智能部署方法,其特征在于,步骤3为各个任务匹配物理节点的具体实现为: 步骤3.1:调度管理器的调度模块将生成的任务存储到任务队列中,并周期性地从任务队列中调度任务; 步骤3.2:调度模块从监控模块中获取物理集群的全局状态信息; 步骤3.3:调度模块根据调取任务的资源需求及物理集群的全局状态信息,利用关键资源公平算法计算出与该任务最匹配的物理节点; 步骤3.4:调度模块将任务下发到最匹配的物理节点的任务执行器的任务执行模块。
4.根据权利要求3所述一种云平台中分布式应用的智能部署方法,其特征在于,还包括所述每个物理节点的任务执行器的心跳上报模块实时向调度管理器上报心跳信息;所述调度管理器的监控模块接收所有心跳信息,存储物理集群的全局状态信息。
5.根据权利要求3所述一种云平台中分布式应用的智能部署方法,其特征在于,步骤3.3中所述利用关键资源公平算法具体实现为:计算每个物理节点每种资源的资源需求可用比,选取资源需求可用比中最高的一个即为该物理节点的关键资源比例。
6.根据权利要求1所述一种云平台中分布式应用的智能部署方法,其特征在于,步骤4中最匹配物理节点的任务执行器根据任务中包含的信息配置虚拟机并启动的具体步骤: 步骤4.1:最匹配物理节点的任务执行器根据任务指定的资源调用底层虚拟化技术接口,准备虚拟机的配置文件并创建相应操作系统的虚拟机; 步骤4.2:利用增量拷贝技术快速创建虚拟机镜像; 步骤4.3:利用ISO注入技术自动将配置文件中的参数注入到虚拟机,并启动虚拟机; 步骤4.4:利用虚拟机内代理技术自动配置虚拟机; 步骤4.5:虚拟机内代理程序根据任务中指定的位置,自动从分布式存储中下载分布应用的可执行程序,并根据任务参数运行分布式应用。
7.—种云平台中分布式应用的智能部署系统,其特征在于,包括一个调度管理器、若干个任务执行器和分布式存储系统; 所述调度管理器,其运行在主节点上,用于接收用户提交的运行作业和资源需求,将运行作业指定的可执行程序存储到分布式存储系统中,并记录存储位置;还用于根据运行作业中包含实例的个数形成相应数量的任务,将各个任务下发给最匹配物理节点的任务执行器; 所述任务执行器,其运行在从节点上,用于根据任务中包含的信息配置虚拟机并启动,进而虚拟机根据任务中包含的信息自动从分布式存储系统中获取可执行程序并运行; 所述分布式存储系统,其用于存储调度管理器上传的分布式应用的可执行程序。
8.根据权利要求7所述一种云平台中分布式应用的智能部署系统,其特征在于,所述调度管理器包括监控模块和调度模块; 所述监控模块,其用于接收各任务执行器上报的心跳信息,监控各任务执行器的运行状态,并存储全局状态信息,为调度模块提供决策依据; 所述调度模块,其用于根据运行作业生成若干个任务,并存储在任务队列中,并周期性地从调度队列中调度任务,并根据监控模块中存储的全局状态信息为各任务匹配物理节点,并将各任务下发给最佳匹配物理节点的任务执行器。
9.根据权利要求7所述一种云平台中分布式应用的智能部署系统,其特征在于,所述任务执行器包括心跳上报模块和任务执行模块; 所述心跳上报模块,其用于定时向调度管理器上报该任务执行器的心跳信息; 所述任务执行模块,其用于执行调度模块下发的任务,并根据任务指定的资源调用底层的虚拟化技术接口,准备虚拟机的配置文件并创建相应操作系统的虚拟机,利用创建的虚拟机从分布式存储系统中获取相应可执行程序并运行。
10.根据权利要求7所述一种云平台中分布式应用的智能部署系统,其特征在于,所述心跳信息包括该任务执行器的各种资源分配情况以及各种资源利用率。
【文档编号】G06F9/455GK103810023SQ201410080662
【公开日】2014年5月21日 申请日期:2014年3月6日 优先权日:2014年3月6日
【发明者】张章, 王旻, 汤学海, 周薇, 韩冀中, 孟丹 申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1