一种虚拟机应用服务故障恢复系统及其故障恢复方法
【专利摘要】本发明公开了一种虚拟机应用服务故障恢复系统及其故障恢复方法,该系统包括:虚拟机管理模块、虚拟硬件看门狗模块、看门狗驱动模块及看门狗复用模块,其中,该虚拟机应用服务故障恢复系统将应用服务注册到看门狗复用模块中,由看门狗复用模块对已注册的应用服务进行监测,当看门狗复用模块监测到该应用服务发生故障且发生故障的时间超过虚拟硬件看门狗模块所设定的超时时间时,该虚拟机管理模块触发虚拟硬件看门狗模块所设定的超时操作。本发明进一步提高了虚拟服务器的服务可用性,使虚拟服务器在操作系统本身发生故障或者应用服务进程发生故障时,虚拟服务器能迅速从故障中恢复,继续对外提供服务。
【专利说明】一种虚拟机应用服务故障恢复系统及其故障恢复方法
【技术领域】
[0001]本发明涉及虚拟化【技术领域】,具体是一种虚拟机应用服务故障恢复系统及其故障恢复方法。
【背景技术】
[0002]目前,随着计算机硬件技术的不断发展,强大的硬件能力使得单机运行多个独立应用平台显得游刃有余,并且服务器整合可以提高资源利用率、节省硬件成本。凭借这些优势,虚拟化技术在服务器整合领域应用得越来越广泛,已经在不同的行业中构建了许多大大小小的虚拟化环境下的服务器。
[0003]使用虚拟机作为服务器的好处是很明显的,但使用虚拟机作为服务器所提供应用服务的可用性问题使得虚拟服务器的应用受到一定的限制。因为多台虚拟机存在于同一台物理服务器上,所以一旦这台物理服务器发生故障,将会导致多台虚拟服务器的业务中断。在目前的大多数虚拟化环境中,这一缺陷已经不复存在了,虚拟机高可用技术很好地解决了该问题。在这些虚拟化环境中,一旦某台物理服务器发生故障,那么这台物理服务器上的虚拟机会在虚拟化环境中的其它物理服务器上自动重新启动,使得虚拟服务器上的业务能够继续运转。
[0004]现有的虚拟机高可用技术在一定程度上提高了虚拟服务器所提供应用服务的可用性,但如果虚拟服务器的操作系统本身发生了故障,例如操作系统蓝屏、内核异常等情况,或者是虚拟服务器中对外提供应用服务的进程发生了故障,例如进程被意外杀死、进程没有响应等情况,那么虚拟机高可用技术对此也是束手无策的。因此,在虚拟服务器操作系统本身或虚拟服务器中应用服务的进程发生故障的情况下,如何提高虚拟服务器所提供的应用服务的可用性是当前急需解决的技术问题。
【发明内容】
[0005]为了解决上述技术问题,本发明提供了一种虚拟化环境下虚拟机应用服务故障恢复系统,该系统包括:
[0006]虚拟机管理模块,用于在物理服务器上创建虚拟机并在该虚拟机上添加虚拟硬件看门狗模块;
[0007]虚拟硬件看门狗模块,包含至少一个计时器,用于设定虚拟机应用服务发生故障的超时时间和超时操作;
[0008]看门狗驱动模块,用于驱动虚拟硬件看门狗模块,使得所述虚拟硬件看门狗模块能够正常工作;
[0009]看门狗复用模块,用于复用虚拟硬件看门狗模块,使得多个进程能够同时使用该虚拟硬件看门狗模块;其中,
[0010]该虚拟机应用服务故障恢复系统将应用服务注册到看门狗复用模块中,由看门狗复用模块对已注册的应用服务进行监测,当看门狗复用模块监测到该应用服务发生故障且发生故障的时间超过虚拟硬件看门狗模块所设定的超时时间时,该虚拟机管理模块触发虚拟硬件看门狗模块所设定的超时操作。
[0011]进一步,当看门狗复用模块监测到已注册的应用服务未发生故障时,看门狗复用模块向虚拟硬件看门狗模块发送重置计时器的信号,虚拟硬件看门狗模块接收到该信号后重置计时器。
[0012]进一步,虚拟机管理模块还用于启动虚拟机、关闭虚拟机、删除虚拟机、暂停虚拟机;移除虚拟硬件看门狗模块、更新虚拟硬件看门狗模块的配置信息。
[0013]进一步,虚拟硬件看门狗模块还用于启用计时器或禁用计时器。
[0014]进一步,所述虚拟硬件看门狗模块所设定的超时操作至少包括以下操作中的任一种:重启虚拟机、关闭虚拟机、暂停虚拟机或者将虚拟机内存中的数据保存到物理服务器文件系统的指定文件中。
[0015]进一步,看门狗复用模块对已注册的应用服务定时进行监测。
[0016]进一步,看门狗复用模块每隔10秒定时对已注册的应用服务进行监测,且设定的超时时间为60秒。
[0017]根据本发明的另一方面,还提供了一种虚拟机应用服务故障恢复系统的故障恢复方法,该虚拟机应用服务故障恢复系统包括:
[0018]虚拟机管理模块,用于在物理服务器上创建虚拟机并在该虚拟机上添加虚拟硬件看门狗模块;
[0019]虚拟硬件看门狗模块,包含至少一个计时器,用于设定虚拟机应用服务发生故障的超时时间和超时操作;
[0020]看门狗驱动模块,用于驱动虚拟硬件看门狗模块,使得所述虚拟硬件看门狗模块能够正常工作;
[0021]看门狗复用模块,用于复用虚拟硬件看门狗模块,使得多个进程能够同时使用该虚拟硬件看门狗模块;
[0022]该故障恢复方法包括:
[0023]将应用服务注册到看门狗复用模块中,由看门狗复用模块对已注册的应用服务进行监测,当看门狗复用模块监测到该应用服务发生故障且发生故障的时间超过虚拟硬件看门狗模块所设定的超时时间时,该虚拟机管理模块执行虚拟硬件看门狗模块所设定的超时操作。
[0024]进一步,当已注册的应用服务未发生故障时,看门狗复用模块向虚拟硬件看门狗模块发送重置计时器的信号,虚拟硬件看门狗模块接收到该信号后重置计时器。
[0025]进一步,超时操作至少包括以下操作中的任一种:重启虚拟机、关闭虚拟机、暂停虚拟机或者将虚拟机内存中的数据保存到物理服务器文件系统的指定文件中。
[0026]与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
[0027]本发明进一步提高了虚拟服务器的服务可用性,使虚拟服务器在操作系统本身发生故障或者应用服务进程发生故障时,虚拟服务器能迅速从故障中恢复,继续对外提供服务。
[0028]本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指出的结构来实现和获得。
【专利附图】
【附图说明】
[0029]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。
[0030]图1是根据本发明一实施例的虚拟机应用服务故障恢复系统的结构示意图。
[0031]图2是根据本发明一实施例的虚拟机应用服务故障恢复系统的故障恢复方法的流程示意图。
【具体实施方式】
[0032]以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
[0033]另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0034]本发明涉及一种虚拟机应用服务故障恢复系统及其故障恢复方法,下面将结合附图及具体实施例对本发明进行进一步详细说明。
[0035]图1为本发明一实施例的虚拟机应用服务故障恢复系统的结构示意图,整个虚拟机应用服务故障恢复系统需要运行在支持虚拟化技术的物理服务器100上,该系统由虚拟机管理模块101、虚拟硬件看门狗模块102、看门狗驱动模块103和看门狗复用模块104组成。其中,虚拟机管理模块101运行于物理服务器100的操作系统中。以下对虚拟机应用服务故障恢复系统的各模块进行详细说明。
[0036]虚拟机管理模块101,用于在物理服务100上创建虚拟机并在该虚拟机上添加虚拟硬件看门狗模块102,还对虚拟机及其上的虚拟硬件看门狗模块102进行管理,其管理功能至少包括:启动虚拟机、关闭虚拟机、删除虚拟机、暂停虚拟机、移除虚拟硬件看门狗模块、更新虚拟硬件看门狗模块的配置信息、监控虚拟硬件看门狗模块,并在一定条件下触发虚拟硬件看门狗模块的超时操作,以及虚拟机显示控制台。该虚拟机管理模块101可以创建一个或多个虚拟机。
[0037]除了虚拟管理程序101之外,该系统的其他三个模块都是和虚拟机相关的。其中,虚拟硬件看门狗模块102是利用虚拟化技术模拟出来的硬件看门狗设备,在虚拟机看来,这是一块真实的硬件设备,类似于虚拟CPU等其它虚拟硬件设备。该虚拟硬件看门狗模块102使用虚拟机中的PCI总线,包括一个计时器,其与计时器相关的功能包括:设定计时器的超时时间及超时操作、启用计时器、禁用计时器、重置计时器等。当计时器被启用后,计时器就开始计时,如果在达到超时时间之前,计时器都未被重置,则触发超时操作,预先设置的超时操作将会被执行;如果在达到超时时间之前,计时器被重置了,则计时器重新开始计时。
[0038]当包含了虚拟硬件看门狗模块102的虚拟机创建好之后,首先需要在虚拟机中安装好操作系统。硬件看门狗模块102中的看门狗驱动模块103和看门狗复用模块104都运行于虚拟机操作系统中。其中,
[0039]看门狗驱动模块102,用于驱动虚拟硬件看门狗模块102,使该虚拟硬件看门狗模块能够正常工作。
[0040]看门狗复用模块102,用于复用虚拟硬件看门狗模块102,解决现有的硬件看门狗设备只能监测单个进程的问题,使得多个进程能够同时使用虚拟硬件看门狗模块102。该看门狗复用模块102还可以注册需要被监测的应用服务的进程、监测或定时监测已注册的应用服务的进程、重置虚拟硬件看门狗模块102的计时器。
[0041]每隔一段时间,看门狗复用模块104自动监测已注册的多个应用服务的进程是否都处于正常的工作状态,如果所有被监测的进程都处于正常的工作状态,则看门狗复用模块104向虚拟硬件看门狗模块102发送信号,重置的虚拟硬件看门狗模块102的计时器,以示一切正常;如果被监测的某一个或者某几个进程处于非正常状态,则看门狗复用模块104不会向虚拟硬件看门狗模块102发送信号,如果在虚拟硬件看门狗模块102的超时时间以内,看门狗复用模块104都没有向虚拟硬件看门狗模块102发送信号,则将会导致虚拟硬件看门狗模块102超时,虚拟机管理模块101监测到虚拟机的虚拟硬件看门狗模块102超时后,将会触发该虚拟机的虚拟硬件看门狗模块102所设定的超时操作。
[0042]其中,该虚拟硬件看门狗模块102所设定的超时操作包括:重启虚拟机、关闭虚拟机、暂停虚拟机、转储虚拟机内存或者忽略超时操作,其中,转储虚拟机内存是指将虚拟机内存中的数据保存到物理服务器文件系统中的指定文件里;忽略超时操作是指在虚拟硬件看门狗模块102超时后,保持虚拟机原来的状态不作任何改变。为了保证应用服务的可用性,本实施例选择重启虚拟机作为超时操作。
[0043]此外,该看门狗复用模块104监测应用服务进程的时间间隔在实践经验中的较优值为10秒,虚拟硬件看门狗模块102的超时时间为60秒。因此,在此场景下,看门狗复用模块104只要连续6次没有向虚拟硬件看门狗模块102发送信号,就会导致虚拟硬件看门狗模块102超时。这种设计模式可以在一定程度上排除应用服务进程短暂无响应的情况,例如某一时刻系统资源使用率极高,导致应用服务进程暂时无法响应,但系统资源使用率降下去以后,应用服务进程仍能正常工作,所以只要应用服务进程能迅速恢复响应,可以避免触发超时操作。
[0044]图2是根据本发明一实施例的虚拟机应用服务故障恢复系统的故障恢复方法的流程示意图。以下结合附图2,对本实施例的虚拟机应用服务故障恢复系统的故障恢复方法的实现流程进行详细描述。
[0045]步骤S201,虚拟机管理模块在物理服务器上创建虚拟机VMl,在虚拟机VMl上添加虚拟硬件看门狗模块,并设定该虚拟硬件看门狗模块的超时操作,例如设定该超时操作为重启虚拟机。
[0046]步骤S202,在创建好的虚拟机VMl中安装好操作系统,并在操作系统中安装好虚拟硬件看门狗模块的驱动程序即看门狗驱动模块。
[0047]接下来,步骤S203,在虚拟机VMl的操作系统中安装并启动看门狗复用模块。
[0048]然后,步骤S204,在虚拟机VMl的操作系统中安装配置好所需的服务Servicel、Service2以及Service3,这三个应用服务都是需要被监测的应用服务,因此,需要把这三个应用服务注册到看门狗复用模块中。
[0049]其中,将需要被监测的应用服务注册到看门狗复用模块中的一种方式为:分别为每一个需要被监测的应用服务创建一个可执行脚本,该脚本用于检测对应应用服务的状态,并将这些脚本放到看门狗复用模块的指定目录中。
[0050]例如,在本实施例中,可以创建一个脚本Scriptl,用于检测Servicel服务的运行状态;再创建一个脚本Script2,用于检测Service〗服务的运行状态;最后再创建一个脚本Script3,用于检测Service3服务的运行状态。把Scriptl、Script2和Script3这三个脚本放到看门狗复用模块的指定目录中,即可把Servicel、Service2和Service3这三个服务注册到看门狗复用模块中。
[0051]步骤S205,看门狗复用模块将会定时监测已注册的应用服务的进程,检查已注册的应用服务的进程是否存在处于非正常状态。
[0052]其中,看门狗复用模块定时监测已注册的应用服务的进程的一种方式为:以一定的时间周期,分别执行指定目录下的脚本,根据脚本的执行结果,判断脚本所对应的服务进程的运行状态。
[0053]例如,在本实施例中,看门狗复用模块将每隔10秒定时执行一次指定目录中的Scriptl 脚本、Script2 脚本和 Script3 脚本,判断 Servicel、Service2 和 Service3 三个服务是否运行正常。
[0054]步骤S206,如果所有被监测的应用服务的进程都处于正常状态,则看门狗复用模块向虚拟硬件看门狗模块发送重置计时器的信号;步骤S207,虚拟硬件看门狗模块重置计时器。然后,转到步骤S205,看门狗复用模块会继续监测已注册的应用服务进程。
[0055]如果被监测的应用服务的进程存在处于非正常状态,则看门狗复用模块不向虚拟硬件看门狗模块发送重置计时器的信号。例如,在本实施例中,如果Script2脚本执行失败了,说明Service应用服务进程暂时处于非正常状态,则看门狗复用模块就不会向虚拟硬件看门狗模块发送重置计时器的信号。
[0056]步骤S208,如果看门狗复用模块不发送重置计时器的信号,就有可能导致计时器超时,需要再次判断计时器是否超时,判断计时器是否超时的方式之一为:在设定的定时时间内,例如60秒,虚拟硬件看门狗模块是否收到重置计时器的信号,如未收到则将导致计时器超时。如果计时器超时了,则虚拟机管理模块将会触发虚拟硬件看门狗模块的超时操作。例如,在本实施例中,计时器超时后将会重启虚拟机。重启虚拟机后,各服务进程又重新开始正常工作,即可保证服务的可用性。同时,虚拟机重新启动后,转到步骤S205,看门狗复用模块会继续监测已注册的应用服务进程。
[0057]如果计时器还没有超时,则转到步骤S205,看门狗复用模块会继续监测已注册的应用服务进程。在看门狗复用模块进行下一次监测时,如果暂时处于非正常状态的Service〗应用服务进程又恢复正常了,且其它被监测的应用服务的进程Servicel和Service3也都处于正常状态,则看门狗复用模块就会向虚拟硬件看门狗模块发送重置计时器信号,虚拟硬件看门狗模块重置计时器。上述这种设计方式可以给暂时处于非正常状态的应用服务进程一个自行恢复的机会,从而可以避免一些不必要的虚拟服务器重启。
[0058]本发明实施例所涉及的虚拟机应用服务故障恢复系统及其故障恢复方法,能够及时监测并自动恢复在虚拟服务器操作系统本身或虚拟服务器中应用服务的进程故障时的虚拟机,进一步提高了虚拟化环境中虚拟服务器所提供的应用服务的可用性。
[0059]本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0060]虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属【技术领域】内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
【权利要求】
1.一种虚拟机应用服务故障恢复系统,其特征在于,该系统包括: 虚拟机管理模块,用于在物理服务器上创建虚拟机并在该虚拟机上添加虚拟硬件看门狗模块; 虚拟硬件看门狗模块,包含至少一个计时器,用于设定虚拟机应用服务发生故障的超时时间和超时操作; 看门狗驱动模块,用于驱动虚拟硬件看门狗模块,使得所述虚拟硬件看门狗模块能够正常工作; 看门狗复用模块,用于复用虚拟硬件看门狗模块,使得多个进程能够同时使用该虚拟硬件看门狗模块;其中, 该虚拟机应用服务故障恢复系统将应用服务注册到看门狗复用模块中,由看门狗复用模块对已注册的应用服务进行监测,当看门狗复用模块监测到该应用服务发生故障且发生故障的时间超过虚拟硬件看门狗模块所设定的超时时间时,该虚拟机管理模块触发虚拟硬件看门狗模块所设定的超时操作。
2.如权利要求1所述的系统,其特征在于, 当看门狗复用模块监测到已注册的应用服务未发生故障时,看门狗复用模块向虚拟硬件看门狗模块发送重置计时器的信号,虚拟硬件看门狗模块接收到该信号后重置计时器。
3.如权利要求1所述的系统,其特征在于, 虚拟机管理模块还用于启动虚拟机、关闭虚拟机、删除虚拟机、暂停虚拟机;移除虚拟硬件看门狗模块、更新虚拟硬件看门狗模块的配置信息。
4.如权利要求1所述的系统,其特征在于,虚拟硬件看门狗模块还用于启用计时器或禁用计时器。
5.如权利要求1至4任一项所述的系统,其特征在于,所述虚拟硬件看门狗模块所设定的超时操作至少包括以下操作中的任一种: 重启虚拟机、关闭虚拟机、暂停虚拟机或者将虚拟机内存中的数据保存到物理服务器文件系统的指定文件中。
6.如权利要求1或2所述的系统,其特征在于, 看门狗复用模块对已注册的应用服务定时进行监测。
7.如权利要求6所述的系统,其特征在于, 看门狗复用模块每隔10秒定时对已注册的应用服务进行监测,且设定的超时时间为60秒。
8.—种虚拟机应用服务故障恢复系统的故障恢复方法,其特征在于,该虚拟机应用服务故障恢复系统包括: 虚拟机管理模块,用于在物理服务器上创建虚拟机并在该虚拟机上添加虚拟硬件看门狗模块; 虚拟硬件看门狗模块,包含至少一个计时器,用于设定虚拟机应用服务发生故障的超时时间和超时操作; 看门狗驱动模块,用于驱动虚拟硬件看门狗模块,使得所述虚拟硬件看门狗模块能够正常工作; 看门狗复用模块,用于复用虚拟硬件看门狗模块,使得多个进程能够同时使用该虚拟硬件看门狗模块; 该故障恢复方法包括: 将应用服务注册到看门狗复用模块中,由看门狗复用模块对已注册的应用服务进行监测,当看门狗复用模块监测到该应用服务发生故障且发生故障的时间超过虚拟硬件看门狗模块所设定的超时时间时,该虚拟机管理模块执行虚拟硬件看门狗模块所设定的超时操作。
9.如权利要求8所述的方法,其特征在于, 当已注册的应用服务未发生故障时,看门狗复用模块向虚拟硬件看门狗模块发送重置计时器的信号,虚拟硬件看门狗模块接收到该信号后重置计时器。
10.如权利要求8或9所述的方法,其特征在于,超时操作至少包括以下操作中的任一种: 重启虚拟机、关闭虚拟机、暂停虚拟机或者将虚拟机内存中的数据保存到物理服务器文件系统的指定文件中。
【文档编号】G06F11/16GK104199753SQ201410448747
【公开日】2014年12月10日 申请日期:2014年9月4日 优先权日:2014年9月4日
【发明者】马立克, 蒋涛, 张维婷, 姚远, 宋潇豫, 张永军, 乔咏, 赵峰 申请人:中标软件有限公司