[go: up one dir, main page]

CN102609324A - Method, device and system for restoring deadlock of virtual machine - Google Patents

Method, device and system for restoring deadlock of virtual machine Download PDF

Info

Publication number
CN102609324A
CN102609324A CN2012100047494A CN201210004749A CN102609324A CN 102609324 A CN102609324 A CN 102609324A CN 2012100047494 A CN2012100047494 A CN 2012100047494A CN 201210004749 A CN201210004749 A CN 201210004749A CN 102609324 A CN102609324 A CN 102609324A
Authority
CN
China
Prior art keywords
virtual machine
virtual
processor
deadlock
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012100047494A
Other languages
Chinese (zh)
Other versions
CN102609324B (en
Inventor
范良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210004749.4A priority Critical patent/CN102609324B/en
Publication of CN102609324A publication Critical patent/CN102609324A/en
Priority to PCT/CN2012/087039 priority patent/WO2013104245A1/en
Application granted granted Critical
Publication of CN102609324B publication Critical patent/CN102609324B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

An embodiment of the invention provides a method, a device and a system for restoring deadlock of a virtual machine, which solve the problem of restarting an integral server to some extent. The method for restoring deadlock of the virtual machine includes: transmitting non-maskable interrupt to the virtual machine and configuring virtual processor resources of the virtual machine in case of deadlock of the virtual machine; dispatching a first virtual processor from the configured virtual processor resources comprising at least one virtual processor and loading an inner core guiding program of the virtual machine to the first virtual processor after the virtual machine makes response to the non-maskable interrupt and collects last words, so that the virtual machine can restore service progress according to the collected last words. The method, the device and the system for restoring deadlock of the virtual machine in the embodiment are applicable to cases of deadlock of the virtual machine.

Description

一种虚拟机死锁后的恢复方法、装置及系统Method, device and system for recovering virtual machine after deadlock

技术领域 technical field

本发明涉及计算机技术领域,尤其涉及一种虚拟机死锁后的恢复方法、装置及系统。The invention relates to the field of computer technology, in particular to a recovery method, device and system for a virtual machine after a deadlock.

背景技术 Background technique

在云计算系统中,计算节点大量采用虚拟化方案,在虚拟化环境下,所有的虚拟机当中一般只有一个特殊的虚拟机(亦可称为特权虚拟机)承担管理功能并控制真实物理资源的访问。In a cloud computing system, a large number of computing nodes adopt virtualization solutions. In a virtualized environment, generally only one special virtual machine (also called a privileged virtual machine) among all virtual machines undertakes management functions and controls real physical resources. access.

当特权虚拟机发生死锁,其中的网卡或磁盘设备驱动等无法正常工作,无法满足客户操作系统的IO请求,造成整个计算节点上所有虚拟机业务无法正常开展。为了解决这一问题,现有技术中通过重启整个计算节点如服务器来恢复特权虚拟机的正常运行,例如,在特权虚拟机中运行定时器程序(通常称为软件狗),该软件狗通过IPMI(Intelligent Platform Management Interface,智能型平台管理接口)对整个服务器进行健康监控,并以固定频率向该服务器的BMC(Baseboard Management Controller,基板管理控制器)的看门狗定时器(通常称为硬件狗)发送心跳,当特权虚拟机发生死锁,软件狗无法继续运行,不能向BMC的硬件狗发送心跳,在硬件狗接收不到心跳一定时间后,BMC对整个服务器重新上电以使其重新启动。When a deadlock occurs in a privileged virtual machine, the network card or disk device driver cannot work normally, and cannot meet the IO request of the guest operating system, resulting in the failure of all virtual machine services on the entire computing node. In order to solve this problem, in the prior art, the normal operation of the privileged virtual machine is restored by restarting the entire computing node such as a server. (Intelligent Platform Management Interface, Intelligent Platform Management Interface) monitors the health of the entire server, and sends a fixed frequency to the watchdog timer (usually called a hardware dog) of the BMC (Baseboard Management Controller, Baseboard Management Controller) of the server. ) to send heartbeats. When a deadlock occurs in a privileged virtual machine, the software dog cannot continue to run and cannot send heartbeats to the hardware dog of the BMC. After the hardware dog does not receive the heartbeat for a certain period of time, the BMC will power on the entire server to restart it. .

但是,在现有技术中采用重启整个服务器的方法,造成了存储数据不同步等现象,而且重启过程花费时间较长,导致业务长时间中断。However, the method of restarting the entire server in the prior art causes phenomena such as out-of-synchronization of stored data, and the restart process takes a long time, resulting in long-term service interruption.

发明内容 Contents of the invention

本发明的实施例提供一种虚拟机死锁后的恢复方法、装置及系统,用以在一定程度上,避免重启整个服务器所带来的问题。Embodiments of the present invention provide a recovery method, device and system for a virtual machine after a deadlock, so as to avoid problems caused by restarting the entire server to a certain extent.

本发明的实施例采用如下技术方案:Embodiments of the invention adopt the following technical solutions:

一方面,提供一种虚拟机死锁后的恢复方法,包括:On the one hand, a recovery method after a virtual machine deadlock is provided, including:

在虚拟机发生死锁的情况下,向所述虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源;In the case of a virtual machine deadlock, sending a non-maskable interrupt to the virtual machine and configuring virtual processor resources of the virtual machine;

当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程;所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息。After the virtual machine responds to the non-maskable interrupt and collects the last words, schedule the first virtual processor from one or more virtual processors included in the configured virtual processor resources and Load the kernel boot program of the virtual machine on the virtual processor, so that the virtual machine resumes the business process according to the collected last words; the last last words include stack information and stack information of each virtual processor corresponding to the virtual machine when deadlocked Register information.

另一方面,提供一种虚拟机死锁后的恢复方法,包括:On the other hand, a recovery method after a virtual machine deadlock is provided, including:

响应虚拟机监控器VMM发送的不可屏蔽中断;Respond to non-maskable interrupts sent by the virtual machine monitor VMM;

收集虚拟机的临终遗言,其中所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;Collecting the last words of the virtual machine, wherein the last words include stack information and register information of each virtual processor corresponding to the virtual machine at the time of deadlock;

在所述虚拟机的内核引导程序被加载完成之后,根据所述虚拟机的临终遗言恢复业务进程。After the kernel boot program of the virtual machine is loaded, the service process is resumed according to the last words of the virtual machine.

相应的,一方面,提供一种虚拟机监控器,包括:Correspondingly, on the one hand, a virtual machine monitor is provided, including:

中断模拟器,用于在虚拟机发生死锁的情况下,向所述虚拟机发送不可屏蔽中断;An interrupt simulator, configured to send a non-maskable interrupt to the virtual machine when a deadlock occurs in the virtual machine;

配置单元,用于配置所述虚拟机的虚拟处理器资源;a configuration unit, configured to configure virtual processor resources of the virtual machine;

调度加载单元,用于当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程。A scheduling loading unit, configured to schedule a first virtual processor from one or more virtual processors included in the configured virtual processor resource after the virtual machine responds to the non-maskable interrupt and collects the last words And load the kernel boot program of the virtual machine on the first virtual processor, so that the virtual machine resumes the business process according to the collected last words.

另一方面,提供一种虚拟机,包括:On the other hand, a virtual machine is provided, including:

中断处理单元,用于响应虚拟机监控器VMM发送的不可屏蔽中断;The interrupt processing unit is used to respond to the non-maskable interrupt sent by the virtual machine monitor VMM;

收集单元,用于收集虚拟机的临终遗言,其中所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;A collection unit, configured to collect the last words of the virtual machine, wherein the last words include stack information and register information of each virtual processor corresponding to the virtual machine at the time of deadlock;

业务恢复单元,用于在所述虚拟机的内核引导程序被加载完成之后,根据所述虚拟机的临终遗言恢复业务进程。The service restoration unit is configured to restore the service process according to the last words of the virtual machine after the kernel boot program of the virtual machine is loaded.

本发明实施例还提供一种宿主机,包括虚拟机监控器和特权虚拟机,所述虚拟机监控器为上述的虚拟机监控器,所述特权虚拟机为上述的虚拟机。An embodiment of the present invention also provides a host machine, including a virtual machine monitor and a privileged virtual machine, where the virtual machine monitor is the above-mentioned virtual machine monitor, and the privileged virtual machine is the above-mentioned virtual machine.

本发明实施例还提供一种计算节点,所述计算节点包括:硬件层、运行在所述硬件层之上的虚拟机监控器VMM、以及运行在所述VMM之上的虚拟机;所述虚拟机包括特权虚拟机和至少一个业务虚拟机;其中:The embodiment of the present invention also provides a computing node, which includes: a hardware layer, a virtual machine monitor VMM running on the hardware layer, and a virtual machine running on the VMM; the virtual Machines include privileged virtual machines and at least one business virtual machine; where:

所述VMM用于在特权虚拟机发生死锁的情况下,向所述特权虚拟机发送不可屏蔽中断并配置所述特权虚拟机的虚拟处理器资源;当所述特权虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述特权虚拟机对应的内核引导程序;The VMM is configured to send a non-maskable interrupt to the privileged virtual machine and configure virtual processor resources of the privileged virtual machine when a deadlock occurs in the privileged virtual machine; when the privileged virtual machine responds to the non-maskable After interrupting and collecting the last words, scheduling the first virtual processor from one or more virtual processors included in the configured virtual processor resource and loading the privileged virtual machine on the first virtual processor The corresponding kernel bootloader;

所述特权虚拟机用于响应VMM发送的不可屏蔽中断;收集所述特权虚拟机的临终遗言,所述临终遗言包括死锁时所述特权虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;在所述特权虚拟机的内核引导程序被加载完成之后,根据所述特权虚拟机的临终遗言恢复业务进程。The privileged virtual machine is used to respond to the non-maskable interrupt sent by the VMM; collect the last words of the privileged virtual machine, and the last words include stack information and register information of each virtual processor corresponding to the privileged virtual machine at the time of deadlock ; After the kernel boot program of the privileged virtual machine is loaded, resume the service process according to the last words of the privileged virtual machine.

本发明实施例还提供一种计算机系统,包括至少一个上述的计算节点。An embodiment of the present invention also provides a computer system, including at least one computing node described above.

可见,本发明实施例提供一种虚拟机死锁后的恢复方法、装置及系统,通过在虚拟机发生死锁的情况下,向虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源;当虚拟机响应不可屏蔽中断并收集完成临终遗言之后,虚拟机监控器从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,使得虚拟机能够根据收集的临终遗言恢复业务进程;相对于现有技术中使整个计算节点,如服务器下电重启的方法,本发明能够避免重启整个服务器,及时恢复虚拟机的运行,从而能一定程度上避免了业务灾难时间过长、数据不同步等现象。It can be seen that the embodiments of the present invention provide a recovery method, device and system for a virtual machine after a deadlock, by sending a non-maskable interrupt to the virtual machine and configuring the virtual processor of the virtual machine in the case of a deadlock of the virtual machine resources; when the virtual machine responds to the non-maskable interrupt and collects the last words, the virtual machine monitor schedules the first virtual processor from one or more virtual processors included in the configured virtual processor resource and executes the The kernel boot program of the virtual machine is loaded on the first virtual processor, so that the virtual machine can restore the business process according to the collected last words; compared with the method of powering off and restarting the entire computing node in the prior art, the present invention It can avoid restarting the entire server and restore the operation of the virtual machine in a timely manner, thus avoiding the long-term business disaster and out-of-sync data to a certain extent.

