虚拟机的故障报警方法、装置及电子设备与流程

文档序号:23068687发布日期:2020-11-25 18:47阅读:195来源:国知局
虚拟机的故障报警方法、装置及电子设备与流程

本申请涉及数据检测技术领域,尤其是涉及一种虚拟机的故障报警方法、装置及电子设备。



背景技术:

虚拟机的迁移是虚拟机的一项重要功能,它是将一台正在运行状态的虚拟机,在不停止其运行的情况下,将其完整的从一台宿主机迁移到另一台宿主机上。虚拟机的迁移通常包括磁盘迁移、内存迁移、cpu状态迁移等。在虚拟机的迁移途中,可能由于各种意外情况导致迁移出现故障,如果不能及时的发现故障,会对整个系统的正常运行造成影响。因此,及时的发现故障是虚拟机迁移中不可缺少的技术。

目前常用的虚拟机迁移故障发现方案主要有:基于qemu日志或基于libvirt日志发现迁移故障的方案。然而qemu日志和libvirt日志中只对常见的、可以提前预测的迁移故障进行报警(如虚拟机无法开机等故障),难以发现更多的、难以预测的故障。



技术实现要素:

本申请的目的在于提供一种虚拟机的故障报警方法、装置及电子设备,能够及时发现虚拟机运行中的故障并进行实时报警。

第一方面,本申请实施例提供一种虚拟机的故障报警方法,虚拟机包括至少一个指定操作模块,方法包括:响应于虚拟机的进程运行至指定操作模块的初始位置,开启指定操作模块对应的定时器;响应于定时器的计时时长达到设定时长事件,判断虚拟机的进程是否运行至指定操作模块的结束位置;如果否,对虚拟机的指定操作模块进行故障报警。

进一步的,上述指定操作模块的初始位置配置有定时器开启指令;上述响应于虚拟机的进程运行至指定操作模块的初始位置,开启指定操作模块对应的定时器的步骤,包括:响应于虚拟机的进程运行至指定操作模块的初始位置,读取定时器开启指令,开启指定操作模块对应的定时器。

进一步的,上述指定操作模块的结束位置配置有定时器关闭指令;上述方法还包括:响应于虚拟机的进程运行至指定操作模块的结束位置,读取定时器关闭指令,关闭指定操作模块对应的定时器。

进一步的,上述定时器中设置有回调函数,回调函数用于实现报警操作;上述对虚拟机的指定操作模块进行故障报警的步骤,包括:调用定时器中的回调函数,实现对虚拟机的指定操作模块的故障报警。

进一步的,上述对虚拟机的指定操作模块进行故障报警的步骤,还包括:显示虚拟机的指定操作模块存在故障的提示信息。

进一步的,上述指定操作模块包括虚拟机迁移操作对应的模块;虚拟机迁移操作包括磁盘迁移操作和内存迁移操作;磁盘迁移操作包括磁盘迁移准备操作和磁盘迁移执行操作;内存迁移操作包括内存迁移准备操作和内存迁移执行操作。

第二方面,本申请实施例还提供一种虚拟机的故障报警装置,虚拟机包括至少一个指定操作模块,装置包括:定时器开启模块,用于响应于虚拟机的进程运行至指定操作模块的初始位置,开启指定操作模块对应的定时器;进程判断模块,用于响应于定时器的计时时长达到设定时长事件,判断虚拟机的进程是否运行至指定操作模块的结束位置;故障报警模块,用于在进程判断模块的判断结果为否时,对虚拟机的指定操作模块进行故障报警。

进一步的,上述指定操作模块包括虚拟机迁移操作对应的模块;虚拟机迁移操作包括磁盘迁移操作和内存迁移操作;磁盘迁移操作包括磁盘迁移准备操作和磁盘迁移执行操作;内存迁移操作包括内存迁移准备操作和内存迁移执行操作。

第三方面,本申请实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述方法。

第四方面,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述方法。

本申请实施例提供的虚拟机的故障报警方法、装置及电子设备中,虚拟机包括至少一个指定操作模块,每个指定操作模块中预先设置有对应的定时器,当虚拟机的进程运行至指定操作模块的初始位置时,开启指定操作模块对应的定时器;当定时器的计时时长达到设定时长事件,判断虚拟机的进程是否运行至指定操作模块的结束位置;如果否,对虚拟机的指定操作模块进行故障报警,本申请实施例通过对指定操作模块设定的定时器,来判断在设定时长内指定操作模块运行过程是否结束,从而可以确定出该指定操作模块是否存在故障,如果存在故障进行实时报警。

附图说明

为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种虚拟机的故障报警方法的流程图;

图2为本申请实施例提供的一种虚拟机的迁移操作对应的模块示意图;

图3为本申请实施例提供的一种虚拟机的故障报警装置的结构框图;

图4为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合实施例对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

