虚拟机内部故障处理方法、装置及系统的制作方法

文档序号:6377104阅读:215来源:国知局
专利名称:虚拟机内部故障处理方法、装置及系统的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种虚拟机内部故障处理方法、装置及系统。
背景技术
在虚拟化环境下,一般宿主机上运行有一个或多个虚拟机,一般需要在宿主机上了解虚拟机内部运行的状态。在宿主机上运行较多的虚拟机时,一般不能时刻查看每个虚拟机内部运行的状态。当有虚拟机内部发生异常(比如虚拟机死机或者蓝屏等)而并不能被宿主机感知时,宿主机长时间未对虚拟机进行处理,造成虚拟机内的业务被长时间中断、从而浪费了宿主机的内存等资源。因此,宿主机能够获取到虚拟机内部是否发生了异常十
分必要。当前,一般虚拟机中能够通过软件周期性向宿主机发送虚拟机的心跳信息,例如虚拟机通过一虚拟机软件VMware中的VMware Tools每秒钟均向宿主机发送虚拟机的心跳信息,而宿主机中的虚拟机监控模块每过一段时间均会检测这段时间内有无心跳信息发送到宿主机(例如虚拟机监控模块每20秒检测一次此20秒内是否有心跳信息发送到宿主机)。如果虚拟机监控模块检测到一段时间内没有心跳信息,则虚拟机监控模块就认为该虚拟机内部运行发生了故障,此时虚拟机监控模块可以控制所述虚拟机进行重置,其具体的交互过程可以如图I所示。在实现本发明实施例的过程中,发明人发现现有技术中至少存在如下问题通过心跳信息判断虚拟机的内部运行是否发生故障的方法不精确,虚拟机监控模块不能及时发现虚拟机的内部运行发生了故障,且通过重置虚拟机来恢复虚拟机的工作,在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障。

