一种提高虚拟机应用的可用性的保障方法及系统的制作方法

文档序号:6398578阅读:320来源:国知局
专利名称:一种提高虚拟机应用的可用性的保障方法及系统的制作方法
技术领域
本发明涉及计算机技术领域,尤其是涉及一种提高虚拟机应用的可用性的保障方法及系统。
背景技术
云计算是当前产业界、科技界、学术界乃至全社会关注的焦点和热点,已被广泛认为是新一代信息技术变革和业务应用变革的核心。然而由于云服务使用大量的硬件以及数据交换,使得云服务出现错误而导致系统故障停机的频率非常高。为了解决这个问题,各云服务提供商开始研究服务的高可用性。高可用性H.A.(High Availability)指的是通过尽量缩短因日常维护操作(计划内)和突发的系统崩溃(计划外)所导致的停机时间,提高系统和应用的可用性。H.A.系统是目前企业防止核心计算机系统因故障停机的最有效手段。构建H.A.的关键问题是排除单节点故障,在易受攻击的节点处建立冗余从而减少故障时间。现在云服务提供商提供的高可用性服务主要包括网络高可用性、存储高可用性和数据库及中间件的高可用性等,这些服务能够保证网络、存储、数据库及中间件等软硬件(计划内)资源出现故障时,减少停工时间,及时修复和重新恢复服务的正常运行。随着计算机技术与通信技术的不断发展,各类服务提供商为用户提供的服务呈指数型增长,用户选择服务的标准逐渐提高,但是在业务高可用性保障方面研究贫乏并没有完备可行的技术方案。在现有情况下,服务的突发系统崩溃(计划外)修复时间以天为单位,严重影响用户体验和服务需求,因此,业务(即安装在虚拟机中的应用)的可用性逐渐成为用户选择服务的首要因素。如果业务高可用性得不到保障,云服务的发展及推广将受到一定的限制,因此,为提高用户体验及促进云计算的不断发展,有必要对业务高可用性进行研究。

