一种多核环境下的虚拟机调度方法技术

技术编号:4268497 阅读:219 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出了一种多核环境下的虚拟机调度方法,该方法是在系统启动时将CPU资源按照调度策略类型进行分区,并在系统运行时实时监控各分区的CPU负载情况,动态调整分区CPU资源的大小。本发明专利技术中,使用相同调度策略的虚拟机在同一个分区中进行调度,这样提高了调度的效率,通过动态调整分区CPU资源的大小达到资源负载均衡的目的,实现了资源的充分利用,减少了资源的浪费。

【技术实现步骤摘要】

本专利技术涉及一种虚拟机调度方法,尤其涉及,属于计算机操作系统与虚拟化

技术介绍
随着多核处理器技术的进步,单个处理器上集成的处理器核数量逐年增加,服务 器的计算能力越来越强,目前一般的服务器至少也是4-16核,处理器核的增加使得单个服 务器上可以汇聚更多的应用。同时基于服务器虚拟化技术的取得了前所未有的关注,虚拟 化技术的基本思想是,通过虚拟机监视器(VMM)软件对底层的硬件资源进行管理,并提供 多个相互隔离的虚拟硬件执行环境(VM),这样使得在同一台物理主机上运行多个不同的应 用(OS)。 虚拟化技术起源于大型机,早在上世纪60年代,IBM公司就专利技术了一种操作系统 虚拟机技术,在已有的计算机层次上新增虚拟机中间层,截获上层软件对底层接口的调用, 并对该调用重新做出解释和处理,从而实现新的不同于已有软件或硬件提供的功能。采用 虚拟化技术可以屏蔽硬件平台的动态性和异构性,支持硬件资源的共享和服务,并为每个 用户提供属于个人的独立、隔离的计算环境;可以实现整合服务器,节省资金提高资源利用 率;可以实现故障隔离,提高系统的安全性。 虚拟化技术的一个重要的应用就是服务器整合,最大限度地提高硬件资源的利用 率,降低能源开销,减少运行成本。服务器整合通常是指在一台物理服务器上运行多个应用 服务来实现。因此在服务器的处理器数量增加的同时,服务器上的应用服务数量和种类也 在增加, 一个应用服务对应了一个虚拟机,此时虚拟机调度的问题日益突出,表现为 如何为每种应用分配所需要的计算资源并使得系统的计算资源得到最好的利用。 如实时应用需要周期性得到一定的计算资源,批处理应用则希望得到长时间计算资源; 如何为相互关联的应用提供适当的关联调度,确保关联的应用的整体性能。如经 典的3层结构企业应用需要在Web逻辑层、数据层之间进行协同。 传统的虚拟机调度方法首先考虑的是系统的资源利用率与分配的公平性,并 没有考虑到不同应用的虚拟机资源的需求差异。现存有三种比较著名的调度算法, BVT(BorrowedVirtual Time)调度算法、SEDF(Simple Earliest Deadline First)调度 算法和Credit调度算法。它们各有优缺点,但是都没能考虑到对不同应用类型的调度。 如BVT(BorrowedVirtual Time)调度算法是一种公平性优先的调度算法,让负载大的 VCPU(虚拟处理器)和负载小的VCPU获得几乎同样多的CPU时间,就可能会出现分配给负 载大的VCPU的真实CPU时间不够,而分配给负载小的VCPU的真实CPU时间有剩余,造成 了 CPU资源的浪费,没有最大程度的利用CPU资源,也没有考虑到不同应用的不同需求;而 SEDF虽然解决了 BVT的问题,但是只能对每个CPU分别进行SEDF调度,在多核情况下,该 算法不能较好的完成负载平衡,同时也忽略了不同应用对资源的不同需求;最后Credit调 度算法,可以将CPU时间公平高效地分配给各个虚拟CPU ;也可以用SMP的方式将各个物理CPU分配给各个虚拟CPU,实现负载平衡;但是,同样Credit调度算法也没有将应用的类型 作为调度的一个考虑方面。 因此在当前服务器多核技术的发展以及服务器上应用服务数量聚增情况下,单一 虚拟机调度算法已经无法满足资源的有效利用以及应用高效运行的需求。 一种调度算法可 能对一种类型的应用有效但是当多种类型的应用在一起调度时就会产生资源分配的不合 理,如BVT算法比较适合实时应用,但是当实时应用和批处理应用在一起时就会产生资源 分配不合理的情况。
技术实现思路
本专利技术提出了,该方法是在现有的虚拟机监视 器(VMM)中加入了四个模块,即调度初始化模块、CPU状态监控模块、调度决策模块以及CPU 动态分区模块。系统加电启动时,控制终端和客户虚拟机通过控制接口进行通信。首先由 控制终端通知VMM的控制接口触发调度初始化模块将所有的CPU枚举出来,然后根据系统 预设支持的调度策略类型通过CPU动态分区模块将CPU进行分区,并由调度决策模块对各 个分区指定相应的调度策略;初始化分区时,CPU动态分区模块为每种预设调度策略类型 的分区分得最小CPU资源(资源的最小值一般由管理员设定,默认为l),剩余的CPU资源将 被放到空闲分区中。当有新的虚拟机被创建时,CPU动态分区模块根据虚拟机的调度参数, 将其加入到相应的分区进行调度。当系统运行时,CPU状态监控模块监控各分区的负载情 况,当某个分区CPU负载过大,或过小时,都会触发CPU动态分区模块,对分区的大小进行调 整。 本专利技术提供的包含以下执行步骤 步骤1 :加电启动初始化;系统启动时调度初始化模块加载,做好初始化工作,本步骤包含以下两个操作 步骤1. 1枚举CPU并读取预设调度策略类型;在系统加电完成启动的时候,调度初 始化模块加载,并将系统中的所有CPU枚举出来,同时读取系统中预设的调度策略类型; 步骤1. 2为系统进行初始分区;调度初始化模块在获得调度策略类型后,由CPU动 态分区模块为每种调度策略类型分得资源最小值的分区,同时建立空闲分区用以放置剩下 的CPU资源,完成系统初始分区; 步骤2 :创建虚拟机;当系统创建虚拟机时,调度决策模块会读取虚拟机的调度参 数,将虚拟机加入到相应的分区,本步骤包含以下两个操作 步骤2. 1调度决策模块读取调度参数;当新创建虚拟机时,系统会根据虚拟机应 用的类型在配置文件中制定调度参数,调度决策模块会主动读取虚拟机的配置文件获得调 度参数; 步骤2. 2将虚拟机加入到相应的分区;当调度参数获得后,调度决策模块通过调度参数查找相应的分区,当相应的分区存在时,CPU动态分区模块直接将该虚拟机加入到相应的分区调度,当调度参数对应的分区不存在时,CPU动态分区模块从空闲分区中分出一个新的分区用作该调度策略类型分区,并将该虚拟机加入调度; 步骤3 :虚拟机调度;系统运行时,本步骤具体包括以下操作 步骤3. 1虚拟机在各自分区内调动;运行的虚拟机只能在指定的CPU分区中进行调度,调度决策模块根据各个分区的调度算法对各分区中的虚拟机进行调度; 步骤3. 2监控各分区负载情况并动态调整分区大小;CPU状态监控模块监视着各 分区的CPU资源利用情况,当某个分区的CPU负载过大时,CPU状态监控模块触发CPU动态 分区模块,CPU动态分区模块从空闲分区中分出CPU资源到负载过大的分区,当空闲分区为 空时,从负载较小的分区中分出CPU资源到负载过大的分区中,当有分区的CPU负载过小 时,CPU动态分区模块会将负载小的分区资源回收到空闲分区,縮小负载小的分区资源。 所述的一种基于多核环境下的虚拟机调度方法,其特征在于,步骤1中所述的调 度策略类型包括BVT调度算法和SEDF调度算法。 所述的一种基于多核环境下的虚拟机调度方法,其特征在于,步骤1中所述的资 源最小值,该值由管理员设定,默认为1个CPU。 所述的一种基于多核环境下的虚拟机调度方法,其特征在于,步骤2中所述的调 度参数是指虚拟机应用所适合的调度策略。 所述的一种基于多核环境下的虚拟机调度方法,其特征在于,步骤3.2中所述的 调整分区的大小,默认每次调整分区本文档来自技高网
...