虚拟机的迁移是虚拟机的一项重要功能,它是将一台正在运行状态的虚拟机,在不停止其运行的情况下,将其完整的从一台宿主机迁移到另一台宿主机上。虚拟机的迁移通常包括磁盘迁移、内存迁移、cpu状态迁移等。在虚拟机的迁移途中,可能由于各种意外情况导致迁移出现故障,如果不能及时的发现故障,会对整个系统的正常运行造成影响。因此,及时的发现故障是虚拟机迁移中不可缺少的技术。

目前的常用的虚拟机迁移故障发现方案主要有:基于qemu日志发现迁移故障的方案和基于libvirt日志发现迁移故障的方案。而qemu日志和libvirt日志中只能对常见的、可以提前预测的迁移故障进行报警(如虚拟机无法开机等故障),而实际情况中,会有很多故障是不可预测的,难以发现的,对于这种情况无法做到故障的及时发现和报警。

基于此,本申请实施例提供一种虚拟机的故障报警方法、装置及电子设备,能够及时发现虚拟机运行中的故障并进行实时报警。

图1为本申请实施例提供的一种虚拟机的故障报警方法的流程图,该虚拟机包括至少一个指定操作模块,上述方法具体包括以下步骤:

步骤s102,响应于虚拟机的进程运行至指定操作模块的初始位置,开启指定操作模块对应的定时器。

上述指定操作模块可以是虚拟机迁移操作对应的模块,比如,虚拟机迁移操作包括磁盘迁移操作和内存迁移操作;磁盘迁移操作包括磁盘迁移准备操作和磁盘迁移执行操作;内存迁移操作包括内存迁移准备操作和内存迁移执行操作,相应的,指定操作模块可以是磁盘迁移准备操作对应的模块、磁盘迁移执行操作对应的模块、内存迁移准备操作对应的模块和内存迁移执行操作对应的模块,另外,上述指定操作模块也可以是其它运行操作对应的模块,在此不做具体限定。

指定操作模块可以是某一个模块,也可以是有前后顺序关联的多个模块中的一个模块,运行完一个指定操作模块对应的代码后,再进行下一个。

在每个指定操作模块对应的代码中预先加入定时器的设置代码,定时器的时间设置为该指定操作模块的运行参考时间,对于不同的指定操作模块,会设置不同的运行参考时间,该运行参考时间可根据该指定操作模块的多次实际运行时间进行确定,比如,将多次实际运行时间的最大值作为运行参考时间,或者将去掉误差值之后的最大值作为运行参考时间,也可以是其它确定方式,在此不做具体限定。当虚拟机的进程运行至指定操作模块的初始位置时,可以自动开启指定操作模块对应的定时器,开始计时。

步骤s104,响应于定时器的计时时长达到设定时长事件,判断虚拟机的进程是否运行至指定操作模块的结束位置。

当上述定时器的计时时长达到设定时长时,也就是达到上述运行参考时间的时长时,判断虚拟机的进程是否运行至上述指定操作模块的结束位置。

步骤s106,如果虚拟机的进程没有运行至指定操作模块的结束位置,对虚拟机的指定操作模块进行故障报警。

如果虚拟机的进程在上述设定时长内,没有运行至指定操作模块的结束位置,说明该指定操作模块运行过程中有故障存在,因此,可以对虚拟机的该指定操作模块进行故障报警。报警的方式有多种,比如,可以由定时器直接触发报警操作,或者直接调用报警程序进行报警操作等。

本申请实施例提供的虚拟机的故障报警方法中,虚拟机包括至少一个指定操作模块,每个指定操作模块中预先设置有对应的定时器,当虚拟机的进程运行至指定操作模块的初始位置时,开启指定操作模块对应的定时器;当定时器的计时时长达到设定时长事件,判断虚拟机的进程是否运行至指定操作模块的结束位置;如果否,对虚拟机的指定操作模块进行故障报警,本申请实施例通过对指定操作模块设定的定时器,来判断在设定时长内指定操作模块运行过程是否结束,从而可以确定出该指定操作模块是否存在故障,如果存在故障进行实时报警。

下面以虚拟机的迁移操作为例,详细说明具体的故障报警实现过程:

为了及时准确地获知虚拟机在迁移操作过程中是否存在故障情况,本申请实施例中,首先将虚拟机的迁移操作进行划分,虚拟机迁移操作可以包括磁盘迁移操作和内存迁移操作;磁盘迁移操作可以包括磁盘迁移准备操作和磁盘迁移执行操作;内存迁移操作可以包括内存迁移准备操作和内存迁移执行操作,因此,在虚拟机迁移操作过程中,可以包括多个指定操作模块,分别为磁盘迁移准备操作对应的模块、磁盘迁移执行操作对应的模块、内存迁移准备操作对应的模块和内存迁移执行操作对应的模块,如图2所示,四个模块的程序顺次执行。