附图说明 Description of drawings

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings that need to be used in the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description are only These are some embodiments of the present invention. Those skilled in the art can also obtain other drawings based on these drawings without creative work.

图1为本发明实施例提供的一种计算节点;FIG. 1 is a computing node provided by an embodiment of the present invention;

图2为本发明实施例提供的虚拟机结构框图;FIG. 2 is a structural block diagram of a virtual machine provided by an embodiment of the present invention;

图3(a)为本发明实施例提供的一种虚拟机死锁后的恢复方法流程图;FIG. 3(a) is a flow chart of a recovery method for a virtual machine after a deadlock provided by an embodiment of the present invention;

图3(b)为本发明实施例提供的一种虚拟机死锁后的恢复方法流程图;FIG. 3(b) is a flow chart of a recovery method for a virtual machine after a deadlock provided by an embodiment of the present invention;

图4(a)为本发明实施例提供的另一种虚拟机死锁后的恢复方法流程图;FIG. 4(a) is a flow chart of another recovery method for a virtual machine after a deadlock provided by an embodiment of the present invention;

图4(b)为本发明实施例提供的虚拟机的数据结构与虚拟处理器的数据结构相互引用的示意图;FIG. 4(b) is a schematic diagram of mutual reference between the data structure of the virtual machine and the data structure of the virtual processor provided by the embodiment of the present invention;

图5为本发明实施例提供的一种虚拟机监控器的框图;FIG. 5 is a block diagram of a virtual machine monitor provided by an embodiment of the present invention;

图6为本发明实施例提供的一种虚拟机监控器的框图;FIG. 6 is a block diagram of a virtual machine monitor provided by an embodiment of the present invention;

图7为本发明实施例提供的一种虚拟机的框图;FIG. 7 is a block diagram of a virtual machine provided by an embodiment of the present invention;

图8为本发明实施例提供的一种虚拟机的框图;FIG. 8 is a block diagram of a virtual machine provided by an embodiment of the present invention;

图9为本发明实施例提供的一种宿主机的框图;FIG. 9 is a block diagram of a host provided by an embodiment of the present invention;

图10为本发明实施例提供的一种计算机系统框图。Fig. 10 is a block diagram of a computer system provided by an embodiment of the present invention.

具体实施方式 Detailed ways

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。The following will clearly and completely describe the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only some, not all, embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by persons of ordinary skill in the art without making creative efforts belong to the protection scope of the present invention.

为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素。In order to facilitate understanding of the embodiments of the present invention, several elements that will be introduced in the description of the embodiments of the present invention are firstly introduced here.

死锁:操作系统或软件运行的一种状态:在多任务系统下,当一个或多个进程等待系统资源,而资源又被进程本身或其它进程占用时,就形成了死锁。Deadlock: A state of operating system or software operation: In a multitasking system, when one or more processes are waiting for system resources, and the resources are occupied by the process itself or other processes, a deadlock is formed.

虚拟机监控器(Virtual Machine Monitor,简称VMM):例如是Xen Hypervisor。Virtual Machine Monitor (Virtual Machine Monitor, referred to as VMM): such as Xen Hypervisor.

宿主机(Host):Host:

作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM);此外,有时VMM和1个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器(如VCPU)、虚拟内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。As a management layer, it is used to complete the management and allocation of hardware resources; present a virtual hardware platform for virtual machines; realize the scheduling and isolation of virtual machines. Among them, the Host may be a virtual machine monitor (VMM); in addition, sometimes the VMM cooperates with a privileged virtual machine, and the combination of the two forms the Host. Wherein, the virtual hardware platform provides various hardware resources for each virtual machine running on it, such as virtual processor (such as VCPU), virtual memory, virtual disk, virtual network card and so on. Wherein, the virtual disk may correspond to a file or a logical block device of the Host. The virtual machine runs on the virtual hardware platform prepared by the host, and one or more virtual machines run on the host.

虚拟机(Virtual Machine,简称VM):Virtual Machine (Virtual Machine, VM for short):

通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。One or more virtual computers can be simulated on a physical computer through virtual machine software, and these virtual machines work just like real computers. Operating systems and applications can be installed on virtual machines, and virtual machines can also Access network resources. To the applications running in the virtual machine, the virtual machine looks like working on a real computer.

硬件层:Hardware layer:

虚拟化环境运行的硬件平台。其中,硬件层可包括多种硬件,例如某计算节点的硬件层可包括处理器(如CPU)和内存,还可以包括网卡、存储器等等高速/低速输入/输出(I/O,Input/Output)设备。The hardware platform on which the virtualization environment runs. Wherein, the hardware layer may include a variety of hardware, for example, the hardware layer of a computing node may include processors (such as CPU) and memory, and may also include high-speed/low-speed input/output (I/O, Input/Output )equipment.

GuestOS:客户机操作系统。GuestOS: Guest operating system.

特权虚拟机:一种特殊的GeustOS虚拟机,亦可称为驱动域,例如这种特殊的虚拟机在Xen Hypervisor平台上被称作Dom0,在该虚拟机中安装了例如网卡、SCSI磁盘等真实物理设备的驱动程序,能检测和直接访问这些真实物理设备。其他虚拟机利用Hypervisor提供的相应机制通过特权虚拟机访问真实物理设备。Privileged virtual machine: a special GeustOS virtual machine, which can also be called a driver domain. For example, this special virtual machine is called Dom0 on the Xen Hypervisor platform, and virtual machines such as network cards and SCSI disks are installed in the virtual machine. Drivers for physical devices can detect and directly access these real physical devices. Other virtual machines use the corresponding mechanism provided by the Hypervisor to access real physical devices through privileged virtual machines.

NMI(Nonmaskable Interrupt):不可屏蔽中断(即CPU不能屏蔽)。无论状态寄存器中IF位的状态如何,CPU收到有效的NMI必须进行响应,它在被响应时无中断响应周期。不可屏蔽中断通常用于故障处理(例如:协处理器运算出错,存储器校验出错,I/O通道校验出错等)。NMI (Nonmaskable Interrupt): non-maskable interrupt (that is, the CPU cannot be masked). Regardless of the state of the IF bit in the status register, the CPU must respond when it receives a valid NMI, and there is no interrupt response cycle when it is responded. Non-maskable interrupts are usually used for fault handling (for example: coprocessor operation error, memory verification error, I/O channel verification error, etc.).

BMC:Baseboard Management Controller,基板管理控制器。BMC: Baseboard Management Controller, Baseboard Management Controller.

IPMI:智能型平台管理接口(Intelligent Platform ManagementInterface)的缩写,是管理基于Intel结构的企业系统中所使用的外围设备采用的一种工业标准,该标准由英特尔、惠普、NEC、美国戴尔电脑和SuperMicro等公司制定。用户可以利用IPMI监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。IPMI: Abbreviation of Intelligent Platform Management Interface (Intelligent Platform Management Interface), is an industrial standard used to manage peripherals used in enterprise systems based on Intel structure. Wait for the company to formulate. Users can use IPMI to monitor the physical health characteristics of the server, such as temperature, voltage, fan working status, power supply status, etc.

实施例一Embodiment one

如图1所示,本发明实施例提供一种计算节点100,包括:As shown in FIG. 1, an embodiment of the present invention provides a computing node 100, including:

硬件层110、运行在硬件层110之上的虚拟机监控器VMM50、以及运行所述VMM之上的虚拟机VM,所述虚拟机VM包括特权虚拟机701和至少一个业务虚拟机702。The hardware layer 110 , the virtual machine monitor VMM50 running on the hardware layer 110 , and the virtual machine VM running on the VMM, the virtual machine VM includes a privileged virtual machine 701 and at least one service virtual machine 702 .

所述硬件层110包括处理器、硬盘、网卡、内存等。其中,处理器可以是中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processing)、现场可编程门阵列(FPGA,Field Programmable Gate Array)等等。The hardware layer 110 includes a processor, a hard disk, a network card, a memory, and the like. Wherein, the processor may be a central processing unit (CPU, Central Processing Unit), a digital signal processor (DSP, Digital Signal Processing), a field programmable gate array (FPGA, Field Programmable Gate Array) and the like.

如图2所示,虚拟机主要包括:虚拟硬件21、运行在虚拟硬件21之上的客户机操作系统22;所述虚拟硬件21包括:至少一个虚拟处理器23;虚拟内存(VMEM)24;虚拟硬盘(VDISK)25以及至少一个虚拟设备(VDEVICE)26;需要说明的是,图2中的虚拟处理器可以随着不同时刻或不同业务需求而改变,而且同一虚拟处理器可以同时被多个虚拟机共享,所以图2中虚拟处理器本质上为某一时刻虚拟机所对应的虚拟处理器。另外,在特权虚拟机701中还包括运行在客户机操作系统(图中未示意出)之上的物理设备的驱动程序,在业务虚拟机702还包括运行在客户机操作系统之上的业务应用程序,需要说明的是,业务应用程序运行在业务虚拟机中,业务虚拟机需要通过特权虚拟机作为中介,间接访问网络与存储等IO资源。As shown in Figure 2, the virtual machine mainly includes: virtual hardware 21, a guest operating system 22 running on the virtual hardware 21; the virtual hardware 21 includes: at least one virtual processor 23; virtual memory (VMEM) 24; A virtual hard disk (VDISK) 25 and at least one virtual device (VDEVICE) 26; it should be noted that the virtual processor in Figure 2 can change with different times or different business needs, and the same virtual processor can be used by multiple The virtual machine is shared, so the virtual processor in Figure 2 is essentially the virtual processor corresponding to the virtual machine at a certain moment. In addition, the privileged virtual machine 701 also includes drivers for physical devices running on the guest operating system (not shown in the figure), and the business virtual machine 702 also includes business applications running on the guest operating system. It should be noted that business applications run in business virtual machines, and business virtual machines need to use privileged virtual machines as an intermediary to indirectly access IO resources such as network and storage.

本发明实施例中,虚拟机监控器可以指Xen Hypervisor,特权虚拟机指在Xen Hypervisor平台上的特殊虚拟机。这种特殊的虚拟机在Xen Hypervisor平台上也被称作Dom0,在其他虚拟化平台上也被称作为驱动域,为了方便描述,本发明实施例使用特权虚拟机的说法,但本发明对此不作限定。In the embodiment of the present invention, the virtual machine monitor can refer to Xen Hypervisor, and the privileged virtual machine refers to a special virtual machine on the Xen Hypervisor platform. This special virtual machine is also called Dom0 on the Xen Hypervisor platform, and is also called the driver domain on other virtualization platforms. For convenience of description, the embodiment of the present invention uses the statement of a privileged virtual machine, but the present invention does not Not limited.

