一种虚拟化环境中的准入控制与负载均衡方法

文档序号:6430654阅读:167来源:国知局
专利名称:一种虚拟化环境中的准入控制与负载均衡方法
技术领域
本发明涉及实时嵌入式系统中的多核和虚拟化技术,尤其是一种虚拟化环境中的准入控制与负载均衡方法。
背景技术
虚拟化技术已经被普遍应用于服务器与桌面系统,随着嵌入式系统芯片性能的提高((如多核芯片的大量出现),虚拟化技术在嵌入式系统中的应用也越来越成为学术界和工业界的研究热点。Xen是剑桥大学教授Ian等发起的一个开源的虚拟机项目,其性能接近单机操作系统(Native Operating System)的性能。Xen由于其优越的性能和开源性,所以被业界广泛看好,被认为是未来最有前途的一款虚拟机管理软件。在Xen中,一个虚拟机(domain)可能有一个或多个虚拟处理器(VCPU),每个VCPU 被映射到一个物理处理器(PCPU)上。在Xen虚拟机管理器中,当domain启动时,Xen虚拟机管理器按照循环分配的方式将VCPU映射到PCPU上,不考虑每个PCPU上是否超载的问题。附图1显示了 Xen系统中原来的VCPU分配方法及结果,在Xen虚拟化环境中,有两个 PCPU 分别是 Core-I 和 Core_2 ;5 个 VCPU :VCPU0-VCPU4, 5 个 VCPU 的 CPU 利用率分别是 75%、10%、20%、50%、20%。按照 Xen 原来的循环 VCPU 分配方法,Core-I PCPU 上会有 VCPU0、 VCPU2、VCPU4三个VCPU,总的VCPU负载为115%,将超载,而Core_2 PCPU的VCPU负载仅为 60%, CPU资源仍有剩余。从图中可以看到Corel和Core3都出现了超载情况。Xen3. O以后实现了两种的调度器中,一种调度器是基于信度(Credit)调度器,支持PCPU间VCPU的迁移。如果一个PCPU进入IDLE状态,调度器会检查它相邻的PCPU是否有需要调度的VCPU,如果它相邻的PCPU上有处于UNDER状态的VCPU在等待PCPU资源, 则调度器会强行将相邻的PCPU上的VCPU赋给IDLE PCPU,这样系统可以充分利用系统资源。但是,VCPU的迁移会带来额外的开销,如处理上下文切换、快存(Cache)的刷新等。另外,Credit调度器中的调度算法不是实时调度算法,不能满足实时嵌入式系统所要求的实时性。Xen中的另一种调度器是简单最早截止期优先(SEDF)调度器,可以支持实时调度器。但是,SEDF调度器不支持PCPU间VCPU的迁移,这样可能会导致负载的不均衡。另外, 如果一个实时任务被分配到一个P⑶上,超过了这个PCPU的最大处理器资源限制,则实时任务的时间需求将无法被满足,实时系统的实时性也将无法被保证。为了满足多核硬件平台下,嵌入式实时系统对虚拟化的需求,本发明设计和实现了一种Xen虚拟化环境中的准入控制与负载均衡方法,以保证虚拟化环境中实时嵌入式系统所要求的实时性和各物理处理器上负载的均衡。

发明内容
本发明的目的正是要解决上述技术存在的不足,而提供一种在多核硬件平台下 Xen虚拟化环境中的准入控制与负载均衡方法,满足多核硬件平台下虚拟化环境对嵌入式实时系统硬实时任务的时间需求的支持,对Xen虚拟机中的调度算法进行改进,实现了准入控制和负载均衡机制。本发明解决其技术问题采用的技术方案这种虚拟化环境中的准入控制与负载均衡方法,包括以下步骤
步骤一修改Xen虚拟机中的简单最早截止期优先SEDF调度算法,实现非工作保养模式NWC下的分区最早截止期优先的调度算法NWC-PEDF ;保证虚拟机环境下嵌入式实时系统中硬实时应用的实时需求。在Xen虚拟机调度中实现非工作保养模式(NWC),防止工作保养模式下因为某个实时虚拟机因为超载而过多占用处理器(CPU)资源所导致的CPU资源分配的不可控性。步骤二 对每个物理处理器引入准入控制机制,控制每个物理处理器PCPU上分配的Xen虚拟处理器VCPU的负载不会超过本物理处理器所能够承受的最大值;
步骤三采用首次适应(即从上次首次适应结束时开始)的策略来控制Xen虚拟化环境中的VCPU到多核硬件平台上PCPU的分配映射;以保证PCPU上负载的均衡性,并尽量减小 VCPU分配所带来的时间开销。步骤四提供对调整VCPU调度参数的支持机制,允许管理员根据运行过程中虚拟机负载的变化情况调整VCPU的调度参数,并根据管理员所做的参数的调整进行系统可调度性检查和VCPU负载在PCPU上的调整,能够更好满足系统的适应性。作为优选,修改Xen中的SEDF调度算法,实现分区最早截止期优先的调度算法 (PEDF)。在Xen虚拟机环境下,每个虚拟处理器VCPU固定被分配到一个物理处理器PCPU 上,并只能够在其对应的PCPU上运行或进行状态的转换;每个物理处理器PCPU都有自己最大的处理器资源值、自身的虚拟处理器(VCPU)负载队列,以减小调度和迁移开销;每个 PCPU独立按照最早截止期优先的调度算法对自身的VCPU负载队列进行调度,以保证虚拟机环境下嵌入式实时系统中硬实时应用的实时需求。作为优选,在Xen虚拟机调度中实现非工作保养模式(NWC)。为每个虚拟机对应的虚拟处理器(VCPU)都设置固定的CPU资源份额,在Xen虚拟机环境下,每个虚拟处理器 (VCPU)实际占用的处理器(CPU)资源都不能超过其自身固定的CPU资源份额,以防止在工作保养模式(WC)下某个实时虚拟机因为超载而过多占用CPU资源所导致的CPU资源分配的不可控性。作为优选,采用首次适应(从上次首次适应结束时开始)的策略,处理Xen虚拟化环境中的虚拟处理器(VCPU)负载到多核硬件平台上物理处理器(PCPU)的分配映射问题, 保证PCPU上负载的均衡性,并尽量减小VCPU分配所带来的时间开销。对多核硬件平台上的物理处理器(PCPU)编号,在对虚拟处理器(VCPU)负载进行初始化分配到PCPU上时,第一个VCPU从第一个PCPU开始,寻找能够满足VCPU负载需求的PCPU,将VCPU分配给该物理PCPU ;之后的VCPU依次从前一个VCPU所分配的PCPU的下一个PCPU开始,寻找能够满足VCPU负载需求的PCPU,将VCPU分配给该物理PCPU。当虚拟处理器(VCPU)的调度参数发生调整需要修改VCPU到PCPU的映射关系时,从VCPU原来所在的PCPU的下一个PCPU开始,寻找能够满足VCPU负载需求的PCPU,将VCPU分配给该物理PCPU。作为优选,对每个物理处理器(PCPU)引入准入控制机制,控制每个PCPU上分配的 VCPU的负载不会超过该PCPU的资源的最大值,保证每个PCPU上的VCPU的负载在非工作保养模式下的最早截止期优先(NWC-PEDF)调度算法下均是可调度的,从而使实时应用的实时性能够得到保障。初始时设置每个物理处理器PCPU的最大可用的CPU资源值为100。当通过首次适应(从上次首次适应结束时开始)的策略,尝试将VCPU负载分配给PCPU时,会检查PCPU上是否剩余有足够的CPU资源可以满足VCPU负载的需求,如果PCPU上剩余有足够的CPU资源可以满足VCPU负载的需求,则该PCPU接受此VCPU负载;否则该PCPU拒绝接受此VCPU负载,继续检查下一个PCPU上是否剩余有足够的CPU资源可以满足VCPU负载的需求。如果能够找到可以满足VCPU负载需求的PCPU,则建立此VCPU,并将VCPU负载分配给该PCPU ;如果找不到可以满足VCPU负载需求的PCPU,则拒绝建立此VCPU,并返回相应信肩、O作为优选,提供对调整VCPU调度参数的支持机制,允许管理员在VCPU初始化之后,根据运行过程中虚拟机负载的变化情况调整VCPU的调度参数;并能够对管理员所调整的VCPU的调度参数进行合格性检查,保证系统的可调度性。当管理员修改了 VCPU的调度参数(VCPU 所能够使用的 PCPU (Affinity PCPU),周期(Period),周期内 CPU 时间(Slice)) 后,系统将会检查VCPU原来所在的PCPU上是否能够满足修改后VCPU负载的CPU资源需求, 如果能够满足,则保持原来的VCPU和PCPU的分配关系不变,并根据修改后VCPU负载的CPU 需求更新PCPU上剩余的CPU资源值;如果VCPU原来所在的PCPU不能够满足修改后VCPU 负载的CPU资源需求,则从VCPU原来所在的PCPU的下一个PCPU开始,根据首次适应策略, 寻找能够满足修改后的VCPU负载CPU资源需求的PCPU,如果能够找到这样的PCPU,则将次 VCPU分配给该PCPU,并更新VCPU原来所在PCPU和现在所在PCPU上的剩余CPU资源值;如果没有PCPU能够满足修改后VCPU负载的CPU资源需求,则保持VCPU原来的调度参数和与 PCPU的分配关系,拒绝VCPU调度参数的调整,并返回相应信息给用户。本发明具有如下优点
一.本发明在Xen中实现了具有准入控制的分区最早截止期优先的调度算法,是硬实时调度算法,为Xen虚拟机在嵌入式硬实时系统中的应用提供了保障。二.在本发明中,采用非工作保养(NWC)模式,可以保证每个实时虚拟机固定的 CPU资源份额,防止了在工作保养(WC)模式下某个实时虚拟机因为超载而过多占用CPU资源。三.在本发明中,采用的是多核调度算法中的分区调度算法PEDF,每个物理CPU上都有自己独立的VCPU负载队列,减少了迁移开销,降低了调度开销。四.在本发明中,对每个物理处理器均采用了准入控制机制来控制其上的VCPU负载不会超过物理处理器的最大资源限制,保证了每个物理处理器上的VCPU负载的集合均是可调度的,从而使实时应用的实时性得到了保证。五.在本发明中,采用从上次首次适应结束时开始的首次适应的策略来控制VCPU 在物理处理器上的分配,其时间开销比较小并且能够较好保证每个物理处理器上负载的均衡与最好适应分配算法相比,在每个物理处理器上负载的均衡性上难分伯仲,但是时间开销小;与最差适应分配算法相比,时间开销更小,并且每个物理处理器上负载的均衡性更好。六.在本发明中,支持管理员根据运行过程中虚拟机负载的变化情况调整VCPU的调度参数,并对管理员所做的参数的调整进行系统可调度性检查,能够更好满足系统的适应性和安全性。


图1 :Xen系统中原来的VCPU分配方法及结果示意图2 =Xen虚拟机调度中实现准入控制机制和负载均衡机制的架构图。图3 =AC-PEDF调度算法下VCPU的状态转换示意图4 =AC-PEDF调度算法下VCPU初始化时分配PCPU的过程示意图; 图5 =AC-PEDF调度算法下VCPU的调度参数(slice,period)发生改变时,VCPU到PCPU 的映射的调整过程示意图
图6 =AC-PEDF调度算法下,根据具有准入控制机制的首次适应算法,调整VCPU和PCPU 的映射关系的过程示意图
图7 =AC-PEDF调度算法下改变VCPU所对应的affinity PCPU时,VCPU到PCPU的映射的调整过程示意图8 =AC-PEDF调度算法下,根据具有准入控制机制的首次适应算法,寻找有足够剩余 CPU资源的PCPU的过程示意图9 =AC-PEDF调度算法下实验案例中VCPU在PCPU上的初始分配情况示意图; 图10 =AC-PEDF调度算法下VCPU在PCPU上的运行情况示意图; 图11 :AC-PEDF调度算法下,修改RT-VCPU2、RT_VCPU3的调度参数后,VCPU在PCPU上的分配情况示意图。注(本发明中实现准入控制和负载均衡机制的Xen虚拟机中的调度算法简称为 AC-PEDF)。
具体实施例方式下面结合附图和实施例对本发明作进一步说明
本发明为满足多核硬件平台下嵌入式实时系统硬实时任务在虚拟化环境中的时间需求,在Xen4. 0. 1虚拟机平台中实现了一种具有准入控制和负载均衡机制的分区最早截止期优先(EDF)调度方法。其实现架构图如图1所示。具体实施过程分为如下三个部分
一.在Xen中实现NWC模式下的分区最早截止期优先的调度算法NW-PEDF 1.实现调度器中的VCPU调度接口
每个VCPU可配置的调度参数为(period,slice), period表示VCPU的周期,slice表示VCPU每个周期内最多可以获得的CPU执行时间,slice的值小于等于period。不支持 Work Conserving模式,S卩,每个VCPU拥有固定的CPU份额,即使CPU空闲,每个周期内运行的时间特不能超过slice时间单位。另夕卜每个 VCPU 还有四个参数 cpu_util, deadline, cpu_time, next_begin,用于内部调度控制。cpu_util表示VCPU的CPU资源份额(也成VCPU的CPU利用率),等于 (slice*100)/period。deadline表示vcpu在当前周期内的绝对截止时间,cpu_time表示 VCPU在当前周期内已经运行的CPU时间,next_begin表示VCPU下个周期开始的时间。
实现调度器中的PCPU调度接口
为每个物理处理器核(PCPU)设置一个int类型的参数cpujemainer,一个变量 runningVCPUo cpu_remainer用来表示当前物理处理器核上还剩余的CPU资源,cpu_ remainer参数的取值范围为0到100,0表示CPU资源已经用完,100表示最大CPU资源; runningVCPU用来记录前物理处理器核上当前正在运行的VCPU。另外,为每个PCPU设置两个队列,ReadyQ和ReleaseQ。ReleaseQ队列用来存放该PCPU上所有未就绪的VCPU,当VCPU刚刚分配到PCPU上、还没有到达释放时间,或者 VCPU用完本周期内的slice运行时间时就进入未就绪状态,进入ReleaseQ。ReadyQ队列用来存放处于就绪状态但没有在CPU上运行的VCPU,就绪状态是指VCPU在当前周期内的运行时间小于slice时间单位,还有剩余的CPU时间可以运行。ReadyQ队列上的VCPU的根据 VCPU的绝对截止时间进行排序,绝对截止时间最小的VCPU位于队首。ReadyQ队列的VCPU 根据VCPU的下周期的开始时间进行排序,下周期开始时间最早的VCPU位于队首。每次当有新的就绪VCPU的绝对截止期小于当前正在运行的VCPU或当前正在运行的VCPU的时间片用完时,就重新进行调度,选取ReadyQ队列队首VCPU运行,并将当前正在运行的VCPU放入就入就绪队列ReadyQ或ReleaseQ。NWC模式下的分区最早截止期优先的调度算法VCPU 的状态转换图如附图3所示。二.采用首次适应(从上次首次适应结束时开始)的策略来完成VCPU到PCPU的分配算法的设计和实现。对每个物理CPU,引入准入机制,控制每个物理CPU上分配的虚拟 CPU(VCPU)的负载不会超过本物理CPU所能够承受的最大值,保证每个物理CPU上的虚拟 CPU(VCPU)的负载在AC-PEDF调度算法下均是可调度的,进而使实时应用的实时性能够得到保障。初始化时分配PCPU的过程
图4说明了 VCPU初始化时分配PCPU的过程。当有新的VCPU产生时,均采用默认的调度参数period和slice完成对VCPU的初始化工作,并计算其CPU利用率cpu_util。然后选取PCPU,根据从上次首次适应结束时开始的策略来选择PCPU,将VCPU放入该PCPU的队列。如果VCPU的建立会导致所有符合VCPU亲和(Affinity)性质的PCPU的超载,则拒绝建立此VCPU,并向上层返回错误信息。具体过程如下
(1)选择从上次首次适应结束时选取的PCPU的下一个PCPU;
(2)检查该PCPU是否已被初始化。如果该PCPU还没有初始化,则对该PCPU分配相应的AC-PEDF_PCPU调度数据结构,并初始化PCPU的cpu_remainer参数为100,即表示PCPU 上有最多的CPU资源。否则进行第(3)步。(3)比较PCPU的cpu_remainer参数与VCPU的cpu_util的大小。如果PCPU上有足够的剩余CPU资源可以分配给VCPU,即cpu_remainer>=cpu_util,则将VCPU分配到该 PCPU,同时PCPU的cpu_remainer将减少cpu_util,结束选择。否则,该PCPU上剩余的CPU 资源已经不能够满足VCPU的CPU需求,进行第(4)步。(4)如果已经遍历完VCPU所对应的所有Affinity PCPU,进入第(5)步;否则,选取该PCPU的下一个PCPU,重新从第(2)步开始执行。(5)说明VCPU所对应的所有Affinity PCPU均没有足够的CPU资源可以提供给 VCPU,则拒绝产生此VCPU,向上层返回拒绝建立该VCPU信息。以防止该VCPU均会导致任何满足VCPU的Affintity性质的PCPU上的资源超载。结束。2.当出现domain销毁或VCPU销毁时
将回收VCPU所占用的CPU资源,将VCPU原来对应的PCPU的剩余CPU可利用率增加, 增加值为被销毁的VCPU原来占用的CPU资源份额。三.实现对调整VCPU调度参数的支持机制,允许管理员在VCPU初始化之后,根据运行过程中虚拟机负载的变化情况调整VCPU的调度参数,能够更好满足系统的适应性和扩展性。当VCPU的调度参数(slice,period)发生改变时
图5说明了 VCPU的调度参数(slice,period)发生改变时,VCPU到PCPU的映射的调整过程。当VCPU的调度参数(slice,period)发生改变时,具体调整过程如下
1)将VCPU从当前PCPU的队列中移出,并重新初始化VCPU的调度参数 deadline=period, cpu_time=0, next_begin=0o2)计算VCPU的CPU利用率cpu_util的改变值,记VCPU原来的CPU利用率为old_ cpu_util, VCPU 改变后的 CPU 禾Ij用率为 new_cpu_util,d_cpu_uti 1 =new_cpu_uti 1 -ο 1 d_ cp_util。考虑以下四种情况
(1)当VCPU的cpu_util参数保持不变(即d_cpu_util =0)时,原来的VCPU和PCPU的映射关系保持不变,将VCPU放回PCPU的ReleaseQ。(2)当VCPU的cpu_util参数变小(即d_cpu_util <0)时,保持原来的VCPU和 PCPU的映射关系,另外,将PCPU的cpu_remainer参数增加VCPU的cpu_util参数的减小值 d_cpu_util,将 VCPU 放回 PCPU 的 ReleaseQ。(3)当VCPU的cpu_util参数变大,并且原来的PCPU上仍有足够的CPU资源可以补充给 VCPU (即 d_cpu_util >0 并且 cpu_remainer >= d_cpu_util)时,保持原来的 VCPU 和PCPU的映射关系,另外,将PCPU的cpu_remainer参数减少VCPU的cpu_util参数的减小值 d_cpu_util,将 VCPU 放回 PCPU 的 ReleaseQ。(4)当VCPU的cpu_util参数变大,并且原来的PCPU没有足够的cpu_remainer (即 d_cpu_util >0 并且 cpu_remainer < d_cpu_util)时,需要改变 VCPU 和 PCPU 的映射关系。3 )图6说明如何改变VCPU和PCPU的映射关系,具体步骤如下
(1)回收VCPU原来占用的CPU资源,将VCPU原来对应的PCPU的剩余CPU可利用率增加,增加值为被销毁的VCPU原来占用的CPU资源份额。(2)从VCPU当前所在的PCPU的下一个PCPU开始,根据具有准入控制机制的首次适应方法,寻找有足够剩余CPU资源的满足VCPU affinity的PCPU (cpu_remainer>=cpu_ util).如果找到有足够剩余CPU资源的PCPU,进入第(3)步;否则进入第(4)步。(3)建立VCPU与PCPU新的映射关系,并更新新PCPU的CPU剩余资源newpcpu. cpu_remainer=newpcpu. cpu_remainer-vcpu. cpu_util,原来所在 PCPU 的 CPU 乘丨J 余资源 οldpcpu. cpu_remainer=oldpcpu. cpu_remainer+vcpu. cpu_util ;将该 VCPU 放入新 PCPU 的 ReleaseQ。结束。(4)说明VCPU所对应的所有Affinity PCPU均没有足够的CPU资源可以提供给 VCPU,则拒绝此VCPU的调度参数的改变,将该VCPU放回原来所在PCPU的ReleaseQ ;并向上层返回拒绝修改VCPU调度参数信息。以防止该VCPU调度参数的调度改变导致PCPU上 VCPU负载的不可调度性。结束。当修改VCPU所对应的affinity pcpu时,
图7说明了 VCPU所对应的affinity PCPU发生改变时,VCPU到PCPU的映射的调整过程。根据从上次首次适应结束时开始的策略寻找有足够剩余CPU资源的PCPU,调整VCPU和 PCPU的映射关系。(1)将VCPU原来的PCPU的队列中移出,并重新初始化VCPU的调度参数 deadline=period, cpu_time=0, next_begin=0o(2)检查VCPU原来所在PCPU是否属于VCPU的affinity PCPU。如果VCPU原来所在PCPU属于VCPU的affinity PCPU,保持原来的VCPU和PCPU的映射关系,并将VCPU放回 PCPU 的 ReleaseQ。结束。(3)如果VCPU原来所在PCPU不属于VCPU的affinity PCPU,从VCPU当前所在的 PCPU的下一个PCPU开始,根据具有准入控制机制的首次适应方法,寻找有足够剩余CPU资源的PCPU,调整VCPU和PCPU的映射关系。根据具有准入控制机制的首次适应方法,寻找有足够剩余CPU资源的PCPU流程图如图8。下面通过一个在Intel酷睿15双核处理器的Xen4. 01平台上运行的实例说明本发明的工作过程。在本案例中有两个物理CPU核PCPU,分别是Core-I和Core_2,初始状态下,DomO 具有1个VCPU,是D0M0-VCPU0 (20, 15),位于在Core-I上。在Xen虚拟机上依次创建有4 个实时虚拟机,它们对应四个VCPU分别是RT-VCPU1 (50, 5),RT-VCPU2 (20, 10),RT-VCPU3 (15,3),RT-VCPU4 (30,6)。案例中初始时VCPU在PCPU上的分配情况应如图9所示。从图9中可以看至lj,Core-I 上有 D0M0-VCPU0 和 RT-VCPU3,Core-I 上 VCPU 负载总值为 95% ;Core-2 上有 RT-VCPU1、RT-VCPU2 和 RT-VCPU4, Core-2 上 VCPU 负载总值为 80%。两个 PCPU 上均无出现超载。VCPU在PCPU上的运行情况应如图10所示。从图10中可以看到,D0M0-VCPU0 和RT-VCPU3在Core-I上按照最早截止期优先(EDF)的调度方法进行运行,RT-VCPUU RT-VCPU2和RT-VCPU4在Core-2上按照最早截止期优先(EDF)的调度方法进行运行,所有的VCPU都能在自身的截止期内运行结束,保证了所有实时任务的实时性。当修改RT-VCPU2的调度参数为RT-VCPU2 (20, 5)、RT-VCPU3的调度参数为 RT-VCPU3 (15,6)时,VCPU在PCPU上的分配情况应如图11所示。调整RT-VCPU2调度参数后,RT-VCPU2的CPU利用率变小,Core-2能够满足其CPU资源的需求,因此,RT-VCPU2仍分配在Core-2上;调整RT-VCPU3调度参数后,RT-VCPU2的CPU利用率变为40%,增大20%, RT-VCPU3原来所在的PCPU Core-I不能够满足其CPU资源的需求,因此需要改变RT-VCPU3 所在的PCPU,此时Core-2上剩余的CPU资源为45%,能够满足RT-VCPU3的CPU资源需求,因此,将RT-VCPU3分配在Core-2上。从图11中可以看到,最终PCPU上VCPU的分配结果为 Core-I 上有 D0M0-VCPU0,Core-I 上 VCPU 负载总值为 75% ;Core-2 上有 RT_VCPU1、RT_VCPU4、 RT-VCPU2和RT-VCPU3,Core-2上VCPU负载总值为95%。两个PCPU上均无出现超载。虽然通过上述具体实例对本发明进行了说明,但是本发明并不局限于上述实例,对于本领域的相关人员,可以根据本发明的技术方案和思想,作出其他各种改变和变形,而所有这些都应该属于本发明权利要求的保护范围内。
权利要求
1.一种虚拟化环境中的准入控制与负载均衡方法,其特征在于包括以下步骤步骤一修改Xen虚拟机中的简单最早截止期优先SEDF调度算法,实现非工作保养模式NWC下的分区最早截止期优先的调度算法NWC-PEDF ;步骤二 对每个物理处理器引入准入控制机制,控制每个物理处理器PCPU上分配的 Xen虚拟处理器VCPU的负载不会超过本物理处理器所能够承受的最大值;步骤三采用首次适应,即从上次首次适应结束时开始的策略来控制Xen虚拟化环境中的VCPU到多核硬件平台上PCPU的分配映射;步骤四提供对调整VCPU调度参数的支持机制,允许管理员根据运行过程中虚拟机负载的变化情况调整VCPU的调度参数,并根据管理员所做的参数的调整进行系统可调度性检查和VCPU负载在PCPU上的调整。
2.根据权利要求1所述的虚拟化环境中的准入控制与负载均衡方法,其特征在于在步骤一中,在Xen虚拟机环境下,每个虚拟处理器VCPU固定被分配到一个物理处理器PCPU 上,并只能够在其对应的PCPU上运行或进行状态的转换;每个物理处理器PCPU都有自己最大的处理器资源值、自身的虚拟处理器VCPU负载队列;每个PCPU独立按照最早截止期优先的调度算法进行调度VCPU,以保证虚拟机环境下嵌入式实时系统中硬实时应用的实时需求。
3.根据权利要求1所述的虚拟化环境中的准入控制与负载均衡方法,其特征在于在 Xen虚拟机调度中实现非工作保养模式,为每个虚拟机对应的虚拟处理器VCPU都设置固定的CPU资源份额,在Xen虚拟机环境下,每个虚拟处理器VCPU实际占用的处理器CPU资源都不会超过其自身固定的CPU资源份额。
4.根据权利要求1所述的虚拟化环境中的准入控制与负载均衡方法,其特征在于对多核硬件平台上的物理处理器PCPU编号,在对虚拟处理器VCPU负载进行初始化分配到 PCPU上时,第一个VCPU从第一个PCPU开始,寻找能够满足VCPU负载需求的PCPU,将VCPU 分配给该物理PCPU ;之后的VCPU依次从前一个VCPU所分配的PCPU的下一个PCPU开始, 寻找能够满足VCPU负载需求的PCPU,将VCPU分配给该物理PCPU ;当虚拟处理器VCPU的调度参数发生调整需要修改VCPU到PCPU的映射关系时,从VCPU原来所在的PCPU的下一个 PCPU开始,寻找能够满足VCPU负载需求的PCPU,将VCPU分配给该物理PCPU。
5.根据权利要求1所述的虚拟化环境中的准入控制与负载均衡方法,其特征在于对每个物理处理器PCPU引入准入控制机制,控制每个PCPU上分配的VCPU的负载不会超过该 PCPU的资源的最大值,保证每个PCPU上的VCPU的负载在非工作保养模式下的最早截止期优先NWC-PEDF调度算法下均是可调度的;初始时设置每个物理处理器PCPU的最大可用的 CPU资源值为100,当通过首次适应的策略,尝试将VCPU负载分配给PCPU时,会检查PCPU上是否剩余有足够的CPU资源可以满足VCPU负载的需求,如果PCPU上剩余有足够的CPU资源可以满足VCPU负载的需求,则该PCPU接受此VCPU负载;否则该PCPU拒绝接受此VCPU 负载,继续检查下一个PCPU上是否剩余有足够的CPU资源可以满足VCPU负载的需求;如果能够找到可以满足VCPU负载需求的PCPU,则建立此VCPU,并将VCPU负载分配给该PCPU ; 如果找不到可以满足VCPU负载需求的PCPU,则拒绝建立此VCPU,并返回相应信息。
6.根据权利要求1所述的虚拟化环境中的准入控制与负载均衡方法,其特征在于在步骤四中,当管理员修改了 VCPU的调度参数,即VCPU所能够使用的PCPU,周期Period,周期内CPU时间后,系统将会检查VCPU原来所在的PCPU上是否能够满足修改后VCPU负载的 CPU资源需求,如果能够满足,则保持原来的VCPU和PCPU的分配关系不变,并根据修改后 VCPU负载的CPU需求更新PCPU上剩余的CPU资源值;如果VCPU原来所在的PCPU不能够满足修改后VCPU负载的CPU资源需求,则从VCPU原来所在的PCPU的下一个PCPU开始,根据首次适应策略,寻找能够满足修改后的VCPU负载CPU资源需求的PCPU,如果能够找到这样的PCPU,则将次VCPU分配给该PCPU,并更新VCPU原来所在PCPU和现在所在PCPU上的剩余CPU资源值;如果没有PCPU能够满足修改后VCPU负载的CPU资源需求,则保持VCPU原来的调度参数和与PCPU的分配关系,拒绝VCPU调度参数的调整,并返回相应信息给用户。
全文摘要
本发明涉及一种虚拟化环境中的准入控制与负载均衡方法,包括以下步骤1修改Xen虚拟机中的简单最早截止期优先调度算法,实现非工作保养模式下的分区最早截止期优先的调度算法NWC-PEDF;2对每个物理处理器引入准入控制机制,控制每个物理处理器上分配的Xen虚拟处理器的负载;3采用首次适应的策略来控制Xen虚拟化环境中的VCPU到多核硬件平台上PCPU的分配映射,以保证每个PCPU上负载的均衡;4提供对调整VCPU调度参数的支持机制,允许管理员根据运行过程中虚拟机负载的变化情况调整VCPU的调度参数。本发明的优点满足多核硬件平台下虚拟化环境对嵌入式实时系统硬实时任务的时间需求的支持,对Xen虚拟机中的调度算法进行改进,实现了准入控制和负载均衡机制。
文档编号G06F9/50GK102270159SQ20111022981
公开日2011年12月7日 申请日期2011年8月11日 优先权日2011年8月11日
发明者张劲超, 李红, 王超, 赵庆玲, 顾宗华 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1