基于虚拟化平台的细粒度资源调度系统及方法

文档序号:8922441阅读:958来源:国知局
基于虚拟化平台的细粒度资源调度系统及方法
【技术领域】
[0001]本发明涉及云计算技术领域,特别涉及一种基于虚拟化平台的细粒度资源调度系统及方法。
【背景技术】
[0002]云计算采用资源虚拟化技术,对分布式的计算、存储、网络等资源进行虚拟化,形成一个或多个逻辑上聚合的资源池,资源池的资源完全共享。然而,在资源池内,虚拟资源使用灵活多变,如何进行资源调度,即在满足虚拟资源及应用业务的服务质量的同时,如何按需分配虚拟资源、有效利用资源池资源,将成为最大的挑战。
[0003]传统的资源调度方法多采用负载均衡、资源整合等分布式资源调度方法。首先对服务器负载进行分析,采用虚拟机迀移的资源调度方式实现。但是虚拟机迀移的资源调度粒度太大,对迀移的虚拟机本身来说,会造成一段时间的运行中断;对于服务器来说,迀移过程本身会消耗较多的CPU、网络等资源,因此不可避免的还会影响到同服务器节点上其他虚拟机的性能。
[0004]另外,为了减少虚拟机迀移次数,在服务器节点部署虚拟机时,采取装箱原理,尽量使虚拟机与服务器节点的映射关系趋于合理,减少不必要的虚拟机迀移,然而事实上,随着虚拟机及其应用业务的运行,虚拟机的负载是不断变化的,导致各个服务器节点之间的负载也会波动,为了有效利用服务器节点资源,不可避免也需要采取虚拟机迀移的资源调度方式,因此,利用装箱原理的虚拟机部署还是不能改变虚拟机迀移本身的问题。

【发明内容】