其中,在特权虚拟机发生死锁的情况下,所述VMM50用于在特权虚拟机发生死锁的情况下,向所述特权虚拟机发送不可屏蔽中断并配置所述特权虚拟机的虚拟处理器资源;当所述特权虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述特权虚拟机对应的内核引导程序;Wherein, in the case of a deadlock in the privileged virtual machine, the VMM50 is used to send a non-maskable interrupt to the privileged virtual machine and configure the virtual processor of the privileged virtual machine in the case of a deadlock in the privileged virtual machine resources; after the privileged virtual machine responds to the non-maskable interrupt and collects the last words, schedule the first virtual processor from one or more virtual processors included in the configured virtual processor resources and Loading the kernel boot program corresponding to the privileged virtual machine on the first virtual processor;

在本实施例中,第一虚拟处理器可以为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出的第一个虚拟处理器,或者,为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出的信用值和/或权重值最高的虚拟处理器。In this embodiment, the first virtual processor may be the first virtual processor randomly scheduled from one or more virtual processors included in the configured virtual processor resource, or the first virtual processor that is configured from Among the one or more virtual processors included in the virtual processor resource, the scheduled virtual processor has the highest credit value and/or weight value.

第一虚拟处理器也就是先配置完成的虚拟处理器,依据配置的先后顺序而来。另外,通过在预定个数的虚拟处理器中选择信用值和权重值最高的虚拟处理器,或者信用值最高,或者权重值最高的虚拟处理器有利于内核引导程序快速进行加载。The first virtual processor is the virtual processor that is configured first, and comes according to the order of configuration. In addition, selecting the virtual processor with the highest credit value and the highest weight value among the predetermined number of virtual processors, or the virtual processor with the highest credit value or the highest weight value facilitates the fast loading of the kernel boot program.

所述特权虚拟机701用于响应VMM50发送的不可屏蔽中断;收集所述特权虚拟机的临终遗言,所述临终遗言包括死锁时所述特权虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;在所述特权虚拟机的内核引导程序被加载完成之后,根据所述特权虚拟机的临终遗言恢复业务进程。The privileged virtual machine 701 is used to respond to the non-maskable interrupt sent by the VMM50; collect the last words of the privileged virtual machine, and the last words include the stack information and registers of each virtual processor corresponding to the privileged virtual machine at the time of deadlock Information; after the kernel boot program of the privileged virtual machine is loaded, resume the service process according to the last words of the privileged virtual machine.

在业务虚拟机702发生死锁的情况下,所述VMM50还用于在业务虚拟机702发生死锁的情况下,向所述业务虚拟机702发送不可屏蔽中断并配置所述业务虚拟机的虚拟处理器资源;当所述业务虚拟机702响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第二虚拟处理器并在所述第二虚拟处理器上加载所述业务虚拟机对应的内核引导程序;In the case of a deadlock in the service virtual machine 702, the VMM50 is also used to send a non-maskable interrupt to the service virtual machine 702 and configure the virtual Processor resource: after the service virtual machine 702 responds to the non-maskable interrupt and collects the last words, schedule the second virtual processor from one or more virtual processors included in the configured virtual processor resource And loading the kernel boot program corresponding to the service virtual machine on the second virtual processor;

在本实施例中,第二虚拟处理器可以为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出的第一个虚拟处理器,或者,为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出的信用值和/或权重值最高的虚拟处理器。In this embodiment, the second virtual processor may be the first virtual processor randomly scheduled from one or more virtual processors included in the configured virtual processor resources, or the second virtual processor is the Among the one or more virtual processors included in the virtual processor resource, the scheduled virtual processor has the highest credit value and/or weight value.

第二虚拟处理器也就是先配置完成的虚拟处理器,依据配置的先后顺序而来。另外,通过在预定个数的虚拟处理器中选择信用值和权重值最高的虚拟处理器,或者信用值最高,或者权重值最高的虚拟处理器有利于内核引导程序快速进行加载。The second virtual processor is the virtual processor configured first, and comes according to the sequence of configuration. In addition, selecting the virtual processor with the highest credit value and the highest weight value among the predetermined number of virtual processors, or the virtual processor with the highest credit value or the highest weight value facilitates the fast loading of the kernel boot program.

需要说明的是,本实施例描述中所采用的第一、第二的说法,没有限定顺序的意思,仅为方便区分而已。这里的第一虚拟处理器用来表示VMM为特权虚拟机所调度的虚拟处理器,这里的第二虚拟处理器用来表示VMM为业务虚拟机所调度的虚拟处理器。It should be noted that the terms first and second used in the description of this embodiment do not mean to limit the sequence, but are only for convenience of distinction. The first virtual processor here is used to indicate the virtual processor scheduled by the VMM for the privileged virtual machine, and the second virtual processor here is used to indicate the virtual processor scheduled by the VMM for the service virtual machine.

所述业务虚拟机702用于响应VMM发送的不可屏蔽中断;收集所述业务虚拟机的临终遗言,所述临终遗言包括死锁时所述业务虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;在所述业务虚拟机的内核引导程序被加载完成之后,根据所述业务虚拟机的临终遗言恢复业务进程。The service virtual machine 702 is used to respond to the non-maskable interrupt sent by the VMM; collect the last words of the service virtual machine, and the last words include the stack information and registers of each virtual processor corresponding to the service virtual machine at the time of deadlock Information; after the kernel boot program of the service virtual machine is loaded, resume the service process according to the last words of the service virtual machine.

在本发明实施例中,虚拟机收集临终遗言通过VMM从硬件层收集临终遗言,具体而言,虚拟机通过VMM从硬件层的内存中收集死锁时虚拟机对应的各个虚拟处理器的堆栈信息,并且从硬件层的处理器的寄存器收集死锁时虚拟机对应的各个虚拟处理器的寄存器信息。需要指出的,特殊虚拟机和业务虚拟机都可以通过VMM从硬件层收集临终遗言,例如,若在本发明实施例中虚拟处理器为VCPU、硬件层的处理器为CPU,则虚拟机通过VMM从硬件层的内存中收集死锁时虚拟机对应的各个VCPU的堆栈信息,并且从CPU的寄存器收集死锁时虚拟机对应的各个VCPU的寄存器信息。In the embodiment of the present invention, the virtual machine collects the last words from the hardware layer through the VMM, specifically, the virtual machine collects the stack information of each virtual processor corresponding to the virtual machine at the time of deadlock from the memory of the hardware layer through the VMM , and collect the register information of each virtual processor corresponding to the virtual machine at the time of deadlock from the registers of the processor at the hardware layer. It should be pointed out that both the special virtual machine and the business virtual machine can collect last words from the hardware layer through the VMM. The stack information of each VCPU corresponding to the virtual machine at the time of deadlock is collected from the memory of the hardware layer, and the register information of each VCPU corresponding to the virtual machine at the time of deadlock is collected from the registers of the CPU.

可见,本发明实施例提供一种计算节点,虚拟机监控器通过向虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源,虚拟机响应所述不可屏蔽中断并收集完成临终遗言,再通过虚拟机监控器从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度某个虚拟处理器(如前述的第一虚拟处理器或第二虚拟处理器)并在所述某个虚拟处理器上加载所述虚拟机的内核引导程序,使得虚拟机能够根据收集的临终遗言恢复业务进程;一方面,当特权虚拟机发生死锁时,相对于现有技术中使整个服务器下电的方法,本发明检测到特权虚拟机死锁之后通过VMM在线恢复特权虚拟机,能够及时恢复特权虚拟机的运行,保持整个计算节点运行状态,从而避免了将整个计算节点如整个服务器重启,进而避免了业务灾难时间过长、数据不同步等现象;此外,由于特权虚拟机的快速恢复,从而自动恢复其他业务虚拟机的访问网络与存储等IO资源的IO功能,进而对其他业务虚拟机不造成影响;另一方面,当业务虚拟机发生死锁时,本发明能够检测到业务虚拟机死锁之后通过VMM在线恢复业务虚拟机,避免将整个服务器重启,及时恢复业务虚拟机的运行,实现虚拟机内业务的快速恢复,避免了业务虚拟机的业务灾难时间过长、数据不同步等现象。It can be seen that the embodiment of the present invention provides a computing node. The virtual machine monitor sends a non-maskable interrupt to the virtual machine and configures the virtual processor resources of the virtual machine. The virtual machine responds to the non-maskable interrupt and collects the last words. Then use the virtual machine monitor to schedule a certain virtual processor (such as the aforementioned first virtual processor or second virtual processor) from one or more virtual processors included in the configured virtual processor resource, and The kernel boot program of the virtual machine is loaded on the certain virtual processor, so that the virtual machine can recover the business process according to the collected last words; In the method of powering off the entire server, the present invention detects the deadlock of the privileged virtual machine and restores the privileged virtual machine online through the VMM, which can restore the operation of the privileged virtual machine in time and maintain the running state of the entire computing node, thereby avoiding the entire computing node such as the entire The server is restarted, thereby avoiding business disasters that take too long and data out of sync. In addition, due to the rapid recovery of privileged virtual machines, the IO functions of other business virtual machines to access network and storage IO resources such as IO resources are automatically restored. The business virtual machine does not affect; on the other hand, when the business virtual machine is deadlocked, the present invention can restore the business virtual machine online through the VMM after detecting the deadlock of the business virtual machine, so as to avoid restarting the entire server and restore the business virtual machine in time The operation of the virtual machine realizes the rapid recovery of the business in the virtual machine, and avoids the business disaster of the business virtual machine for too long, and the data is not synchronized.

实施例二Embodiment two

如图3(a)所示,本发明实施例提供一种虚拟机死锁后的恢复方法,该方法的执行主体可以为虚拟机监控器,具体的,可以是XenHypervisor,包括:As shown in Figure 3 (a), the embodiment of the present invention provides a recovery method after a virtual machine deadlock, the execution subject of the method may be a virtual machine monitor, specifically, it may be XenHypervisor, including:

301、在虚拟机发生死锁的情况下,向所述虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源。301. When a deadlock occurs in a virtual machine, send a non-maskable interrupt to the virtual machine and configure virtual processor resources of the virtual machine.

302、当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程;所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息。302. After the virtual machine responds to the non-maskable interrupt and collects the last words, schedule the first virtual processor from one or more virtual processors included in the configured virtual processor resources and execute the Load the kernel boot program of the virtual machine on the first virtual processor, so that the virtual machine resumes the business process according to the collected last words; the last words include the stacks of each virtual processor corresponding to the virtual machine at the time of deadlock information and register information.

其中,所述第一虚拟处理器可以为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出的第一个虚拟处理器,或者,可以为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出的信用值和/或权重值最高的虚拟处理器,本发明实施例对此不作限定,可以根据实际应用情况采用不同的调度算法进行实现,比如公平调度算法。Wherein, the first virtual processor may be the first virtual processor randomly scheduled from one or more virtual processors included in the configured virtual processor resources, or may be the first virtual processor from the configured The virtual processor with the highest credit value and/or weight value scheduled out of one or more virtual processors included in the virtual processor resource is not limited in this embodiment of the present invention, and different scheduling can be adopted according to actual application conditions Algorithms are implemented, such as fair scheduling algorithms.

在一种实现方式下,步骤301中的所述配置所述虚拟机的虚拟处理器资源,包括:In one implementation manner, the configuring the virtual processor resources of the virtual machine in step 301 includes:

