一种虚拟机调度的装置及方法制造方法及图纸

技术编号:2916022 阅读:189 留言:0更新日期:2012-04-11 18:40
一种虚拟机调度的方法,按调度优先级从高到低的顺序将待调度的虚拟机的虚拟处理器排列在可运行队列中,其特征在于,包括: 步骤1,将I/O密集型的虚拟处理器加入到检测窗口,为所述虚拟处理器分配初始的资源配额; 步骤2,按顺序调度所述可 运行队列中的虚拟处理器,如果被调度的虚拟处理器不在所述检测窗口内,运行所述虚拟处理器,运行完成后调度所述可运行队列中下一个虚拟处理器,否则,执行下一步骤; 步骤3,依据所述虚拟处理器当前剩余的资源配额确定是否运行所述虚拟处理器,在运行 完成后更新所述虚拟处理器的剩余资源配额,调度所述可运行队列中下一个虚拟处理器。

【技术实现步骤摘要】

本专利技术涉及虚拟化领域,尤其涉及一种虚拟机调度的装置及方法
技术介绍
虚拟化使得不同服务可以互不干扰的整合在同一物理机器上,充分利用系统资源。当服务整合时,通常将每个服务放在一个独立的虚拟机中。因此,需要保证虚拟机之间的公平和效率。公平是指同一个物理节点上的虚拟机,应该以用户指定的配额共享物理资源,互不干扰;效率是指尽可能提高整个系统的吞吐率。在虚拟机系统中,调度器是用于调度虚拟机的VCPU(虚拟处理器)的装置。在系统启动时,每个虚拟机的VCPU根据其所属虚拟机包含的VCPU的数量,获得对应的信誉度。当VCPU还有剩余信誉度时,该VCPU处于UNDER状态;当VCPU的信誉度被用完时,该VCPU处于OVER状态;当VCPU进行I/O处理时,该VCPU处于BOOST状态。每个被调度运行的VCPU最多运行30ms,对于被调度运行的VCPU,每隔10毫秒将该VCPU的信誉度的值减去100。当系统中VCPU的信誉度总和小于0时,由调度器重新为各个VCPU分配信誉度。调度器的调度方法如图1所示。调度器将具有任务等待调度的VCPU按调度的优先级排列到可运行队列中。按VCPU所处的状态确定VCPU的调度优先级,由高到低的顺序为BOOST状态、UNDER状态、OVER状态,可运行队列的队尾为系统的空转VCPU。在图1中,虚拟处理器A、B、H处于BOOST状态,虚拟处理器C、D、E处于UNDER状态,虚拟处理器F处于OVER状态,虚拟处理器G为空转VCPU。被调度运行完的虚拟处理器H插入到其相同状态的所有VCPU之后。现有技术中的调度器可以保证VCPU之间按照信誉度的比例公平共享处理器资源,但是没有考虑I/O资源共享的公平性。例如,在同一物理机器上的两个虚拟机A和B上运行阿帕奇网络服务器,并赋予A和B相同的信誉度-->的值。若虚拟机B上阿帕奇服务器的服务线程远多于虚拟机A的服务线程,或虚拟机B上的负载远大于虚拟机A,则虚拟机B获得的网络带宽远远高于虚拟机A。这意味着虚拟机B“偷走”了虚拟机A的部分网络处理能力。这种I/O资源共享的不公平会导致I/O性能隔离较差且不可预测,使得虚拟化技术不能适用于性能依赖于I/O公平性的应用程序。
技术实现思路
为解决上述问题,本专利技术提供了一种虚拟机调度的装置及方法,能够提高虚拟机之间占用资源的公平性。本专利技术公开了一种虚拟机调度的方法,按调度优先级从高到低的顺序将待调度的虚拟机的虚拟处理器排列在可运行队列中,包括:步骤1,将I/O密集型的虚拟处理器加入到检测窗口,为所述虚拟处理器分配初始的资源配额;步骤2,按顺序调度所述可运行队列中的虚拟处理器,如果被调度的虚拟处理器不在所述检测窗口内,运行所述虚拟处理器,运行完成后调度所述可运行队列中下一个虚拟处理器,否则,执行下一步骤;步骤3,依据所述虚拟处理器当前剩余的资源配额确定是否运行所述虚拟处理器,在运行完成后更新所述虚拟处理器的剩余资源配额,调度所述可运行队列中下一个虚拟处理器。所述资源配额对应表示为I/O信誉度。所述步骤3进一步为:步骤31,如果所述虚拟处理器当前的I/O信誉度大于0,则确定运行所述虚拟处理器,在运行完成后,将所述虚拟处理器的I/O信誉度减去所述运行中完成的I/O处理数量,并调度所述可运行队列中下一个虚拟处理器,否则,调度所述可运行队列中下一个虚拟处理器。所述步骤2和所述步骤3之间还包括:步骤41,判断所述检测窗口中包含的虚拟处理器个数是否为1,如果是,运行所述虚拟处理器,在运行完成后调度所述可运行队列中下一个虚拟处理器,否则,执行所述步骤3。所述步骤2和所述步骤41间还包括:-->步骤51,判断所述虚拟处理器所属的虚拟机是否属于驱动域或特权虚拟机所在的域,如果是,则运行所述虚拟处理器,在运行完成后调度所述可运行队列中下一个虚拟处理器,否则,执行所述步骤41。所述将所述虚拟处理器的I/O信誉度减去所述运行中完成的I/O处理数量后还包括:步骤61,在所述检测窗口内的所有虚拟处理器的I/O信誉度都小于0时,按所述初始的资源配额增加所述检测窗口内的所有虚拟处理器的I/O信誉度。所述步骤1中将I/O密集型的虚拟处理器加入到检测窗口进一步为:步骤71,统计所述虚拟处理器运行时完成的I/O操作数量大于预设值的次数占所述虚拟处理器运行的次数的比值;步骤72,当所述比值大于1/2时,将所述虚拟处理器加入到检测窗口。所述步骤71进一步为:步骤81,对应于每个虚拟处理器维护一历史窗口,每个所述历史窗口的长度相同;步骤82,如果所述虚拟处理器运行时完成的I/O操作数量大于预设值,则将所述历史窗口的对应位置为1,否则,将所述历史窗口的对应位置为0;步骤83,将所述历史窗口中1的个数除以所述历史窗口长度,所得商为所述比值。所述步骤71进一步为:步骤91,对应于每个虚拟处理器维护一历史窗口,每个所述历史窗口的长度相同;步骤92,如果所述虚拟处理器运行时完成对网络设备或块设备的I/O操作数量大于预设值,则将所述历史窗口的对应位置为1,否则,将所述历史窗口的对应位置为0;步骤93,将所述历史窗口中1的个数除以所述历史窗口长度,所得商为所述比值。对于网络设备,所述I/O处理数量为发送和接收的网络包的数量。对于块设备,所述I/O处理数量为读和写的磁盘块的数量。本专利技术还公开了一种虚拟机调度的装置,用于按调度优先级从高到低的-->顺序将待调度的虚拟机的虚拟处理器排列在可运行队列中,所述装置包括:检测窗口模块,用于将I/O密集型的虚拟处理器加入到检测窗口,为所述虚拟处理器分配初始的资源配额;调度判断模块,用于按顺序调度所述可运行队列中的虚拟处理器,如果被调度的虚拟处理器不在所述检测窗口内,运行所述虚拟处理器,运行完成后调度所述可运行队列中下一个虚拟处理器,否则,启动调度控制模块;所述调度控制模块包括资源配额判断模块,所述资源配额判断模块,用于依据所述虚拟处理器当前剩余的资源配额确定是否运行所述虚拟处理器,在运行完成后更新所述虚拟处理器的剩余资源配额,调度所述可运行队列中下一个虚拟处理器。所述资源配额对应表示为I/O信誉度。所述资源配额判断模块,进一步用于在所述虚拟处理器当前的I/O信誉度大于0时,确定运行所述虚拟处理器,在运行完成后,将所述虚拟处理器的I/O信誉度减去所述运行中完成的I/O处理数量,并调度所述可运行队列中下一个虚拟处理器,在所述虚拟处理器当前的I/O信誉度不大于0时,调度所述可运行队列中下一个虚拟处理器。所述调度控制模块还包括数量判断模块,所述数量判断模块用于判断所述检测窗口中包含的虚拟处理器个数是否为1,如果是,运行所述虚拟处理器,在运行完成后调度所述可运行队列中下一个虚拟处理器,否则,启动所述资源配额判断模块。所述调度控制模块还包括所属域判断模块,所述所属域判断模块用于判断所述虚拟处理器所属的虚拟机是否属于驱动域或特权虚拟机所在的域,如果是,则运行所述虚拟处理器,在运行完成后调度所述可运行队列中下一个虚拟处理器,否则,启动所述数量判断模块。所述资源配额判断模块还用于在将所述虚拟处理器的I/O信誉度减去所述运行中完成的I/O处理数量后,在所述检测窗口内的所有虚拟处理器的I/O本文档来自技高网
...