[0005]有鉴于此,有必要提供一种对迀移虚拟机以及同服务器节点内其他虚拟机的影响都较小的细粒度资源调度系统及方法。
[0006]一种基于虚拟化平台的细粒度资源调度系统,其包括如下单元:
[0007]负载信息获取单元,用于收集当前时间点服务器内η个虚拟机的负载值,获取服务器内所有虚拟机的平均负载值,并计算各虚拟机的负载值与平均负载值的负载差值;
[0008]矩阵生成单元,用于记录当前时间点η个虚拟机的负载差值,并判断总共记录的时间点个数是否小于预设次数m,如果是则启动负载信息获取单元的功能,否则保留最近m个时间点的负载差值,形成共m个时间点下η个虚拟机的负载差值数据组成一个m行η列的负载差值矩阵,并启动矩阵分析单元的功能;
[0009]矩阵分析单元,用于对当前时间点的负载差值矩阵进行逐列分析,并判断所有虚拟机都是否分析了一遍,是则当前时间点的负载分析已经完成,启动资源配置单元的功能;否则启动负载波动判断单元的功能;
[0010]负载波动判断单元,用于判断当前时间点的负载差值矩阵的列数据的绝对值是否均小于或等于某一个预设固定的负载波动幅值r,如果是将该虚拟机的负载调度值置为0,并启动矩阵分析单元的功能,否则启动负载调度值调整单元的功能;
[0011]负载调度值调整单元,用于判断当前时间点的负载差值矩阵的列数据大于r的次数是否大于或等于第一预设次数kl,如果是则将计算该虚拟机最近kl次大于r的负载差值的平均值,作为该虚拟机的负载调度值,并启动矩阵分析单元的功能;否则继续判断当前时间点的负载差值矩阵的列数据小于-r的次数是否大于或等于第二预设次数k2,如果是将计算该虚拟机最近k2次小于-r的负载差值的平均值,作为该虚拟机的负载调度值,并启动矩阵分析单元的功能,否则将该虚拟机的负载调度值置为0,并启动矩阵分析单元的功能;
[0012]资源配置单元,用于修正各虚拟机的负载调度值,并判断虚拟机的负载调度值是否同时存在正值和负值,如果是则从负载调度值中选择一个最大值和最小值的虚拟机,增加负载调度值最大的虚拟机的资源配置,减少负载调度值最小的虚拟机的资源配置,否则等待预设时间T后启动负载信息获取单元的功能。
[0013]本发明还提供一种基于虚拟化平台的细粒度资源调度方法,其包括如下步骤:
[0014]S1、收集当前时间点服务器内η个虚拟机的负载值,获取服务器内所有虚拟机的平均负载值,并计算各虚拟机的负载值与平均负载值的负载差值;
[0015]S2、记录当前时间点η个虚拟机的负载差值,并判断总共记录的时间点个数是否小于预设次数m,如果是则跳转到步骤SI,否则保留最近m个时间点的负载差值,形成共m个时间点下η个虚拟机的负载差值数据组成一个m行η列的负载差值矩阵;
[0016]S3、对当前时间点的负载差值矩阵进行逐列分析,并判断所有虚拟机都是否分析了一遍,是则当前时间点的负载分析已经完成,跳到步骤S6 ;否则跳转到步骤S4 ;
[0017]S4、判断当前时间点的负载差值矩阵的列数据的绝对值是否均小于或等于某一个预设固定的负载波动幅值r,如果是将该虚拟机的负载调度值置为0,并跳到步骤S3,否则跳转到步骤S5 ;
[0018]S5、判断当前时间点的负载差值矩阵的列数据大于r的次数是否大于或等于第一预设次数kl,如果是将计算该虚拟机最近kl次大于r的负载差值的平均值,作为该虚拟机的负载调度值,跳到步骤S3 ;否则继续判断当前时间点的负载差值矩阵的列数据小于_r的次数是否大于或等于第二预设次数k2,如果是将计算该虚拟机最近k2次小于-r的负载差值的平均值,作为该虚拟机的负载调度值,跳到步骤S3 ;否则将该虚拟机的负载调度值置为0,并跳到步骤S3 ;
[0019]S6、修正各虚拟机的负载调度值,并判断虚拟机的负载调度值是否同时存在正值和负值,如果是则从负载调度值中选择一个最大值和最小值的虚拟机,增加负载调度值最大的虚拟机的资源配置,减少负载调度值最小的虚拟机的资源配置,否则等待预设时间T后跳到步骤SI。
[0020]本发明提供的基于虚拟化平台的细粒度资源调度系统及方法通过本发明具有以下有益效果:1、资源调度粒度小,不对虚拟机进行迀移,对服务器负载影响较小,并可根据虚拟机资源负载情况按需配置相应资源;2、可根据系统应用业务的特点,决定资源负载的波动范围、以及资源调度的激进程度;3、资源调度不设置固定的负载上下限阈值,当虚拟机的整体负载上升或下降时,服务器内各个虚拟机仍然可以处于动态平衡状态;4、资源调度模型综合考虑了虚拟机负载抖动、正在开机、正在进行负载测试等异常现象,并且待虚拟机负载趋于稳定时,才对虚拟机资源进行重配置。
【附图说明】
[0021]图1是本发明实施例的基于虚拟化平台的细粒度资源调度系统结构框图;
[0022]图2是负载差值矩阵示意图;
[0023]图3是本发明实施例的基于虚拟化平台的细粒度资源调度方法流程图。
【具体实施方式】
[0024]如图1所示,一种基于虚拟化平台的细粒度资源调度系统,其包括如下单元:
[0025]负载信息获取单元10,用于收集当前时间点服务器内η个虚拟机的负载值,获取服务器内所有虚拟机的平均负载值,并计算各虚拟机的负载值与平均负载值的负载差值。
[0026]矩阵生成单元20,用于记录当前时间点η个虚拟机的负载差值,并判断总共记录的时间点个数是否小于预设次数m,如果是则启动负载信息获取单元10的功能,否则保留最近m个时间点的负载差值,形成共m个时间点下η个虚拟机的负载差值数据组成一个m行η列的负载差值矩阵,并启动矩阵分析单元30的功能。
[0027]矩阵分析单元30,用于对当前时间点的负载差值矩阵进行逐列分析,并判断所有虚拟机都是否分析了一遍,是则当前时间点的负载分析已经完成,启动资源配置单元60的功能;否则启动负载波动判断单元40的功能。
[0028]负载波动判断单元40,用于判断当前时间点的负载差值矩阵的列数据的绝对值是否均小于或等于某一个预设固定的负载波动幅值r,如果是将该虚拟机的负载调度值置为0,并启动矩阵分析单元30的功能,否则启动负载调度值调整单元50的功能。
[0029]负载调度值调整单元50,用于判断当前时间点的负载差值矩阵的列数据大于r的次数是否大于或等于第一预设次数kl,如果是将计算该虚拟机最近kl次大于r的负载差值的平均值,作为该虚拟机的负载调度值,并启动矩阵分析单元30的功能;否则继续判断当前时间点的负载差值矩阵的列数据小于_r的次数是否大于或等于第二预设次数k2,如果是将计算该虚拟机最近k2次小于-r的负载差值的平均值,作为该虚拟机的负载调度值,并启动矩阵分析单元30的功能,否则将该虚拟机的负载调度值置为0,并启动矩阵分析单元30的功能;
[0030]资源配置单元60,用于修正各虚拟机的负载调度值,并判断虚拟机的负载调度值是否同时存在正值和负值,如果是则从负载调度值中选择一个最大值和最小值的虚拟机,增加负载调度值最大的虚拟机的资源配置,减少负载调度值最小的虚拟机的资源配置,否则等待预设时间T后启动负载信息获取单元10的功能。
[0031]可选地,第一预设次数值kl的范围为m/2 < kl彡m。
[0032]可选地,第二预设次数值k2的范围为m/2 < k2彡m。
[0033]以下结合图2、3对本发明实施例的基于虚拟化平台的细粒度资源调度方法做更进一步的说明,由于本发明实施例的方法与系统是一一对应的,因此以下内容亦可以用于解释本发明实施例系统。本发明实施例适用于CPU、内存、网络等虚拟资源。以下流程中:
[0034]η:表示服务器内参与资源动态配置的虚拟机个数;m:表示记录负载差值的历史时间点个数:表示允许与平均负载的波动幅值;kl:表示能够容忍负载差值超过r的次数,该值不大于m,但大于m/2 ;k2:表示能够容忍负载差值低于_r的次数,该值不大于m,但大于m/2 ;T:表示每次资源调度的时间周期,该值不小于负载收集的时间周期,否则会出现收集重复数据的情况。kl/m表示对超过平均负载的容忍度,该值越小(最小值大于1/2)表示资源调度越激进,越大(最大为I)表示资源调度越保守;k2/m表示对低于平均负载的容忍度,该值越小(最小值大于1/2)表示资源调度越激进,越大(最大为I)表示资源调度越保守。
[0035]S01、开始进行负载收集,收集当前时间点服务器内η个虚拟机的负载值(即资源利用率),并跳转到步骤S02。
[0036]S02、计算服务器内虚拟机的平均负载aL。由于各个虚拟机的资源配置存在差异,可以采取加权平均计算的方法,比如,权重值可选择等于虚拟机该项配置资源值
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1