获取预定个数的虚拟处理器,其中所述预定个数为死锁时所述虚拟机所对应的虚拟处理器的个数;Acquiring a predetermined number of virtual processors, wherein the predetermined number is the number of virtual processors corresponding to the virtual machine at the time of deadlock;

根据记录的所述虚拟机所对应的一个或多个虚拟处理器的第一资源信息,设置所述预定个数的虚拟处理器的第二资源信息,所述第一资源信息与所述第二资源信息用于表示分布情况相同的虚拟处理器资源,所述第一资源信息和所述第二资源信息都包括信用值和权重值。According to the recorded first resource information of one or more virtual processors corresponding to the virtual machine, set the second resource information of the predetermined number of virtual processors, the first resource information and the second The resource information is used to represent virtual processor resources with the same distribution, and both the first resource information and the second resource information include a credit value and a weight value.

需要说明的是,在本发明实施例中“第一虚拟处理器”中的“第一”没有限定顺序的意思,仅为方便区分而已。It should be noted that, in the embodiment of the present invention, the "first" in the "first virtual processor" does not mean an order, but is only for convenience of distinction.

可见,本发明实施例提供一种虚拟机死锁后的恢复方法,从虚拟机监控器一侧来说,向所述虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源,再从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,使得虚拟机能够根据收集的临终遗言恢复业务进程,相对于现有技术中使整个服务器下电重启的方法,本发明能够不用重启整个服务器而能够及时恢复虚拟机的运行,从而避免了业务灾难时间过长、数据不同步等现象。It can be seen that the embodiment of the present invention provides a recovery method for a virtual machine after a deadlock. From the side of the virtual machine monitor, a non-maskable interrupt is sent to the virtual machine and the virtual processor resources of the virtual machine are configured, and then Scheduling a first virtual processor from one or more virtual processors included in the configured virtual processor resource and loading a kernel boot program of the virtual machine on the first virtual processor, so that the virtual machine can Restore the business process according to the collected last words. Compared with the method of powering off and restarting the entire server in the prior art, the present invention can restore the operation of the virtual machine in time without restarting the entire server, thus avoiding the long time of business disaster and the loss of data Asynchrony etc.

如图3(b)所示,本发明实施例提供一种虚拟机死锁后的恢复方法,该方法的执行主体为虚拟机,具体的,可以是特权虚拟机,亦可以是业务虚拟机,该方法可以包括:As shown in FIG. 3(b), the embodiment of the present invention provides a method for recovering a virtual machine after a deadlock. The execution subject of the method is a virtual machine. Specifically, it may be a privileged virtual machine or a service virtual machine. The method can include:

311、响应虚拟机监控器VMM发送的不可屏蔽中断。311. Respond to the non-maskable interrupt sent by the virtual machine monitor VMM.

具体的,响应虚拟机监控器VMM发送的不可屏蔽中断,结束所述虚拟机上运行的业务Specifically, in response to the non-maskable interrupt sent by the virtual machine monitor VMM, end the business running on the virtual machine

312、收集虚拟机的临终遗言,其中所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息。312. Collect the last words of the virtual machine, where the last words include stack information and register information of each virtual processor corresponding to the virtual machine at the time of deadlock.

313、在所述虚拟机的内核引导程序被加载完成之后,根据所述虚拟机的临终遗言恢复业务进程。313. After the kernel boot program of the virtual machine is loaded, resume the service process according to the last words of the virtual machine.

在一种实现方式下,步骤312可以为:通过所述VMM从硬件层收集虚拟机的临终遗言。In one implementation manner, step 312 may be: collecting the last words of the virtual machine from the hardware layer through the VMM.

在一种实现方式下,步骤313可以包括:在所述虚拟机的内核引导程序被加载完成之后,根据死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息,识别所述虚拟机死锁前的运行指令和地址,以便所述虚拟机恢复后继续执行所述运行指令的下一条指令;需要说明的是,这里的所述虚拟机死锁前的运行指令和地址,指的是所述虚拟机死锁前的最后时刻所处理的运行指令和地址。In one implementation, step 313 may include: after the kernel boot program of the virtual machine is loaded, identify the The running instruction and address of the virtual machine before the deadlock, so that the virtual machine continues to execute the next instruction of the running instruction after recovery; it should be noted that the running instruction and address of the virtual machine before the deadlock here refers to is the running instructions and addresses processed by the virtual machine at the last moment before the deadlock.

更为具体的,在所述虚拟机的内核引导程序被加载完成之后,根据死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息初始化所述虚拟处理器的链表,并根据所述链表中的所述堆栈信息和所述寄存器信息识别所述虚拟机死锁前的运行指令和地址,以便所述虚拟机恢复后继续执行所述运行指令的下一条指令。More specifically, after the kernel boot program of the virtual machine is loaded, initialize the linked list of the virtual processor according to the stack information and register information of each virtual processor corresponding to the virtual machine at the time of deadlock, and according to The stack information and the register information in the linked list identify the running instruction and address of the virtual machine before deadlock, so that the virtual machine continues to execute the next instruction after the running instruction after recovery.

可见,本发明实施例提供一种虚拟机死锁后的恢复方法,从虚拟机一侧来说,虚拟机响应虚拟机监控器发送的不可屏蔽中断并且收集虚拟机的临终遗言,在虚拟机监控器完成引导程序的加载之后,虚拟机根据该临终遗言来实现业务进程的恢复,相对于现有技术中使整个服务器下电重启的方法,本发明能够不用重启整个服务器而能够及时恢复虚拟机的运行,从而避免了业务灾难时间过长、数据不同步等现象。It can be seen that the embodiment of the present invention provides a recovery method for a virtual machine after a deadlock. From the virtual machine side, the virtual machine responds to the non-maskable interrupt sent by the virtual machine monitor and collects the last words of the virtual machine. After the server completes the loading of the boot program, the virtual machine realizes the recovery of the business process according to the last words. Compared with the method of powering off and restarting the entire server in the prior art, the present invention can restore the virtual machine in time without restarting the entire server. Running, thus avoiding business disasters for too long, data out of synchronization and other phenomena.

实施例三Embodiment Three

如图4(a)所示,本发明实施例提供另一种虚拟机死锁后的恢复方法,包括:As shown in Figure 4(a), the embodiment of the present invention provides another recovery method after a virtual machine deadlock, including:

401、虚拟机监控器VMM初始化监测定时器。401. The virtual machine monitor VMM initializes a monitoring timer.

402、虚拟机VM按照预定的第一时间间隔产生心跳信息。这里的虚拟机VM可以是特权虚拟机,也可以是业务虚拟机。402. The virtual machine VM generates heartbeat information according to a predetermined first time interval. The virtual machine VM here may be a privileged virtual machine or a business virtual machine.

403、VM在所述VMM提供的调用模式下,按照预定的第二时间间隔发送所述心跳信息至VMM。优选的,该调用模式为超级调用。403. In the calling mode provided by the VMM, the VM sends the heartbeat information to the VMM at a predetermined second time interval. Preferably, the call mode is a hyper call.

404、VMM接收VM按照预定的第二时间间隔所发送的心跳信息;VMM根据所述心跳信息,更新监测定时器。404. The VMM receives heartbeat information sent by the VM at a predetermined second time interval; the VMM updates a monitoring timer according to the heartbeat information.

需要说明的是,步骤402,403和404中涉及的第一时间间隔和第二时间间隔可以是相同的时间间隔,也可以是不同的时间间隔。应当理解的是,本发明实施例中的时间间隔是可以根据实际应用或经验值灵活设置,本发明对此不做限定。It should be noted that the first time interval and the second time interval involved in steps 402, 403, and 404 may be the same time interval, or may be different time intervals. It should be understood that the time interval in the embodiment of the present invention can be flexibly set according to actual application or experience value, which is not limited in the present invention.

405、VMM根据所述监测定时器的更新频率,判断所述VM是否发生死锁;在VM未发生死锁的情况下,循环执行步骤401-405,在VM发生死锁的情况下,执行以下步骤406-412。405. The VMM judges whether the VM is deadlocked according to the update frequency of the monitoring timer; if the VM does not have a deadlock, execute steps 401-405 in a loop, and if the VM is deadlocked, execute the following Steps 406-412.

406、VMM向发生死锁的所述VM发送不可屏蔽中断。406. The VMM sends a non-maskable interrupt to the VM where the deadlock occurs.

407、VM响应虚拟机监控器VMM发送的不可屏蔽中断。407. The VM responds to the non-maskable interrupt sent by the virtual machine monitor VMM.

其中,在本发明实施例中VM响应所述不可屏蔽中断,以结束所述VM上运行的业务,具体的,以结束所述VM上当前运行所有进程。Wherein, in the embodiment of the present invention, the VM responds to the non-maskable interrupt to end services running on the VM, specifically, to end all processes currently running on the VM.

408、VM收集VM的临终遗言,其中所述临终遗言包括死锁时所述VM对应的各个虚拟处理器的堆栈信息和寄存器信息。408. The VM collects the last words of the VM, where the last words include stack information and register information of each virtual processor corresponding to the VM at the time of deadlock.

具体的,VM通过VMM从硬件层收集临终遗言,更具体而言,虚拟机通过VMM从硬件层的内存中收集死锁时虚拟机对应的各个虚拟处理器的堆栈信息,并且从硬件层的处理器的寄存器收集死锁时虚拟机对应的各个虚拟处理器的寄存器信息。本实施例中,以处理器为CPU,虚拟处理器为VCPU举例说明,则虚拟机通过VMM从硬件层的内存中收集死锁时虚拟机对应的各个VCPU的堆栈信息,并且从CPU寄存器收集死锁时虚拟机对应的各个VCPU的寄存器信息。Specifically, the VM collects the last words from the hardware layer through the VMM. More specifically, the virtual machine collects the stack information of each virtual processor corresponding to the virtual machine at the time of the deadlock from the memory of the hardware layer through the VMM, and the processing information from the hardware layer The registers of the processor collect the register information of each virtual processor corresponding to the virtual machine when the deadlock occurs. In this embodiment, taking the processor as the CPU and the virtual processor as the VCPU as an example, the virtual machine collects the stack information of each VCPU corresponding to the virtual machine at the time of deadlock from the memory of the hardware layer through the VMM, and collects the deadlock information from the CPU register. The register information of each VCPU corresponding to the time-lock virtual machine.

需要指出的,特殊虚拟机和业务虚拟机都可以通过VMM从硬件层收集临终遗言,本发明实施例适用于特殊虚拟机死锁后的恢复,同样也适用于业务虚拟机死锁后的恢复。It should be pointed out that both the special virtual machine and the service virtual machine can collect the last words from the hardware layer through the VMM. The embodiment of the present invention is applicable to the recovery after the deadlock of the special virtual machine, and is also applicable to the recovery after the deadlock of the service virtual machine.

在406之后,VMM配置VM的虚拟处理器资源,具体通过以下步骤409和410。After 406, the VMM configures virtual processor resources of the VM, specifically through the following steps 409 and 410.

409、VMM获取预定个数的虚拟处理器;所述预定个数为死锁时所述VM所对应的虚拟处理器的个数;409. The VMM acquires a predetermined number of virtual processors; the predetermined number is the number of virtual processors corresponding to the VM at the time of deadlock;

