虚拟化计算平台中应用请求调度的方法及其系统的制作方法

文档序号:6585407阅读:185来源:国知局
专利名称:虚拟化计算平台中应用请求调度的方法及其系统的制作方法
技术领域
本发明涉及到虚拟集群领域,尤其涉及虚拟化计算平台中应用请求调度的方法及
其系统。
背景技术
现有技术中,一种提高资源利用率的实现方法是利用虚拟化技术将大量网络服务 整合到一个共享的框架下,将整体资源在各个虚拟机间分配。 现有技术中实现虚拟化技术的方法之一为Web集群方法。Web集群是指由两台或 者多台服务器通过网络联合起来,共同处理用户请求的网络服务站点。虽然大规模集群具 有大量的服务器节点,但是它使用一台主机给所有用户提供唯一的访问接口。为了控制所 有的请求到达站点并屏蔽掉后台的分布式服务器结构,Web集群提供一个网络交换器,使用 单一的虚拟IP地址来关联后台的实际服务器,其为网络调度器。在集群中的所有服务器都 被放置在相同的物理空间中。网络请求流经过网络交换器将请求分发到各个网络服务器 中。网络交换器接收客户端的服务请求,并从网络服务器池中选择一台进行后续的处理操 作。在网络集群服务器中,调度方法为根据网络客户信息和服务器资源总量和资源利用率 进行调度。该调度方法的缺点在于无法对动态伸縮的虚拟机进行感知。动态伸縮的虚拟机 是指在虚拟化环境中虚拟机的资源可以按需进行流动分配。 目前的虚拟化技术仅仅实现了资源在物理节点内的流动,也就是资源流动不能跨 节点。对于大规模Web服务器虚拟集群构成的环境来说,它将导致能力流动和应用负载匹 配的问题。 一个应用的网络请求被调度到了分布在不同物理节点的虚拟机上。虚拟机跨节 点分布,而资源流动层对其它物理节点上的虚拟机资源流动不可知,如果仅仅被动依靠分 配过来的负载来自适应地按需流动本地资源,就会忽略其它物理节点上该服务的宏观调度 信息,最后的结果总是会造成能力流动和应用负载失配,表现为当虚拟机资源扩展的时候 负载没有分配进来或者资源收縮了以后负载还频繁调度进来。甚至因为能力流动无法感知 请求调度,而使得请求在各个动态伸縮的虚拟机之间,形成负载的分配不均,不能充分利用 系统资源来提高服务吞吐率。 —个虚拟机上CPU资源能力流动和应用负载匹配的模式如图1所示。上图是线性 匹配效果,下图是经过DTW(Dynamic Time Wr即,动态时间包络)处理后的包络图。每个图 中上面的曲线说明了该虚拟机的总资源流动情况,它的凹凸表示了资源的流出和流进,下 面的曲线表示负载对资源的使用情况,它的凹凸间接表示了应用负载分配数量的减少和增 加。从图l可见,需要达到的最佳效果是两条曲线的包络线之间的空间越小越好,如公式 (1)所示。因为它表示流进来虚拟机的资源都能有应用负载能够分配进来消耗这部分资源, 这就是能力流动和应用负载的匹配。 <formula>formula see original document page 5</formula> (1 ) 在虚拟互联网服务集群系统中,由于虚拟资源动态伸縮,如果仅仅只是通过节点内对资源按需流动来进行管理,解决不了能力流动和应用负载匹配的问题的。该匹配有两个层面的问题,单纯从一个节点上观察这两条匹配曲线,当然是使用率越高,波峰波谷越对应越好;但是从整个调度系统上看,应该是尽量负载均衡的情况下,匹配度越高越好。因为某些节点利用率高,其它节点空闲的情况不利于充分利用整个分布式系统的可用资源。

