一种共享虚拟资源池份额调度方法及系统技术方案

技术编号:20819572 阅读:14 留言:0更新日期:2019-04-10 05:50
本发明专利技术公开了一种共享虚拟资源池份额调度方法及系统。本方法为:对每个业务应用分别进行实时监测,获得每个业务应用运行状况以及当前运行的虚拟机资源总数;其中,所述业务应用运行状况包括业务应用当前运行的作业数量以及排队等待运行的作业数量;每个业务应用分别设有一个所需虚拟机阈值上限和所需虚拟机阈值下限;如果业务应用的作业无排队情况,则进行收缩;如果业务应用有作业排队情况,且当前运行的虚拟机资源总数未超过整个虚拟计算集群的总额定负载,则对该业务进行扩张;若当前运行的虚拟机资源总数已达到或超过整个虚拟计算集群的总额定负载,则对该业务虚拟机运行实例保持原样。本发明专利技术大大地提高了云计算资源的使用效率。

【技术实现步骤摘要】
一种共享虚拟资源池份额调度方法及系统
本专利技术属于云计算领域,具体涉及一种动态虚拟资源池调度方法及系统。
技术介绍
云计算技术通过虚拟化技术将大规模的计算资源、存储资源与数据和应用融合在一起,通过互联网技术提供资源的共享,在提高资源利用率、灵活的可伸缩性以及可管理性方面表现出了巨大的优势。通过虚拟化网络、虚拟机调度等技术,将虚拟化环境与现有计算环境无缝衔接,提供IaaS(InfrastructureasaService)类型的云计算服务,支持虚拟集群与分布式计算等上层应用。虚拟资源池可以提供给上层多种业务应用灵活使用,目前有多种云计算资源管理平台,如Openstack,Opennebula等。然而,目前openstack这类云计算管理平台只能提供静态虚拟机集群,而无法针对上层业务的资源需求进行动态的调整,由此会造成某些业务的虚拟机不够而其他业务的虚拟机空闲的问题,从而导致了虚拟机资源的极大浪费,如何高效利用虚拟机资源提供给上层业务弹性和灵活的分配,对提高整体虚拟资源池利用率十分关键。
技术实现思路
针对现有技术中存在的技术问题,本专利技术的目的在于提供一种共享虚拟资源池调度方案,以解决上层多个业务同时使用虚拟计算资源分配及回收问题。本专利技术提出一种自动调整虚拟资源池的方法,包括以下步骤:实时监测上层多个业务应用的负载情况,对每个业务应用分别进行监测,获得当前运行的所有业务当前的负载情况,包括每一业务当前运行的作业数量以及在排队的作业数量;每个业务应用分别设有一个所需虚拟机阈值上限和所需虚拟机阈值下限;每一业务应用的所需虚拟机阈值上限和所需虚拟机阈值下限具体数目可以根据实际需要设定。根据每个业务应用运行状况,判断对此业务应用的虚拟资源进行收缩或扩张,其方法是:调用HTCondor获取当前业务的作业状态,如果此业务应用的作业无排队情况,则进行收缩;如果此业务应用有作业排队情况,假如当前运行的虚拟机资源总数未超过整个虚拟计算集群的总额定负载,则对该业务进行扩张;假如当前运行的虚拟机资源总数已达到或超过整个虚拟计算集群的总额定负载,则对该业务虚拟机运行实例保持原样。计算收缩或扩展的数量。需要说明的是,本专利中提出的计算收缩或扩张数量的方式跟底层IaaS平台所采用的虚拟平台管理软件和上层应用采用的作业管理系统密切相关,虚拟机的动态扩展对用户的作业是透明的,在动态调度过程中,用户的作业不受任何影响。对于虚拟机的控制,本专利中提出的方法主要针对以Openstack作为IaaS平台的虚拟机管理软件,在本专利的方法中,每个业务应用可定义不同类型的虚拟机镜像,动态调度系统中预先配置好应用名与虚拟机镜像名的对应关系,具体的虚拟机控制可通过Openstack平台的API实现,其他平台如Openebulla等可参考本专利的方法修改对应的虚拟机控制API接口即可实现。对于上层作业管理系统,本专利主要支持以HTCondor作为作业管理系统的虚拟计算集群,其他作业管理系统如PBS等可参考本专利的方法修改对应的作业查询API接口即可实现。具体方法为:1)若为收缩情况,依据当前业务应用运行的虚拟机数量current_vm、当前业务应用运行的有计算任务的虚拟机数量work_vm、当前业务应用的阈值下限min三者进行比较,如果有计算任务的虚拟机数量小于资源阈值下限,即work_vm<min,则进行收缩虚拟机的操作,此时调整业务应用的实例数量res为当前实例运行数量减去阈值下限,即res=current_vm-min;如果有计算任务的虚拟机数量大于或等于资源阈值下限,即work_vm>=min,则资源收缩数量为当前实例运行数量减去有任务的数量,即res=current_vm–work_vm。具体的收缩操作通过调用云计算资源平台的API,通过批量发送删除根据上述方法所得到的虚拟机实例的请求来实现收缩。2)若为扩展情况,首先获取当前业务应用运行的虚拟机数量run_vm,如果run_vm达到该业务应用的阈值上限max,则保持此业务应用的虚拟机数量不变;如果run_vm<max,则对该业务应用的虚拟机进行扩展。扩展的数量计算方法为:首先获取当前业务应用的最大可用虚拟机资源max_avail_vm,其计算方法为虚拟资源池总额定负载total_load减去各应用当前运行的虚拟机总数all_run,即max_avail_vm=total_load-all_run。然后把max_avail_vm与当前业务应用存在排队等待运行的作业数量wait_job_num进行比较,如果max_avail_vm>=wait_job_num,则当前业务应用的可用资源avail_vm等于wait_job_num;如果max_avail_vm<wait_job_num,则当前业务应用的可用资源avail_vm等于max_avail_vm。然后用work_vm+avail_vm与max比较,如果work_vm+avail_vm>max,则调整业务应用的实例数量res为max-work_vm;如果work_vm+avail_vm<max,则调整业务应用的实例数量res为avail_vm。具体的扩张操作通过调用云计算资源平台的API,通过批量启动所需数目的虚拟机来实现。本专利技术同时提供了一套针对业务应用动态调整资源池的系统,包括:监测模块,用于实时监测上层业务应用的负载情况,获取每个业务应用的排队数量、虚拟资源池可用资源数量和每个业务应用的虚拟机数量;计算模块,用于计算某业务应用的可用虚拟机数量,并设置资源预留失效时间;调整模块,用于调整虚拟资源池中某业务应用的虚拟机实例数量,保证其在预设的阈值区间内根据负载情况相应的扩展或收缩。如果无排队,则根据当前作业情况,进行收缩,收缩最小值为业务资源阈值下限;如果有排队,则调整到计算出的资源增加数量。与现有技术相比,本专利技术的积极效果为:本专利技术提出的动态调整虚拟资源池的方法及系统,通过监测上层业务应用的请求,从而计算虚拟机实例数量变化来确定调整后的虚拟机实例数量,并通过预设的极限阈值,控制资源池中的虚拟机实例所使用的虚拟机数量,大大地提高了云计算资源的使用效率。附图说明图1为本专利技术的动态调整资源池的方法的步骤流程图;图2为本专利技术的计算需要调整业务应用的实例数量的方法流程图;图3为本专利技术的动态调整资源池的方法的收缩实例流程图;图4为本专利技术的动态调整资源池的方法的扩展实例流程图。具体实施方式在下述具体实施示例中,结合附图对本专利技术进行进一步的详细说明。通过足够详细的描述这些实施示例,使得本领域技术人员能够实践本专利技术。在不脱离本专利技术的主旨和范围的情况下,可以对实施做出逻辑的、实现的和其他的改变。因此,以下详细说明不应该被理解为限制意义,本专利技术的范围仅仅由权利要求来限定。结合图1,说明本动态资源调度系统的系统结构。本系统包含三个模块,分别为监测模块,计算模块,调整模块。上层与应用系统对接,支持HTCondor作业管理系统;下层与虚拟资源系统对接,这里的虚拟资源管理平台可以采用Openstack,Openebulla等多个虚拟资源平台。当系统资源池初始化时,设置资源池中关于各业务应用的初始参数,此初始参数由【业务名称本文档来自技高网...