需要说明的是,本发明并不限定预定个数的虚拟处理器是否是死锁前对应的虚拟处理器,所述预定个数的虚拟处理器可以是VM发生死锁时使用的预定个数的虚拟处理器,也可以是重新获取到的预定个数的虚拟处理器,例如,在虚拟处理器为VCPU的情况下,在VM发生死锁之前使用VCPU1、VCPU2和VCPU3,在409步骤中可以获取到VCPU1、VCPU2和VCPU3,也可以在409步骤中获取到VCPU4、VCPU5和VCPU6。It should be noted that the present invention does not limit whether the predetermined number of virtual processors is the corresponding virtual processor before the deadlock, and the predetermined number of virtual processors may be the predetermined number of virtual processors used when the VM deadlock occurs. The virtual processor can also be a predetermined number of virtual processors acquired again. For example, when the virtual processor is a VCPU, VCPU1, VCPU2 and VCPU3 are used before the VM deadlock occurs, and can be obtained in step 409 VCPU1, VCPU2 and VCPU3 can also be obtained in step 409 to VCPU4, VCPU5 and VCPU6.

410、VMM根据记录的VM所对应的一个或多个虚拟处理器的第一资源信息,设置所述预定个数的虚拟处理器的第二资源信息,所述第一资源信息与所述第二资源信息用于表示分布情况相同的虚拟处理器资源,所述第一资源信息和所述第二资源信息都包括信用值和权重值。410. The VMM sets the second resource information of the predetermined number of virtual processors according to the recorded first resource information of one or more virtual processors corresponding to the VM, and the first resource information is consistent with the second The resource information is used to represent virtual processor resources with the same distribution, and both the first resource information and the second resource information include a credit value and a weight value.

需要说明的是,在本发明所有实施例中使用“第一”“第二”的说法没有限定顺序的意思,仅为方便区分而已。It should be noted that the terms "first" and "second" used in all the embodiments of the present invention do not mean to limit the order, but are only for convenience of distinction.

在本发明实施例中,所述第一资源信息与所述第二资源信息分布情况相同,依照记录的第一资源信息对重新获取到的虚拟处理器的第二资源信息进行设置。In the embodiment of the present invention, the distribution of the first resource information is the same as that of the second resource information, and the newly obtained second resource information of the virtual processor is set according to the recorded first resource information.

但是,在本发明实施例中并不限定重新获取到的各个虚拟处理器与记录的各个虚拟处理器的对应关系,例如,若获取预定个数的虚拟处理器为VCPU4、VCPU5和VCPU6,则在410步骤中,需要将VCPU4、VCPU5和VCPU6的资源信息依次设置为记录的死锁时VCPU1、VCPU2和VCPU3的资源信息,也可以将VCPU4、VCPU5和VCPU6的资源信息依次设置为记录的死锁时VCPU3、VCPU2和VCPU1的资源信息。However, the embodiment of the present invention does not limit the corresponding relationship between the newly obtained virtual processors and the recorded virtual processors. For example, if the predetermined number of virtual processors acquired are VCPU4, VCPU5 and VCPU6, then in In step 410, the resource information of VCPU4, VCPU5 and VCPU6 needs to be sequentially set as the recorded resource information of VCPU1, VCPU2 and VCPU3 at the time of deadlock, and the resource information of VCPU4, VCPU5 and VCPU6 can also be sequentially set as recorded deadlock time Resource information of VCPU3, VCPU2, and VCPU1.

更具体而言,在记录的死锁时VCPU1、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。在本发明实施例中每一虚拟处理器的信用值和权重值可以相同也可不同,根据实际应用所采用的算法而定,本发明对此不做限定。More specifically, when the credit values of VCPU1, VCPU2, and VCPU3 are respectively 20, 30, and 50 at the time of the recorded deadlock, and the weight values are respectively 25, 35, and 40, when the acquired predetermined number of virtual processors is For VCPU4, VCPU5 and VCPU6, the credit values of VCPU4, VCPU5 and VCPU6 can be set to 20, 30 and 50 respectively, and the weight values can be set to 25, 35 and 40 respectively, or the credit values of VCPU4, VCPU5 and VCPU6 can be set respectively are 50, 20, and 30, and the weight values are set to 40, 25, and 35, respectively. In the embodiment of the present invention, the credit value and weight value of each virtual processor may be the same or different, depending on the algorithm adopted in the actual application, which is not limited in the present invention.

根据记录的死锁时虚拟机所对应的各个虚拟处理器的资源信息来设置重新获取到的虚拟处理器的资源信息,保证了重新获取到的预定个数的虚拟处理器具有VM死锁前的原始信息。According to the recorded resource information of each virtual processor corresponding to the virtual machine at the time of deadlock, the resource information of the reacquired virtual processor is set to ensure that the reacquired predetermined number of virtual processors have the same value as before the VM deadlock. original information.

如图4(b)所示,在VMM(例如Xen Hypervisor)中,所有虚拟机相关信息都有特定的数据结构,每个虚拟机的数据结构与vcpu的数据结构相互引用。VMM(例如Xen Hypervisor)管理所有的数据结构,在虚拟机发生死锁之后,直接回收虚拟机对应的vcpu链表,并根据虚拟机的数据结构中记录的VCPU配置个数,重新初始化相应个数的VCPU,设置与之前相当的信用值、权重等,重新进行调度。As shown in Figure 4(b), in a VMM (such as Xen Hypervisor), all virtual machine-related information has a specific data structure, and the data structure of each virtual machine and the data structure of the vcpu refer to each other. VMM (such as Xen Hypervisor) manages all data structures. After a deadlock occurs in a virtual machine, it directly reclaims the vcpu linked list corresponding to the virtual machine, and re-initializes the corresponding number of VCPUs according to the number of VCPU configurations recorded in the data structure of the virtual machine. VCPU, set the same credit value, weight, etc. as before, and re-schedule.

例如,VMM(如Xen Hypervisor)回收特权虚拟机的VCPU资源,并重新初始化相应个数的VCPU,初始化之后,将该特权虚拟机的内核引导程序调度到第一个VCPU对象(简称为VCPU0)上加载运行,VCPU0得到时间片并执行该特权虚拟机的内核引导程序。相应的,特权虚拟机的内核启动成功后,加载原生驱动,根据临终遗言信息恢复业务进程,恢复前后端IO通道。For example, VMM (such as Xen Hypervisor) reclaims the VCPU resources of the privileged virtual machine, and re-initializes the corresponding number of VCPUs. After initialization, the kernel boot program of the privileged virtual machine is scheduled to the first VCPU object (referred to as VCPU0) After loading and running, VCPU0 gets the time slice and executes the kernel boot program of the privileged virtual machine. Correspondingly, after the kernel of the privileged virtual machine is successfully started, the native driver is loaded, and the business process is resumed according to the last words information, and the front-end and back-end IO channels are restored.

当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,执行以下411步骤进行。After the virtual machine responds to the non-maskable interrupt and collects the last words, the following step 411 is performed.

411、VMM从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,其中,411. The VMM schedules a first virtual processor from one or more virtual processors included in the configured virtual processor resource, and loads a kernel boot program of the virtual machine on the first virtual processor, wherein ,

所述第一虚拟处理器可以为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出的第一个虚拟处理器,或者,为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出的信用值和/或权重值最高的虚拟处理器。The first virtual processor may be the first virtual processor randomly scheduled from one or more virtual processors included in the configured virtual processor resource, or the first virtual processor that is configured from the configured virtual processor Among the one or more virtual processors included in the processor resource, the scheduled virtual processor has the highest credit value and/or weight value.

第一个虚拟处理器也就是先配置完成的虚拟处理器,依据配置的先后顺序而来。另外,通过在预定个数的虚拟处理器中选择信用值和权重值最高的虚拟处理器,或者信用值最高,或者权重值最高的虚拟处理器有利于内核引导程序快速进行加载。The first virtual processor is the virtual processor that is configured first, and comes according to the order of configuration. In addition, selecting the virtual processor with the highest credit value and the highest weight value among the predetermined number of virtual processors, or the virtual processor with the highest credit value or the highest weight value facilitates the fast loading of the kernel boot program.

412、VM根据所述虚拟机的临终遗言恢复业务进程。412. The VM resumes the service process according to the last words of the virtual machine.

具体的,在所述虚拟机的内核引导程序被加载完成之后,根据死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息初始化所述虚拟处理器的链表,并根据所述链表中的所述堆栈信息和所述寄存器信息识别所述虚拟机死锁前的运行指令和地址,以便所述虚拟机恢复后继续执行所述运行指令的下一条指令。Specifically, after the kernel boot program of the virtual machine is loaded, initialize the linked list of the virtual processor according to the stack information and register information of each virtual processor corresponding to the virtual machine at the time of deadlock, and according to the The stack information and the register information in the linked list identify the running instruction and address of the virtual machine before deadlock, so that the virtual machine continues to execute the next instruction after the running instruction after recovery.

可见,本发明实施例提供一种虚拟机死锁后的恢复方法,通过虚拟机发送的心跳信息来更新监测定时器,这样虚拟机监控器能够根据监测定时器的更新频率来判断死锁是否发生,为进行死锁恢复过程提供了基础;进一步的,通过虚拟机监控器向虚拟机发送不可屏蔽中断配置所述虚拟机的虚拟处理器资源,并且从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,使得虚拟机能够根据收集的临终遗言恢复业务进程,相对于现有技术中使整个服务器下电重启的方法,本发明能够避免重启整个服务器,及时恢复虚拟机的运行,从而避免了业务灾难时间过长、数据不同步等现象。It can be seen that the embodiment of the present invention provides a recovery method for a virtual machine after a deadlock. The monitoring timer is updated through the heartbeat information sent by the virtual machine, so that the virtual machine monitor can judge whether a deadlock occurs according to the update frequency of the monitoring timer. , which provides a basis for the deadlock recovery process; further, the virtual processor resources of the virtual machine are configured by sending a non-maskable interrupt to the virtual machine through the virtual machine monitor, and the virtual processor resources included in the configuration are completed Scheduling the first virtual processor among one or more virtual processors and loading the kernel boot program of the virtual machine on the first virtual processor, so that the virtual machine can resume the business process according to the collected last words, compared with the current There is a method of powering off and restarting the entire server in the prior art, but the present invention can avoid restarting the entire server and restore the operation of the virtual machine in time, thereby avoiding the phenomena such as long service disaster time and out-of-sync data.

实施例四Embodiment four

如图5所示,本发明是实施例提供一种虚拟机监控器50,包括:中断模拟器51、配置单元52和调度加载单元53。As shown in FIG. 5 , an embodiment of the present invention provides a virtual machine monitor 50 , including: an interrupt simulator 51 , a configuration unit 52 and a scheduling loading unit 53 .

所述中断模拟器51,用于在虚拟机发生死锁的情况下,向所述虚拟机发送不可屏蔽中断。The interrupt emulator 51 is configured to send a non-maskable interrupt to the virtual machine when the virtual machine is deadlocked.

所述配置单元52,用于配置所述虚拟机的虚拟处理器资源。The configuration unit 52 is configured to configure virtual processor resources of the virtual machine.