发明内容
为解决上述问题,本发明提供了虚拟化计算平台中应用请求调度的方法及其系
统,能够在虚拟机系统中实现资源与负载匹配,提高整个虚拟化计算平台的利用效率。 本发明公开了一种虚拟化计算平台中应用请求调度的方法,包括 步骤1,采集各个虚拟机的资源总量、资源利用率和服务请求连接的数量; 步骤2,根据虚拟机的当前权值、资源总量、资源利用率和服务请求连接的数量对
所述虚拟机的权值进行更新; 步骤3,采用基于权值的轮询调度方法对服务请求进行调度。
所述步骤2进一步为 步骤21,根据虚拟机的资源总量、资源利用率和服务请求连接的数量判断所述虚拟机是否超载,如果超载,则将所述虚拟机的权值记为预设最小值,否则,执行步骤22 ;
步骤22,根据虚拟机的资源利用率、服务请求连接的数量和当前的权值计算所述
虚拟机新的权值,按所述新的权值对所述虚拟机进行更新。
所述步骤21进一步为 步骤31,由虚拟机的资源总量和资源利用率计算出虚拟机的可用资源量,将所述虚拟机的可用资源量和服务请求连接数量带入性能预测模型计算出所述虚拟机的最大连接数; 步骤32,如果所述虚拟机的服务请求的连接数量大于等于所述虚拟机的最大连接数,则将所述虚拟机的权值记为预设最小值;否则,执行所述步骤22。
所述步骤22进一步为 步骤41,根据资源利用率和服务请求连接的数量计算出综合负载值; 步骤42,根据所述虚拟机的综合负载值和所述虚拟机的当前的权值算出所述虚拟
机的新的权值; 步骤43,如果所述虚拟机的新的权值和所述虚拟机的当前的权值的差值大于设定
的阀值,则将所述虚拟机的权值更新为所述新的权值。 所述步骤42进一步为 按如下公式计算所述虚拟机的新的权值, w顯.=+尺x 3力-Server X., 其中,w,i为新的权值,Wi当前权值,K为预设的调整系数,Server—loadi为综合负载值。 所述步骤3后还包括 步骤61,计算虚拟机预设时长的平均资源利用率,根据该平均资源利用率纠正调
度偏差。
所述步骤1前还包括
步骤71,在初始时,采用加权最小连接调度算法,并为虚拟机群中虚拟机设置初始 的权值。 所述步骤l前还包括 步骤81,在一个物理机器上配置不同资源密集型的服务对应的虚拟机。 本发明还公开了一种虚拟化计算平台中应用请求调度的系统,包括运行于物理节
点上的虚拟机,系统还包括 中控模块,用于采集各个虚拟机的资源总量,并将各个虚拟机的资源总量反馈给 调度器模块; 所述调度器模块,用于采集各个虚拟机的资源利用率和服务请求连接的数量;
所述调度器模块还用于根据虚拟机的当前权值、资源总量、资源利用率和服务请 求连接的数量对所述虚拟机的权值进行更新; 所述中控模块用于接收服务请求,并将所述服务请求转发给所述调度器模块;
所述调度器模块还用于采用基于权值的轮询调度方法对服务请求进行调度。
所述调度器模块在更新权值时进一步用于根据虚拟机的资源总量、资源利用率和 服务请求连接的数量判断所述虚拟机是否超载,如果超载,则将所述虚拟机的权值记为预 设最小值,否则,根据虚拟机的资源利用率、服务请求连接的数量和当前的权值计算所述虚 拟机新的权值,按所述新的权值对所述虚拟机进行更新。 所述调度器模块在判断超载时进一步用于由虚拟机的资源总量和资源利用率计 算出虚拟机的可用资源量,将所述可用资源量发送给所述中控模块,接收所述中控模块反 馈的最大连接数,如果所述虚拟机的服务请求的连接数量大于等于所述虚拟机的最大连接 数,则判断为超载;否则,判断为不超载; 所述中控模块还用于将所述虚拟机的可用资源量和服务请求连接数量带入性能
预测模型计算出所述虚拟机的最大连接数,将所述最大连接数反馈给所述调度器模块。 所述调度器模块在更新虚拟机的权值时进一步用于根据资源利用率和服务请求
连接的数量计算出综合负载值;根据所述虚拟机的综合负载值和所述虚拟机的当前的权值
算出所述虚拟机的新的权值;如果所述虚拟机的新的权值和所述虚拟机的当前的权值的差
值大于设定的阀值,则将所述虚拟机的权值更新为所述新的权值。 所述调度器模块计算综合负载值时进一步用于按如下公式计算所述虚拟机的新 的权值, <formula>formula see original document page 7</formula> 其中,w,i为新的权值,Wi当前权值,K为预设的调整系数,Server—loadi为综合负 载值。 所述系统还包括偏差纠正模块,用于计算虚拟机预设时长的平均资源利用率,根 据该平均资源利用率纠正调度偏差。 所述调度器模块还用于在初始时,采用加权最小连接调度算法,并为虚拟机群中 虚拟机设置初始的权值。 在一个物理机器上配置不同资源密集型的服务对应的虚拟机。 本发明的有益效果在于,根据资源的流动和负载分布动态分配请求,使得能力流
动和应用负载达到匹配;通过将不同资源密集型的服务对应的虚拟机安装配置在一个物理机器上,避免对本地资源的竞争带来的冲突;通过每一种服务对应着一个调度器,并且每个调度器有自主决策权,能够保证在采集到的资源信息准确的情况下,避免herd效应出现;herd效应为所有的作业在一个决策信息更新的间隔内,被调度到相同的服务器子集中,而导致的失衡和某一资源的急剧竞争。


