一种基于多核动态划分的非对称虚拟机I/O调度方法技术

技术编号:4252609 阅读:235 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出了一种基于多核动态划分的非对称虚拟机I/O调度方法,该方法在系统启动时,首先由I/O调度初始化模块完成调度参数配置与缓冲区分配,随后系统运行时,由I/O状态监控与信息处理模块动态采集驱动Domain和客户Domain的运行时参数并进行处理,统计发生的I/O事件类型、时间和频率参数,随后将统计结果交由调度决策模块进行判定,该模块根据预设的条件做出调度决策,并向多核动态划分模块发出指令,执行多核动态划分或恢复操作,从而改变系统的处理器核划分模式及调度状态,使处理器资源的使用方式和Domain的调度切换策略更好的适应当前系统的I/O负载需求,达到优化I/O性能的目的。

【技术实现步骤摘要】

本专利技术涉及一种虚拟机调度方法,尤其是一种面向多核平台的、非对称的虚拟机 I/O调度方法,属于计算机操作系统与虚拟化

技术介绍
计算机硬件技术的不断发展使得服务器的性能迅速增长,为了在保证安全与隔离 的前提下充分利用系统资源,虚拟化技术应运而生,其基本思想是利用虚拟机监视器(VMM) 软件薄层对底层硬件资源进行管理,同时对上层提供多个相互隔离的虚拟硬件执行环境 (VM),进而使得同一台物理主机之上可以运行多个不同的操作系统。早在上世纪60年代, IBM便最早在360系列大型机中使用了系统虚拟化技术,将服务器资源以复用的方式分配 给多个用户,而近些年来,虚拟化技术在服务器资源整合、安全、容错等领域都得到了广泛 的应用。目前,已经出现了多个商业和开源的虚拟机项目,包括Vmware公司的ESX系列与 workstation系列,微软的Virtual PC, S皿公司的Solaris Container等,此夕卜IBM公司 也在其大型服务器领域一直提供了虚拟化技术的支持。开源社区中,目前最广泛研究的虚 拟机系统包括KVM和Xen,前者由剑桥大学的相关研究人员开发,而后者则由Q咖ranet公司 组织完成,目前,两者都已作为虚拟化方案整合入Li皿x内核。 虚拟机系统包含多个相互独立的Domain (域),每个域都包含完整的虚拟硬件执 行环境,包括虚拟处理器,虚拟设备、虚拟存储等,都可以运行各自的操作系统并承载用户 所需的计算任务,各个域之间由V匪负责实现隔离和保护。现有主流虚拟机系统为提高安 全和隔离性能,通常将设备驱动程序置于一个特殊的域驱动Domain (驱动域)中,并为其开 放硬件端口的访问权限,而其它所有Domain的设备访问请求均通过虚拟设备访问接口发 送到驱动Domain,由其代为执行,虚拟设备访问接口的建立需要在VMM控制之下进行,以便 其可以控制Domain的设备访问行为。此时,由于所有Domain的设备访问操作均需要通过 驱动Domain进行,而驱动Domain只有在被调度时才能够响应其它Domain的设备访问请求 并进行处理,因此系统对各个Domain采用的调度策略将对其1/0性能产生决定性的影响。 传统的虚拟机系统为满足服务器领域的应用需求,其调度方法会首先考虑系统的 资源利用率与分配的公平性,且大都优先考虑了计算密集型应用的特点,因此其设计原则 通常是在保证调度公平性的基础上最大化的利用系统资源,典型的如Creidt调度策略。但 此时,因调度带来的1/0请求响应延迟会导致1/0密集型应用的性能产生严重的下降。虽然 使用自虚拟化设备和VM-bypass的设备访问方式可以有效提高1/0性能,但对于大多数需 要共享的普通设备,该方法无法解决调度延迟带来的性能瓶颈。部分现有的虚拟机调度方 法提供了相关的优化策略,如Xen系统的Boost/tickle机制及Partial Boost机制,该类 方法可以较好的满足单一应用类型条件下的1/0性能瓶颈问题,但面对复杂的应用类型, 如1/0计算混合型负载,该类方法仍然难以获得理想的1/0性能;不仅如此,现有的虚拟机 系统大都采用全局统一的调度策略,各个处理器核的调度决策条件均保持一致,但由于实 际运行负载类型的多样化,其资源需求特性都有所不同,此时VMM很难提供一种有效的资源分配手段。此外现有的虚拟机调度算法大都针对单核系统设计,很少考虑多核环境的应 用场景,不能充分利用多核结构的特点,而多核以及众核已经成为了未来硬件平台的发展 趋势,因此如何在该环境下,有效利用系统处理器资源,以达到优化系统性能的目的,也是 虚拟机调度算法设计中需要解决的关键问题之一。
技术实现思路
本专利技术提出了一种基于多核动态划分的非对称虚拟机I/O调度方法,该方法在现 有虚拟机监视器VMM中加入了四个模块1/0调度初始化模块、I/O状态监控与信息处理模 块、调度决策模块和多核动态划分模块。系统启动时,首先由1/0调度初始化模块完成调度 参数配置与缓冲区分配,随后系统运行时,由1/0状态监控与信息处理模块动态采集驱动 Domain(驱动域)和客户Domain(客户域)的运行时参数并进行处理,统计系统中发生的 I/O事件类型、时间和频率参数,随后将统计结果交由调度决策模块进行判定,该模块根据 预设的条件做出调度决策,并向多核动态划分模块发出指令,执行多核动态划分或恢复操 作,从而改变系统的处理器核划分模式及调度状态,使处理器资源的使用方式和Domain的 调度切换策略更好的适应当前系统的I/O负载需求,从而达到优化I/O性能的目的。 应用本专利技术提出的基于多核动态划分的虛拟机I/0调度方法时,系统处于两种可 能的调度状态l)正常调度状态;2)多核动态划分调度状态。处于正常调度状态时,系统 采用全局统一的调度策略,所有处理器核均参与各类计算任务的调度,其调度参数设置和 切换策略都保持一致;而当处于多核划分调度状态时,系统所有的处理器核按预设规划划 分成三个不同的子集,即DriverCore(驱动域专用核),Fasttick Core(高频时钟核)和 General Core (通用处理器核),分别用于承载驱动Domain、 I/O事件响应操作和普通的计 算任务。其中Driver Core由驱动Domain独占使用,不会发生调度切换;1/0事件响应由 Fasttick Core完成,该处理器核的调度切换频率将由多核动态划分模块根据实际I/O事 件发生的频率进行动态设置,且采用1/0事件响应优先的抢占式调度策略;其余的处理器 核均属于GeneralCore子集,负责承载普通计算任务。系统通过执行多核划分操作由正常 调度状态进入多核划分调度状态,通过执行恢复操作,由多核划分调度状态进入正常调度 状态。 本专利技术提供的基于多核动态划分的非对称虚拟机调度方法包含以下执行步骤 步骤1 :初始化;系统启动时I/O调度初始化模块加载,记录设备前后端驱动模块连接建立时的i/o环与事件通道信息,随后分配i/o运行时参数收集所需的内存缓冲区,设定多核划分进入和退出决策条件,并规划处理器集划分使用形式,之后系统开始运行并进 入正常调度状态; 步骤2 :参数收集与处理;系统运行时,I/O状态监控与信息处理模块中的I/O状 态监控子模块动态采集设备相关的状态参数,包括1/0事件类型,时间戳信息,事件计数信 息,并将原始数据放入缓冲区;随后1/0状态监控与信息处理模块中的1/0信息处理子模块 对缓冲区内的数据进行分类和处理,记录当前系统各类I/O事件的比率,平均耗时及系统 总体1/0事件的频率; 步骤3 :运行时参数设置与调度决策判定;调度决策模块周期性的读取1/0信息处 理子模块的1/0信息处理结果,设置运行时的调度参数,并分析系统当前的1/0状态,根据7预设条件做出判定,当满足多核动态划分进入条件时,向多核动态划分模块发出指令,执行 步骤4,当满足多核动态划分退出条件时,向多核动态划分模块发出指令,执行步骤5,当两 者都不满足时,保持系统当前运行状态不变; 步骤4 :多核动态划分;多核动态划分模块接收调度决策模块的指令,执行多核划 分操作,使系统由正常调度状态进入多核划分调度状态; 步骤5本文档来自技高网
...

