当前位置: 首页 > 专利查询>北京大学专利>正文

一种高效的脏页获取方法技术

技术编号:4271223 阅读:334 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种高效的脏页获取方法,属于虚拟化技术领域。本方法为:1)虚拟机管理器为每个第一级影子页表维护一n位的标记;2)在一执行周期之前,虚拟机管理器将第一级影子页表的所有页表项设置为只读,并将对应标记设置为0;3)在该执行周期内,虚拟机管理器根据截获的缺页异常信息,将对应的页面记录为脏页面;同时将该影子页表表项置为可写,并将其所对应的标记位设置为1;4)在该执行周期结束时,虚拟机管理器记录主虚拟机的所有脏页;同时遍历标记位为1的影子页表表项段,将所有可写影子页表表项设置为只读;5)虚拟机管理器恢复主虚拟机的执行,重复2)~4),开始新的执行周期。本发明专利技术可大大提升主虚拟机的性能。

【技术实现步骤摘要】

本专利技术涉及一种脏页获取方法,该技术涉及到基于虚拟化的可靠性系统中虚拟机管理器获取主虚拟机检查点的方法,属于虚拟化技术和可靠性系统领域。
技术介绍
基于虚拟化的可靠性系统是在虚拟机管理器之上实现的可靠性系统方案,目前 在这方面的系统包括加拿大英属哥伦比亚大学开发的Remus (Remus :High availability viaasynchronous virtual machine replication),日本NTT公司开发的Kemari (Kemari : Virtualmachine synchronization for fault tolerance),以及北京大学网络实验室开发 的Taiji (http:〃net. pku. edu. cn/vc/files/ft/index. html)。相对于传统的可靠性解决 方案,基于虚拟化的可靠性系统具有经济、透明、易于部署等优点。 该系统的核心是Checkpoint/Recovery机制。在每一个执行周期,虚拟机管理器 监测主虚拟机修改的内存页面,并在执行周期结束时把脏页面发送到备份虚拟机。目前,在 以上系统的实现中,赃页获取技术采用了虚拟机迁移中的赃页获取方法。虚拟机迁移中的 赃页获取方法是在每一个执行周期开始时,虚拟机管理器销毁主虚拟机的所有的影子页表 表项;在执行周期中,主虚拟机对任何页面的第一次修改都会发生缺页异常,从而虚拟机管 理器可以探测到哪些页面被修改。这种方法对主虚拟机的性能产生了很大的影响。本专利技术 主要是基于系统运行行为的分析,公开了一项高效的赃页获取技术,该项技术提高了基于 虚拟化的可靠性系统的性能。
技术实现思路
本专利技术的目的是为基于虚拟化的可靠性系统提供一种高效的赃页获取方法。本专利技术可使虚拟机管理器在主虚拟机的每个执行周期都能截获到主虚拟机修改的内存页面,同时还不对主虚拟机的性能产生较大的影响。 本专利技术的技术方案为 —种高效的脏页获取方法,其步骤为 1)虚拟机管理器为每个主虚拟机维护一个影子页表,并为每个第一级影子页表维 护一 n位的标记;其中n为正整数,第一级影子页表表项划分为n段,每一段对应于n位标 记中的一位; 2)在一执行周期之前,虚拟机管理器将第一级影子页表的所有页表项设置为只 读,相应的每个第一级影子页表的标记都设置为所述n位标记中的未修改标记号; 3)在该执行周期内,当主虚拟机通过某个影子页表表项发生第一次写操作时,虚 拟机管理器截获到一缺页异常信息; 4)虚拟机管理器根据截获到的该缺页异常信息,将该影子页表表项对应的页面记 录为脏页面;同时将该影子页表表项置为可写,并将其所对应的标记位设置为所述n位标 记中的修改标记号;3 5)在该执行周期结束时,主虚拟机停止执行,虚拟机管理器记录主虚拟机的所有 脏页;同时,虚拟机管理器遍历标记位为修改标记号的影子页表表项段,将所有可写影子页 表表项设置为只读; 6)虚拟机管理器恢复主虚拟机的执行,重复步骤2) 5),开始新的执行周期。 进一步的,当所述虚拟机管理器截获缺页异常信息时,虚拟机管理器将与该缺页 异常的影子页表表项相邻的影子页表表项预设置为可写。 进一步的,所述虚拟机管理器首先为每个第一级影子页表维护一个数值his— stride,用来描述第一级影子页表在历史的执行周期中发生写操作的局部性行为;然后虚 拟机管理器将与发生缺页异常的影子页表表项相邻的前his—stride个影子页表表项和后 hiS_stride/3个影子页表表项预设置为可写。 进一步的,所述his_stride的计算方法为his_stride = his_stride*a+ave_ stride*(1-a);其中ave—stride为影子页表中所有连续的可写影子页表表项段长度的平 均值,a为一权重参数,a取值范围为(0, 1)。 进一步的,所述虚拟机管理器将所述预设置为可写的影子页表表项添加一预测标 记,并且清空该表项的脏页位。 进一步的,所述虚拟机管理器遍历所有第一级影子页表,将带所述预测标记的影 子页表表项中,脏页位没有被设置的页表项所对应的页面确定为非脏页面,脏页位被设置 的页表项所对应的页面确定为脏页面。 进一步的,所述执行周期结束时,虚拟机管理器把脏页面发送到一备份虚拟机。 进一步的,所述第一级影子页表表项平均划分为n段;所述n取值为8。 进一步的,所述n位标记由0、1标记号组成,其中标号1为修改标记号,标号0为未修改标记号。 相对于现有技术,本专利技术的积极效果为 本专利技术可提高主虚拟机的性能,与虚拟机迁移中使用的脏页获取方法不同,本发 明采用遍历影子页表表项的方法收回所有页表项写权限,并且采用一个八位的标记,选择 性地遍历影子页表;另外,在主虚拟机执行过程中,采用基于历史行为的预测,有效地减少 了虚拟机执行过程中的缺页次数,进一步调高了主虚拟机执行的效率。图2是性能对比。在 这个试验中,主虚拟机的执行周期是20msec。迁移表示使用迁移代码中的脏页获取方法, 本专利技术表示采用本专利技术中陈述的脏页获取方法。通过图2可以看到,主虚拟机中分别运 行四种不同的基准测试程序时,主虚拟机的性能都得到了较大的提升。附图说明 图1表示一个影子页表上发生缺页异常,预测程序预测和校正的过程; 图2表示本专利技术的脏页获取方法与Xen的迁移的脏页获取方法的性能比较。具体实施例方式本专利技术涉及到的赃页获取方法应用在基于虚拟化的可靠性系统中,该系统包括如 下两个部分主虚拟机和虚拟机管理器。主虚拟机是受保护的虚拟机,其中运行关键性服 务;虚拟机管理器运行在硬件之上,维护虚拟机的运行,在基于虚拟化的可靠性系统中,虚4拟机管理器还需要记录主虚拟机执行过程中修改的内存页面,并把所有脏页在每个执行周 期结束时发送给备份虚拟机。影子页表是内存虚拟化机制。虚拟机管理器为每个运行在其 上的虚拟机维护一个影子页表,影子页表表项实现虚拟地址到物理地址的转换。为了记录 主虚拟机执行过程中修改的脏页,本专利技术的方法如下 1)虚拟机管理器为每个第一级影子页表维护了一个八位的标记,每一位对应于这 个第一级影子页表八分之一的影子页表表项段。例如,对于32位PAE系统,每个第一级影 子页表有512个页表项,那么该标记的第一位就对应着这个影子页表的前64个影子页表表 项,第二位对应第65个到第128个影子页表表项,等等。 2)在开始新的执行周期之前,第一级影子页表的所有页表项都被设置为只读,相 应的每个第一级影子页表的标记都为O,表明所有的影子页表中没有可写的影子页表表项。 3)主虚拟机恢复执行,由于该虚拟机的影子页表表项都是只读,当主虚拟机通过 某个影子页表表项发生第一次写操作时,将会发生缺页异常。虚拟机管理器截获到该异常, 并把该影子页表表项对应的页面记录为脏页面;同时,把这个影子页表表项置为可读写,这 样,在这个执行周期中,再次通过该页表项修改页面将不会发生缺页异常;同时,虚拟机管 理器根据发生缺页异常的影子页表表项的位置,查看相应的标记位,如果对应的标记位为 O,则把这个位设置为l,表明这个位对应的影子页表表项段中出现了可读写页表项。 4)在每个执行周期结束时,主虚拟机停止执行,虚拟机管理器把主虚拟机修改过 的页面发送到本文档来自技高网
...