【技术保护点】
一种基于多核环境下的虚拟机调度方法,其特征在于,该方法在现有的虚拟机监视器VMM中加入了调度初始化模块、CPU状态监控模块、调度决策模块以及CPU动态分区模块,具体包含以下执行步骤:    步骤1:加电启动初始化;系统启动时调度初始化模块加载,做好初始化工作,本步骤包含以下两个操作:    步骤1.1枚举CPU并读取预设调度策略类型;在系统加电完成启动的时候,调度初始化模块加载,并将系统中的所有CPU枚举出来,同时读取系统中预设的调度策略类型;    步骤1.2为系统进行初始分区;调度初始化模块在获得调度策略类型后,由CPU动态分区模块为每种调度策略类型分得资源最小值的分区,同时建立空闲分区用以放置剩下的CPU资源,完成系统初始分区;    步骤2:创建虚拟机;当系统创建虚拟机时,调度决策模块会读取虚拟机的调度参数,将虚拟机加入到相应的分区,本步骤包含以下两个操作:    步骤2.1调度决策模块读取调度参数;当新创建虚拟机时,系统会根据虚拟机应用的类型在配置文件中制定调度参数,调度决策模块会主动读取虚拟机的配置文件获得调度参数;    步骤2.2将虚拟机加入到相应的分区;当调度参数获得后,调度决策模块通过调度参数查找相应的分区,当相应的分区存在时,CPU动态分区模块直接将该虚拟机加入到相应的分区调度,当调度参数对应的分区不存在时,CPU动态分区模块从空闲分区中分出一个新的分区用作该调度策略类型分区,并将该虚拟机加入调度;    步骤3:虚拟机调度;系统运行时,本步骤具体包括以下操作:    步骤3.1虚拟机在各自分区内调动;运行的虚拟机只能在指定的CPU分区中进行调度,调度决策模块根据各个分区的调度算法对各分区中的虚拟机进行调度;    步骤3.2监控各分区负载情况并动态调整分区大小;CPU状态监控模块监视着各分区的CPU资源利用情况,当某个分区的CPU负载过大时,CPU状态监控模块触发CPU动态分区模块,CPU动态分区模块从空闲分区中分出CPU资源到负载过大的分区,当空闲分区为空时,从负载较小的分区中分出CPU资源到负载过大的分区中,当有分区的CPU负载过小时,CPU动态分区模块会将负载小的分区资源回收到空闲分区,缩小负载小的分区资源。...