所述调度加载单元53,用于当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程;所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息。其中,The scheduling loading unit 53 is configured to schedule the first virtual processor from one or more virtual processors included in the configured virtual processor resources after the virtual machine responds to the non-maskable interrupt and collects the last words. virtual processor and load the kernel boot program of the virtual machine on the first virtual processor, so that the virtual machine resumes the business process according to the last words collected; when the last words include a deadlock, the virtual machine corresponds to The stack information and register information of each virtual processor. in,

所述第一虚拟处理器为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出的第一个虚拟处理器,或者,为从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出的信用值和/或权重值最高的虚拟处理器。The first virtual processor is the first virtual processor randomly scheduled from one or more virtual processors included in the configured virtual processor resource, or the virtual processor configured from the Among the one or more virtual processors included in the server resource, the scheduled virtual processor has the highest credit value and/or weight value.

所述第一虚拟处理器的资源信息包括第一信用值和第一权重值。The resource information of the first virtual processor includes a first credit value and a first weight value.

进一步的,所述配置单元52具体用于,获取预定个数的虚拟处理器,其中所述预定个数为死锁时所述虚拟机所对应的虚拟处理器的个数;根据记录的所述虚拟机所对应的一个或多个虚拟处理器的第一资源信息,设置所述预定个数的虚拟处理器的第二资源信息,所述第一资源信息与所述第二资源信息用于表示分布情况相同的虚拟处理器资源,所述第一资源信息和所述第二资源信息都包括信用值和权重值。Further, the configuration unit 52 is specifically configured to obtain a predetermined number of virtual processors, wherein the predetermined number is the number of virtual processors corresponding to the virtual machine at the time of deadlock; according to the recorded The first resource information of one or more virtual processors corresponding to the virtual machine, setting the second resource information of the predetermined number of virtual processors, the first resource information and the second resource information are used to represent For virtual processor resources with the same distribution, both the first resource information and the second resource information include a credit value and a weight value.

进一步的,调度加载单元53具体用于当所述虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中随机调度出第一个虚拟处理器,或者,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度出信用值和/或权重值最高的虚拟处理器并在所述虚拟处理器上加载所述虚拟机的内核引导程序,以便所述虚拟机根据收集的临终遗言恢复业务进程。Further, the scheduling loading unit 53 is specifically configured to randomly schedule virtual processors from one or more virtual processors included in the configured virtual processor resources after the virtual machine responds to the non-maskable interrupt and collects the last words. dispatch the first virtual processor, or dispatch the virtual processor with the highest credit value and/or weight value from one or more virtual processors included in the configured virtual processor resources and Load the kernel boot program of the virtual machine on the server, so that the virtual machine resumes the business process according to the collected last words.

进一步的,如图6所示,所述虚拟机监控器50还包括:监测定时器54,更新单元55和判断单元56。Further, as shown in FIG. 6 , the virtual machine monitor 50 further includes: a monitoring timer 54 , an updating unit 55 and a judging unit 56 .

所述监测定时器54,用于接收虚拟机70按照预定的第二时间间隔所发送的心跳信息。The monitoring timer 54 is configured to receive heartbeat information sent by the virtual machine 70 according to a predetermined second time interval.

所述更新单元55,用于根据所述心跳信息,更新所述监测定时器54。The updating unit 55 is configured to update the monitoring timer 54 according to the heartbeat information.

所述判断单元56,用于根据所述监测定时器的更新频率,判断所述虚拟机70是否发生死锁。The judging unit 56 is configured to judge whether a deadlock occurs in the virtual machine 70 according to the update frequency of the monitoring timer.

所述中断模拟器51,具体用于在所述判断单元56确定所述虚拟机发生死锁的情况下,向所述虚拟机70发送不可屏蔽中断。The interrupt simulator 51 is specifically configured to send a non-maskable interrupt to the virtual machine 70 when the judging unit 56 determines that a deadlock occurs in the virtual machine.

可见,本发明实施例提供一种虚拟机监控器,该虚拟机监控器能够根据虚拟机发送的心跳信息更新监测定时器,并且根据监测定时器的更新频率判断虚拟机是否发生死锁,为死锁恢复过程提供了基础,进一步的,该虚拟机监控器向虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源,并且从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,从而有助于虚拟机根据收集的临终遗言恢复业务进程,相对于现有技术中使整个服务器下电重启的方法,本发明能够避免重启整个服务器,及时恢复虚拟机的运行,从而避免了业务灾难时间过长、数据不同步等现象。It can be seen that the embodiment of the present invention provides a virtual machine monitor, which can update the monitoring timer according to the heartbeat information sent by the virtual machine, and judge whether the virtual machine is deadlocked according to the update frequency of the monitoring timer. The lock recovery process provides a basis. Further, the virtual machine monitor sends a non-maskable interrupt to the virtual machine and configures the virtual processor resources of the virtual machine, and one or more Scheduling the first virtual processor among the virtual processors and loading the kernel boot program of the virtual machine on the first virtual processor, so as to help the virtual machine recover the business process according to the collected last words, compared with the existing According to the method of powering off and restarting the entire server in the technology, the present invention can avoid restarting the entire server and restore the operation of the virtual machine in time, thus avoiding the phenomena such as business disaster time is too long and data is not synchronized.

如图7所示,本发明是实施例提供一种虚拟机70,所述虚拟机70可以为特权虚拟机701,也可以为业务虚拟机702。As shown in FIG. 7 , the embodiment of the present invention provides a virtual machine 70 , and the virtual machine 70 may be a privileged virtual machine 701 or a service virtual machine 702 .

所述虚拟机70包括:中断处理单元71、收集单元72和业务恢复单元73。The virtual machine 70 includes: an interrupt processing unit 71 , a collection unit 72 and a service recovery unit 73 .

所述中断处理单元71,用于响应虚拟机监控器VMM发送的不可屏蔽中断;The interrupt processing unit 71 is configured to respond to the non-maskable interrupt sent by the virtual machine monitor VMM;

所述收集单元72,用于收集虚拟机的临终遗言,其中所述临终遗言包括死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;The collection unit 72 is configured to collect the last words of the virtual machine, wherein the last words include stack information and register information of each virtual processor corresponding to the virtual machine at the time of deadlock;

所述业务恢复单元73,用于在所述虚拟机的内核引导程序被加载完成之后,根据所述虚拟机的临终遗言恢复业务进程。The service restoration unit 73 is configured to restore the service process according to the last words of the virtual machine after the kernel boot program of the virtual machine is loaded.

进一步的,所述收集单元72,具体用于通过所述VMM从硬件层收集虚拟机的临终遗言。Further, the collection unit 72 is specifically configured to collect the last words of the virtual machine from the hardware layer through the VMM.

所述业务恢复单元73,具体用于在所述虚拟机的内核引导程序被加载完成之后,根据死锁时所述虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息初始化虚拟处理器的链表,并根据所述链表中的所述堆栈信息和所述寄存器信息识别所述虚拟机死锁前的运行指令和地址,以便所述虚拟机恢复后继续执行所述运行指令的下一条指令。The service recovery unit 73 is specifically configured to initialize the linked list of virtual processors according to the stack information and register information of each virtual processor corresponding to the virtual machine when the virtual machine is deadlocked after the kernel boot program of the virtual machine is loaded. , and identify the running instruction and address of the virtual machine before deadlock according to the stack information and the register information in the linked list, so that the virtual machine continues to execute the next instruction of the running instruction after recovery.

进一步的,如图8所示,所述虚拟机70还包括:心跳产生发送单元74。Further, as shown in FIG. 8 , the virtual machine 70 further includes: a heartbeat generating and sending unit 74 .

所述心跳产生发送单元74,用于按照预定的第一时间间隔产生心跳信息;在所述VMM提供的调用模式下,按照预定的第二时间间隔向所述VMM发送所述心跳信息,以便所述VMM判断所述虚拟机是否发生死锁。具体的,所述调用模式为超级调用。The heartbeat generating and sending unit 74 is configured to generate heartbeat information according to a predetermined first time interval; in the calling mode provided by the VMM, send the heartbeat information to the VMM according to a predetermined second time interval, so that The VMM judges whether a deadlock occurs in the virtual machine. Specifically, the calling mode is a hypercall.

可见,本发明实施例提供一种虚拟机,该虚拟机按照预定的第一时间间隔产生心跳信息,以便虚拟机监控器做出是否发生死锁的判断,为死锁恢复提供了基础,进一步的,虚拟机响应虚拟机监控器发送的不可屏蔽中断并且收集虚拟机的临终遗言,在虚拟机监控器完成引导程序的加载之后,从而能够实现业务进程的恢复,相对于现有技术中使整个服务器下电重启的方法,本发明能够避免重启整个服务器,及时恢复虚拟机的运行,从而避免了业务灾难时间过长、数据不同步等现象。It can be seen that the embodiment of the present invention provides a virtual machine, which generates heartbeat information according to a predetermined first time interval, so that the virtual machine monitor can make a judgment on whether a deadlock occurs, and provides a basis for deadlock recovery. Further , the virtual machine responds to the non-maskable interrupt sent by the virtual machine monitor and collects the last words of the virtual machine. After the virtual machine monitor completes the loading of the boot program, the recovery of the business process can be realized. Compared with the prior art, the entire server In the method of restarting after power off, the present invention can avoid restarting the entire server and restore the operation of the virtual machine in time, thereby avoiding the phenomena such as long service disaster time and out-of-sync data.

本发明实施例还提供一种宿主机90,包括:虚拟机监控器VMM50和特权虚拟机VM701,其中,所述VMM用于在特权虚拟机发生死锁的情况下,向所述特权虚拟机发送不可屏蔽中断并配置所述特权虚拟机的虚拟处理器资源;当所述特权虚拟机响应所述不可屏蔽中断并收集完成临终遗言之后,从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述特权虚拟机对应的内核引导程序。The embodiment of the present invention also provides a host machine 90, including: a virtual machine monitor VMM50 and a privileged virtual machine VM701, wherein the VMM is used to send Non-maskable interrupts and configuring the virtual processor resources of the privileged virtual machine; after the privileged virtual machine responds to the non-maskable interrupts and collects the last words, one or more of the configured virtual processor resources include Schedule the first virtual processor among the virtual processors and load the kernel boot program corresponding to the privileged virtual machine on the first virtual processor.

所述特权虚拟机用于响应VMM发送的不可屏蔽中断;收集所述特权虚拟机的临终遗言,所述临终遗言包括死锁时所述特权虚拟机对应的各个虚拟处理器的堆栈信息和寄存器信息;在所述特权虚拟机的内核引导程序被加载完成之后,根据所述特权虚拟机的临终遗言恢复业务进程。The privileged virtual machine is used to respond to the non-maskable interrupt sent by the VMM; collect the last words of the privileged virtual machine, and the last words include stack information and register information of each virtual processor corresponding to the privileged virtual machine at the time of deadlock ; After the kernel boot program of the privileged virtual machine is loaded, resume the service process according to the last words of the privileged virtual machine.