发明内容
本发明的实施例提供一种虚拟机内部故障处理方法、装置及系统,能够解决现有技术中通过心跳信息判断虚拟机的内部运行是否发生故障的方法不精确,虚拟机监控模块不能及时发现虚拟机的内部运行发生了故障,在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障的问题。为达到上述目的,本发明采用如下技术方案第一方面,本发明实施例提供一种虚拟机内部故障处理方法,包括虚拟机内部故障检测装置监测虚拟机操作系统的状态;当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置中的异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息;所述异常捕获模块在所述虚拟机操作系统启动时加载于所述虚拟机操作系统中;所述异常捕获模块将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。
根据所述第一方面,在所述第一方面的第一种实施方式中,所述异常捕获模块由向虚拟机操作系统注册的内核态的函数组成;在所述异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息之前,包括所述异常捕获模块向所述虚拟机操作系统注册发生异常时的回调函数;所述异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息,包括所述异常捕获模块通过所述回调函数根据所述系统的上下文判断发生异常的类型,并寻找到发生异常的位置。根据所述第一方面,在所述第一方面的第二种实施方式中,所述异常捕获模块为注册到虚拟机操作系统中的不可屏蔽中断上的一个中断处理函数;所述异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息,包括 所述异常捕获模块在接收到虚拟机监控装置发送的不可屏蔽中断后,根据所述不可屏蔽中断的上下文判断发生异常的类型,并寻找到发生异常的位置。根据所述第一方面的第二种实施方式,在所述第一方面的第三种实施方式中,所述异常捕获模块在接收到虚拟机监控装置发送的不可屏蔽中断后,根据所述不可屏蔽中断的上下文判断发生异常的类型,并寻找到发生异常的位置之前,包括所述异常捕获模块接收用户配置的自定义功能,所述自定义功能用于要求所述异常捕获模块提供所述自定义功能对应的虚拟机的相关信息;所述方法,还包括所述异常捕获模块在接收到虚拟机监控装置发送的不可屏蔽中断后,在所述不可屏蔽中断的上下文中运行所述自定义功能,以使得所述异常捕获模块捕获所述虚拟机的相
关信息;所述异常捕获模块将所述虚拟机的相关信息报告给所述虚拟机监控装置。第二方面,本发明实施例提供的一种虚拟机内部故障处理方法,所述方法包括虚拟机监控装置接收虚拟机内部故障检测装置中的异常捕获模块发送的异常信息;所述虚拟机监控装置根据所述异常信息确认解决所述异常信息对应的异常的策略;所述虚拟机监控装置通过所述策略解决所述异常信息对应的异常。根据所述第二方面,在所述第二方面的第一种实施方式中,在虚拟机监控装置接收虚拟机内部故障检测装置中的异常捕获模块发送的异常信息之前,包括所述虚拟机监控装置接收用户配置的异常处理信息,所述异常处理信息包括多种异常的类型对应的处理策略;根据所述第二方面的第一种实施方式,在所述第二方面的第二种实施方式中,所述异常信息包括异常的类型和发生异常的位置,所述虚拟机监控装置根据所述异常信息确认解决所述异常信息对应的异常的策略,包括所述虚拟机监控装置在所述异常处理信息中的多种异常的类型对应的处理策略中,寻找所述异常信息中的异常的类型对应的策略;所述虚拟机监控装置通过所述策略解决所述异常信息对应的异常,包括
所述虚拟机监控装置根据所述发生异常的位置,在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略;或者,所述虚拟机监控装置将所述异常信息中的异常的类型对应的策略发送给虚拟机中的虚拟机操作执行模块,以使得所述虚拟机操作执行模块在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。根据所述第二方面的第二种实施方式,在所述第二方面的第三种实施方式中,在虚拟机监控装置接收虚拟机内部故障检 测装置中的异常捕获模块发送的异常信息之前,包括所述虚拟机监控装置在虚拟机监控装置上设置不可屏蔽中断标志位以指示虚拟机操作系统存在不可屏蔽中断;所述虚拟机监控装置以一个预设的频率向所述异常捕获模块发送不可屏蔽中断。根据所述第二方面的第三种实施方式,在所述第二方面的第四种实施方式中,在所述虚拟机监控装置以一个预设的频率向所述异常捕获模块发送不可屏蔽中断之后,包括所述虚拟机监控装置接收所述异常捕获模块发送的虚拟机的相关信息。第三方面,本发明实施例提供的一种虚拟机内部故障检测装置,包括监测模块,用于监测虚拟机操作系统的状态;异常捕获模块,用于当所述监测模块监测到虚拟机操作系统发生异常时,根据虚拟机操作系统的上下文获取发生异常对应的异常信息;所述异常捕获模块在所述虚拟机操作系统启动时加载于所述虚拟机操作系统中;所述异常捕获模块,还用于将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。根据所述第三方面,在所述第三方面的第一种实施方式中,所述异常捕获模块由向虚拟机操作系统注册的内核态的函数组成;所述异常捕获模块,包括回调函数注册单元,用于向所述虚拟机操作系统注册发生异常时的回调函数;所述异常捕获模块,具体用于通过所述回调函数根据所述系统的上下文判断发生异常的类型,并寻找到发生异
常的位置。根据所述第三方面,在所述第三方面的第二种实施方式中,所述异常捕获模块为注册到虚拟机操作系统中的不可屏蔽中断上的一个中断处理函数;所述异常捕获模块,具体用于在接收到虚拟机监控装置发送的不可屏蔽中断后,根据所述不可屏蔽中断的上下文判断发生异常的类型,并寻找到发生异常的位置。根据所述第三方面的第二种实施方式,在所述第三方面的第三种实施方式中,所述异常捕获模块,包括第一接收单元,用于接收用户配置的自定义功能,所述自定义功能用于要求所述异常捕获模块提供所述自定义功能对应的虚拟机的相关信息;自定义功能处理单元,用于在接收到虚拟机监控装置发送的不可屏蔽中断后,在所述不可屏蔽中断的上下文中运行所述自定义功能,以使得所述异常捕获模块捕获所述虚拟机的相关信息;第一发送单元,用于将所述虚拟机的相关信息报告给所述虚拟机监控装置。第四方面,本发明实施例提供的一种虚拟机监控装置,包括第一接收模块,用于接收虚拟机内部故障检测装置中的异常捕获模块发送的异常信息;策略配置模块,用于根据所述异常信息确认解决所述异常信息对应的异常的策略;异常处理模块,用于通过所述策略解决所述异常信息对应的异 常。根据所述第四方面,在所述第四方面的第一种实施方式中,包括第二接收模块,用于接收用户配置的异常处理信息,所述异常处理信息包括多种异常的类型对应的处理策略。根据所述第四方面的第一种实施方式,在所述第四方面的第二种实施方式中,所述异常信息包括异常的类型和发生异常的位置,所述策略配置模块,具体用于在所述异常处理信息中的多种异常的类型对应的处理策略中,寻找所述异常信息中的异常的类型对应的策略;所述异常处理模块,包括处理单元,用于根据所述发生异常的位置,在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略;第二发送单元,用于将所述异常信息中的异常的类型对应的策略发送给虚拟机中的虚拟机操作执行模块,以使得所述虚拟机操作执行模块在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。根据所述第四方面的第二种实施方式,在所述第四方面的第三种实施方式中,所述虚拟机监控装置还包括第一设置模块,用于在虚拟机监控装置上设置不可屏蔽中断标志位以指示虚拟机操作系统存在不可屏蔽中断;第一发送模块,用于以一个预设的频率向所述异常捕获模块发送不可屏蔽中断。根据所述第四方面的第三种实施方式,在所述第四方面的第四种实施方式中,所述虚拟机监控装置还包括第三接收模块,用于接收所述异常捕获模块发送的虚拟机的相关信息。第五方面,本发明实施例提供的一种虚拟机内部故障处理系统,包括虚拟机内部故障检测装置以及虚拟机监控装置,其中,所述虚拟机内部故障检测装置,用于监测虚拟机操作系统的状态,在监测到虚拟机操作系统发生异常时,根据虚拟机操作系统的上下文获取发生异常对应的异常信息,所述异常捕获模块在所述虚拟机操作系统启动时加载于所述虚拟机操作系统中,将所述异常信息报告给虚拟机监控装置;所述虚拟机监控装置,用于接收虚拟机内部故障检测装置中的异常捕获模块发送的异常信息,根据所述异常信息确认解决所述异常信息对应的异常的策略,通过所述策略解决所述异常信息对应的异常。
本发明实施例提供的虚拟机内部故障处理方法、装置及系统,由于虚拟机内部故障检测装置监测虚拟机操作系统的状态,当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置中的异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息,并将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。这样,本发明实施例通过获得的异常信息,使得判断虚拟机的内部运行是否发生故障能够更加精确,能够及时发现虚拟机的内部运行发生的故障,且虚拟机监控装置根据所述异常信息确认了解决异常的策略,从而解决相应的异常,避免了在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。图I为现有技术中虚拟机与虚拟机监控模块的信息交互示意图;图2为本发明实施例提供的虚拟机内部故障处理方法的流程图一;图3为本发明实施例提供的虚拟机内部故障处理方法的流程图二 ;图4为本发明又一实施例提供的虚拟机内部故障处理方法的流程图;图5为本发明另一实施例提供的虚拟机内部故障处理方法的流程图;图6为本发明实施例提供的虚拟机内部故障检测装置的结构示意图一;图7为本发明实施例提供的虚拟机内部故障检测装置的结构示意图二 ;图8为本发明实施例提供的虚拟机监控装置的结构示意图一;图9为本发明实施例提供的虚拟机监控装置的结构示意图二 ;图10为本发明实施例提供的虚拟机内部故障处理系统的结构示意图;图11为本发明实施例提供的虚拟机内部故障检测装置的实体结构示意图;图12为本发明实施例提供的虚拟机监控装置的实体结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。如图2所示,本发明实施例提供的虚拟机内部故障处理方法,从虚拟机内部故障检测装置侧阐述,方法包括101、虚拟机内部故障检测装置监测虚拟机操作系统的状态。其中,所述虚拟机操作系统的状态一般包括正常工作和发生异常两种。
102、当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置中的异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息。其中,所述异常捕获模块在所述虚拟机操作系统启动时加载于所述虚拟机操作系统中。所述异常捕获模块可以是由向虚拟机操作系统注册的内核态的函数组成,也可以是注册到虚拟机操作系统中的不可屏蔽中断上的一个中断处理函数。所述异常信息可以包括异常的类型(如系统死锁、内存不足等)、以及发生异常的位置(例如虚拟机操作系统中发生异常的某一模块)。103、所述异常捕获模块将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。具体的,所述虚拟机监控装置可以设置在宿主机中,所述异常捕获模块将所述异常信息直接报告给宿主机处的虚拟机监控装置;或者,为了减轻所述宿主机处的设备运行压力,所述虚拟机监控装置可以从所述宿主机处分离出来,所述虚拟机监控装置与所述宿 主机通过网络信息通道连接,所述异常捕获模块也通过网络信息通道将所述异常信息报告给所述虚拟机监控装置。具体的,所述虚拟机监控装置中可以预先配置有各种类型的异常对应的处理策略,当虚拟机监控装置接收到所述异常信息时,根据该异常信息中的异常的类型可查找到对应的处理策略,例如当异常的类型为虚拟机的操作系统发生了死锁,则对应的处理策略可以是从启所述虚拟机的操作系统等,但不仅局限于此。如图3所示,本发明实施例提供的虚拟机内部故障处理方法,从虚拟机监控装置侧阐述,方法包括201、虚拟机监控装置接收虚拟机内部故障检测装置中的异常捕获模块发送的异
常信息。202、所述虚拟机监控装置根据所述异常信息确认解决所述异常信息对应的异常的策略。具体的,所述虚拟机监控装置中可以预先配置有各种类型的异常对应的处理策略,当虚拟机监控装置接收到所述异常信息时,根据该异常信息中的异常的类型可查找到对应的处理策略,例如当异常的类型为虚拟机的操作系统发生了死锁,则对应的处理策略可以是从启所述虚拟机的操作系统等,但不仅局限于此。203、所述虚拟机监控装置通过所述策略解决所述异常信息对应的异常。具体的,若虚拟机的操作系统发生的故障问题较大,例如整个操作系统的所有内存都已经死锁,并且发生中断而全部被禁用时,虚拟机监控装置则根据所述发生异常的位置,在所述发生异常的位置上实施所述异常的类型对应的策略,例如直接重置整个虚拟机操作系统。或者,若虚拟机的操作系统发生的故障问题较小,例如仅是系统磁盘空间不足而运行缓慢,则虚拟机监控装置为了缓解自身运行的压力,可以将所述异常的类型对应的策略发送给虚拟机中的虚拟机操作执行模块,以使得所述虚拟机操作执行模块在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略,例如虚拟机操作执行模块清理系统垃圾,以为发生运行缓慢问题的模块留出足够的磁盘空间。
本发明实施例提供的虚拟机内部故障处理方法,由于虚拟机内部故障检测装置监测虚拟机操作系统的状态,当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置中的异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息,并将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。这样,本发明实施例通过获得的异常信息,使得判断虚拟机的内部运行是否发生故障能够更加精确,能够及时发现虚拟机的内部运行发生的故障,且虚拟机监控装置根据所述异常信息确认了解决异常的策略,从而解决相应的异常,避免了在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障。如图4所示,本发明又一实施例提供的虚拟机内部故障处理方法,包括301、虚拟机操作系统开始运行,并加载异常捕获模块。其中,所述异常捕获模块是由向虚拟机操作系统注册的内核态的函数组成,一般·在虚拟机操作系统中运行的应用程序存在于用户态的函数中,而用户态的函数中的应用程序出现故障时,并不会影响到内核态的函数组成的所述异常捕获模块。302、所述异常捕获模块向所述虚拟机操作系统注册发生异常时的回调函数。具体的,通过所述回调函数,在虚拟机操作系统发生异常时,能够指示调用所述异常捕获模块。例如,Windows操作系统可以注册系统发生蓝屏时的回调函数等。303、虚拟机内部故障检测装置监测虚拟机操作系统的状态。304、当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置调用所述异常捕获模块。305、所述异常捕获模块通过所述回调函数根据所述系统的上下文判断发生异常的类型,并寻找到发生异常的位置。具体的,系统的上下文的内容一般包括系统运行时的线程、栈以及内存等信息,但不仅局限于此。306、所述异常捕获模块将异常信息报告给虚拟机监控装置。其中,所述异常信息包括所述异常的类型和发生异常的位置。具体的,所述虚拟机监控装置可以设置在宿主机中,所述异常捕获模块将所述异常信息直接报告给宿主机处的虚拟机监控装置;或者,为了减轻所述宿主机处的设备运行压力,所述虚拟机监控装置可以从所述宿主机处分离出来,所述虚拟机监控装置与所述宿主机通过网络信息通道连接,所述异常捕获模块也通过网络信息通道将所述异常信息报告给所述虚拟机监控装置。此外,所述虚拟机监控装置可以将所述异常信息显现给用户,以方面用户根据所述异常信息进行进一步的分析处理。307、所述虚拟机监控装置在配置在其内部的异常处理信息中的多种异常的类型对应的处理策略中,寻找所述异常信息中的异常的类型对应的策略。执行308或者309。可选的,所述虚拟机监控装置可以接收用户向其配置的所述异常处理信息,所述异常处理信息包括多种异常的类型对应的处理策略。因此,在接收到所述异常处理信息后,虚拟机监控装置需要维护异常处理信息中多种异常的类型及其对应的处理策略的关系,在虚拟机监控装置接收到异常信息后,能够根据所述异常信息中带有的异常的类型,查找到相应的策略。例如异常的类型为系统死锁,则对应的处理策略为重置系统,又例如异常的类型为系统磁盘空间不足而运行缓慢,则对应的处理策略为清理系统中的垃圾,释放磁盘空间。所述异常处理信息中还有类似上述的多种异常的类型及其对应的处理策略,此处不再赘述。308、所述虚拟机监控装置根据所述发生异常的位置,在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。具体的,若虚拟机的操作系统发生的故障问题较大,例如整个操作系统的所有内存都已经死锁,并且发生中断而全部被禁用时,虚拟机监控装置则根据所述发生异常的位置,在所述发生异常的位置上实施所述异常的类型对应的策略,例如直接重置整个虚拟机操作系统。
可选的,若所述虚拟机监控装置与宿主机分离开,所述虚拟机监控装置需要与宿主机通过网络信息通道连接,所述虚拟机监控装置还可以控制所述宿主机在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。309、所述虚拟机监控装置将所述异常信息中的异常的类型对应的策略发送给虚拟机中的虚拟机操作执行模块,以使得所述虚拟机操作执行模块在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。具体的,若虚拟机的操作系统发生的故障问题较小,例如仅是系统磁盘空间不足而运行缓慢,则虚拟机监控装置为了缓解自身运行的压力,可以将所述异常的类型对应的策略发送给虚拟机中的虚拟机操作执行模块,以使得所述虚拟机操作执行模块在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略,例如虚拟机操作执行模块清理系统垃圾,以为发生运行缓慢问题的模块留出足够的磁盘空间。本发明又一实施例提供的虚拟机内部故障处理方法,由于虚拟机内部故障检测装置监测虚拟机操作系统的状态,当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置中的异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息,并将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。这样,本发明实施例通过获得的异常信息,使得判断虚拟机的内部运行是否发生故障能够更加精确,能够及时发现虚拟机的内部运行发生的故障,且虚拟机监控装置根据所述异常信息确认了解决异常的策略,从而解决相应的异常,避免了在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障。如图5所示,本发明另一实施例提供的虚拟机内部故障处理方法,包括401、虚拟机操作系统开始运行,并加载异常捕获模块。其中,所述异常捕获模块为注册到虚拟机操作系统中的不可屏蔽中断上的一个中断处理函数;所述异常处理模块能够在所述不可屏蔽终端的上下文中运行,从而可以不受系统中发生的故障的影响。402、虚拟机监控装置在虚拟机监控装置上设置不可屏蔽中断标志位以指示虚拟机操作系统存在不可屏蔽中断。具体的,在虚拟机监控装置中配置有硬件的不可屏蔽中断看门狗模块,所述不可屏蔽中断看门狗模块可以在英特尔(Intel)的虚拟机控制结构(Virtual Machine ControlStructure,简称VMCS),或者超微半导体(AMD)的虚拟机控制模块(Virtual MachineControl Block,简称VMCB)中设置不可屏蔽中断标志位,以指示虚拟机操作系统存在不可屏蔽中断。403、所述虚拟机监控装置以一个预设的频率向所述异常捕获模块发送不可屏蔽中断。执行404或者407。404、所述异常捕获模块接收用户配置的自定义功能,所述自定义功能用于要求所述异常捕获模块提供所述自定义功能对应的虚拟机的相关信息。具体的,所述虚拟机的相关信息可以是用户需要获知的虚拟机的系统健康状态、虚拟机的内存剩余空间、虚拟机的网卡信息等信息,但不仅局限于此。405、所述异常捕获模块在接收到虚拟机监控装置发送的不可屏蔽中断后,在所述不可屏蔽中断的上下文中运行所述自定义功能,以使得所述异常捕获模块捕获所述虚拟机的相关信息。406、所述异常捕获模块将所述虚拟机的相关信息报告给所述虚拟机监控装置。所述虚拟机监控装置可以将其获取到的虚拟机的相关信息呈现给用户,以方便用 户通过所述虚拟机的相关信息对虚拟机进行管理控制。407、所述异常捕获模块在接收到虚拟机监控装置发送的不可屏蔽中断后,在虚拟机操作系统发生异常时,根据所述不可屏蔽中断的上下文判断发生异常的类型,并寻找到发生异常的位置。408、所述异常捕获模块将异常信息报告给虚拟机监控装置。其中,所述异常信息包括所述异常的类型和发生异常的位置。具体的,所述虚拟机监控装置可以设置在宿主机中,所述异常捕获模块将所述异常信息直接报告给宿主机处的虚拟机监控装置;或者,为了减轻所述宿主机处的设备运行压力,所述虚拟机监控装置可以从所述宿主机处分离出来,所述虚拟机监控装置与所述宿主机通过网络信息通道连接,所述异常捕获模块也通过网络信息通道将所述异常信息报告给所述虚拟机监控装置。此外,所述虚拟机监控装置可以将所述异常信息显现给用户,以方便用户根据所述异常信息进行进一步的分析处理。409、所述虚拟机监控装置在配置在其内部的异常处理信息中的多种异常的类型对应的处理策略中,寻找所述异常信息中的异常的类型对应的策略。执行410或者411。可选的,所述虚拟机监控装置可以接收用户向其配置的所述异常处理信息,所述异常处理信息包括多种异常的类型对应的处理策略。因此,在接收到所述异常处理信息后,虚拟机监控装置需要维护异常处理信息中多种异常的类型及其对应的处理策略的关系,在虚拟机监控装置接收到异常信息后,能够根据所述异常信息中带有的异常的类型,查找到相应的策略。例如异常的类型为系统死锁,则对应的处理策略为重置系统,又例如异常的类型为系统磁盘空间不足而运行缓慢,则对应的处理策略为清理系统中的垃圾,释放磁盘空间。所述异常处理信息中还有类似上述的多种异常的类型及其对应的处理策略,此处不再赘述。410、所述虚拟机监控装置根据所述发生异常的位置,在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。具体的,若虚拟机的操作系统发生的故障问题较大,例如整个操作系统的所有内存都已经死锁,并且发生中断而全部被禁用时,虚拟机监控装置则根据所述发生异常的位置,在所述发生异常的位置上实施所述异常的类型对应的策略,例如直接重置整个虚拟机操作系统。可选的,若所述虚拟机监控装置与宿主机分离开,所述虚拟机监控装置还可以控制所述宿主机在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。411、所述虚拟机监控装置将所述异常信息中的异常的类型对应的策略发送给虚拟机中的虚拟机操作执行模块,以使得所述虚拟机操作执行模块在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。具体的,若虚拟机的操作系统发生的故障问题较小,例如仅是系统磁盘空间不足 而运行缓慢,则虚拟机监控装置为了缓解自身运行的压力,可以将所述异常的类型对应的策略发送给虚拟机中的虚拟机操作执行模块,以使得所述虚拟机操作执行模块在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略,例如虚拟机操作执行模块清理系统垃圾,以为发生运行缓慢问题的模块留出足够的磁盘空间。本发明另一实施例提供的虚拟机内部故障处理方法,由于虚拟机内部故障检测装置监测虚拟机操作系统的状态,当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置中的异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息,并将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。这样,本发明实施例通过获得的异常信息,使得判断虚拟机的内部运行是否发生故障能够更加精确,能够及时发现虚拟机的内部运行发生的故障,且虚拟机监控装置根据所述异常信息确认了解决异常的策略,从而解决相应的异常,避免了在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障。如图6所示,本发明实施例提供的虚拟机内部故障检测装置,包括监测模块51,用于监测虚拟机操作系统的状态。其具体实现方式参见图2中步骤101所示,此处不再赘述。异常捕获模块52,用于当所述监测模块51监测到虚拟机操作系统发生异常时,根据虚拟机操作系统的上下文获取发生异常对应的异常信息。其具体实现方式参见图2中步骤102所示,此处不再赘述。其中,所述异常捕获模块52在所述虚拟机操作系统启动时加载于所述虚拟机操作系统中。所述异常捕获模块52,还用于将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。其具体实现方式参见图2中步骤103所示,此处不再赘述。具体的,如图7所示,所述异常捕获模块52由向虚拟机操作系统注册的内核态的函数组成;所述异常捕获模块52,包括回调函数注册单元521,用于向所述虚拟机操作系统注册发生异常时的回调函数。其具体实现方式参见图4中步骤302所示,此处不再赘述。所述异常捕获模块52,具 体用于通过所述回调函数根据所述系统的上下文判断发生异常的类型,并寻找到发生异常的位置。其具体实现方式参见图4中步骤305所示,此处不再赘述。具体的,如图7所示,所述异常捕获模块52为注册到虚拟机操作系统中的不可屏蔽中断上的一个中断处理函数,所述异常捕获模块52,具体用于在接收到虚拟机监控装置发送的不可屏蔽中断后,根据所述不可屏蔽中断的上下文判断发生异常的类型,并寻找到发生异常的位置。其具体实现方式参见图5中步骤407所示,此处不再赘述。进一步的,如图7所示,所述异常捕获模块52,包括第一接收单元522,用于接收用户配置的自定义功能,所述自定义功能用于要求所述异常捕获模块52提供所述自定义功能对应的虚拟机的相关信息。其具体实现方式参见图5中步骤404所示,此处不再赘述。自定义功能处理单元523,用于在接收到虚拟机监控装置发送的不可屏蔽中断后,在所述不可屏蔽中断的上下文中运行所述自定义功能,以使得所述异常捕获模块捕获所述虚拟机的相关信息。其具体实现方式参见图5中步骤405所示,此处不再赘述。第一发送单元524,用于将所述虚拟机的相关信息报告给所述虚拟机监控装置。其具体实现方式参见图5中步骤406所示,此处不再赘述。本发明实施例提供的虚拟机内部故障检测装置,由于虚拟机内部故障检测装置监测虚拟机操作系统的状态,当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置中的异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息,并将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。这样,本发明实施例通过获得的异常信息,使得判断虚拟机的内部运行是否发生故障能够更加精确,能够及时发现虚拟机的内部运行发生的故障,且虚拟机监控装置根据所述异常信息确认了解决异常的策略,从而解决相应的异常,避免了在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障。如图8所示,本发明实施例提供的虚拟机监控装置,包括第一接收模块61,用于接收虚拟机内部故障检测装置中的异常捕获模块发送的异常信息。其具体实现方式参见图3中步骤201所示,此处不再赘述。策略配置模块62,用于根据所述异常信息确认解决所述异常信息对应的异常的策略。其具体实现方式参见图3中步骤202所示,此处不再赘述。异常处理模块63,用于通过所述策略解决所述异常信息对应的异常。其具体实现方式参见图3中步骤203所示,此处不再赘述。进一步的,如图9所示,所述虚拟机监控装置,还包括第二接收模块64,用于接收用户配置的异常处理信息,所述异常处理信息包括多种异常的类型对应的处理策略。其具体实现方式参见图4中步骤307所示,此处不再赘述。进一步的,如图9所示,所述异常信息包括异常的类型和发生异常的位置,所述策略配置模块62,具体用于
在所述异常处理信息中的多种异常的类型对应的处理策略中,寻找所述异常信息中的异常的类型对应的策略。其具体实现方式参见图4中步骤307所示,此处不再赘述。所述异常处理模块63,包括处理单元631,用于根据所述发生异常的位置,在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。其具体实现方式参见图4中步骤308所示,此处不再赘述。第二发送单元632,用于将所述异常信息中的异常的类型对应的策略发送给虚拟机中的虚拟机操作执行模块,以使得所述虚拟机操作执行模块在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。其具体实现方式参见图4中步骤309所示,此处不再赘述。进一步的,如图9所示,所述虚拟机监控装置,还包括 第一设置模块65,用于在虚拟机监控装置上设置不可屏蔽中断标志位以指示虚拟机操作系统存在不可屏蔽中断。其具体实现方式参见图5中步骤402所示,此处不再赘述。第一发送模块66,用于以一个预设的频率向所述异常捕获模块发送不可屏蔽中断。其具体实现方式参见图5中步骤403所示,此处不再赘述。进一步的,如图9所示,所述虚拟机监控装置,还包括第三接收模块67,用于接收所述异常捕获模块发送的虚拟机的相关信息。其具体实现方式参见图5中步骤406所示,此处不再赘述。本发明实施例提供的虚拟机监控装置,由于在虚拟机操作系统发生故障时,接收了虚拟机内部故障检测装置中的异常捕获模块发送的异常信息,根据所述异常信息确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。这样,本发明实施例通过获得的异常信息,使得判断虚拟机的内部运行是否发生故障能够更加精确,能够及时发现虚拟机的内部运行发生的故障,且虚拟机监控装置根据所述异常信息确认了解决异常的策略,从而解决相应的异常,避免了在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障。如图10所示,本发明实施例提供的虚拟机内部故障处理系统,包括虚拟机内部故障检测装置71以及虚拟机监控装置72,其中,所述虚拟机内部故障检测装置71,用于监测虚拟机操作系统的状态,在监测到虚拟机操作系统发生异常时,根据虚拟机操作系统的上下文获取发生异常对应的异常信息,所述异常捕获模块在所述虚拟机操作系统启动时加载于所述虚拟机操作系统中,将所述异常信息报告给虚拟机监控装置72 ;所述虚拟机监控装置72,用于接收虚拟机内部故障检测装置71中的异常捕获模块发送的异常信息,根据所述异常信息确认解决所述异常信息对应的异常的策略,通过所述策略解决所述异常信息对应的异常。值得说明的是,本发明实施例提供的虚拟机内部故障处理系统的具体实现方式参见上述虚拟机内部故障检测装置以及虚拟机监控装置的具体实施例,此处不再赘述。本发明实施例提供的虚拟机内部故障处理系统,由于虚拟机内部故障检测装置监测虚拟机操作系统的状态,当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置中的异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息,并将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。这样,本发明实施例通过获得的异常信息,使得判断虚拟机的内部运行是否发生故障能够更加精确,能够及时发现虚拟机的内部运行发生的故障,且虚拟机监控装置根据所述异常信息确认了解决异常的策略,从而解决相应的异常,避免了在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障。为了使本领域技术人员更好的理解本发明实施例提供的虚拟机内部故障检测装置,现提供一种所述虚拟机内部故障检测装置的实体进行说明。如图11所示,本发明实施例提供的虚拟机内部故障检测装置,包括监测器81,用于监测虚拟机操作系统的状态。其具体实现方式参见图2中步骤101所示,此处不再赘述。异常捕获处理器82,用于当所述监测器81监测到虚拟机操作系统发生异常时,根 据虚拟机操作系统的上下文获取发生异常对应的异常信息。其具体实现方式参见图2中步骤102所示,此处不再赘述。其中,所述异常捕获处理器82在所述虚拟机操作系统启动时加载于所述虚拟机操作系统中。所述异常捕获处理器82,还用于将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。其具体实现方式参见图2中步骤103所示,此处不再赘述。具体的,如图11所示,所述异常捕获处理器82由向虚拟机操作系统注册的内核态的函数组成,所述异常捕获处理器82,具体用于向所述虚拟机操作系统注册发生异常时的回调函数。其具体实现方式参见图4中步骤302所示,此处不再赘述。通过所述回调函数根据所述系统的上下文判断发生异常的类型,并寻找到发生异常的位置。其具体实现方式参见图4中步骤305所示,此处不再赘述。具体的,如图11所示,所述异常捕获处理器82为注册到虚拟机操作系统中的不可屏蔽中断上的一个中断处理函数,所述异常捕获处理器82,具体用于在接收到虚拟机监控装置发送的不可屏蔽中断后,根据所述不可屏蔽中断的上下文判断发生异常的类型,并寻找到发生异常的位置。其具体实现方式参见图5中步骤407所示,此处不再赘述。进一步的,如图11所示,所述异常捕获处理器82,具体用于接收用户配置的自定义功能,所述自定义功能用于要求所述异常捕获处理器提供所述自定义功能对应的虚拟机的相关信息。其具体实现方式参见图5中步骤404所示,此处不再赘述。在接收到虚拟机监控装置发送的不可屏蔽中断后,在所述不可屏蔽中断的上下文中运行所述自定义功能,以使得所述异常捕获处理器捕获所述虚拟机的相关信息。其具体实现方式参见图5中步骤405所示,此处不再赘述。将所述虚拟机的相关信息报告给所述虚拟机监控装置。其具体实现方式参见图5中步骤406所示,此处不再赘述。本发明实施例提供的虚拟机内部故障检测装置,由于虚拟机内部故障检测装置监测虚拟机操作系统的状态,当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置中的异常捕获处理器根据虚拟机操作系统的上下文获取发生异常对应的异常信息,并将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。这样,本发明实施例通过获得的异常信息,使得判断虚拟机的内部运行是否发生故障能够更加精确,能够及时发现虚拟机的内部运行发生的故障,且虚拟机监控装置根据所述异常信息确认了解决异常的策略,从而解决相应的异常,避免了在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障。为了使本领域技术人员更好的理解本发明实施例提供的虚拟机监控装置,现提供一种所述虚拟机监控装置的实体进行说明。
如图12所示,本发明实施例提供的虚拟机监控装置,包括接收器91,用于接收虚拟机内部故障检测装置中的异常捕获处理器发送的异常信息。其具体实现方式参见图3中步骤201所示,此处不再赘述。策略寄存器92,用于根据所述异常信息确认解决所述异常信息对应的异常的策略。其具体实现方式参见图3中步骤202所示,此处不再赘述。异常处理器93,用于通过所述策略解决所述异常信息对应的异常。其具体实现方式参见图3中步骤203所示,此处不再赘述。进一步的,如图12所示,所述接收器91,还用于接收用户配置的异常处理信息,所述异常处理信息包括多种异常的类型对应的处理策略。其具体实现方式参见图4中步骤307所示,此处不再赘述。进一步的,如图12所示,所述异常信息包括异常的类型和发生异常的位置,所述策略寄存器92,具体用于在所述异常处理信息中的多种异常的类型对应的处理策略中,寻找所述异常信息中的异常的类型对应的策略。其具体实现方式参见图4中步骤307所示,此处不再赘述。所述异常处理器93,具体用于根据所述发生异常的位置,在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。其具体实现方式参见图4中步骤308所示,此处不再赘述。将所述异常信息中的异常的类型对应的策略发送给虚拟机中的虚拟机操作执行模块,以使得所述虚拟机操作执行模块在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。其具体实现方式参见图4中步骤309所示,此处不再赘述。进一步的,如图12所示,所述虚拟机监控装置,还包括硬件看门狗94,用于在虚拟机监控装置上设置不可屏蔽中断标志位以指示虚拟机操作系统存在不可屏蔽中断。其具体实现方式参见图5中步骤402所示,此处不再赘述。所述硬件看门狗94、还用于以一个预设的频率向所述异常捕获处理器发送不可屏蔽中断。其具体实现方式参见图5中步骤403所示,此处不再赘述。进一步的,如图12所示,所述接收器91,还用于接收所述异常捕获处理器发送的虚拟机的相关信息。其具体实现方式参见图5中步骤406所示,此处不再赘述。
本发明实施例提供的虚拟机监控装置,由于在虚拟机操作系统发生故障时,接收了虚拟机内部故障检测装置中的异常捕获处理器发送的异常信息,根据所述异常信息确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。这样,本发明实施例通过获得的异常信息,使得判断虚拟机的内部运行是否发生故障能够更加精确,能够及时发现虚拟机的内部运行发生的故障,且虚拟机监控装置根据所述异常信息确认了解决异常的策略,从而解决相应的异常,避免了在虚拟机再次运行时,还可能由于上次发生故障的原因而继续造成故障。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现 ,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种虚拟机内部故障处理方法,其特征在于,包括 虚拟机内部故障检测装置监测虚拟机操作系统的状态; 当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置中的异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息;所述异常捕获模块在所述虚拟机操作系统启动时加载于所述虚拟机操作系统中; 所述异常捕获模块将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。
2.根据权利要求I所述的方法,其特征在于,所述异常捕获模块由向虚拟机操作系统注册的内核态的函数组成;在所述异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息之前,包括 所述异常捕获模块向所述虚拟机操作系统注册发生异常时的回调函数; 所述异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息,包括 所述异常捕获模块通过所述回调函数根据所述系统的上下文判断发生异常的类型,并寻找到发生异常的位置。
3.根据权利要求I所述的方法,其特征在于,所述异常捕获模块为注册到虚拟机操作系统中的不可屏蔽中断上的一个中断处理函数;所述异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息,包括 所述异常捕获模块在接收到虚拟机监控装置发送的不可屏蔽中断后,根据所述不可屏蔽中断的上下文判断发生异常的类型,并寻找到发生异常的位置。
4.根据权利要求3所述的方法,其特征在于,所述异常捕获模块在接收到虚拟机监控装置发送的不可屏蔽中断后,根据所述不可屏蔽中断的上下文判断发生异常的类型,并寻找到发生异常的位置之前,包括 所述异常捕获模块接收用户配置的自定义功能,所述自定义功能用于要求所述异常捕获模块提供所述自定义功能对应的虚拟机的相关信息; 所述方法,还包括 所述异常捕获模块在接收到虚拟机监控装置发送的不可屏蔽中断后,在所述不可屏蔽中断的上下文中运行所述自定义功能,以使得所述异常捕获模块捕获所述虚拟机的相关信息; 所述异常捕获模块将所述虚拟机的相关信息报告给所述虚拟机监控装置。
5.一种虚拟机内部故障处理方法,其特征在于,所述方法包括 虚拟机监控装置接收虚拟机内部故障检测装置中的异常捕获模块发送的异常信息; 所述虚拟机监控装置根据所述异常信息确认解决所述异常信息对应的异常的策略; 所述虚拟机监控装置通过所述策略解决所述异常信息对应的异常。
6.根据权利要求5所述的方法,其特征在于,在虚拟机监控装置接收虚拟机内部故障检测装置中的异常捕获模块发送的异常信息之前,包括 所述虚拟机监控装置接收用户配置的异常处理信息,所述异常处理信息包括多种异常的类型对应的处理策略。
7.根据权利要求6所述的方法,其特征在于,所述异常信息包括异常的类型和发生异常的位置,所述虚拟机监控装置根据所述异常信息确认解决所述异常信息对应的异常的策略,包括 所述虚拟机监控装置在所述异常处理信息中的多种异常的类型对应的处理策略中,寻找所述异常信息中的异常的类型对应的策略; 所述虚拟机监控装置通过所述策略解决所述异常信息对应的异常,包括 所述虚拟机监控装置根据所述发生异常的位置,在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略;或者, 所述虚拟机监控装置将所述异常信息中的异常的类型对应的策略发送给虚拟机中的虚拟机操作执行模块,以使得所述虚拟机操作执行模块在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。
8.根据权利要求7所述的方法,其特征在于,在虚拟机监控装置接收虚拟机内部故障检测装置中的异常捕获模块发送的异常信息之前,包括 所述虚拟机监控装置在虚拟机监控装置上设置不可屏蔽中断标志位以指示虚拟机操作系统存在不可屏蔽中断; 所述虚拟机监控装置以一个预设的频率向所述异常捕获模块发送不可屏蔽中断。
9.根据权利要求8所述的方法,其特征在于,在所述虚拟机监控装置以一个预设的频率向所述异常捕获模块发送不可屏蔽中断之后,包括 所述虚拟机监控装置接收所述异常捕获模块发送的虚拟机的相关信息。
10.一种虚拟机内部故障检测装置,其特征在于,包括 监测模块,用于监测虚拟机操作系统的状态; 异常捕获模块,用于当所述监测模块监测到虚拟机操作系统发生异常时,根据虚拟机操作系统的上下文获取发生异常对应的异常信息;所述异常捕获模块在所述虚拟机操作系统启动时加载于所述虚拟机操作系统中; 所述异常捕获模块,还用于将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决所述异常信息对应的异常的策略,并通过所述策略解决所述异常信息对应的异常。
11.根据权利要求10所述的虚拟机内部故障检测装置,其特征在于,所述异常捕获模块由向虚拟机操作系统注册的内核态的函数组成;所述异常捕获模块,包括 回调函数注册单元,用于向所述虚拟机操作系统注册发生异常时的回调函数; 所述异常捕获模块,具体用于 通过所述回调函数根据所述系统的上下文判断发生异常的类型,并寻找到发生异常的位置。
12.根据权利要求10所述的虚拟机内部故障检测装置,其特征在于,所述异常捕获模块为注册到虚拟机操作系统中的不可屏蔽中断上的一个中断处理函数;所述异常捕获模块,具体用于 在接收到虚拟机监控装置发送的不可屏蔽中断后,根据所述不可屏蔽中断的上下文判断发生异常的类型,并寻找到发生异常的位置。
13.根据权利要求12所述的虚拟机内部故障检测装置,其特征在于,所述异常捕获模块,包括 第一接收单元,用于接收用户配置的自定义功能,所述自定义功能用于要求所述异常捕获模块提供所述自定义功能对应的虚拟机的相关信息; 自定义功能处理单元,用于在接收到虚拟机监控装置发送的不可屏蔽中断后,在所述不可屏蔽中断的上下文中运行所述自定义功能,以使得所述异常捕获模块捕获所述虚拟机的相关彳目息; 第一发送单元,用于将所述虚拟机的相关信息报告给所述虚拟机监控装置。
14.一种虚拟机监控装置,其特征在于,包括 第一接收模块,用于接收虚拟机内部故障检测装置中的异常捕获模块发送的异常信息; 策略配置模块,用于根据所述异常信息确认解决所述异常信息对应的异常的策略; 异常处理模块,用于通过所述策略解决所述异常信息对应的异常。
15.根据权利要求14所述的虚拟机监控装置,其特征在于,还包括 第二接收模块,用于接收用户配置的异常处理信息,所述异常处理信息包括多种异常的类型对应的处理策略。
16.根据权利要求15所述的虚拟机监控装置,其特征在于,所述异常信息包括异常的类型和发生异常的位置,所述策略配置模块,具体用于 在所述异常处理信息中的多种异常的类型对应的处理策略中,寻找所述异常信息中的异常的类型对应的策略; 所述异常处理模块,包括 处理单元,用于根据所述发生异常的位置,在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略; 第二发送单元,用于将所述异常信息中的异常的类型对应的策略发送给虚拟机中的虚拟机操作执行模块,以使得所述虚拟机操作执行模块在所述发生异常的位置上实施所述异常信息中的异常的类型对应的策略。
17.根据权利要求16所述的虚拟机监控装置,其特征在于,还包括 第一设置模块,用于在虚拟机监控装置上设置不可屏蔽中断标志位以指示虚拟机操作系统存在不可屏蔽中断; 第一发送模块,用于以一个预设的频率向所述异常捕获模块发送不可屏蔽中断。
18.根据权利要求17所述的虚拟机监控装置,其特征在于,还包括 第三接收模块,用于接收所述异常捕获模块发送的虚拟机的相关信息。
19.一种虚拟机内部故障处理系统,其特征在于,包括虚拟机内部故障检测装置以及虚拟机监控装置,其中, 所述虚拟机内部故障检测装置,用于监测虚拟机操作系统的状态,在监测到虚拟机操作系统发生异常时,根据虚拟机操作系统的上下文获取发生异常对应的异常信息,所述异常捕获模块在所述虚拟机操作系统启动时加载于所述虚拟机操作系统中,将所述异常信息报告给虚拟机监控装置; 所述虚拟机监控装置,用于接收虚拟机内部故障检测装置中的异常捕获模块发送的异常信息,根据所述异常信息确认解决所述异常信息对应的异常的策略,通过所述策略解决所述异常信息对应的异常 。
全文摘要
本发明实施例公开了一种虚拟机内部故障处理方法、装置及系统,涉及通信技术领域,解决了当前判断虚拟机的内部运行是否发生故障不精确,不能及时发现故障,且虚拟机再次运行后,还可能由于上次发生故障的原因继续故障的问题。方法包括虚拟机内部故障检测装置监测虚拟机操作系统的状态;当监测到虚拟机操作系统发生异常时,虚拟机内部故障检测装置中的异常捕获模块根据虚拟机操作系统的上下文获取发生异常对应的异常信息;所述异常捕获模块将所述异常信息报告给虚拟机监控装置,以使得所述虚拟机监控装置根据所述异常信息,确认解决异常信息对应的异常的策略,并通过所述策略解决异常信息对应的异常。本发明适用于具有虚拟机的虚拟化环境中。
文档编号G06F11/07GK102902599SQ20121034563
公开日2013年1月30日 申请日期2012年9月17日 优先权日2012年9月17日
发明者杨晓伟 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1