【技术保护点】
一种基于多核动态划分的非对称虚拟机I/O调度方法,其特征在于,该方法在现有虚拟机监视器中加入了四个模块:I/O调度初始化模块、I/O状态监控与信息处理模块、调度决策模块和多核动态划分模块,具体步骤如下:    步骤1:初始化;系统启动时I/O调度初始化模块加载,记录设备前后端驱动模块连接建立时的I/O环与事件通道信息,随后分配I/O运行时参数信息收集所需的内存缓冲区,设定多核划分进入和退出决策条件,并规划处理器集划分使用形式,之后系统开始运行并进入正常调度状态;    步骤2:参数收集与处理;系统运行时,I/O状态监控与信息处理模块中的I/O状态监控子模块动态采集设备相关的状态参数,包括I/O事件类型,时间戳信息,事件计数信息,并将原始数据放入缓冲区,随后I/O状态监控与信息处理模块中的I/O信息处理子模块对缓冲区内的数据进行分类和处理,记录当前系统各类I/O事件的比率,平均耗时及系统总体I/O事件的频率;    步骤3:运行时参数设置与调度决策判定;调度决策模块周期性的读取I/O信息处理子模块的处理结果,设置运行时的调度参数,并分析系统当前的I/O状态,根据预设条件做出判定,当满足多核动态划分进入条件时,向多核动态划分模块发出指令,执行步骤4,当满足多核动态划分退出条件时,向多核动态划分模块发出指令,执行步骤5,当两者都不满足时,保持系统当前运行状态不变;    步骤4:多核动态划分;多核动态划分模块接收调度决策模块的指令,执行多核划分操作,使系统由正常调度状态进入多核划分调度状态;    步骤5:调度状态恢复;多核动态划分模块接收调度决策模块的指令,执行调度状态恢复操作,使系统由多核划分调度状态恢复到正常调度状态。...

