一种虚拟机资源分配方法及分布式虚拟机资源调度系统与流程

文档序号:12719158阅读:1797来源:国知局
一种虚拟机资源分配方法及分布式虚拟机资源调度系统与流程
本发明涉及一种虚拟机资源分配方法,以及应用该分配方法的分布式虚拟机资源调度系统,用于云计算平台,软件运营,平台运营以及数据运营等过程中对虚拟机资源进行调度,属于计算机应用
技术领域

背景技术
:计算机虚拟化技术将计算和处理建立在虚拟的基础上,抽象计算机的物理资源,隔离硬件与软件。利用虚拟化技术可将机群抽象成具有共享内存特征的虚拟机,支持共享内存编程模式,从而克服机群的不足。现有技术中,对虚拟机资源的调度往往采用集中式调度模式,或者,双层资源调度模式,前者如:google云计算平台的MapReduce,其主要采用集中式调度模式,故只有一个中心调度器,所有请求必须提交给主调度器,由其决定如何响应请求,分配及管理资源。整个调度器由master,user,worker三种进程执行,master负责任务调度,均衡控制,worker负责执行master分配的任务,user负责管理用户请求。这种调度模式的缺点是中心调度器的负担很重,大规模的计算任务会明显影响相应用户求的时间;后者如:hadoopYARN调度器,YARN采用了双层资源调度模型,在第一层中,ResourceManager中的资源调度器将资源分配给各个ApplicationMaster;在第二层中,AppplicationMaster再进一步将资源分配给它的内部的各个任务。YARN资源调度器采用了主资源公平调度算法(DominantResourceFainess,DRF),该算法扩展了最大最小(max-minfairness)算法,使其能够支持多维资源的调度。缺点是框架对资源分割管理粒度细及种类多,导致调度过程非常繁琐,而且出现作业故障时只能重启服务,给管理者造成困扰。技术实现要素:本发明针对现有技术中虚拟机的调度模式存在用户响应时间长、调度过程繁琐、调度器稳定性、调度器与节点强耦合等技术问题,提供一种虚拟机资源分配方法,以及应用该分配方法的分布式虚拟机资源调度系统,使调度任务及资源的功能控制过程智能化、精简化,快速响应用户请求。为此,本发明采用如下技术方案:一种虚拟机资源分配方法,包含如下步骤:S1:将用户表示为用户集表示U={U1,U2,U3,…,Un},将虚拟机资源池表示为资源集R={R1,R2,R3,…,Rn};S2:调度器寻求策略S使得在资源集R中合理选择Rn分配给有资源需求的Un,其中:Un中需考虑如下因素:P-优先级,T-请求时间,N-用户数量,D-用户域;Rn中需考虑如下因素:T-资源类型,L-资源负荷,D-资源域,N-资源数量;策略S抽象成向量矩阵关系,即U·S=R,S=R·U-1用户Ui={Pi,Ti,Di,Ni},为N阶可变向量组;资源Ri={Ti,Li,Di,Ni},为N阶可变向量组;其中P,T,N向量组同原集合,D向量组由softmax回归算法分类决定;输入变量为N维IP地址集A={Ai}及访问时序集M={Mi},分类标签根据资源服务节点标定为Q={Qi},即由输入列(Ai,Mi)及标签Qi根据softmax算法分类。本发明的另一方面,提供一种分布式虚拟机资源调度系统,采用上述虚拟机资源分配方法对虚拟机资源进行分配,包括:由若干网络服务器组成的网络服务器组,各网络服务器对服务请求进行管理和控制,并将服务请求抽象封装后提交给调度器;由若干调度器组成的调度器组,调度器分别分布于多个网络服务器节点,各调度器负责处理网络服务器传递的数据,采用上述虚拟机资源分配方法对虚拟机资源进行分配,并通过使用动态配置的算法计算虚拟机资源分配结果,再返回给网络服务器;以及,由若干虚拟机组成的虚拟机资源池:各虚拟机分别对服务请求进行处理。进一步地,所述动态配置的算法是指从配置文件读取写好的配置。进一步地,网络服务器、调度器以及虚拟机组成一个计算服务节点,所有的计算服务节点具有相同的虚拟机资源及运行相同的程序。本发明通过设置多个服务节点,部署相应的服务后,每个节点有相同的调度器及计算资源,一个客户端请求到达后,可以随机分配给任何一个节点,节点通过调度算法计算得到资源分配结果后,无论资源位于那个节点,客户端请求都可以在本节点得到响应;同时,由于各个节点是弱连接,去除其中任何一个节点,余下的各节点都会继续提供服务而没有任何其他影响;此外,调度算法加入了机器学习的能力,可以根据用户请求历史情况动态分陪资源域,从而影响算法的结果,而算法是可以动态调配的,即调度器会动态读取算法配置脚本决定使用何种调度算法。因此,本发明具有如下有益效果:1.快速响应请求,通过将调度器分布式地部署于多个网络服务器节点,使调度器去中心化,没有控制中心,独立完成本节点调度任务;从而使调度任务及资源的功能控制过程精简化,可以快速响应用户请求;2.高可用,调度器之间没有显式的连接,没有逻辑数据流,调度器并行分布在多个节点上,具有高可用性,高容错性的优点;同时,调度器所在的服务节点可以任意退出服务集群而不会影响服务集群的功能;3.智能化,利用多种机器学习算法动态决定资源分配,调度算法与调度器主体分离,可以动态决定调度算法;附图说明图1为本发明的结构框图;图2为本发明实施例的示意图。具体实施方式以下结合附图和具体实施例对本发明作进一步详细描述,本发明中与现有技术相同的部分将参考现有技术。实施例1:本发明的虚拟机资源分配方法,包含如下步骤:S1:将用户表示为用户集表示U={U1,U2,U3,…,Un},将虚拟机资源池表示为资源集R={R1,R2,R3,…,Rn};S2:调度器寻求策略S使得在资源集R中合理选择Rn分配给有资源需求的Un,其中:Un中需考虑如下因素:P-优先级,T-请求时间,N-用户数量,D-用户域;Rn中需考虑如下因素:T-资源类型,L-资源负荷,D-资源域,N-资源数量;策略S抽象成向量矩阵关系,即U·S=R,S=R·U-1用户Ui={Pi,Ti,Di,Ni},为N可变阶向量组;资源Ri={Ti,Li,Di,Ni},为N可变阶向量组;其中P,T,N向量组同原集合,D向量组由softmax回归算法分类决定;输入变量为N维IP地址集A={Ai}及访问时序集M={Mi},分类标签根据资源服务节点标定为Q={Qi},即由输入列(Ai,Mi)及标签Qi根据softmax算法分类。实施例2:如图1所示,本发明的分布式全平衡虚拟机资源调度系统,采用上述虚拟机资源分配方法对虚拟机资源进行分配,包括:由若干网络服务器组成的网络服务器组,各网络服务器对服务请求进行管理和控制,并将服务请求抽象封装后提交给调度器;由若干调度器组成的调度器组,调度器分别分布于多个网络服务器节点,各调度器负责处理网络服务器传递的数据,采用上述虚拟机资源分配方法对虚拟机资源进行分配,并通过使用动态配置的算法计算虚拟机资源分配结果,再返回给网络服务器;以及,由若干虚拟机组成的虚拟机资源池:各虚拟机分别对服务请求进行处理。所述动态配置的算法是指从配置文件读取写好的配置,例如读取到如下内容:IFnodes>1000;THENschedule_calc=MATRIXELSEschedule_calc=FIFO表示如果服务节点数大于1000时采用矩阵算法,否则采用FIFO算法。本发明的分布式全平衡虚拟机资源调度系统中,网络服务器、调度器以及虚拟机组成一个计算服务节点,所有的计算服务节点具有同质性,即:有相同的虚拟机资源及运行相同的程序。图2示出了本发明的分布式全平衡虚拟机资源调度系统的一个具体应用实例,如图2所示,本发明的虚拟机资源分配方法,包含如下步骤:首先,将用户表示为用户集表示U={U1,U2,U3,…,Un},将虚拟机资源池表示为资源集R={R1,R2,R3,…,Rn};随后,网络服务器获取到终端用户请求,并形成下表所示数据发送给调度器:假令有8个用户,其P,优先级,T,请求时间,N,用户数量,D,用户域分配如下表:U1U2U3U4U5U6U7U8P10719-29-1-811T34278156N88888888D22432112此表可以表示成矩阵U:之后,调度器发送计算资源查询命令给控制器,得到返回的数据如下表,假令有6个虚拟机,其T,资源类型,L,资源负荷,D,资源域,N,资源数量分配如下表:V1V2V3V4V5V6T10719-29-1L342781D224321N666666此表可以表示成矩阵V:根据调度器智能算法可以计算计算资源分配矩阵S=U·V-1即,S={1,3,0,0,0,3},表示3,4,5号虚拟机空闲,可以分配请求,故将请求结果以数据表形式返回给网络服务器;最后,网络服务器响应用户请求。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1