另外,需要说明的是在本发明实施例中,虚拟机监控器和特权虚拟机配合而组成宿主机,此外,宿主机也可以包括虚拟机监控器,而不包括特权虚拟机。In addition, it should be noted that in the embodiment of the present invention, the virtual machine monitor and the privileged virtual machine cooperate to form the host machine. In addition, the host machine may also include the virtual machine monitor instead of the privileged virtual machine.

可见,本发明实施例提供一种宿主机,通过虚拟机监控器向虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源,并且从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度第一虚拟处理器并在所述第一虚拟处理器上加载所述虚拟机的内核引导程序,使得虚拟机能够根据收集的临终遗言恢复业务进程,在特权虚拟机发生死锁的情况下,相对于现有技术中使整个服务器下电重启的方法,本发明能够及时恢复特权虚拟机的运行,从而避免了将整个服务器重启,进而避免了业务灾难时间过长、数据不同步等现象。It can be seen that the embodiment of the present invention provides a host computer that sends a non-maskable interrupt to a virtual machine through a virtual machine monitor and configures virtual processor resources of the virtual machine, and one of the configured virtual processor resources includes or a plurality of virtual processors to schedule the first virtual processor and load the kernel boot program of the virtual machine on the first virtual processor, so that the virtual machine can resume the business process according to the collected last words, in the privileged virtual machine In the case of a deadlock, compared with the method of powering off and restarting the entire server in the prior art, the present invention can restore the operation of the privileged virtual machine in time, thereby avoiding restarting the entire server, thereby avoiding the business disaster time being too long, Data out of sync and so on.

如图10所示,本发明实施例还提供一种计算机系统,包括:至少一个如前述实施例描述的计算节点100。As shown in FIG. 10 , an embodiment of the present invention further provides a computer system, including: at least one computing node 100 as described in the foregoing embodiments.

可见,本发明实施例提供的计算机系统中,具体是每个计算机节点中,虚拟机监控器通过向虚拟机发送不可屏蔽中断并配置所述虚拟机的虚拟处理器资源,虚拟机响应所述不可屏蔽中断并收集完成临终遗言,再通过虚拟机监控器从配置完成的所述虚拟处理器资源包括的一个或多个虚拟处理器中调度某个虚拟处理器(如前述的第一虚拟处理器或第二虚拟处理器)并在所述某个虚拟处理器上加载所述虚拟机的内核引导程序,使得虚拟机能够根据收集的临终遗言恢复业务进程;一方面,当特权虚拟机发生死锁时,相对于现有技术中使整个服务器下电的方法,本发明检测到特权虚拟机死锁之后通过VMM在线恢复特权虚拟机,能够及时恢复特权虚拟机的运行,保持整个计算节点运行状态,从而避免了将整个计算节点如整个服务器重启,进而避免了业务灾难时间过长、数据不同步等现象;此外,由于特权虚拟机的快速恢复,从而自动恢复其他业务虚拟机的访问网络与存储等IO资源的IO功能,进而对其他业务虚拟机不造成影响;另一方面,当业务虚拟机发生死锁时,本发明能够检测到业务虚拟机死锁之后通过VMM在线恢复业务虚拟机,避免将整个服务器重启,及时恢复业务虚拟机的运行,实现虚拟机内业务的快速恢复,避免了业务虚拟机的业务灾难时间过长、数据不同步等现象。It can be seen that in the computer system provided by the embodiment of the present invention, specifically in each computer node, the virtual machine monitor sends a non-maskable interrupt to the virtual machine and configures the virtual processor resources of the virtual machine, and the virtual machine responds to the non-maskable interrupt. Shield the interrupt and collect the last words, then schedule a certain virtual processor (such as the aforementioned first virtual processor or second virtual processor) and load the kernel boot program of the virtual machine on the certain virtual processor, so that the virtual machine can recover the business process according to the collected last words; on the one hand, when a deadlock occurs in the privileged virtual machine , compared to the method of powering off the entire server in the prior art, the present invention detects the deadlock of the privileged virtual machine and restores the privileged virtual machine online through the VMM, which can restore the operation of the privileged virtual machine in time and maintain the running state of the entire computing node, thereby It avoids restarting the entire computing node such as the entire server, thereby avoiding the business disaster for a long time, data out of synchronization, etc.; in addition, due to the rapid recovery of the privileged virtual machine, it automatically restores other business virtual machines to access the network and storage IO The IO function of resources will not affect other business virtual machines; on the other hand, when a deadlock occurs in a business virtual machine, the present invention can restore the business virtual machine online through the VMM after detecting the deadlock of the business virtual machine, avoiding the entire The server restarts to restore the operation of the business virtual machine in time, realizes the rapid recovery of the business in the virtual machine, and avoids the phenomenon that the business disaster of the business virtual machine takes too long and the data is not synchronized.

需要说明的是,前述实施例描述中所采用的第一、第二的说法,没有限定顺序的意思,仅为方便区分而已。It should be noted that the terms first and second used in the description of the foregoing embodiments do not mean to limit the sequence, but are only for convenience of distinction.

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。It should be noted that for the foregoing method embodiments, for the sake of simple description, they are expressed as a series of action combinations, but those skilled in the art should know that the present invention is not limited by the described action sequence. Because of the present invention, certain steps may be performed in other orders or simultaneously. Secondly, those skilled in the art should also know that the embodiments described in the specification belong to preferred embodiments, and the actions and modules involved are not necessarily required by the present invention.

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。In the foregoing embodiments, the descriptions of each embodiment have their own emphases, and for parts not described in detail in a certain embodiment, reference may be made to relevant descriptions of other embodiments.

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。Those of ordinary skill in the art can understand that all or part of the steps for realizing the above-mentioned method embodiments can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, the It includes the steps of the above method embodiments; and the aforementioned storage medium includes: ROM, RAM, magnetic disk or optical disk and other various media that can store program codes.

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。The above is only a specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Anyone skilled in the art can easily think of changes or substitutions within the technical scope disclosed in the present invention. Should be covered within the protection scope of the present invention. Therefore, the protection scope of the present invention should be determined by the protection scope of the claims.

Claims (21)

1. A recovery method after deadlock of a virtual machine is characterized by comprising the following steps:
sending an unmasked interrupt to a virtual machine and configuring virtual processor resources of the virtual machine under the condition that the virtual machine is deadlocked;
after the virtual machine responds to the unmasked interrupt and collects the collected complete telepresence, a first virtual processor is dispatched from one or more virtual processors included in the configured virtual processor resources, and a kernel bootstrap program of the virtual machine is loaded on the first virtual processor, so that the virtual machine can recover a business process according to the collected telepresence.
2. The method of claim 1,
the configuring the virtual processor resources of the virtual machine comprises:
acquiring a preset number of virtual processors, wherein the preset number is the number of the virtual processors corresponding to the virtual machine in deadlock;
and setting second resource information of the predetermined number of virtual processors according to recorded first resource information of one or more virtual processors corresponding to the virtual machine, wherein the first resource information and the second resource information are used for representing virtual processor resources with the same distribution situation, and both the first resource information and the second resource information comprise credit values and weighted values.
3. The method of claim 1,
the first virtual processor is a first virtual processor randomly scheduled from one or more virtual processors included in the configured virtual processor resource, or a virtual processor with the highest credit value and/or weight value scheduled from one or more virtual processors included in the configured virtual processor resource.
4. The method according to any one of claims 1 to 3, further comprising:
receiving heartbeat information sent by the virtual machine according to a preset second time interval;
updating a monitoring timer according to the heartbeat information;
and judging whether the virtual machine is deadlocked or not according to the updating frequency of the monitoring timer, and if the virtual machine is deadlocked, executing the step of sending the unmasked interrupt to the virtual machine.
5. A recovery method after deadlock of a virtual machine is characterized by comprising the following steps:
responding to a non-maskable interrupt sent by a Virtual Machine Monitor (VMM);
collecting a telepresence of a virtual machine, wherein the telepresence comprises stack information and register information of each virtual processor corresponding to the virtual machine during deadlock;
and after the kernel bootstrap program of the virtual machine is loaded, recovering the business process according to the terminal-bound heritage of the virtual machine.
6. The method of claim 5, wherein collecting the telepresence of the virtual machine comprises: and collecting a last-in-place talent of the virtual machine from a hardware layer through the VMM, wherein the last-in-place talent comprises stack information and register information of each virtual processor corresponding to the virtual machine during deadlock.
7. The method of claim 5, wherein after the loading of the kernel boot program of the virtual machine is completed, resuming the business process according to the telepresence of the virtual machine comprises:
after the kernel bootstrap program of the virtual machine is loaded, initializing a linked list of the virtual processor according to stack information and register information of each virtual processor corresponding to the virtual machine in deadlock, and identifying an operation instruction and an address of the virtual machine before deadlock according to the stack information and the register information in the linked list, so that the virtual machine continues to execute a next instruction of the operation instruction after recovery.
8. The method of any of claims 5 to 7, further comprising:
generating heartbeat information according to a preset first time interval;
and sending the heartbeat information to the VMM according to a preset second time interval under a calling mode provided by the VMM so that the VMM can judge whether the virtual machine is deadlocked or not.
9. The method of claim 8, wherein the calling mode is a hypercall.
10. A virtual machine monitor, comprising:
the interrupt simulator is used for sending the unmasked interrupt to the virtual machine under the condition that the virtual machine is deadlocked;
a configuration unit, configured to configure virtual processor resources of the virtual machine;
and the scheduling and loading unit is used for scheduling a first virtual processor from one or more virtual processors included in the configured virtual processor resources and loading a kernel bootstrap program of the virtual machine on the first virtual processor after the virtual machine responds to the unmasked interrupt and collects the collected telepresence, so that the virtual machine can recover a business process according to the collected telepresence.
11. The virtual machine monitor according to claim 10, wherein the configuration unit is specifically configured to obtain a predetermined number of virtual processors, where the predetermined number is the number of virtual processors corresponding to the virtual machine in the deadlock; and setting second resource information of the predetermined number of virtual processors according to recorded first resource information of one or more virtual processors corresponding to the virtual machine, wherein the first resource information and the second resource information are used for representing virtual processor resources with the same distribution situation, and both the first resource information and the second resource information comprise credit values and weighted values.
12. The virtual machine monitor according to claim 10,
the scheduling and loading unit is specifically configured to, after the virtual machine responds to the unmasked interrupt and collects a complete epigraph, randomly schedule a first virtual processor from one or more virtual processors included in the configured virtual processor resource, or schedule a virtual processor with a highest credit value and/or weight value from one or more virtual processors included in the configured virtual processor resource and load a kernel bootstrap of the virtual machine on the virtual processor, so that the virtual machine resumes a business process according to the collected epigraph.
13. A virtual machine monitor according to any one of claims 10 to 12, wherein the virtual machine monitor further comprises:
the monitoring timer is used for receiving heartbeat information sent by the virtual machine according to a preset second time interval;
the updating unit is used for updating the monitoring timer according to the heartbeat information;
the judging unit is used for judging whether the virtual machine is deadlocked or not according to the updating frequency of the monitoring timer;
the interrupt simulator is specifically configured to send an unmasked interrupt to the virtual machine when the determination unit determines that the virtual machine is deadlocked.
14. A virtual machine, comprising:
the interrupt processing unit is used for responding to the unmasked interrupt sent by the virtual machine monitor VMM;
the system comprises a collecting unit, a processing unit and a processing unit, wherein the collecting unit is used for collecting the terminal talent of the virtual machine, and the terminal talent comprises stack information and register information of each virtual processor corresponding to the virtual machine when the terminal talent is deadlocked;
and the service recovery unit is used for recovering the service process according to the terminal-bound heritage of the virtual machine after the kernel bootstrap program of the virtual machine is loaded.
15. The virtual machine according to claim 14, wherein the collecting unit is specifically configured to collect, by the VMM, a lifetime statement of the virtual machine from a hardware layer, wherein the lifetime statement includes stack information and register information of each virtual processor corresponding to the virtual machine at the time of the deadlock.
16. The virtual machine according to claim 14, wherein the service recovery unit is specifically configured to initialize a linked list of the virtual processors according to stack information and register information of each virtual processor corresponding to the virtual machine in the deadlock, and identify an operation instruction and an address before the deadlock of the virtual machine according to the stack information and the register information in the linked list, after the kernel boot program of the virtual machine is completely loaded, so that the virtual machine continues to execute a next instruction of the operation instruction after recovery.
17. The virtual machine according to any one of claims 14 to 16, further comprising:
a heartbeat generating and sending unit, which is used for generating heartbeat information according to a preset first time interval; and sending the heartbeat information to the VMM according to a preset second time interval under a calling mode provided by the VMM so that the VMM can judge whether the virtual machine is deadlocked or not.
18. A host machine comprising a virtual machine monitor and a privileged virtual machine, wherein the virtual machine monitor is the virtual machine monitor of any one of claims 10 to 13 and the privileged virtual machine is the virtual machine of any one of claims 14 to 17.
19. A computing node, wherein the computing node comprises: a hardware layer, a Virtual Machine Monitor (VMM) running on top of the hardware layer, and a virtual machine running on top of the VMM; the virtual machines include a privileged virtual machine and at least one business virtual machine, wherein:
the VMM is configured to send a non-maskable interrupt to the privileged virtual machine and to configure virtual processor resources of the privileged virtual machine if the privileged virtual machine is deadlocked; after the privileged virtual machine responds to the unmasked interrupt and collects and completes the terminal heritage, scheduling a first virtual processor from one or more virtual processors included in the configured virtual processor resources and loading a kernel bootstrap program corresponding to the privileged virtual machine on the first virtual processor;
the privileged virtual machine is to respond to a non-maskable interrupt sent by the VMM; collecting the telepresence of the privileged virtual machine, wherein the telepresence comprises stack information and register information of each virtual processor corresponding to the privileged virtual machine during deadlock; and after the kernel bootstrap program of the privileged virtual machine is loaded, recovering the business process according to the terminal heritage of the privileged virtual machine.
20. The apparatus of claim 19,
the VMM is also used for sending an unmasked interrupt to the service virtual machine and configuring the virtual processor resource of the service virtual machine under the condition that the service virtual machine is deadlocked; after the business virtual machine responds to the unmasked interrupt and collects and completes the terminal language, scheduling a second virtual processor from one or more virtual processors included in the configured virtual processor resources and loading a kernel bootstrap program corresponding to the business virtual machine on the second virtual processor;
the business virtual machine is used for responding to the non-maskable interrupt sent by the VMM; collecting a terminal language of the service virtual machine, wherein the terminal language comprises stack information and register information of each virtual processor corresponding to the service virtual machine during deadlock; and after the kernel bootstrap program of the service virtual machine is loaded, recovering the service process according to the terminal-up heritage of the service virtual machine.
21. A computer system, comprising: at least one computing node as claimed in any one of claims 19 to 20.
CN201210004749.4A 2012-01-09 2012-01-09 Restoration methods, Apparatus and system after a kind of virtual machine deadlock Expired - Fee Related CN102609324B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210004749.4A CN102609324B (en) 2012-01-09 2012-01-09 Restoration methods, Apparatus and system after a kind of virtual machine deadlock
PCT/CN2012/087039 WO2013104245A1 (en) 2012-01-09 2012-12-20 Virtual machine deadlock restore method, device and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210004749.4A CN102609324B (en) 2012-01-09 2012-01-09 Restoration methods, Apparatus and system after a kind of virtual machine deadlock