【技术保护点】
1.一种虚拟机调度的方法,按调度优先级从高到低的顺序将待调度的虚 拟机的虚拟处理器排列在可运行队列中,其特征在于,包括: 步骤1,将I/O密集型的虚拟处理器加入到检测窗口,为所述虚拟处理 器分配初始的资源配额; 步骤2,按顺序调度所述可运行队列中的虚拟处理器,如果被调度的虚 拟处理器不在所述检测窗口内,运行所述虚拟处理器,运行完成后调度所述 可运行队列中下一个虚拟处理器,否则,执行下一步骤; 步骤3,依据所述虚拟处理器当前剩余的资源配额确定是否运行所述虚 拟处理器,在运行完成后更新所述虚拟处理器的剩余资源配额,调度所述可 运行队列中下一个虚拟处理器。

【技术特征摘要】
1.一种虚拟机调度的方法,按调度优先级从高到低的顺序将待调度的虚拟机的虚拟处理器排列在可运行队列中,其特征在于,包括:步骤1,将I/O密集型的虚拟处理器加入到检测窗口,为所述虚拟处理器分配初始的资源配额;步骤2,按顺序调度所述可运行队列中的虚拟处理器,如果被调度的虚拟处理器不在所述检测窗口内,运行所述虚拟处理器,运行完成后调度所述可运行队列中下一个虚拟处理器,否则,执行下一步骤;步骤3,依据所述虚拟处理器当前剩余的资源配额确定是否运行所述虚拟处理器,在运行完成后更新所述虚拟处理器的剩余资源配额,调度所述可运行队列中下一个虚拟处理器。2.如权利要求1所述虚拟机调度的方法,其特征在于,所述资源配额对应表示为I/O信誉度。3.如权利要求2所述虚拟机调度的方法,其特征在于,所述步骤3进一步为:步骤31,如果所述虚拟处理器当前的I/O信誉度大于0,则确定运行所述虚拟处理器,在运行完成后,将所述虚拟处理器的I/O信誉度减去所述运行中完成的I/O处理数量,并调度所述可运行队列中下一个虚拟处理器,否则,调度所述可运行队列中下一个虚拟处理器。4.如权利要求3所述虚拟机调度的方法,其特征在于,所述步骤2和所述步骤3之间还包括:步骤41,判断所述检测窗口中包含的虚拟处理器个数是否为1,如果是,运行所述虚拟处理器,在运行完成后调度所述可运行队列中下一个虚拟处理器,否则,执行所述步骤3。5.如权利要求4所述虚拟机调度的方法,其特征在于,所述步骤2和所述步骤41间还包括:步骤51,判断所述虚拟处理器所属的虚拟机是否属于驱动域或特权虚拟机所在的域,如果是,则运行所述虚拟处理器,在运行完成后调度所述可运行队列中下一个虚拟处理器,否则,执行所述步骤41。6.如权利要求3所述虚拟机调度的方法,其特征在于,所述将所述虚拟处理器的I/O信誉度减去所述运行中完成的I/O处理数量后还包括:步骤61,在所述检测窗口内的所有虚拟处理器的I/O信誉度都小于0时,按所述初始的资源配额增加所述检测窗口内的所有虚拟处理器的I/O信誉度。7.如权利要求1所述虚拟机调度的方法,其特征在于,所述步骤1中将I/O密集型的虚拟处理器加入到检测窗口进一步为:步骤71,统计所述虚拟处理器运行时完成的I/O操作数量大于预设值的次数占所述虚拟处理器运行的次数的比值;步骤72,当所述比值大于1/2时,将所述虚拟处理器加入到检测窗口。8.如权利要求7所述虚拟机调度的方法,其特征在于,所述步骤71进一步为:步骤81,对应于每个虚拟处理器维护一历史窗口,每个所述历史窗口的长度相同;步骤82,如果所述虚拟处理器运行时完成的I/O操作数量大于预设值,则将所述历史窗口的对应位置为1,否则,将所述历史窗口的对应位置为0;步骤83,将所述历史窗口中1的个数除以所述历史窗口长度,所得商为所述比值。9.如权利要求7所述虚拟机调度的方法,其特征在于,所述步骤71进一步为:步骤91,对应于每个虚拟处理器维护一历史窗口,每个所述历史窗口的长度相同;步骤92,如果所述虚拟处理器运行时完成对网络设备或块设备的I/O操作数量大于预设值,则将所述历史窗口的对应位置为1,否则,将所述历史窗口的对应位置为0;步骤93,将所述历史窗口中1的个数除以所述历史窗口长度,所得商为所述比值。10.如权利要求9中所述虚拟机调度的方法,其特征在于,对于网络设备,所述I/O处理数量为发送和接收的网络包的数量。11.如权利要求9中所述虚拟机调度的方法,其特征在于,对于块设备,所述I/O处理数量为读和写的磁盘块的数量。12.一种虚拟机调度的装置,用于按调度优先级从高到低的顺序将待调度的虚拟机的虚拟处理器排列在可运行队列中,其特征在于,所述装置包括:检测窗口模块,用于将I/O密集型的虚拟处理器...

【专利技术属性】
技术研发人员:张翔马捷孟丹
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

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

1
相关领域技术
  • 暂无相关专利