【技术特征摘要】
一种基于多核动态划分的非对称虚拟机I/O调度方法,其特征在于,该方法在现有虚拟机监视器中加入了四个模块I/O调度初始化模块、I/O状态监控与信息处理模块、调度决策模块和多核动态划分模块,具体步骤如下步骤1初始化;系统启动时I/O调度初始化模块加载,记录设备前后端驱动模块连接建立时的I/O环与事件通道信息,随后分配I/O运行时参数信息收集所需的内存缓冲区,设定多核划分进入和退出决策条件,并规划处理器集划分使用形式,之后系统开始运行并进入正常调度状态;步骤2参数收集与处理;系统运行时,I/O状态监控与信息处理模块中的I/O状态监控子模块动态采集设备相关的状态参数,包括I/O事件类型,时间戳信息,事件计数信息,并将原始数据放入缓冲区,随后I/O状态监控与信息处理模块中的I/O信息处理子模块对缓冲区内的数据进行分类和处理,记录当前系统各类I/O事件的比率,平均耗时及系统总体I/O事件的频率;步骤3运行时参数设置与调度决策判定;调度决策模块周期性的读取I/O信息处理子模块的处理结果,设置运行时的调度参数,并分析系统当前的I/O状态,根据预设条件做出判定,当满足多核动态划分进入条件时,向多核动态划分模块发出指令,执行步骤4,当满足多核动态划分退出条件时,向多核动态划分模块发出指令,执行步骤5,当两者都不满足时,保持系统当前运行状态不变;步骤4多核动态划分;多核动态划分模块接收调度决策模块的指令,执行多核划分操作,使系统由正常调度状态进入多核划分调度状态;步骤5调度状态恢复;多核动态划分模块接收调度决策模块的指令,执行调度状态恢复操作,使系统由多核划分调度状态恢复到正常调度状态。2. 根据权利要求1所述的一种基于多核动态划分的非对称虚拟机1/0调度方法,其特 征在于,所述的步骤1包括如下具体步骤步骤1. l,设备前后端连接建立时I/O环与事件通道信息记录客户Domain启动时,VMM负责在设备前端驱动模块与设备后端驱动模块之间建立起虚 拟设备通道,该虚拟设备通道包含I/0环和事件通道两个部分,其中I/0环用于存储来自设 备前端驱动模块的1/0请求,以及来自设备后端驱动模块的1/0应答;而事件通道则被用来 通知虚拟设备通道另一端的模块当前有I/0事件需要进行处理;虚拟机系统中,I/0坏以共 享内存的方式同时映射到驱动Domain和客户Domain的地址空间中,该映射过程由VMM负 责完成;1/0调度初始化模块会记录虚拟设备通道建立时,连接驱动Domain和客户Domain 之间的事件通道标号,从而跟踪各类I/O请求和应答事件的发生,并记录相关的时间和事 件类型信息;其中,客户Domain代表客户域、驱动Domain代表驱动域、V匪代表虚拟机监视 器;步骤1. 2, I/O运行时参数信息收集缓冲区分配该缓冲区分配于VMM的地址空间内,由I/O状态监控与信息处理模块使用,记录设备相 关的运行时参数,包括I/O事件类型,时间戳信息,事件计数信息,默认大小为64K ; 步骤1. 3,多核划分进入和退出决策条件设定该决策条件由调度决策模块使用,用来判定当前是否需要执行多核动态划分或恢复操 作,决策条件以I/O事件频率作为判定参数,包含多核划分进入阈值1\及多核划分退出阈值T2, 1\、T2的设置取决于实际负载运行时,I/O请求事件的发生频率,该数值应在系统使用 前进行测定,Tl的设置应略低于典型1/0应用的请求事件频率,T2设定为Tl/2, IA)状态 监控与信息处理模块提供系统运行时的I/O事件频率测试结果; 步骤1. 4,处理器集划分使用形式规划处于多核划分调度状态时,系统所有的处理器核被划分为三个子集,包括DriverCore、 Fasttick Core禾口 General Core,其中Driver Core与Fasttick Core的数量會g够进行设 置,最低为1个,剩余的处理器核属于General Core, Driver Core和Fasttick Core的数 量配置取决于实际1/0任务的负载情况,其中,DriverCore代表驱动域专用核、Fasttick Core代表高频时钟核、General Core代表通用处理器核。3. 根据权利要求1所述的一种基于多核动态划分的非对称虚拟机1/0调度方法,其特 征在于,所述的步骤2包括如下具体步骤步骤2. 1, I/O状态采集I/O状态监控子模块采集1/0数据参数,并写入预分配缓冲区;该模块位与虚拟设备 通道进行数据交互,首先通过追踪启动阶段记录的事件通道标号,跟踪驱动Domain和客户 Domain之间的事件传递过程,同时记录本次I/O事件发生的时间戳,随后通过预分配的地 址空间读取I/O环中的I/O请求和应答信息;1/0状态采集在客户Domain启动并完成设备 前后端连接后开始执行,当客户Domain关闭并断开设备前后端连接时终止;步骤2.2,I/0状态信息处理I/O信息处理子模块读取并处理缓冲区内数据,对缓冲区内的数据进行计算,给出如下 几类计算结果a.各类1/0操作的数量及比例,b.每次1/0操作各个阶段的耗时,c.各类 1/0操作的事件频率;上述结果被调度决策模块使用,用于判定当前系统I/O状态,所有上 述结果均通过串口输出,也能够利用内核打印语句输出到文件。4. 根据权利要求1所述的一种基于多核动态划分的非对称虚拟机1/0调度方法,其特 征在于,所述的步骤3包括如下具体步骤步骤3. l,运行时参数设置调度决策模块每隔250ms从1/0状态监控与信息处理模块处获取一次该时间段内1/ 0应答事件的发生频率,并依此计算出I/O应答事件发生的平均时间间隔,随后将其记录在 全局量t_fasttick中,当系统处于多核划分调度状态时,该值被用来设定Fasttick Core 的tick时钟周期Tfastti。k,为保证各个VCPU调度时其credit能够正确计算,Tfastti。k的精度 单位及最小取值为0. 1ms ;其中,VCPU代表虚拟CPU、 credit代表信用值;步骤3.2,...

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

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

1