【技术特征摘要】
一种基于多核环境下的虚拟机调度方法,其特征在于,该方法在现有的虚拟机监视器VMM中加入了调度初始化模块、CPU状态监控模块、调度决策模块以及CPU动态分区模块,具体包含以下执行步骤步骤1加电启动初始化;系统启动时调度初始化模块加载,做好初始化工作,本步骤包含以下两个操作步骤1.1枚举CPU并读取预设调度策略类型;在系统加电完成启动的时候,调度初始化模块加载,并将系统中的所有CPU枚举出来,同时读取系统中预设的调度策略类型;步骤1.2为系统进行初始分区;调度初始化模块在获得调度策略类型后,由CPU动态分区模块为每种调度策略类型分得资源最小值的分区,同时建立空闲分区用以放置剩下的CPU资源,完成系统初始分区;步骤2创建虚拟机;当系统创建虚拟机时,调度决策模块会读取虚拟机的调度参数,将虚拟机加入到相应的分区,本步骤包含以下两个操作步骤2.1调度决策模块读取调度参数;当新创建虚拟机时,系统会根据虚拟机应用的类型在配置文件中制定调度参数,调度决策模块会主动读取虚拟机的配置文件获得调度参数;步骤2.2将虚拟机加入到相应的分区;当调度参数获得后,调度决策模块通过调度参数查找相应的分区,当相应的分区存在时,CPU动态分区模块直接将该虚拟机加入到相应的分区调度,当调度参数对应的分区不存在时,CPU动态分区模块从空闲分区中分出一个新的分区用作该调度策略类型分区,并将该虚拟机加入调度;步骤3虚拟机调度;系统运行时,本步骤具体包括以下操作步骤3.1虚...

【专利技术属性】
技术研发人员:龙翔陈贤钦王素梅张炯白跃斌
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

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

1