发明内容
本发明主要是解决现有技术所存在的技术问题;提供了一种能为虚拟机应用(安装运行在虚拟机中的运行程序)的业务连续性提供安全保障,保证应用服务稳定、可靠运行的一种提高虚拟机应用的可用性的保障方法及系统。本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种提高虚拟机应用的可用性的保障方法,其特征在于,包括以下步骤:
步骤1.通信模块将应用感知事件发送给服务感知模块;
步骤2.服务感知模块查询共享数据库获取需要的信息,然后使用无插件式虚拟机内部目标进程信息获取方法获取虚拟机内部进程的相关信息,如果感知到虚拟机应用异常,则构造相应的应用异常事件,执行者为服务策略模块,最后构造一个应用感知事件,,将这些事件发送给通信模块;
步骤3.通信模块将应用异常事件发送给服务策略模块; 步骤4.服务策略模块收到应用异常事件后查询共享数据库获取需要的信息,然后根据收到的应用异常事件进行匹配,并结合共享数据库的信息构造对应的应用策略事件,执行者为服务执行模块,将这些事件发送给通信模块;
步骤5.通信模块将应用策略事件发送给服务执行模块;
步骤6.服务执行模块根据接收到的应用策略事件构造应用执行事件,执行者为虚拟机管理模块,将这些事件发送给通信模块;
步骤7.通信模块将应用执行事件发送给虚拟机管理模块;
步骤8.虚拟机管理模块根据接收到的应用执行事件对虚拟机进行相关操作,并把执行结果发送到共享数据库中。在上述的一种提高虚拟机应用的可用性的保障方法,所述通信模块向其他模块发送信息是基于事件通信机制方式进行发送,包括:
应用感知事件:进程信息获取,即利用无插件式虚拟机内部目标进程获取方法获取进程息的事件;
应用异常事件:虚拟机内存使用量超过阈值;物理机内存使用量超过阈值;虚拟机CPU使用率超过阈值;服务因故关闭;服务长时间处于挂起状态;服务的链接数过大;
应用束略事件:创建多台新的虚拟机;启动多台现有虚拟机;迁移虚拟机;启动备份虚拟机;
应用执行事件:创建虚拟机;迁移虚拟机;启动虚拟机;删除原备份虚拟机;备份虚拟机;修改IP;修改主机名。在上述的一种提高虚拟机应用的可用性的保障方法,所述的步骤2中,无插件式虚拟机内部目标进程信息获取方法包括以下子步骤:
步骤2.1,从虚拟机外部,获取虚拟机内部的FS寄存器的内容,该内容指向Windows操作系统的内核控制区域结构,其偏移量为0x34处的数据成员为KdVersionBlock,该成员指向DBGKD_GET _VERS10N64结构体;通过DBGKD_GET _VERS10N64结构体偏移量为0x18的数据成员PsLoadedModuleList指向的PsLoadedModuleList结构体,能够找到系统内核模块Ntoskrnl.exe ;
步骤2.2,Ntoskrnl.exe是以PE文件形式存在的;解析其PE文件格式,在其PE文件的.edata节的导出地址表中找到名为PsInitialSystemProcess的指针,该指针指向系统中 system 进程 EPR0CESS ;
步骤2.3,根据EPR0CESS偏移量为0x088的ActiveProcessLinksys数据项来遍历EPR0CESS链,根据待检测进程名找到待监测进程;在EPR0CESS结构体的Ox 174偏移处ImageFileName存放着进程的名字,因此通过遍历EPR0CESS链,将进程名与待检测进程名对比,完全符合的即要监测的进程;
步骤2.4:从待监测的进程的EPR0CESS和KPR0CESS结构中获取权利要求2中创建应用异常事件所要获取的信息。一种提高虚拟机应用的可用性的保障系统,其特征在于,包括
共享数据库:共享数据库中存储服务恢复的信息,并根据服务执行模块的反馈信息更新数据库,信息包括物理机、虚拟机和虚拟机模板的编号及其对应关系,以及虚拟机模板配置;通过获取现有的与服务恢复相关的信息,将其插入空白数据库中,建立共享数据库,根据虚拟机管理模块传过来的信息更新数据库;
服务感知模块:查询共享数据库,获取需要的信息,对于正在运行的所有虚拟机中的应用制定感知方案,利用无插件式虚拟机内部目标进程信息获取技术,通过虚拟机管理模块获取虚拟机内部进程的状态,根据获取的信息判断虚拟机应用是否产生以及产生异常的种类;如果产生异常,则将异常相关信息发送给服务策略模块;
服务策略模块:接收到服务感知模块的感知消息后,服务策略模块分析消息,匹配系统指定的服务恢复策略,则查询共享数据库获取需要的参数,并将匹配结果和参数发送到服务执行模块,服务恢复策略是一个针对虚拟机的有序操作序列,包括创建、备份、恢复、迁移、删除虚拟机的操作;
服务执行模块:根据接收到的服务恢复策略,按照对应顺序,依次调用虚拟机管理模块相关功能;
通信模块:使用队列存放事件通信机制中产生的事件,并将其分发给对应的处理模
块;
虚拟机管理模块:由虚拟机管理器或者由云平台及其管理的虚拟机管理器组成,功能包括虚拟机的动态创建,应用的迁移、恢复及删除,资源的分配与使用,最后把执行结果发送到共享数据库中。因此,本发明具有如下优点:能为虚拟机应用(安装运行在虚拟机中的运行程序)的业务连续性提供安全保障,保证应用服务稳定、可靠运行。


