[发明专利]一种基于虚拟化的高可用系统设计方法有效
申请号: | 201410259847.1 | 申请日: | 2014-06-12 |
公开(公告)号: | CN103996004B | 公开(公告)日: | 2018-09-04 |
发明(设计)人: | 刘璧怡;宋立伟;何志平;周雄;吴楠 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F21/55 | 分类号: | G06F21/55 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜明 |
地址: | 250101 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 虚拟 可用 系统 设计 方法 | ||
1.一种基于虚拟化的高可用系统设计方法,其特征在于,基于虚拟化的高可用技术,实现内核关键数据结构的保护策略,依赖于影子页表管理机制和超调用机制,以及异常处理逻辑保证正确有效执行;通过客户机获得内核关键数据的地址和域信息,扩展VMCALL异常处理方式,设计超调用机制,客户机通过超调用机制与宿主机交换数据;客户机信息通过VMCALL注入到内核后,由VMCALL扩充的调用机制来获得信息和信息设置,获得对应的客户机内核数据结构的影子页表;并设置对应影子页表的写保护权限,扩充缺页异常处理程序;
所述超调用机制的具体流程为:
首先读取idtr获得中断向量表地址,并计算Ox80对应系统调用中断门,通过中断门获得系统调用处理函数总入口;然后扫描系统调用函数,获得call指令对应的参数,即系统调用表地址,最后通过VMCALL注入地址信息和域长信息;
所述影子页表管理机制的具体流程为:
步骤1、通过超调用传入系统调用表地址addr;
步骤2、读取客户机状态域的CR3页表寄存器,存入页表地址base,并读取客户机页表层级lever;
步骤3、根据lever和addr计算addr对应客户机页表项的偏移offset,根据base和offset得到页面项pte;
步骤4、若lever=1,则通过pte或者客户机页gfn,读取客户机影子页的lever层级rlever,并读取影子页表页目录指针;
步骤5、根据rlever和addr计算偏移量soffset spte;
步骤6、若rlever=1,则设置spte项写保护,进而记录客户机页帧,影子页spte以及主机页pfn信息,并记录设置的域长;
步骤7、若rlever=2且为大页面,则设置spte项写保护,进而记录客户机页帧,影子页spte以及主机页pfn信息,并记录设置的域长;否则,rlever非步骤6、步骤7中的情形,对于rlever--,设置base为spte指向的内容,并且返回步骤5进行执行;
步骤8、若lever=2且为大页面,则通过pte或者客户机页gfn,读取客户机影子页的lever层级rlever,并读取影子页表页目录指针;进行步骤5到步骤7的执行;
步骤9、lever非步骤4、步骤8中的情形,对于rlever--,则设置base为pte指向内容;并返回步骤3进行执行;
所述基于虚拟化的高可用系统设计方法提出了一种高可用系统,该系统基于虚拟化技术,利用客户机的降权执行和资源管理手段,对内核关键数据结构进行保护。
2.根据权利要求1所述的基于虚拟化的高可用系统设计方法,其特征在于,所述高可用系统为基于客户机异常处理的高可用系统,其整体系统框架由用户操作模块和内核模块两类模块组成,所述内核模块又包含初始化模块、可用性处理模块、注册库、异常处理模块、日志记录模块及扩充的KVM异常处理模块;其中,
1)用户操作模块:获取客户机的基本信息,提供日志记录查询接口,获取可用性机制信息,提供可用性设置接口;
2)内核模块部分:包含六个部分:初始化模块、可用性处理模块、注册库、异常处理模块、日志记录模块以及扩充的KVM异常处理模块;其中,
a)初始化模块:通过标准ioctl提供用户接口,接受用户传递的参数并进行有效性检查,根据处理参数从注册库中找到相关处理机制的初始化函数地址,调用该函数进行初始化处理过程;
b)可用性处理模块:为了提高客户机内核高可用而引入的处理逻辑,每一个可用性处理模块包含三个基本函数:一个是初始化函数,一个为异常处理函数,一个是清理函数;初始化函数在用户配置客户机高可用机制后调用,用于初始化客户机相关信息;异常处理函数用在客户机发生指定异常时,进行处理的调用函数;清理函数用于用户撤销虚拟机的可用性设计后,调用的清理操作;
c)注册库:保存各个处理模块通过register__ava_process()函数注册模块的信息;包括初始化函数地址,处理函数地址、名称、以及描述信息;
d)异常处理模块:调用处理逻辑的统一入口,根据调用参数从注册库中找到相关处理机制的处理函数地址,调用该处理函数进行异常处理化过程;
e)日志记录模块:记录运行过程中的异常发生及处理的信息;
f)扩充的KVM异常处理模块:扩充的KVM异常处理模块作为客户机引起异常退出VMX执行环境的统一出口,根据异常条件执行相关的处理逻辑;扩充的KVM异常处理模块,用于引入可用性处理模块后处理逻辑的扩充。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410259847.1/1.html,转载请声明来源钻瓜专利网。