Publications (2)

Publication Number Publication Date
CN102609324A true CN102609324A (en) 2012-07-25
CN102609324B CN102609324B (en) 2015-11-25

Family

ID=46526716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210004749.4A Expired - Fee Related CN102609324B (en) 2012-01-09 2012-01-09 Restoration methods, Apparatus and system after a kind of virtual machine deadlock

Country Status (2)

Country Link
CN (1) CN102609324B (en)
WO (1) WO2013104245A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013104245A1 (en) * 2012-01-09 2013-07-18 华为技术有限公司 Virtual machine deadlock restore method, device and system
CN103793288A (en) * 2014-02-14 2014-05-14 北京邮电大学 Software watchdog system and method
CN104915289A (en) * 2015-05-12 2015-09-16 中国工商银行股份有限公司 Anomaly detection method and device for background process of financial application system
CN108509249A (en) * 2017-02-23 2018-09-07 华为技术有限公司 A kind of virtual system method for restarting and equipment
CN115174644A (en) * 2022-06-28 2022-10-11 武汉烽火技术服务有限公司 Container cluster service start-stop control method, device, equipment and storage medium
CN116166446A (en) * 2023-03-13 2023-05-26 中瓴智行(成都)科技有限公司 Hypervisor-based client operating system deadlock debugging method and electronic equipment
CN116527690A (en) * 2023-05-04 2023-08-01 奇安信科技集团股份有限公司 Flow mirroring method and device
CN117032881A (en) * 2023-07-31 2023-11-10 广东保伦电子股份有限公司 Method, device and storage medium for detecting and recovering abnormality of virtual machine

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101470662A (en) * 2007-12-29 2009-07-01 北京天融信网络安全技术有限公司 Parallel system debugging method on multi-core MIPS platform
CN101620547A (en) * 2009-07-03 2010-01-06 中国人民解放军国防科学技术大学 Virtual physical interrupt processing method of X86 computer
CN102088470A (en) * 2009-12-07 2011-06-08 中兴通讯股份有限公司 Method and device for deadlock detection and self-recovery of file transfer protocol (FTP) in communication system
CN102207896A (en) * 2010-03-31 2011-10-05 微软公司 Virtual machine crash file generation techniques

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2027934C (en) * 1989-12-22 1994-06-21 Cherie C. Barnes Accelerated deadlock detection in congested data transactions
CN102609324B (en) * 2012-01-09 2015-11-25 华为技术有限公司 Restoration methods, Apparatus and system after a kind of virtual machine deadlock

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101470662A (en) * 2007-12-29 2009-07-01 北京天融信网络安全技术有限公司 Parallel system debugging method on multi-core MIPS platform
CN101620547A (en) * 2009-07-03 2010-01-06 中国人民解放军国防科学技术大学 Virtual physical interrupt processing method of X86 computer
CN102088470A (en) * 2009-12-07 2011-06-08 中兴通讯股份有限公司 Method and device for deadlock detection and self-recovery of file transfer protocol (FTP) in communication system
CN102207896A (en) * 2010-03-31 2011-10-05 微软公司 Virtual machine crash file generation techniques

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013104245A1 (en) * 2012-01-09 2013-07-18 华为技术有限公司 Virtual machine deadlock restore method, device and system
CN103793288A (en) * 2014-02-14 2014-05-14 北京邮电大学 Software watchdog system and method
CN103793288B (en) * 2014-02-14 2017-07-18 北京邮电大学 A kind of software watchdog system and method
CN104915289A (en) * 2015-05-12 2015-09-16 中国工商银行股份有限公司 Anomaly detection method and device for background process of financial application system
CN104915289B (en) * 2015-05-12 2018-01-26 中国工商银行股份有限公司 A kind of financial application system background progress abnormality detection method and device
CN108509249A (en) * 2017-02-23 2018-09-07 华为技术有限公司 A kind of virtual system method for restarting and equipment
CN115174644A (en) * 2022-06-28 2022-10-11 武汉烽火技术服务有限公司 Container cluster service start-stop control method, device, equipment and storage medium
CN115174644B (en) * 2022-06-28 2023-09-12 武汉烽火技术服务有限公司 Container cluster service start-stop control method, device, equipment and storage medium
CN116166446A (en) * 2023-03-13 2023-05-26 中瓴智行(成都)科技有限公司 Hypervisor-based client operating system deadlock debugging method and electronic equipment
CN116166446B (en) * 2023-03-13 2025-08-29 中瓴智行(成都)科技有限公司 Hypervisor-based client operating system deadlock debugging method and electronic device
CN116527690A (en) * 2023-05-04 2023-08-01 奇安信科技集团股份有限公司 Flow mirroring method and device
CN116527690B (en) * 2023-05-04 2024-02-13 奇安信科技集团股份有限公司 A traffic mirroring method and device
CN117032881A (en) * 2023-07-31 2023-11-10 广东保伦电子股份有限公司 Method, device and storage medium for detecting and recovering abnormality of virtual machine

Also Published As

Publication number Publication date
CN102609324B (en) 2015-11-25
WO2013104245A1 (en) 2013-07-18

Similar Documents

Publication Publication Date Title
CN102609324B (en) Restoration methods, Apparatus and system after a kind of virtual machine deadlock
US10346215B2 (en) Replication of a virtualized computing environment to a computing system with offline hosts
US10133619B1 (en) Cluster-wide virtual machine health monitoring
US7313793B2 (en) Method for forking or migrating a virtual machine
EP3992805B1 (en) Live migration method for virtual machine and communication device
CN112035293B (en) Method, computer system and program product for determining ownership of virtual machine node
US20210004292A1 (en) Automatically configuring boot sequence of container systems for disaster recovery
US10404795B2 (en) Virtual machine high availability using shared storage during network isolation
EP2053509B1 (en) System for and method of migrating one or more virtual machines
US10474488B2 (en) Configuration of a cluster of hosts in virtualized computing environments
US9760447B2 (en) One-click backup in a cloud-based disaster recovery system
US8307363B2 (en) Virtual machine system, restarting method of virtual machine and system
US9483314B2 (en) Systems and methods for fault tolerant batch processing in a virtual environment
US20170109183A1 (en) Temporal dynamic virtual machine policies
US8938736B2 (en) System and method for providing redundancy for management controller
US9703651B2 (en) Providing availability of an agent virtual computing instance during a storage failure
US9715403B2 (en) Optimized extended context management for virtual machines
CN107111530B (en) Disaster recovery method, system and device
US8499112B2 (en) Storage control apparatus
US9529656B2 (en) Computer recovery method, computer system, and storage medium
US9195528B1 (en) Systems and methods for managing failover clusters
US9727421B2 (en) Technologies for data center environment checkpointing
CN116166413A (en) Lifecycle management for workloads on heterogeneous infrastructure
US10152341B2 (en) Hyper-threading based host-guest communication
TW201327139A (en) Method for processing node replacement and server system using the same

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151125

Termination date: 20190109

CF01 Termination of patent right due to non-payment of annual fee