图1是现有技术中一个虚拟机上CPU资源能力流动和应用负载匹配的示意图; 图2是本发明虚拟化计算平台中应用请求调度的方法的流程图; 图3是本发明虚拟化计算平台中应用请求调度的方法的具体实施方式
的流程图; 图4是本发明虚拟化计算平台中应用请求调度的系统的结构图; 图5是DFBS算法工作环境的示意图。
具体实施例方式
下面结合附图,对本发明做进一步的详细描述。 在资源层,采用虚拟化技术,在每个物理服务节点上启动了多个虚拟机,在同一个物理平台上的虚拟机提供着不同的服务,调度的目的是使该些服务尽量充分利用物理平台的资源,比如,如果它们分别运行着CPU、 Memory(内存)和网络密集型的计算,则一个物理平台上的不同硬件资源就能得到充分利用,同时由于虚拟机的隔离使得几个虚拟机的执行没有冲突。 为了避免资源使用的冲突,在服务的分发时,尽量将提供相同服务的几个镜像的虚拟机部署到不同的物理节点上,并通过调度算法将该服务的作业分发到该些镜像的虚拟机,以协调一致地完成工作。 此外,通过服务优先级和对资源的动态需求,以及调整同一虚拟化计算平台内部资源在构建于其上的虚拟机之间分配,来对多个服务的部分镜像的虚拟机进行调整。同时,还可以在服务的分发调度层对负载进行重分配,来避免某一个物理节点过载的现象。
本发明的调度方法如图2所示。 步骤S100,采集各个虚拟机的资源总量、资源利用率和服务请求连接的数量。
步骤S200,根据虚拟机的当前权值、资源总量、资源利用率和服务请求连接的数量对该虚拟机的权值进行更新。 步骤S300,采用基于权值的轮询调度方法对服务请求进行调度。
本发明的调度方法的具体实施方式
如图3所示。 步骤S301,初始的时候,在调度器内核中采用加权最小连接调度算法,并为虚拟机群的虚拟机设定一个初始权值。 现有技术中,加权最小连接调度是IPVS(IP Virtual Server, IP虚拟服务器)实现的内核调度算法,为把新的连接请求分配到当前加权连接数最小的虚拟机,通过虚拟机当前所活跃的连接数来估计虚拟机的负载情况。在该算法中调度器需要记录各个虚拟机已建立连接的数目,当一个请求被调度到某台虚拟机,其连接数加1 ;当连接中止或超时,其连接数减一。加权调度可以通过自动问询真实虚拟机的负载情况,并动态地调整其权值。各个虚拟机用相应的权值表示其处理性能。虚拟机缺省的权值为1,可以动态地设置虚拟机的权值。加权最小连接调度在调度新连接时尽可能使虚拟机的已建立连接数和其权值成比例 具有较高的权值的虚拟机将承受较大比例的活动连接负载。 步骤S302,采集各个虚拟机的资源总量、资源利用率和服务请求连接的数量。 虚拟机所在的物理节点的资源监控进程采集各个虚拟机的资源总量和资源利用
率,同时调度器的应用请求监控进程,采集到达各个虚拟机的服务请求连接数量。 步骤S303,根据虚拟机的资源总量、资源利用率和服务请求连接的数量判断所述
虚拟机是否超载,如果超载,则将所述虚拟机的权值记为预设最小值,否则,执行步骤S304。 中控节点获得虚拟机的资源总量、资源利用率、请求连接数量通过该中控节点发
送广播请求从物理节点获得;或者由物理节点定期发送给中控节点。 同时,中控节点还不时向虚拟机发送请求,以测量虚拟机的响应时间,用来评估当 前虚拟机的真实负载,以确定当前服务质量。 由虚拟机的资源总量和资源利用率计算出虚拟机的可用资源量,将所述虚拟机的 可用资源量和服务请求连接数量带入性能预测模型计算出所述虚拟机的最大连接数,如果 所述虚拟机的服务请求的连接数量大于等于所述虚拟机的最大连接数,则将所述虚拟机的 权值记为预设最小值;否则,执行所述步骤S304。
实施例中预设最小值为O。 可用资源量的计算方法为,可用资源量=(1-资源利用率)X资源总量 性能预测模型通过输入的服务连接数量和可用资源量,输出虚拟机能承受的最大
连接数。性能预测模型是根据服务性能和请求速率与可用资源量的曲线图,进行曲线拟合
与回归分析,抽象出来的通过服务连接数和可用资源量计算出最大连接数的公式。现有技
术中,基于实际的线下测试获得的结果进行的拟合,对不同的服务,如网页服务,数据库服
务,办公应用服务等,根据实际数据产生对应的公式。 在调度算法中,当虚拟机的权值为零,已建立的连接会继续得到该虚拟机的服务, 而新的连接不会分配到该虚拟机。可以将一台虚拟机的权值设置为零,使得该虚拟机安静 下来,当已有的连接都结束后,又可以将该虚拟机切出,对其进行维护。所以,在动态反馈负 载均衡机制中要保证该功能,当虚拟机的权值为零时,不对虚拟机的权值进行调整。
根据给定的性能目标,比如3秒的平均响应时间,和当前虚拟机已经分配的资源, 代入性能模型计算,预测出该虚拟机能支持的最大连接数,如果当前的动态连接数超过这 个最大连接数,那么就将权值就置零,保证该节点的服务质量。如果所有的虚拟机都达到最 大连接数,那么必须抛弃部分的请求,进行访问接纳控制。 步骤S304,根据虚拟机的资源利用率、服务请求连接的数量和当前的权值计算所 述虚拟机新的权值,按所述新的权值对所述虚拟机进行更新。 根据资源利用率和服务请求连接的数量计算出综合负载值;根据所述虚拟机的综 合负载值和所述虚拟机的当前的权值算出所述虚拟机的新的权值;如果所述虚拟机的新的 权值和所述虚拟机的当前的权值的差值大于设定的阀值,则将所述虚拟机的权值更新为所 述新的权值。 综合负载值是根据未来的负载预测、当前的负载监控和实际性能负荷这三个值乘 上相应的系数而得到的值,用于综合评估服务器的负载状况。对于不同的应用,各种负载指 标的对综合负载贡献的权重不同,因此引入各个指标信息的系数来表示各个负载指标在综合负载中比重。 计算综合负载的方法如下所述。 步骤S304a,计算各个虚拟机的请求负载。 请求负载是虚拟机收到的请求负载数量,收到的请求量越大说明虚拟机需要执行的工作量越多,负载越重。 请求负载定义为在单位时间内虚拟机收到的新连接数与平均连接数的比例,它是在调度器上收集到的。平均连接数是从初始时间到当前时间内的平均连接数。
该值越大说明分配的负载越多,所以服务器的需要处理的工作负载就越大。在调度器上维护有各个虚拟机收到连接数的计数器,对于虚拟机Si,可以得到分别在时间Tl和T2时的计数器值Cil和Ci2,计算出在时间间隔T2-T1内虚拟机Si收到新连接数Ni =Ci2-Cil。依此方法,得到一组虚拟机在时间间隔T2-T1内收到新连接数的集合。请求连接的数量和应用负载成正比,被分配到的连接数越大说明该虚拟机要处理的工作量越大,负载也越重。虚拟机Si的请求负载的计算公式为
,, K
一 个Wy
M丁 其中,RequestJoadi为虚拟机Si的请求负载,^为虚拟机Si收到的新连接数,n为服务器总数,&为虚拟机Sj收到的新连接数。从上面公式上看,请求负载的数据值以所有虚拟机收到的连接数平均值为分母,其落在
步骤S304b,计算各个虚拟机的虚拟机负载。 虚拟机负载是虚拟机当前执行的作业队列工作量,虚拟机负载越大说明正在执行的工作队列越长。 虚拟机负载记录虚拟机各种资源负载信息,如虚拟机的当前CPU负载、当前内存利用情况等。因为网络服务主要是受到CPU和Memory影响,所以在本实施例中,该两个虚拟机负载指标,分别表示为CPU_loadi和Mem_loadi。 在本实施例中,虚拟机上实现和运行收集信息的Monitor Daemon是基于Xentop命令采集的资源信息,它反映的是当前资源利用百分比,比较的基数是虚拟机当前分配到的资源额度。在本发明中需要对动态伸縮的虚拟机的能力负载进行计算,因而对采集的资源利用百分比进行归一化处理。 比如,虚拟机A、B、C分别获得总资源的额度为4 : 2 : l,当前的CPU使用率分别为80%、60%和40%,虚拟服务器A的80%利用率并不意味着它比B和C负载率更高,以A的能力基数进行归一化,则B和C的负载率应该为60X X2和40X X4,结果说明实际上A的负载最轻。 所以为了准确评估该些异构虚拟机的实际真实负载,还需要从获取当前的虚拟主
机分配到的资源配额,然后对动态采集到的负载做归一化处理。 虚拟机CPU负载的计算公式为
^
<formula>formula see original document page 11</formula> Entitle表示虚拟机分配到的资源额度,该公式的含义是,我们将当前的资源使用 率,向平均的资源额度这个基数进行统一,也就是调整后的资源负载都是相对同一个基点 的比较结果,这样的绝对值就具有可比性。CPU_loadi表示虚拟机i的CPU负载,CPU_Useage_ratei表示虚拟机i的CPU利 用率,CPU_Entitlei表示虚拟机i分配到的CPU资源额度。
虚拟机Memory负载的计算公式为
+ Mem 一 £V^/gy <formula>formula see original document page 11</formula>Mem_loadi表示虚拟机i的Mem负载,Mem_Useage_ratei表示虚拟机i的Mem利
用率,Mem_Entitlei表示虚拟机i分配到的Mem资源额度。 在程序运行过程中,由驻留在虚拟机的守护进程Gmond定时地向Monitor Daemon 报告负载信息。若虚拟机在设定的时间间隔内没有响应,Monitor Daemon认为服务器是不 可达的,将该虚拟机在调度器中的权值设置为零,不会有新的连接再被分配到该虚拟机;若 在下一次服务器有响应,再对虚拟机的权值进行调整。这些虚拟机负载数据值落在
综合负载的计算公式为 Server_Loadi = R1 X Reque s t_ 1 oadi+R2 X CPU_1 oadi+R3 X Mem_
loadi+R4 X Performance—loadi 按如下公式计算所述虚拟机的新的权值, =w; + & x -^/T-Server — /",., 其中,w,i为新的权值,Wi当前权值,K为预设的调整系数,Server—loadi为综合负载值。 在公式中,l为期望利用率,K在实施例中值为5。当综合负载值为1时,虚拟机权
值不变;当综合负载值大于1时,权值变小;当综合负载值小于1时,权值变大。 如此,当综合负载值表示虚拟机比较忙时,新算出的权值会比其当前的权值要小,
这样新分配到该虚拟机的请求数就会少一些。当综合负载值表示虚拟机处于低利用率时,
新算出的权值会比其当前的权值要大,那就增加新分配到该虚拟机的请求数。 若新权值和当前的权值的差值大于设定的阀值,监控进程将该虚拟机的权值设
置到内核中的IPVS调度中。过了一定的时间间隔,如5秒钟,物理节点的资源监控进程
(Monitor Daemon)再查询各个虚拟机的情况,并相应调整虚拟机的权值;如此周期性地进行。 步骤S305,采用基于权值的轮询调度方法对服务请求进行调度。
具体实施方式
中采用DFBS算法进行调度。DFBS(Dynamic Feedback Balancing Schedule,动态反馈平衡调度)算法使用基
于动态反馈负载均衡机制,来控制新连接的分配,从而控制各个服务器的负载。 DFBS算法考虑虚拟机的实时负载和系统真实的响应情况,不断调整虚拟机间处理
请求数量的比例,来避免有些虚拟机超载时依然收到大量请求,从而提高整个系统的吞吐
率,以保证公平性和有效性。 图5显示了该算法的工作环境,在负载调度器上运行Monitor Daemon进程。开始的时候,在内核中连接调度采用加权最小连接调度算法,并为虚拟机群给定一个初始的权值。同时,Monitor Daemon用来周期性地采集各个虚拟机的负载信息,以获知虚拟资源的动态伸縮。通过这个资源的负载信息,可以算出一个虚拟机的负载指标,评估当前虚拟机负载高低,即可用资源的多少。IPVS也周期性地给Monitor Daemon返回请求连接的计数值,根据该些采样的参考量,计算出请求在各个虚拟机上的分布预测作为请求负载的输入指标,并可以用性能模型评估当前的连接数是否超载。如果估算出超载,那么将该虚拟机的权值设置为零,否则根据前面计算的虚拟机负载和请求负载计算出综合负载值。MonitorDaemon将各个虚拟机的综合负载值和当前的权值算出一组新的权值,若新权值和当前的权值的差值大于设定的阀值,Monitor Daemon将该虚拟机的权值设置到内核中的IPVS加权最小连接调度中。 按照该些权值的比例给各个虚拟服务器动态调度请求连接,使得调度总是能根据服务器的工作能力来负载均衡地分发请求任务。 权值大小和分配的连接数成正比,即权值越大,分配的连接数量越多。
当综合负载值表示服务器比较忙时,新算出的权值会比其当前的权值要小,使得 新分配到该服务器的请求数就会少一些。当综合负载值表示服务器处于低利用率时,新算 出的权值会比其当前的权值要大,则增加新分配到该服务器的请求数。若新权值和当前的 权值的差值大于设定的阀值,MonitorDaemon将该服务器的权值设置到内核中的IPVS调度 中。经过一定的时间间隔(如5秒钟),Monitor Daemon再查询各个服务器的情况,并相应 调整服务器的权值;如此周期性地进行。 步骤S306,计算虚拟机预设时长的平均资源利用率,根据该平均资源利用率纠正
调度偏差。 平均资源利用率为一种量度资源需求和可用资源之间使用程度的指标,定义为在 历史前t时间段内某一个虚拟机资源的使用率进行归一化后求平均。 由于资源是动态变化的,所以有必要归一化CPU的使用率,通过归一化,将其对分 配的资源配额的利用率转化成对总资源的使用率。从平均资源利用率的定义上看,虚拟机 的平均资源利用率越小,说明虚拟机被分配资源越多,被分配的服务请求的负载越少,该虚 拟机被认为综合负载值低。反之,则说明综合负载值高。对于虚拟机服务i,对时间t二l 到t = N的值求和,然后除以N。由平均资源利用率计算出新的权值。 步骤S306a,在t时间段内某一个虚拟机资源的使用率进行归一化后求平均,获得 该段时间该虚拟虚拟机的资源匹配度。 比如,虚拟机A、B、C分别获得总资源的额度为4 : 2 : l,当前的CPU使用率分别 为80%、60%和40%,虚拟服务器A的80%利用率并不意味着它比B和C负载率更高,以A 的能力基数进行归一化,则B和C的负载率应该为60X X2和40X X4,结果说明实际上A 的负载最轻。 平均的匹配率计算公式如下所示,对于虚拟虚拟机i,将所有t时刻的资源负载乘 以分配的资源额度,最后求平均。
<formula>formula see original document page 13</formula> Entitle表示虚拟机分配到的资源额度,Allocate表示分配的资源总额,consume 表示消耗的资源总额。眉。^fe.,表示虚拟机i在t时刻的资源负载。 全局负载反映实际的请求和可用资源的调度后的一个综合结果,它能表示前T时
间段内服务请求调度和资源流动的效果,其作为未来的预测
步骤S306b,将预测结果和当前的权值进行比对, <formula>formula see original document page 13</formula> GlobalJoadi表示对虚拟机i的全局负载,Wi表示虚拟机i的权值:
如果偏差超过阈值,则将权值进行调整,更新虚拟机的权值为 <formula>formula see original document page 13</formula>
Globaljoadi表示对虚拟机i的全局负载,Wi表示虚拟机i的权值。 因为根据综合负载对虚拟机真实负载的评估并不完全准确,评估指标可能没有能
真实地反映真实的负载,只是对真实负载的一个量化预测指标。所以,在调度决策后,通过
对真实的虚拟机负载的监控,并对调度决策的偏差进行纠正,使得系统更加能够负载均衡
地进行匹配调度。 —种虚拟化计算平台中应用请求调度的系统如图4所示,包括运行于物理节点上的虚拟机100、中控模块200、调度器模块300。 中控模块200,用于采集各个虚拟机100的资源总量,并将各个虚拟机100的资源总量反馈给调度器模块300。 调度器模块300,用于采集各个虚拟机100的资源利用率和服务请求连接的数量。
调度器模块300还用于根据虚拟机的当前权值、资源总量、资源利用率和服务请求连接的数量对虚拟机100的权值进行更新。 中控模块200还用于接收服务请求,并将该服务请求转发给调度器模块300。
调度器模块300还用于采用基于权值的轮询调度方法对服务请求进行调度。例如,采用DFBS算法进行调度。 中控模块200负责管理系统的所有物理信息,包括所有被管理物理节点、每个物理节点上创建的虚拟机100和每个机器的资源分配和使用情况。通过该些管理信息,利用的性能模型计算出系统上大量异构服务的最大负载量,并将结果返回给调度器模块300进行请求和资源的分配。 中控模块200还负责接收Web Service提出的服务请求。在接收到应用调度请求后,向调度器模块300发送调度询问请求,并传递给调度器模块300相应的虚拟机信息。
调度器模块300通过该些接收到的信息部署虚拟机100配置,把相应的虚拟机100加入到调度列表中。 中控模块200周期性地对相应的虚拟机100提出请求,要求各个节点返回虚拟机100的管理信息,包括虚拟主机IP、虚拟主机名称、所在物理节点等。并同时将全局资源分配计算结果传递给虚拟机IOO,用来指导物理节点内的资源流动决策。中控模块200还与调度器模块300交互,一方面动态改变提供特定服务的虚拟机信息,另一方面,将最大支持连接数的预测结果反馈给调度器模块300,修改调度权值。 中控模块200利用性能模型的预测,从宏观的角度优化服务间的请求调度,以及
为保证系统在高负载状态下的正常工作,优化应用层调度以实现允许控制。从而进一步优
化系统的请求调度和能力流动的匹配、提高系统的稳定性和可用性。DV匪(Distribution Virtual Machine Monitor,分布虚拟机监控器) DV匪是分布式的系统性能监控系统,有两个Daemon,分别是客户端
Dmond (Distributed Monitoring Daemon,分布监控进禾呈)禾口月艮务端Dmetad (Distributed
Meta Daemon,分布改变进程),是一个Linux下监控系统运行性能的软件,监控对象包括
CPU、内存、硬盘利用率,1/0负载、网络流量情况等。 Dmetad负责收集分布式虚拟机100上CPU、 Mem负载变化情况,当调度器模块300
请求虚拟机群资源利用率时,返回CPU和Mem负载的全系统实时数据。 Dmond负责在客户端监控虚拟机100的当前负载情况,和Dmetad配合使用。
调度器模块300实现了动态反馈负载均衡DFBS调度算法,负责处理WebServices请求的调度。调度器模块300本身并不直接获取虚拟机100的当前资源利用率,该些信息都是通过Dmond获得的。在获取到当前所有虚拟机100的负载情况后,根据DFBS均衡算法和中控模块200提出的服务请求类型,调度器模块300决定某一台合适的虚拟机100作为调度结果。调度器模块300通过Dmetad, Dmetad收集的数据,进行计算并根据虚拟机100当前的负载进行权值的调整,该权值大小和分配的连接数成正比,权值越大,分配的连接数量越多。权值的计算同时考虑了虚拟机100的处理器能力和当前可用资源大小。
具体实施方式
如下所述。 中控模块200,用于采集各个虚拟机100的资源总量,并将各个虚拟机100的资源总量反馈给调度器模块300。 调度器模块300,用于采集各个虚拟机100的资源利用率和服务请求连接的数量。
调度器模块300还用于根据虚拟机的当前权值、资源总量、资源利用率和服务请求连接的数量对虚拟机100的权值进行更新。 调度器模块300根据虚拟机100的资源总量、资源利用率和服务请求连接的数量判断所述虚拟机是否超载,如果超载,则将该虚拟机100的权值记为预设最小值,否则,根据虚拟机100的资源利用率、服务请求连接的数量和当前的权值计算该虚拟机新的权值,按该新的权值对所述虚拟机进行更新。 调度器模块300在判断超载时,由虚拟机的资源总量和资源利用率计算出虚拟机100的可用资源量,将该可用资源量发送给中控模块200。 中控模块200将虚拟机100的可用资源量和服务请求连接数量带入性能预测模型计算出该虚拟机100的最大连接数,将所述最大连接数反馈给调度器模块300。调度器模块300接收中控模块200反馈的最大连接数,如果虚拟机100的服务请求的连接数量大于等于所述虚拟机的最大连接数,则判断为超载;否则,判断为不超载。 调度器模块300在更新虚拟机的权值时,根据资源利用率和服务请求连接的数量计算出综合负载值;根据所述虚拟机的综合负载值和所述虚拟机的当前的权值算出所述虚拟机的新的权值;如果所述虚拟机的新的权值和所述虚拟机的当前的权值的差值大于设定的阀值,则将所述虚拟机的权值更新为所述新的权值。 调度器模块300计算综合负载值时进一步用于按如下公式计算所述虚拟机的新的权值, <formula>formula see original document page 15</formula> 其中,w,i为新的权值,Wi当前权值,K为预设的调整系数,Server—loadi为综合负载值。 所述系统还包括偏差纠正模块,用于计算虚拟机预设时长的平均资源利用率,根据该平均资源利用率纠正调度偏差。 使用一个平均资源利用率定义调度偏差,调度偏差为一种量度资源需求和可用资源之间使用程度的指标。定义为在历史前t时间段内某一个虚拟机资源的使用率进行归一化后求平均,即为该段时间该虚拟机的资源匹配度。由于资源是动态变化的,所以有必要归一化CPU的使用率,将其标准化成将其对分配的资源配额的利用率转化成对总资源的使用率。从平均资源利用率上看,平均的匹配度越小,说明分配的资源越多,请求负载分配越少,则认为该虚拟机综合负载越低。请求负载分配越多,则认为该虚拟机综合负载越高。对于
虚拟机服务i,将所有t时刻的资源负载乘以分配的资源额度,最后求平均。 调度器模块300还用于在初始时,采用加权最小连接调度算法,并为虚拟机群中
虚拟机设置初始的权值。 在一个物理机器上配置不同资源密集型的服务对应的虚拟机。 虚拟机上包括本地管理模块,负责维护物理节点上运行的虚拟机之间的能力分配
信息管理。本地管理模块从本地采集虚拟资源利用率,并获得当前每个虚拟机分配的资源
配额,即资源流动的动态决策结果;能采集到资源流动算法的动态参数,包括流动阈值和
activity的权值。通过该些信息,调度器模块300可以停止向即将达到流动阈值的服务节
点分配请求,避免资源频繁流动带来的系统开销。 本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还 可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由 权利要求书的范围来确定的。
权利要求
一种虚拟化计算平台中应用请求调度的方法,其特征在于,包括步骤1,采集各个虚拟机的资源总量、资源利用率和服务请求连接的数量;步骤2,根据虚拟机的当前权值、资源总量、资源利用率和服务请求连接的数量对所述虚拟机的权值进行更新;步骤3,采用基于权值的轮询调度方法对服务请求进行调度。
2. 如权利要求1所述的虚拟化计算平台中应用请求调度的方法,其特征在于,所述步 骤2进一步为步骤21,根据虚拟机的资源总量、资源利用率和服务请求连接的数量判断所述虚拟机 是否超载,如果超载,则将所述虚拟机的权值记为预设最小值,否则,执行步骤22 ;步骤22,根据虚拟机的资源利用率、服务请求连接的数量和当前的权值计算所述虚拟 机新的权值,按所述新的权值对所述虚拟机进行更新。
3. 如权利要求2所述的虚拟化计算平台中应用请求调度的方法,其特征在于,所述步 骤21进一步为步骤31,由虚拟机的资源总量和资源利用率计算出虚拟机的可用资源量,将所述虚 拟机的可用资源量和服务请求连接数量带入性能预测模型计算出所述虚拟机的最大连接 数;步骤32,如果所述虚拟机的服务请求的连接数量大于等于所述虚拟机的最大连接数, 则将所述虚拟机的权值记为预设最小值;否则,执行所述步骤22。
4. 如权利要求2所述的虚拟化计算平台中应用请求调度的方法,其特征在于,所述步 骤22进一步为步骤41,根据资源利用率和服务请求连接的数量计算出综合负载值; 步骤42,根据所述虚拟机的综合负载值和所述虚拟机的当前的权值算出所述虚拟机的 新的权值;步骤43,如果所述虚拟机的新的权值和所述虚拟机的当前的权值的差值大于设定的阀 值,则将所述虚拟机的权值更新为所述新的权值。
5. 如权利要求4所述的虚拟化计算平台中应用请求调度的方法,其特征在于,所述步 骤42进一步为按如下公式计算所述虚拟机的新的权值, w,幽.=w, + K x 0^ Server — /oa《,其中,wMwi为新的权值,Wi当前权值,K为预设的调整系数,ServerJoadi为综合负载值。
6. 如权利要求1所述的虚拟化计算平台中应用请求调度的方法,其特征在于,所述步 骤3后还包括步骤61,计算虚拟机预设时长的平均资源利用率,根据该平均资源利用率纠正调度偏差。
7. 如权利要求1所述的虚拟化计算平台中应用请求调度的方法,其特征在于,所述步 骤1前还包括步骤71 ,在初始时,采用加权最小连接调度算法,并为虚拟机群中虚拟机设置初始的权值。
8. 如权利要求1所述的虚拟化计算平台中应用请求调度的方法,其特征在于,所述步 骤1前还包括步骤81,在一个物理机器上配置不同资源密集型的服务对应的虚拟机。
9. 一种虚拟化计算平台中应用请求调度的系统,包括运行于物理节点上的虚拟机,其 特征在于,系统还包括中控模块,用于采集各个虚拟机的资源总量,并将各个虚拟机的资源总量反馈给调度 器模块;所述调度器模块,用于采集各个虚拟机的资源利用率和服务请求连接的数量; 所述调度器模块还用于根据虚拟机的当前权值、资源总量、资源利用率和服务请求连 接的数量对所述虚拟机的权值进行更新;所述中控模块用于接收服务请求,并将所述服务请求转发给所述调度器模块; 所述调度器模块还用于采用基于权值的轮询调度方法对服务请求进行调度。
10. 如权利要求9所述的虚拟化计算平台中应用请求调度的系统,其特征在于, 所述调度器模块在更新权值时进一步用于根据虚拟机的资源总量、资源利用率和服务请求连接的数量判断所述虚拟机是否超载,如果超载,则将所述虚拟机的权值记为预设最 小值,否则,根据虚拟机的资源利用率、服务请求连接的数量和当前的权值计算所述虚拟机 新的权值,按所述新的权值对所述虚拟机进行更新。
11. 如权利要求io所述的虚拟化计算平台中应用请求调度的系统,其特征在于,所述调度器模块在判断超载时进一步用于由虚拟机的资源总量和资源利用率计算出 虚拟机的可用资源量,将所述可用资源量发送给所述中控模块,接收所述中控模块反馈的 最大连接数,如果所述虚拟机的服务请求的连接数量大于等于所述虚拟机的最大连接数, 则判断为超载;否则,判断为不超载;所述中控模块还用于将所述虚拟机的可用资源量和服务请求连接数量带入性能预测 模型计算出所述虚拟机的最大连接数,将所述最大连接数反馈给所述调度器模块。
12. 如权利要求IO所述的虚拟化计算平台中应用请求调度的系统,其特征在于, 所述调度器模块在更新虚拟机的权值时进一步用于根据资源利用率和服务请求连接的数量计算出综合负载值;根据所述虚拟机的综合负载值和所述虚拟机的当前的权值算出 所述虚拟机的新的权值;如果所述虚拟机的新的权值和所述虚拟机的当前的权值的差值大 于设定的阀值,则将所述虚拟机的权值更新为所述新的权值。
13. 如权利要求12所述的虚拟化计算平台中应用请求调度的系统,其特征在于, 所述调度器模块计算综合负载值时进一步用于按如下公式计算所述虚拟机的新的权值,<formula>formula see original document page 3</formula>其中,wMwi为新的权值,Wi当前权值,K为预设的调整系数,ServerJoadi为综合负载值。
14. 如权利要求9所述的虚拟化计算平台中应用请求调度的系统,其特征在于, 所述系统还包括偏差纠正模块,用于计算虚拟机预设时长的平均资源利用率,根据该平均资源利用率纠正调度偏差。
15. 如权利要求9所述的虚拟化计算平台中应用请求调度的系统,其特征在于, 所述调度器模块还用于在初始时,采用加权最小连接调度算法,并为虚拟机群中虚拟机设置初始的权值。
16. 如权利要求9所述的虚拟化计算平台中应用请求调度的系统,其特征在于,在一个 物理机器上配置不同资源密集型的服务对应的虚拟机。
全文摘要
本发明涉及虚拟化计算平台中应用请求调度的方法及其系统,方法包括步骤1,采集各个虚拟机的资源总量、资源利用率和服务请求连接的数量;步骤2,根据虚拟机的当前权值、资源总量、资源利用率和服务请求连接的数量对所述虚拟机的权值进行更新;步骤3,采用基于权值的轮询调度方法对服务请求进行调度。本发明能够在虚拟机系统中实现资源与负载匹配,提高整个虚拟化计算平台的利用效率。
文档编号G06F9/50GK101719082SQ20091024400
公开日2010年6月2日 申请日期2009年12月24日 优先权日2009年12月24日
发明者冯斌全, 孙毓忠, 宋 莹, 王若倪 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1