【技术保护点】
一种高效的脏页获取方法,其步骤为:    1)虚拟机管理器为每个主虚拟机维护一个影子页表,并为每个第一级影子页表维护一n位的标记;其中n为正整数,第一级影子页表表项划分为n段,每一段对应于n位标记中的一位;    2)在一执行周期之前,虚拟机管理器将第一级影子页表的所有页表项设置为只读,相应的每个第一级影子页表的标记都设置为所述n位标记中的未修改标记号;    3)在该执行周期内,当主虚拟机通过某个影子页表表项发生第一次写操作时,虚拟机管理器截获到一缺页异常信息;    4)虚拟机管理器根据截获到的该缺页异常信息,将该影子页表表项对应的页面记录为脏页面;同时将该影子页表表项置为可写,并将其所对应的标记位设置为所述n位标记中的修改标记号;    5)在该执行周期结束时,主虚拟机停止执行,虚拟机管理器记录主虚拟机的所有脏页;同时,虚拟机管理器遍历标记位为修改标记号的影子页表表项段,将所有可写影子页表表项设置为只读;    6)虚拟机管理器恢复主虚拟机的执行,重复步骤2)~5),开始新的执行周期。

【技术特征摘要】
一种高效的脏页获取方法,其步骤为1)虚拟机管理器为每个主虚拟机维护一个影子页表,并为每个第一级影子页表维护一n位的标记;其中n为正整数,第一级影子页表表项划分为n段,每一段对应于n位标记中的一位;2)在一执行周期之前,虚拟机管理器将第一级影子页表的所有页表项设置为只读,相应的每个第一级影子页表的标记都设置为所述n位标记中的未修改标记号;3)在该执行周期内,当主虚拟机通过某个影子页表表项发生第一次写操作时,虚拟机管理器截获到一缺页异常信息;4)虚拟机管理器根据截获到的该缺页异常信息,将该影子页表表项对应的页面记录为脏页面;同时将该影子页表表项置为可写,并将其所对应的标记位设置为所述n位标记中的修改标记号;5)在该执行周期结束时,主虚拟机停止执行,虚拟机管理器记录主虚拟机的所有脏页;同时,虚拟机管理器遍历标记位为修改标记号的影子页表表项段,将所有可写影子页表表项设置为只读;6)虚拟机管理器恢复主虚拟机的执行,重复步骤2)~5),开始新的执行周期。2. 如权利要求1所述的方法,其特征在于当所述虚拟机管理器截获缺页异常信息时, 虚拟机管理器将与该缺页异常的影子页表表项相邻的影子页表表项预设置为可写。3. 如权利要求2所述的方法,其特征在于所述虚拟机管理器首先为每个第一级影子页 表维护一个数值his—stride,用来描述第一级影子页...

【专利技术属性】
技术研发人员:朱君董嵬江哲夫施晓罡肖臻
申请(专利权)人:北京大学
类型:发明
国别省市:11[中国|北京]

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

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