专利名称:一种虚拟机死锁后的恢复方法、装置及系统的制作方法
技术领域:
本发明涉及计算机技术领域,尤其涉及一种虚拟机死锁后的恢复方法、装置及系统。
背景技术:
在云计算系统中,计算节点大量采用虚拟化方案,在虚拟化环境下,所有的虚拟机当中一般只有一个特殊的虚拟机(亦可称为特权虚拟机)承担管理功能并控制真实物理资源的访问。当特权虚拟机发生死锁,其中的网卡或磁盘设备驱动等无法正常工作,无法满足客户操作系统的IO请求,造成整个计算节点上所有虚拟机业务无法正常开展。为了解决这一问题,现有技术中通过重启整个计算节点如服务器来恢复特权虚拟机的正常运行,例如,在特权虚拟机中运行定时器程序(通常称为软件狗),该软件狗通过IPMI (Intelligent Platform Management Interface,智能型平台管理接口)对整个服务器进行健康监控,并以固定频率向该服务器的BMC (Baseboard Management Controller,基板管理控制器)的看门狗定时器(通常称为硬件狗)发送心跳,当特权虚拟机发生死锁,软件狗无法继续运行, 不能向BMC的硬件狗发送心跳,在硬件狗接收不到心跳一定时间后,BMC对整个服务器重新上电以使其重新启动。但是,在现有技术中采用重启整个服务器的方法,造成了存储数据不同步等现象, 而且重启过程花费时间较长,导致业务长时间中断。
发明内容
本发明的实施例提供一种虚拟机死锁后的恢复方法、装置及系统,用以在一定程度上,避免重启整个服务器所带来的问题。本发明的实施例采用如下技术方案一方面,提供一种虚拟机死锁后的恢复方法,包括在虚拟机发生死锁的情况下,向所述虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源;当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程;所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息。另一方面,提供一种虚拟机死锁后的恢复方法,包括响应虚拟机监控器VMM发送的不可屏蔽中断;收集虚拟机的临终遗言,其中所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;
在所述虚拟机的内核引导程序被加载完成之后,根据所述虚拟机的临终遗言恢复业务进程。相应的,一方面,提供一种虚拟机监控器,包括中断模拟器,用于在虚拟机发生死锁的情况下,向所述虚拟机发送不可屏蔽中断;配置单元,用于配置所述虚拟机的虚拟处理器资源;调度加载单元,用于当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程。另一方面,提供一种虚拟机,包括中断处理单元,用于响应虚拟机监控器VMM发送的不可屏蔽中断;收集单元,用于收集虚拟机的临终遗言,其中所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;业务恢复单元,用于在所述虚拟机的内核引导程序被加载完成之后,根据所述虚拟机的临终遗言恢复业务进程。本发明实施例还提供一种宿主机,包括虚拟机监控器和特权虚拟机,所述虚拟机监控器为上述的虚拟机监控器,所述特权虚拟机为上述的虚拟机。本发明实施例还提供一种计算节点,所述计算节点包括硬件层、运行在所述硬件层之上的虚拟机监控器VMM、以及运行在所述VMM之上的虚拟机;所述虚拟机包括特权虚拟机和至少一个业务虚拟机;其中所述VMM用于在特权虚拟机发生死锁的情况下,向所述特权虚拟机发送不可屏蔽中断并配置所述特权虚拟机的虚拟处理器资源;当所述特权虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述特权虚拟机对应的内核引导程序;所述特权虚拟机用于响应VMM发送的不可屏蔽中断;收集所述特权虚拟机的临终遗言,所述临终遗言包括死锁时所述特权虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;在所述特权虚拟机的内核引导程序被加载完成之后,根据所述特权虚拟机的临终遗言恢复业务进程。本发明实施例还提供一种计算机系统,包括至少一个上述的计算节点。可见,本发明实施例提供一种虚拟机死锁后的恢复方法、装置及系统,通过在虚拟机发生死锁的情况下,向虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源; 当虚拟机响应不可屏蔽中断并收集完成临终遗言之后,虚拟机监控器从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,使得虚拟机能够根据收集的临终遗言恢复业务进程;相对于现有技术中使整个计算节点,如服务器下电重启的方法,本发明能够避免重启整个服务器,及时恢复虚拟机的运行,从而能一定程度上避免了业务灾难时间过长、数据不同步等现象。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例提供的一种计算节点;图2为本发明实施例提供的虚拟机结构框图;图3 (a)为本发明实施例提供的一种虚拟机死锁后的恢复方法流程图;图3 (b)为本发明实施例提供的一种虚拟机死锁后的恢复方法流程图;图4(a)为本发明实施例提供的另一种虚拟机死锁后的恢复方法流程图;图4(b)为本发明实施例提供的虚拟机的数据结构与虚拟处理器的数据结构相互引用的不意图;图5为本发明实施例提供的一种虚拟机监控器的框图;图6为本发明实施例提供的一种虚拟机监控器的框图;图7为本发明实施例提供的一种虚拟机的框图;图8为本发明实施例提供的一种虚拟机的框图;图9为本发明实施例提供的一种宿主机的框图;图10为本发明实施例提供的一种计算机系统框图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素。死锁操作系统或软件运行的一种状态在多任务系统下,当一个或多个进程等待系统资源,而资源又被进程本身或其它进程占用时,就形成了死锁。虚拟机监控器(VirtualMachine Monitor,简称 VMM):例如是 Xen Hypervisor。宿主机(Host)作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM);此外,有时VMM和I个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器(如VCPU)、虚拟内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。虚拟机(VirtualMachine,简称 VM)通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。硬件层虚拟化环境运行的硬件平台。其中,硬件层可包括多种硬件,例如某计算节点的硬件层可包括处理器(如CPU)和内存,还可以包括网卡、存储器等等高速/低速输入/输出 (I/O, Input/Output)设备。GuestOS :客户机操作系统。特权虚拟机一种特殊的GeustOS虚拟机,亦可称为驱动域,例如这种特殊的虚拟机在Xen Hypervisor平台上被称作DomO,在该虚拟机中安装了例如网卡、SCSI磁盘等真实物理设备的驱动程序,能检测和直接访问这些真实物理设备。其他虚拟机利用Hypervisor 提供的相应机制通过特权虚拟机访问真实物理设备。NMI (Nonmaskable Interrupt):不可屏蔽中断(即CPU不能屏蔽)。无论状态寄存器中IF位的状态如何,CPU收到有效的匪I必须进行响应,它在被响应时无中断响应周期。不可屏蔽中断通常用于故障处理(例如协处理器运算出错,存储器校验出错,I/O通道校验出错等)。BMC Baseboard Management Controller,基板管理控制器。IPMI :智能型平台管理接口(Intelligent Platform Management Interface)的缩写,是管理基于Intel结构的企业系统中所使用的外围设备采用的一种工业标准,该标准由英特尔、惠普、NEC、美国戴尔电脑和SuperMicro等公司制定。用户可以利用IPMI监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。实施例一如图I所示,本发明实施例提供一种计算节点100,包括硬件层110、运行在硬件层110之上的虚拟机监控器VMM50、以及运行所述VMM之上的虚拟机VM,所述虚拟机VM包括特权虚拟机701和至少一个业务虚拟机702。所述硬件层110包括处理器、硬盘、网卡、内存等。其中,处理器可以是中央处理器 (CPU, Central Processing Unit)、数字信号处理器(DSP, Digital Signal Processing)、 现场可编程门阵列(FPGA, Field Programmable Gate Array)等等。如图2所示,虚拟机主要包括虚拟硬件21、运行在虚拟硬件21之上的客户机操作系统22 ;所述虚拟硬件21包括至少一个虚拟处理器23 ;虚拟内存(VMEM) 24 ;虚拟硬盘 (VDISK) 25以及至少一个虚拟设备(VDEVICE) 26 ;需要说明的是,图2中的虚拟处理器可以随着不同时刻或不同业务需求而改变,而且同一虚拟处理器可以同时被多个虚拟机共享, 所以图2中虚拟处理器本质上为某一时刻虚拟机所对应的虚拟处理器。另外,在特权虚拟机701中还包括运行在客户机操作系统(图中未示意出)之上的物理设备的驱动程序,在业务虚拟机702还包括运行在客户机操作系统之上的业务应用程序,需要说明的是,业务应用程序运行在业务虚拟机中,业务虚拟机需要通过特权虚拟机作为中介,间接访问网络与存储等10资源。本发明实施例中,虚拟机监控器可以指Xen Hypervisor,特权虚拟机指在Xen Hypervisor平台上的特殊虚拟机。这种特殊的虚拟机在Xen Hypervisor平台上也被称作DomO,在其他虚拟化平台上也被称作为驱动域,为了方便描述,本发明实施例使用特权虚拟机的说法,但本发明对此不作限定。其中,在特权虚拟机发生死锁的情况下,所述VMM50用于在特权虚拟机发生死锁的情况下,向所述特权虚拟机发送不可屏蔽中断并配置所述特权虚拟机的虚拟处理器资源;当所述特权虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述特权虚拟机对应的内核引导程序;在本实施例中,第一虚拟处理器可以为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出的第一个虚拟处理器,或者,为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出的信用值和/或权重值最高的虚拟处理器。第一虚拟处理器也就是先配置完成的虚拟处理器,依据配置的先后顺序而来。另外,通过在预定个数的虚拟处理器中选择信用值和权重值最高的虚拟处理器,或者信用值最高,或者权重值最高的虚拟处理器有利于内核引导程序快速进行加载。所述特权虚拟机701用于响应VMM50发送的不可屏蔽中断;收集所述特权虚拟机的临终遗言,所述临终遗言包括死锁时所述特权虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;在所述特权虚拟机的内核引导程序被加载完成之后,根据所述特权虚拟机的临终遗言恢复业务进程。在业务虚拟机702发生死锁的情况下,所述VMM50还用于在业务虚拟机702发生死锁的情况下,向所述业务虚拟机702发送不可屏蔽中断并配置所述业务虚拟机的虚拟处理器资源;当所述业务虚拟机702响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第二虚拟处理器并在所述第二虚拟处理器上加载所述业务虚拟机对应的内核引导程序;在本实施例中,第二虚拟处理器可以为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出的第一个虚拟处理器,或者,为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出的信用值和/或权重值最高的虚拟处理器。第二虚拟处理器也就是先配置完成的虚拟处理器,依据配置的先后顺序而来。另外,通过在预定个数的虚拟处理器中选择信用值和权重值最高的虚拟处理器,或者信用值最高,或者权重值最高的虚拟处理器有利于内核引导程序快速进行加载。需要说明的是,本实施例描述中所采用的第一、第二的说法,没有限定顺序的意思,仅为方便区分而已。这里的第一虚拟处理器用来表示VMM为特权虚拟机所调度的虚拟处理器,这里的第二虚拟处理器用来表示VMM为业务虚拟机所调度的虚拟处理器。所述业务虚拟机702用于响应VMM发送的不可屏蔽中断;收集所述业务虚拟机的临终遗言,所述临终遗言包括死锁时所述业务虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;在所述业务虚拟机的内核引导程序被加载完成之后,根据所述业务虚拟机的临终遗言恢复业务进程。在本发明实施例中,虚拟机收集临终遗言通过VMM从硬件层收集临终遗言,具体而言,虚拟机通过VMM从硬件层的内存中收集死锁时虚拟机对应的各个虚拟处理器的堆栈信息,并且从硬件层的处理器的寄存器收集死锁时虚拟机对应的各个虚拟处理器的寄存器信息。需要指出的,特殊虚拟机和业务虚拟机都可以通过VMM从硬件层收集临终遗言,例如,若在本发明实施例中虚拟处理器为VCPU、硬件层的处理器为CPU,则虚拟机通过VMM从硬件层的内存中收集死锁时虚拟机对应的各个VCPU的堆栈信息,并且从CPU的寄存器收集死锁时虚拟机对应的各个VCPU的寄存器信息。可见,本发明实施例提供一种计算节点,虚拟机监控器通过向虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源,虚拟机响应所述不可屏蔽中断并收集完成临终遗言,再通过虚拟机监控器从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度某个虚拟处理器(如前述的第一虚拟处理器或第二虚拟处理器)并在所述某个虚拟处理器上加载所述虚拟机的内核引导程序,使得虚拟机能够根据收集的临终遗言恢复业务进程;一方面,当特权虚拟机发生死锁时,相对于现有技术中使整个服务器下电的方法,本发明检测到特权虚拟机死锁之后通过VMM在线恢复特权虚拟机,能够及时恢复特权虚拟机的运行,保持整个计算节点运行状态,从而避免了将整个计算节点如整个服务器重启,进而避免了业务灾难时间过长、数据不同步等现象;此外,由于特权虚拟机的快速恢复, 从而自动恢复其他业务虚拟机的访问网络与存储等IO资源的IO功能,进而对其他业务虚拟机不造成影响;另一方面,当业务虚拟机发生死锁时,本发明能够检测到业务虚拟机死锁之后通过VMM在线恢复业务虚拟机,避免将整个服务器重启,及时恢复业务虚拟机的运行, 实现虚拟机内业务的快速恢复,避免了业务虚拟机的业务灾难时间过长、数据不同步等现象。实施例二如图3(a)所示,本发明实施例提供一种虚拟机死锁后的恢复方法,该方法的执行主体可以为虚拟机监控器,具体的,可以是Xen Hypervisor,包括301、在虚拟机发生死锁的情况下,向所述虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源。302、当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程;所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄
存器信息。其中,所述第一虚拟处理器可以为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出的第一个虚拟处理器,或者,可以为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出的信用值和/或权重值最高的虚拟处理器,本发明实施例对此不作限定,可以根据实际应用情况采用不同的调度算法进行实现,比如公平调度算法。在一种实现方式下,步骤301中的所述配置所述虚拟机的虚拟处理器资源,包括获取预定个数的虚拟处理器,其中所述预定个数为死锁时所述虚拟机所对应的虚拟处理器的个数;根据记录的所述虚拟机所对应的一个或多个虚拟处理器的第一资源信息,设置所述预定个数的虚拟处理器的第二资源信息,所述第一资源信息与所述第二资源信息用于表示分布情况相同的虚拟处理器资源,所述第一资源信息和所述第二资源信息都包括信用值和权重值。需要说明的是,在本发明实施例中“第一虚拟处理器”中的“第一”没有限定顺序的意思,仅为方便区分而已。可见,本发明实施例提供一种虚拟机死锁后的恢复方法,从虚拟机监控器一侧来说,向所述虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源,再从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,使得虚拟机能够根据收集的临终遗言恢复业务进程,相对于现有技术中使整个服务器下电重启的方法,本发明能够不用重启整个服务器而能够及时恢复虚拟机的运行,从而避免了业务灾难时间过长、数据不同步等现象。如图3(b)所示,本发明实施例提供一种虚拟机死锁后的恢复方法,该方法的执行主体为虚拟机,具体的,可以是特权虚拟机,亦可以是业务虚拟机,该方法可以包括311、响应虚拟机监控器VMM发送的不可屏蔽中断。具体的,响应虚拟机监控器VMM发送的不可屏蔽中断,结束所述虚拟机上运行的业务312、收集虚拟机的临终遗言,其中所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息。313、在所述虚拟机的内核引导程序被加载完成之后,根据所述虚拟机的临终遗言恢复业务进程。在一种实现方式下,步骤312可以为通过所述VMM从硬件层收集虚拟机的临终遗在一种实现方式下,步骤313可以包括在所述虚拟机的内核引导程序被加载完成之后,根据死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息,识别所述虚拟机死锁前的运行指令和地址,以便所述虚拟机恢复后继续执行所述运行指令的下一条指令;需要说明的是,这里的所述虚拟机死锁前的运行指令和地址,指的是所述虚拟机死锁前的最后时刻所处理的运行指令和地址。更为具体的,在所述虚拟机的内核引导程序被加载完成之后,根据死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息初始化所述虚拟处理器的链表,并根据所述链表中的所述堆栈信息和所述寄存器信息识别所述虚拟机死锁前的运行指令和地址,以便所述虚拟机恢复后继续执行所述运行指令的下一条指令。可见,本发明实施例提供一种虚拟机死锁后的恢复方法,从虚拟机一侧来说,虚拟机响应虚拟机监控器发送的不可屏蔽中断并且收集虚拟机的临终遗言,在虚拟机监控器完成引导程序的加载之后,虚拟机根据该临终遗言来实现业务进程的恢复,相对于现有技术中使整个服务器下电重启的方法,本发明能够不用重启整个服务器而能够及时恢复虚拟机的运行,从而避免了业务灾难时间过长、数据不同步等现象。实施例三如图4(a)所示,本发明实施例提供另一种虚拟机死锁后的恢复方法,包括401、虚拟机监控器VMM初始化监测定时器。402、虚拟机VM按照预定的第一时间间隔产生心跳信息。这里的虚拟机VM可以是特权虚拟机,也可以是业务虚拟机。403、VM在所述VMM提供的调用模式下,按照预定的第二时间间隔发送所述心跳信息至VMM。优选的,该调用模式为超级调用。404、VMM接收VM按照预定的第二时间间隔所发送的心跳信息;VMM根据所述心跳信息,更新监测定时器。需要说明的是,步骤402,403和404中涉及的第一时间间隔和第二时间间隔可以是相同的时间间隔,也可以是不同的时间间隔。应当理解的是,本发明实施例中的时间间隔是可以根据实际应用或经验值灵活设置,本发明对此不做限定。405.VMM根据所述监测定时器的更新频率,判断所述VM是否发生死锁;在VM未发生死锁的情况下,循环执行步骤401-405,在VM发生死锁的情况下,执行以下步骤406-412。406、VMM向发生死锁的所述VM发送不可屏蔽中断。 407、VM响应虚拟机监控器VMM发送的不可屏蔽中断。其中,在本发明实施例中VM响应所述不可屏蔽中断,以结束所述VM上运行的业务,具体的,以结束所述VM上当前运行所有进程。408,VM收集VM的临终遗言,其中所述临终遗言包括死锁时所述VM对应的各个虚拟处理器的堆栈信息和寄存器信息。具体的,VM通过VMM从硬件层收集临终遗言,更具体而言,虚拟机通过VMM从硬件层的内存中收集死锁时虚拟机对应的各个虚拟处理器的堆栈信息,并且从硬件层的处理器的寄存器收集死锁时虚拟机对应的各个虚拟处理器的寄存器信息。本实施例中,以处理器为CPU,虚拟处理器为VCPU举例说明,则虚拟机通过VMM从硬件层的内存中收集死锁时虚拟机对应的各个VCPU的堆栈信息,并且从CPU寄存器收集死锁时虚拟机对应的各个VCPU的寄存器信息。需要指出的,特殊虚拟机和业务虚拟机都可以通过VMM从硬件层收集临终遗言, 本发明实施例适用于特殊虚拟机死锁后的恢复,同样也适用于业务虚拟机死锁后的恢复。在406之后,VMM配置VM的虚拟处理器资源,具体通过以下步骤409和410。409、VMM获取预定个数的虚拟处理器;所述预定个数为死锁时所述VM所对应的虚拟处理器的个数;需要说明的是,本发明并不限定预定个数的虚拟处理器是否是死锁前对应的虚拟处理器,所述预定个数的虚拟处理器可以是VM发生死锁时使用的预定个数的虚拟处理器, 也可以是重新获取到的预定个数的虚拟处理器,例如,在虚拟处理器为VCPU的情况下,在 VM发生死锁之前使用VCPU1、VCPU2和VCPU3,在409步骤中可以获取到VCPU1、VCPU2和 VCPU3,也可以在409步骤中获取到VCPU4、VCPU5和VCPU6。410.VMM根据记录的VM所对应的一个或多个虚拟处理器的第一资源信息,设置所述预定个数的虚拟处理器的第二资源信息,所述第一资源信息与所述第二资源信息用于表示分布情况相同的虚拟处理器资源,所述第一资源信息和所述第二资源信息都包括信用值和权重值。需要说明的是,在本发明所有实施例中使用“第一” “第二”的说法没有限定顺序的意思,仅为方便区分而已。在本发明实施例中,所述第一资源信息与所述第二资源信息分布情况相同,依照记录的第一资源信息对重新获取到的虚拟处理器的第二资源信息进行设置。但是,在本发明实施例中并不限定重新获取到的各个虚拟处理器与记录的各个虚拟处理器的对应关系,例如,若获取预定个数的虚拟处理器为VCPU4、VCPU5和VCPU6,则在 410步骤中,需要将VCPU4、VCPU5和VCPU6的资源信息依次设置为记录的死锁时VCPU1、 VCPU2和VCPU3的资源信息,也可以将VCPU4、VCPU5和VCPU6的资源信息依次设置为记录的死锁时VCPU3、VCPU2和VCPUl的资源信息。更具体而言,在记录的死锁时VCPUl、VCPU2和VCPU3的信用值分别为20、30、50, 权重值分别25、35、40的情况下,当获取的预定个数的虚拟处理器为VCPU4、VCPU5和VCPU6 时,可以将VCPU4、VCPU5和VCPU6的信用值分别设置为20、30、50,权重值分别设置为25、 35,40,也可以将VCPU4、VCPU5和VCPU6的信用值分别设置为50、20、30,权重值分别设置为 40、25、35。在本发明实施例中每一虚拟处理器的信用值和权重值可以相同也可不同,根据实际应用所采用的算法而定,本发明对此不做限定。根据记录的死锁时虚拟机所对应的各个虚拟处理器的资源信息来设置重新获取到的虚拟处理器的资源信息,保证了重新获取到的预定个数的虚拟处理器具有VM死锁前的原始信息。如图4(b)所示,在VMM(例如Xen Hypervisor)中,所有虚拟机相关信息都有特定的数据结构,每个虚拟机的数据结构与vcpu的数据结构相互引用。VMM(例如Xen Hypervisor)管理所有的数据结构,在虚拟机发生死锁之后,直接回收虚拟机对应的vcpu 链表,并根据虚拟机的数据结构中记录的VCPU配置个数,重新初始化相应个数的VCPU,设置与之前相当的信用值、权重等,重新进行调度。例如,VMM(如Xen Hypervisor)回收特权虚拟机的VCPU资源,并重新初始化相应个数的VCPU,初始化之后,将该特权虚拟机的内核引导程序调度到第一个VCPU对象(简称 SVCPUO)上加载运行,VCPUO得到时间片并执行该特权虚拟机的内核引导程序。相应的, 特权虚拟机的内核启动成功后,加载原生驱动,根据临终遗言信息恢复业务进程,恢复前后端IO通道。当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,执行以下411步骤进行。411、VMM从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,其中,所述第一虚拟处理器可以为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出的第一个虚拟处理器,或者,为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出的信用值和/或权重值最高的虚拟处理器。第一个虚拟处理器也就是先配置完成的虚拟处理器,依据配置的先后顺序而来。 另外,通过在预定个数的虚拟处理器中选择信用值和权重值最高的虚拟处理器,或者信用值最高,或者权重值最高的虚拟处理器有利于内核引导程序快速进行加载。412、VM根据所述虚拟机的临终遗言恢复业务进程。具体的,在所述虚拟机的内核引导程序被加载完成之后,根据死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息初始化所述虚拟处理器的链表,并根据所述链表中的所述堆栈信息和所述寄存器信息识别所述虚拟机死锁前的运行指令和地址,以便所述虚拟机恢复后继续执行所述运行指令的下一条指令。可见,本发明实施例提供一种虚拟机死锁后的恢复方法,通过虚拟机发送的心跳信息来更新监测定时器,这样虚拟机监控器能够根据监测定时器的更新频率来判断死锁是否发生,为进行死锁恢复过程提供了基础;进一步的,通过虚拟机监控器向虚拟机发送不可屏蔽中断配置所述虚拟机的虚拟处理器资源,并且从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,使得虚拟机能够根据收集的临终遗言恢复业务进程,相对于现有技术中使整个服务器下电重启的方法,本发明能够避免重启整个服务器,及时恢复虚拟机的运行,从而避免了业务灾难时间过长、数据不同步等现象。实施例四如图5所示,本发明是实施例提供一种虚拟机监控器50,包括中断模拟器51、配置单元52和调度加载单元53。所述中断模拟器51,用于在虚拟机发生死锁的情况下,向所述虚拟机发送不可屏蔽中断。所述配置单元52,用于配置所述虚拟机的虚拟处理器资源。所述调度加载单元53,用于当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程;所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息。其中,所述第一虚拟处理器为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出的第一个虚拟处理器,或者,为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出的信用值和/或权重值最高的虚拟处理器。所述第一虚拟处理器的资源信息包括第一信用值和第一权重值。进一步的,所述配置单元52具体用于,获取预定个数的虚拟处理器,其中所述预定个数为死锁时所述虚拟机所对应的虚拟处理器的个数;根据记录的所述虚拟机所对应的一个或多个虚拟处理器的第一资源信息,设置所述预定个数的虚拟处理器的第二资源信息,所述第一资源信息与所述第二资源信息用于表示分布情况相同的虚拟处理器资源,所述第一资源信息和所述第二资源信息都包括信用值和权重值。进一步的,调度加载单元53具体用于当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出第一个虚拟处理器,或者,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出信用值和/或权重值最高的虚拟处理器并在所述虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程。进一步的,如图6所示,所述虚拟机监控器50还包括监测定时器54,更新单元55 和判断单元56。所述监测定时器54,用于接收虚拟机70按照预定的第二时间间隔所发送的心跳信息。所述更新单元55,用于根据所述心跳信息,更新所述监测定时器54。
14
所述判断单元56,用于根据所述监测定时器的更新频率,判断所述虚拟机70是否发生死锁。所述中断模拟器51,具体用于在所述判断单元56确定所述虚拟机发生死锁的情况下,向所述虚拟机70发送不可屏蔽中断。可见,本发明实施例提供一种虚拟机监控器,该虚拟机监控器能够根据虚拟机发送的心跳信息更新监测定时器,并且根据监测定时器的更新频率判断虚拟机是否发生死锁,为死锁恢复过程提供了基础,进一步的,该虚拟机监控器向虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源,并且从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,从而有助于虚拟机根据收集的临终遗言恢复业务进程,相对于现有技术中使整个服务器下电重启的方法,本发明能够避免重启整个服务器,及时恢复虚拟机的运行,从而避免了业务灾难时间过长、数据不同步等现象。如图7所示,本发明是实施例提供一种虚拟机70,所述虚拟机70可以为特权虚拟机701,也可以为业务虚拟机702。所述虚拟机70包括中断处理单元71、收集单元72和业务恢复单元73。所述中断处理单元71,用于响应虚拟机监控器VMM发送的不可屏蔽中断;所述收集单元72,用于收集虚拟机的临终遗言,其中所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;所述业务恢复单元73,用于在所述虚拟机的内核引导程序被加载完成之后,根据所述虚拟机的临终遗言恢复业务进程。进一步的,所述收集单元72,具体用于通过所述VMM从硬件层收集虚拟机的临终
、pfci 、.
JSH。所述业务恢复单元73,具体用于在所述虚拟机的内核引导程序被加载完成之后, 根据死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息初始化虚拟处理器的链表,并根据所述链表中的所述堆栈信息和所述寄存器信息识别所述虚拟机死锁前的运行指令和地址,以便所述虚拟机恢复后继续执行所述运行指令的下一条指令。进一步的,如图8所示,所述虚拟机70还包括心跳产生发送单元74。所述心跳产生发送单元74,用于按照预定的第一时间间隔产生心跳信息;在所述 VMM提供的调用模式下,按照预定的第二时间间隔向所述VMM发送所述心跳信息,以便所述 VMM判断所述虚拟机是否发生死锁。具体的,所述调用模式为超级调用。可见,本发明实施例提供一种虚拟机,该虚拟机按照预定的第一时间间隔产生心跳信息,以便虚拟机监控器做出是否发生死锁的判断,为死锁恢复提供了基础,进一步的, 虚拟机响应虚拟机监控器发送的不可屏蔽中断并且收集虚拟机的临终遗言,在虚拟机监控器完成引导程序的加载之后,从而能够实现业务进程的恢复,相对于现有技术中使整个服务器下电重启的方法,本发明能够避免重启整个服务器,及时恢复虚拟机的运行,从而避免了业务灾难时间过长、数据不同步等现象。本发明实施例还提供一种宿主机90,包括虚拟机监控器VMM50和特权虚拟机 VM701,其中,所述VMM用于在特权虚拟机发生死锁的情况下,向所述特权虚拟机发送不可屏蔽中断并配置所述特权虚拟机的虚拟处理器资源;当所述特权虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述特权虚拟机对应的内核引导程序。所述特权虚拟机用于响应VMM发送的不可屏蔽中断;收集所述特权虚拟机的临终遗言,所述临终遗言包括死锁时所述特权虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;在所述特权虚拟机的内核引导程序被加载完成之后,根据所述特权虚拟机的临终遗言恢复业务进程。另外,需要说明的是在本发明实施例中,虚拟机监控器和特权虚拟机配合而组成宿主机,此外,宿主机也可以包括虚拟机监控器,而不包括特权虚拟机。可见,本发明实施例提供一种宿主机,通过虚拟机监控器向虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源,并且从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,使得虚拟机能够根据收集的临终遗言恢复业务进程,在特权虚拟机发生死锁的情况下,相对于现有技术中使整个服务器下电重启的方法,本发明能够及时恢复特权虚拟机的运行,从而避免了将整个服务器重启,进而避免了业务灾难时间过长、数据不同步等现象。如图10所示,本发明实施例还提供一种计算机系统,包括至少一个如前述实施例描述的计算节点100。可见,本发明实施例提供的计算机系统中,具体是每个计算机节点中,虚拟机监控器通过向虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源,虚拟机响应所述不可屏蔽中断并收集完成临终遗言,再通过虚拟机监控器从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度某个虚拟处理器(如前述的第一虚拟处理器或第二虚拟处理器)并在所述某个虚拟处理器上加载所述虚拟机的内核引导程序,使得虚拟机能够根据收集的临终遗言恢复业务进程;一方面,当特权虚拟机发生死锁时,相对于现有技术中使整个服务器下电的方法,本发明检测到特权虚拟机死锁之后通过VMM在线恢复特权虚拟机,能够及时恢复特权虚拟机的运行,保持整个计算节点运行状态,从而避免了将整个计算节点如整个服务器重启,进而避免了业务灾难时间过长、数据不同步等现象;此外,由于特权虚拟机的快速恢复,从而自动恢复其他业务虚拟机的访问网络与存储等IO资源的 IO功能,进而对其他业务虚拟机不造成影响;另一方面,当业务虚拟机发生死锁时,本发明能够检测到业务虚拟机死锁之后通过VMM在线恢复业务虚拟机,避免将整个服务器重启, 及时恢复业务虚拟机的运行,实现虚拟机内业务的快速恢复,避免了业务虚拟机的业务灾难时间过长、数据不同步等现象。需要说明的是,前述实施例描述中所采用的第一、第二的说法,没有限定顺序的意思,仅为方便区分而已。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
权利要求
1.一种虚拟机死锁后的恢复方法,其特征在于,包括在虚拟机发生死锁的情况下,向所述虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源;当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程。
2.根据权利要求I所述的方法,其特征在于,所述配置所述虚拟机的虚拟处理器资源,包括获取预定个数的虚拟处理器,其中所述预定个数为死锁时所述虚拟机所对应的虚拟处理器的个数;根据记录的所述虚拟机所对应的一个或多个虚拟处理器的第一资源信息,设置所述预定个数的虚拟处理器的第二资源信息,所述第一资源信息与所述第二资源信息用于表示分布情况相同的虚拟处理器资源,所述第一资源信息和所述第二资源信息都包括信用值和权重值。
3.根据权利要求I所述的方法,其特征在于,所述第一虚拟处理器为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出的第一个虚拟处理器,或者,为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出的信用值和/或权重值最高的虚拟处理器。
4.根据权利要求I 3任一项所述的方法,其特征在于,所述方法还包括接收所述虚拟机按照预定的第二时间间隔所发送的心跳信息;根据所述心跳信息,更新监测定时器;根据所述监测定时器的更新频率,判断所述虚拟机是否发生死锁,如果所述虚拟机发生死锁,则执行所述向所述虚拟机发送不可屏蔽中断。
5.一种虚拟机死锁后的恢复方法,其特征在于,包括响应虚拟机监控器VMM发送的不可屏蔽中断;收集虚拟机的临终遗言,其中所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;在所述虚拟机的内核引导程序被加载完成之后,根据所述虚拟机的临终遗言恢复业务进程。
6.根据权利要求5所述的方法,其特征在于,所述收集虚拟机的临终遗言,包括通过所述VMM从硬件层收集虚拟机的临终遗言,其中所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息。
7.根据权利要求5所述的方法,其特征在于,所述在所述虚拟机的内核引导程序被加载完成之后,根据所述虚拟机的临终遗言恢复业务进程,包括在所述虚拟机的内核引导程序被加载完成之后,根据死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息初始化所述虚拟处理器的链表,并根据所述链表中的所述堆栈信息和所述寄存器信息识别所述虚拟机死锁前的运行指令和地址,以便所述虚拟机恢复后继续执行所述运行指令的下一条指令。
8.根据权利要求5至7任一项所述的方法,其特征在于,还包括按照预定的第一时间间隔产生心跳信息;在所述VMM提供的调用模式下,按照预定的第二时间间隔向所述VMM发送所述心跳信息,以便所述VMM判断所述虚拟机是否发生死锁。
9.根据权利要求8所述的方法,其特征在于,所述调用模式为超级调用。
10.一种虚拟机监控器,其特征在于,包括中断模拟器,用于在虚拟机发生死锁的情况下,向所述虚拟机发送不可屏蔽中断;配置单元,用于配置所述虚拟机的虚拟处理器资源;调度加载单元,用于当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后, 从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程。
11.根据权利要求10所述的虚拟机监控器,其特征在于,所述配置单元具体用于,获取预定个数的虚拟处理器,其中所述预定个数为死锁时所述虚拟机所对应的虚拟处理器的个数;根据记录的所述虚拟机所对应的一个或多个虚拟处理器的第一资源信息,设置所述预定个数的虚拟处理器的第二资源信息,所述第一资源信息与所述第二资源信息用于表示分布情况相同的虚拟处理器资源,所述第一资源信息和所述第二资源信息都包括信用值和权重值。
12.根据权利要求10所述的虚拟机监控器,其特征在于,所述调度加载单元具体用于当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出第一个虚拟处理器,或者,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出信用值和/或权重值最高的虚拟处理器并在所述虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程。
13.根据权利要求10 12任一项所述的虚拟机监控器,其特征在于,所述虚拟机监控器还包括监测定时器,用于接收所述虚拟机按照预定的第二时间间隔所发送的心跳信息;更新单元,用于根据所述心跳信息,更新所述监测定时器;判断单元,用于根据所述监测定时器的更新频率,判断所述虚拟机是否发生死锁; 所述中断模拟器具体用于在所述判断单元确定所述虚拟机发生死锁的情况下,向所述虚拟机发送不可屏蔽中断。
14.一种虚拟机,其特征在于,包括中断处理单元,用于响应虚拟机监控器VMM发送的不可屏蔽中断;收集单元,用于收集虚拟机的临终遗言,其中所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;业务恢复单元,用于在所述虚拟机的内核引导程序被加载完成之后,根据所述虚拟机的临终遗言恢复业务进程。
15.根据权利要求14所述的虚拟机,其特征在于,所述收集单元具体用于通过所述VMM 从硬件层收集虚拟机的临终遗言,其中所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息。
16.根据权利要求14所述的虚拟机,其特征在于,所述业务恢复单元具体用于在所述虚拟机的内核引导程序被加载完成之后,根据死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息初始化所述虚拟处理器的链表,并根据所述链表中的所述堆栈信息和所述寄存器信息识别所述虚拟机死锁前的运行指令和地址,以便所述虚拟机恢复后继续执行所述运行指令的下一条指令。
17.根据权利要求14至16任一项所述的虚拟机,其特征在于,还包括心跳产生发送单元,用于按照预定的第一时间间隔产生心跳信息;在所述VMM提供的调用模式下,按照预定的第二时间间隔向所述VMM发送所述心跳信息,以便所述VMM判断所述虚拟机是否发生死锁。
18.一种宿主机,其特征在于,包括虚拟机监控器和特权虚拟机,其中,所述虚拟机监控器为权利要求10 13中任一项权利要求所述的虚拟机监控器,所述特权虚拟机为权利要求14 17中任一项权利要求所述的虚拟机。
19.一种计算节点,其特征在于,所述计算节点包括硬件层、运行在所述硬件层之上的虚拟机监控器VMM、以及运行在所述VMM之上的虚拟机;所述虚拟机包括特权虚拟机和至少一个业务虚拟机,其中所述VMM用于在所述特权虚拟机发生死锁的情况下,向所述特权虚拟机发送不可屏蔽中断并配置所述特权虚拟机的虚拟处理器资源;当所述特权虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述特权虚拟机对应的内核引导程序;所述特权虚拟机用于响应所述VMM发送的不可屏蔽中断;收集所述特权虚拟机的临终遗言,所述临终遗言包括死锁时所述特权虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;在所述特权虚拟机的内核引导程序被加载完成之后,根据所述特权虚拟机的临终遗言恢复业务进程。
20.根据权利要求19所述的装置,其特征在于,所述VMM还用于在所述业务虚拟机发生死锁的情况下,向所述业务虚拟机发送不可屏蔽中断并配置所述业务虚拟机的虚拟处理器资源;当所述业务虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第二虚拟处理器并在所述第二虚拟处理器上加载所述业务虚拟机对应的内核引导程序;所述业务虚拟机用于响应所述VMM发送的不可屏蔽中断;收集所述业务虚拟机的临终遗言,所述临终遗言包括死锁时所述业务虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;在所述业务虚拟机的内核引导程序被加载完成之后,根据所述业务虚拟机的临终遗言恢复业务进程。
21.一种计算机系统,其特征在于,包括至少一个如权利要求19 20任一项所述的计算节点。
全文摘要
本发明实施例提供一种虚拟机死锁后的恢复方法、装置及系统,用以在一定程度上,避免重启整个服务器所带来的问题。该方法包括在虚拟机发生死锁的情况下,向所述虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源;当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程。本发明实施例适用于虚拟机发生死锁的情景。
文档编号G06F11/07GK102609324SQ201210004749
公开日2012年7月25日 申请日期2012年1月9日 优先权日2012年1月9日
发明者范良 申请人:华为技术有限公司