在每个指定操作模块中均设置有对应的定时器,并且该定时器对应的设定时间为该指定操作模块运行过程的参考时间。定时器可以使用qemu(一个用于运行虚拟机的软件)中内置的定时器来实现。定时器的开启指令设置于每个指定操作模块的初始位置,当虚拟机的进程运行至指定操作模块的初始位置时,读取定时器开启指令,开启指定操作模块对应的定时器。

在定时器开启后,便开始计时,当计时时长达到设定时长时,判断虚拟机的进程是否运行至指定操作模块的结束位置,如果否,就进行该指定操作模块的故障报警操作。

本实施例中,上述定时器中还设置有回调函数,该回调函数内部可以实现具体的报警功能,可以根据需要进行不同方式的报警设置。在判断虚拟机的进程在指定时长内没有运行至指定操作模块的结束位置时,定时器超时被触发,从而调用定时器中的回调函数,实现对虚拟机的指定操作模块的故障报警。

另外,在每个指定操作模块的结束位置处均配置有定时器关闭指令;当虚拟机的进程运行至指定操作模块的结束位置时,读取定时器关闭指令,关闭指定操作模块对应的定时器。

需要说明的是,上述指定操作模块可能会对应有多个出口,也就是多个结束位置,当虚拟机的进程运行至指定操作模块的任一个结束位置时,均需要关闭定时器。

作为一种优选的实施方式,上述对虚拟机的指定操作模块进行故障报警的步骤,还可以包括:显示虚拟机的指定操作模块存在故障的提示信息。比如,显示的提示信息可以附带报警标识,如“!!!”。

现有技术中只能对明确已知可能存在的故障进行发现,必须事先知道存在这种故障和有可能出现这种故障,才能够对这种故障进行鉴别、发现和报警。本申请实施例提供的虚拟机的故障报警方法,不关注故障的具体细节或类型,只关注故障带来了程序执行超过正常时间的后果,不管是什么样的故障,只要它导致了程序执行超过了正常时间,都可以进行报警。因此,本申请实施例可以对意料之外的、未知的故障进行发现和报警。

基于上述方法实施例,本申请实施例还提供一种虚拟机的故障报警装置,虚拟机包括至少一个指定操作模块,参见图3所示,该装置包括:

定时器开启模块32,用于响应于虚拟机的进程运行至指定操作模块的初始位置,开启指定操作模块对应的定时器;

进程判断模块34,用于响应于定时器的计时时长达到设定时长事件,判断虚拟机的进程是否运行至指定操作模块的结束位置;

故障报警模块36,用于在进程判断模块的判断结果为否时,对虚拟机的指定操作模块进行故障报警。

在另一种可能的实施方式中,上述指定操作模块的初始位置配置有定时器开启指令;上述定时器开启模块32还用于:响应于虚拟机的进程运行至指定操作模块的初始位置,读取定时器开启指令,开启指定操作模块对应的定时器。

在另一种可能的实施方式中,上述指定操作模块的结束位置配置有定时器关闭指令;上述装置还包括定时关闭模块用于:响应于虚拟机的进程运行至指定操作模块的结束位置,读取定时器关闭指令,关闭指定操作模块对应的定时器。

在另一种可能的实施方式中,上述定时器中设置有回调函数,回调函数用于实现报警操作;上述故障报警模块36还用于:调用定时器中的回调函数,实现对虚拟机的指定操作模块的故障报警。

在另一种可能的实施方式中,上述故障报警模块36还用于:显示虚拟机的指定操作模块存在故障的提示信息。

在另一种可能的实施方式中,上述指定操作模块包括虚拟机迁移操作对应的模块;虚拟机迁移操作包括磁盘迁移操作和内存迁移操作;磁盘迁移操作包括磁盘迁移准备操作和磁盘迁移执行操作;内存迁移操作包括内存迁移准备操作和内存迁移执行操作。

本申请实施例提供的虚拟机的故障报警装置,其实现原理及产生的技术效果和前述虚拟机的故障报警方法实施例相同,为简要描述,虚拟机的故障报警装置的实施例部分未提及之处,可参考前述虚拟机的故障报警方法实施例中相应内容。

本申请实施例还提供了一种电子设备,如图4所示,为该电子设备的结构示意图,其中,该电子设备包括处理器41和存储器40,该存储器40存储有能够被该处理器41执行的计算机可执行指令,该处理器41执行该计算机可执行指令以实现上述虚拟机的故障报警方法。

在图4示出的实施方式中,该电子设备还包括总线42和通信接口43,其中,处理器41、通信接口43和存储器40通过总线42连接。

其中,存储器40可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线42可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线42可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器41可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器41中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器41可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器41读取存储器中的信息,结合其硬件完成前述实施例的虚拟机的故障报警方法的步骤。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述虚拟机的故障报警方法,具体实现可参见前述方法实施例,在此不再赘述。

本申请实施例所提供的虚拟机的故障报警方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的虚拟机的故障报警方法,具体实现可参见方法实施例,在此不再赘述。

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本申请的范围。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本申请的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1