图1本发明的系统部署结构 图2本发明获取的进程相关信息示意 图3本发明的系统运行总流程 图4本发明的无插件式虚拟机内部目标进程信息获取技术流程图。
具体实施例方式下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。实施例:
1.本发明的主要步骤流程如下,包括:
步骤1.通信模块将应用感知事件发送给服务感知模块;
步骤2.服务感知模块查询共享数据库获取需要的信息,然后使用无插件式虚拟机内部目标进程信息获取方法获取虚拟机内部进程的相关信息,如果感知到虚拟机应用异常,则构造相应的应用异常事件,执行者为服务策略模块,最后构造一个应用感知事件,将这些事件发送给通信模块;
步骤3.通信模块将应用异常事件发送给服务策略模块;
步骤4.服务策略模块收到应用异常事件后查询共享数据库获取需要的信息,然后根据收到的应用异常事件进行匹配,并结合共享数据库的信息构造对应的应用策略事件,执行者为服务执行模块,将这些事件发送给通信模块;
步骤5.通信模块将应用策略事件发送给服务执行模块;步骤6.服务执行模块根据接收到的应用策略事件构造应用执行事件,执行者为虚拟机管理模块,将这些事件发送给通信模块;
步骤7.通信模块将应用执行事件发送给虚拟机管理模块;
步骤8.虚拟机管理模块根据接收到的应用执行事件对虚拟机进行相关操作,并把执行结果发送到共享数据库中。2.在上述的步骤中,通信模块与其他模块通信是采用的事件通信机制,是一种常用的运作机制,它的特征包括:将系统中发生的所有变化都当成事件来处理,与虚拟机应用相关的事件包括应用异常事件、应用感知事件、应用策略事件和应用执行事件,所有事件都有一个对应的执行者。将所发生的事件集合在一个全局事件队列中维护,通过事件调度来实现系统的正常运作。按时间戳递增的方式事件依次执行,本发明中所采用的事件通信机制中与虚拟机应用相关的事件包括:
应用感知事件:进程信息获取(利用无插件式虚拟机内部目标进程获取方法获取进程信息的事件)。应用异常事件:虚拟机内存使用量超过阈值;物理机内存使用量超过阈值;虚拟机CPU使用率超过阈值;服务因故关闭;服务长时间处于挂起状态;服务的链接数过大。应用束略事件:创建多台新的虚拟机;启动多台现有虚拟机;迁移虚拟机;启动备份虚拟机。应用执行事件:创建虚拟机;迁移虚拟机;启动虚拟机;删除原备份虚拟机;备份虚拟机;修改IP ;修改主机 名。上述事件与其执行者的对应关系如下:
权利要求
1.一种提高虚拟机应用的可用性的保障方法,其特征在于,包括以下步骤: 步骤1.通信模块将应用感知事件发送给服务感知模块; 步骤2.服务感知模块查询共享数据库获取需要的信息,然后使用无插件式虚拟机内部目标进程信息获取方法获取虚拟机内部进程的相关信息,如果感知到虚拟机应用异常,则构造相应的应用异常事件,执行者为服务策略模块,最后构造一个应用感知事件,将这些事件发送给通信模块; 步骤3.通信模块将应用异常事件发送给服务策略模块; 步骤4.服务策略模块收到应用异常事件后查询共享数据库获取需要的信息,然后根据收到的应用异常事件进行匹配,并结合共享数据库的信息构造对应的应用策略事件,执行者为服务执行模块,将这些事件发送给通信模块; 步骤5.通信模块将应用策略事件发送给服务执行模块; 步骤6.服务执行模块根据接收到的应用策略事件构造应用执行事件,执行者为虚拟机管理模块,将这些事件发送给通信模块; 步骤7.通信模块将应用执行事件发送给虚拟机管理模块; 步骤8.虚拟机管理模块根据接收到的应用执行事件对虚拟机进行相关操作,并把执行结果发送到共享数据库中。
2.根据权利要求1所述的一种提高虚拟机应用的可用性的保障方法,其特征在于,所述通信模块向其他模块发送信息是基于事件通信机制方式进行发送,包括: 应用感知事件:进程信息获取,即利用无插件式虚拟机内部目标进程获取方法获取进程息的事件; 应用异常事件:虚拟机内存使用量超过阈值;物理机内存使用量超过阈值;虚拟机CPU使用率超过阈值;服务因故关闭;服务长时间处于挂起状态;服务的链接数过大; 应用束略事件:创建多台新的虚拟机;启动多台现有虚拟机;迁移虚拟机;启动备份虚拟机; 应用执行事件:创建虚拟机;迁移虚拟机;启动虚拟机;删除原备份虚拟机;备份虚拟机;修改IP ;修改主机名。
3.根据权利要求1所述的一种提高虚拟机应用的可用性的保障方法,其特征在于,所述的步骤2中,无插件式虚拟机内部目标进程信息获取方法包括以下子步骤: 步骤2.1,从虚拟机外部,获取虚拟机内部的FS寄存器的内容,该内容指向Windows操作系统的内核控制区域结构,其偏移量为0x34处的数据成员为KdVersionBlock,该成员指向DBGKD_GET _VERS10N64结构体;通过DBGKD_GET _VERS10N64结构体偏移量为0x18的数据成员PsLoadedModuleList指向的PsLoadedModuleList结构体,能够找到系统内核模块Ntoskrnl.exe ; 步骤2.2,Ntoskrnl.exe是以PE文件形式存在的;解析其PE文件格式,在其PE文件的.edata节的导出地址表中找到名为PsInitialSystemProcess的指针,该指针指向系统中 system 进程 EPR0CESS ; 步骤2.3,根据EPR0CESS偏移量为0x088的ActiveProcessLinksys数据项来遍历EPR0CESS链,根据待检测进程名找到待监测进程;在EPR0CESS结构体的Ox 174偏移处ImageFileName存放着进程的名字,因此通过遍历EPR0CESS链,将进程名与待检测进程名对比,完全符合的即要监测的进程; 步骤2.4:从待监测的进程的EPROCESS和KPROCESS结构中获取权利要求2中创建应用异常事件所要获取的信息。
4.一种提高虚拟机应用的可用性的保障系统,其特征在于,包括共享数据库:共享数据库中存储服务恢复的信息,并根据服务执行模块的反馈信息更新数据库,信息包括物理机、虚拟机和虚拟机模板的编号及其对应关系,以及虚拟机模板配置;通过获取现有的与服务恢复相关的信息,将其插入空白数据库中,建立共享数据库,根据虚拟机管理模块传过来的信息更新数据库; 服务感知模块:查询共享数据库,获取需要的信息,对于正在运行的所有虚拟机中的应用制定感知方案,利用无插件式虚拟机内部目标进程信息获取技术,通过虚拟机管理模块获取虚拟机内部进程的状态,根据获取的信息判断虚拟机应用是否产生以及产生异常的种类;如果产生异常,则将异常相关信息发送给服务策略模块; 服务策略模块:接收到服务感知模块的感知消息后,服务策略模块分析消息,匹配系统指定的服务恢复策略,则查询共享数据库获取需要的参数,并将匹配结果和参数发送到服务执行模块,服务恢复策略是一个针对虚拟机的有序操作序列,包括创建、备份、恢复、迁移、删除虚拟机的操作; 服务执行模块:根据接收到的服务恢复策略,按照对应顺序,依次调用虚拟机管理模块相关功能; 通信模块:使用队列存放事件通信机制中产生的事件,并将其分发给对应的处理模块; 虚拟机管理模块:由虚拟机管理器或者由云平台及其管理的虚拟机管理器组成,功能包括虚拟机的动态创建,应用的迁移、恢复及删除,资源的分配与使用,最后把执行结果发送到共享数据库中。
全文摘要
本发明涉及计算机技术领域,尤其是涉及一种提高虚拟机应用的可用性的保障方法及系统,系统采用事件通信机制进行通信。该系统主要由共享数据库、通信模块、服务感知模块、服务策略模块、服务执行模块和虚拟机管理模块组成。服务感知模块用于感知应用状态;服务策略应用服务感知模块感知到的状态选择高可用性策略;服务执行模块根据高可用性策略,按照对应顺序,依次调用虚拟机管理模块相关功能;共享数据库为上述模块提供运行所必需的信息。本发明具有如下优点能为虚拟机应用(安装运行在虚拟机中的运行程序)的业务连续性提供安全保障,保证应用服务稳定、可靠运行。
文档编号G06F9/455GK103118100SQ201310029559
公开日2013年5月22日 申请日期2013年1月25日 优先权日2013年1月25日
发明者崔竞松, 郭迟, 胡桥, 向浩, 李果, 张雅娜, 郭子龙, 何松 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1