[发明专利]虚拟机内部故障处理方法、装置及系统有效
申请号: | 201210345633.7 | 申请日: | 2012-09-17 |
公开(公告)号: | CN102902599A | 公开(公告)日: | 2013-01-30 |
发明(设计)人: | 杨晓伟 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 虚拟机 内部 故障 处理 方法 装置 系统 | ||
技术领域
本发明涉及通信技术领域,尤其涉及一种虚拟机内部故障处理方法、装置及系统。
背景技术
在虚拟化环境下,一般宿主机上运行有一个或多个虚拟机,一般需要在宿主机上了解虚拟机内部运行的状态。在宿主机上运行较多的虚拟机时,一般不能时刻查看每个虚拟机内部运行的状态。当有虚拟机内部发生异常(比如虚拟机死机或者蓝屏等)而并不能被宿主机感知时,宿主机长时间未对虚拟机进行处理,造成虚拟机内的业务被长时间中断、从而浪费了宿主机的内存等资源。因此,宿主机能够获取到虚拟机内部是否发生了异常十分必要。
当前,一般虚拟机中能够通过软件周期性向宿主机发送虚拟机的心跳信息,例如虚拟机通过一虚拟机软件VMware中的VMware Tools每秒钟均向宿主机发送虚拟机的心跳信息,而宿主机中的虚拟机监控模块每过一段时间均会检测这段时间内有无心跳信息发送到宿主机(例如虚拟机监控模块每20秒检测一次此20秒内是否有心跳信息发送到宿主机)。如果虚拟机监控模块检测到一段时间内没有心跳信息,则虚拟机监控模块就认为该虚拟机内部运行发生了故障,此时虚拟机监控模块可以控制所述虚拟机进行重置,其具体的交互过程可以如图1所示。
在实现本发明实施例的过程中,发明人发现现有技术中至少存在如下问题:
通过心跳信息判断虚拟机的内部运行是否发生故障的方法不精确,虚拟机监控模块不能及时发现虚拟机的内部运行发生了故障,且通过重置虚拟机来恢复虚拟机的工作,在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障。
发明内容
本发明的实施例提供一种虚拟机内部故障处理方法、装置及系统,能够解决现有技术中通过心跳信息判断虚拟机的内部运行是否发生故障的方法不精确,虚拟机监控模块不能及时发现虚拟机的内部运行发生了故障,在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障的问题。
为达到上述目的,本发明采用如下技术方案:
第一方面,本发明实施例提供一种虚拟机内部故障处理方法,包括:
虚拟机内部故障检测装置监测虚拟机操作系统的状态;
当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置中的异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息;所述异常捕获模块在所述虚拟机操作系统启动时加载于所述虚拟机操作系统中;
所述异常捕获模块将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。
根据所述第一方面,在所述第一方面的第一种实施方式中,所述异常捕获模块由向虚拟机操作系统注册的内核态的函数组成;在所述异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息之前,包括:
所述异常捕获模块向所述虚拟机操作系统注册发生异常时的回调函数;
所述异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息,包括:
所述异常捕获模块通过所述回调函数根据所述系统的上下文判断发生异常的类型,并寻找到发生异常的位置。
根据所述第一方面,在所述第一方面的第二种实施方式中,所述异常捕获模块为注册到虚拟机操作系统中的不可屏蔽中断上的一个中断处理函数;所述异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息,包括:
所述异常捕获模块在接收到虚拟机监控装置发送的不可屏蔽中断后,根据所述不可屏蔽中断的上下文判断发生异常的类型,并寻找到发生异常的位置。
根据所述第一方面的第二种实施方式,在所述第一方面的第三种实施方式中,所述异常捕获模块在接收到虚拟机监控装置发送的不可屏蔽中断后,根据所述不可屏蔽中断的上下文判断发生异常的类型,并寻找到发生异常的位置之前,包括:
所述异常捕获模块接收用户配置的自定义功能,所述自定义功能用于要求所述异常捕获模块提供所述自定义功能对应的虚拟机的相关信息;
所述方法,还包括:
所述异常捕获模块在接收到虚拟机监控装置发送的不可屏蔽中断后,在所述不可屏蔽中断的上下文中运行所述自定义功能,以使得所述异常捕获模块捕获所述虚拟机的相关信息;
所述异常捕获模块将所述虚拟机的相关信息报告给所述虚拟机监控装置。
第二方面,本发明实施例提供的一种虚拟机内部故障处理方法,所述方法包括:
虚拟机监控装置接收虚拟机内部故障检测装置中的异常捕获模块发送的异常信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210345633.7/2.html,转载请声明来源钻瓜专利网。