【技术保护点】
1.一种共享虚拟资源池份额调度方法,其步骤包括:对每个业务应用分别进行实时监测,获得每个业务应用运行状况以及当前运行的虚拟机资源总数;其中,所述业务应用运行状况包括业务应用当前运行的作业数量以及排队等待运行的作业数量;每个业务应用分别设有一个所需虚拟机阈值上限和所需虚拟机阈值下限;根据每个业务应用运行状况,判断对该业务应用的虚拟资源进行收缩或扩张;其中,依据当前业务应用运行的虚拟机数量current_vm、当前业务应用运行的有计算任务的虚拟机数量work_vm、当前业务应用的阈值下限min三者进行比较,如果有计算任务的虚拟机数量小于资源阈值下限,即work_vm

【技术特征摘要】
1.一种共享虚拟资源池份额调度方法,其步骤包括:对每个业务应用分别进行实时监测,获得每个业务应用运行状况以及当前运行的虚拟机资源总数;其中,所述业务应用运行状况包括业务应用当前运行的作业数量以及排队等待运行的作业数量;每个业务应用分别设有一个所需虚拟机阈值上限和所需虚拟机阈值下限;根据每个业务应用运行状况,判断对该业务应用的虚拟资源进行收缩或扩张;其中,依据当前业务应用运行的虚拟机数量current_vm、当前业务应用运行的有计算任务的虚拟机数量work_vm、当前业务应用的阈值下限min三者进行比较,如果有计算任务的虚拟机数量小于资源阈值下限,即work_vm<min,则进行收缩虚拟机的操作,此时调整业务应用的实例数量res为当前实例运行数量减去阈值下限,即res=current_vm-min;如果有计算任务的虚拟机数量大于或等于资源阈值下限,即work_vm>=min,则资源收缩数量为当前实例运行数量减去有任务的数量,即res=current_vm–work_vm;如果该业务应用存在排队等待运行的作业,且当前运行的虚拟机资源总数未超过虚拟计算集群的总额定负载,则对该业务应用进行扩张;其方法为:首先获取当前业务应用运行的虚拟机数量run_vm,如果run_vm达到该业务应用的阈值上限max,则保持该业务应用的虚拟机数量不变;如果run_vm<max,则对该业务应用的虚拟机进行扩展;扩展数量的计算方法为:首先获取当前业务应用的最大可用虚拟机资源max_avail_vm,然后对max_avail_vm与当前业务应用存在排队等待运行的作业数量wait_job_num进行比较,如果max_avail_vm>=wait_job_num,则令当前业务应用的可用资源avail_vm等于wait_job_num;如果max_avail_vm<wait_job_num,则令当前业务应用的可用资源avail_vm等于max_avail_vm;然后用work_vm+avail_vm与max比较,如果work_vm+avail_vm>max,则调整业务应用的实例数量res为max-work_vm;如果work_vm+avail_vm<max,则调整业务应用的实例数量res为avail_vm。2.如权利要求1所述的方法,其特征在于,业务应用运行的每一虚拟机分别设置有一失效时长t。3.如权利要求1所述的方法,其特征在于,每一业务应用的所需虚拟机阈值上限和所需虚拟机阈值下限具体数目根据实际需要设定。4.如权利要求1所述的方法,其特征在于,获取当前业务应用的最大可用虚拟机资源max_avail_vm的计算方法为:虚拟资源池总额定负载total_load减去各应用当前运行的虚拟机总数all_run,即max_avail_vm=total_load-all_run。5.如权利要求1所述的方法,其特征在于,每一所述业务应用设置有多个初始参数,包括业务名称、所需虚拟机阈值下限、所需虚拟机阈值上限、可用资源数量及其预留时间。6.一种共享虚拟资源池份额调度系统,其特征在于,包括监测模块、...

【专利技术属性】
技术研发人员:李海波程耀东程振京胡庆宝王聪徐琪
申请(专利权)人:中国科学院高能物理研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1