CN103201724B - 在高可用性虚拟机环境中提供高可用性应用程序 - Google Patents

在高可用性虚拟机环境中提供高可用性应用程序 Download PDF

Info

Publication number
CN103201724B
CN103201724B CN201180035090.2A CN201180035090A CN103201724B CN 103201724 B CN103201724 B CN 103201724B CN 201180035090 A CN201180035090 A CN 201180035090A CN 103201724 B CN103201724 B CN 103201724B
Authority
CN
China
Prior art keywords
virtual machine
application program
monitoring agent
information
response
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.)
Active
Application number
CN201180035090.2A
Other languages
English (en)
Other versions
CN103201724A (zh
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.)
NortonLifeLock Inc
Original Assignee
Symantec Corp
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
Priority to US12/847,030 priority Critical
Priority to US12/847,030 priority patent/US8424000B2/en
Priority to US12/847030 priority
Application filed by Symantec Corp filed Critical Symantec Corp
Priority to PCT/US2011/045951 priority patent/WO2012016175A1/en
Publication of CN103201724A publication Critical patent/CN103201724A/zh
Application granted granted Critical
Publication of CN103201724B publication Critical patent/CN103201724B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; 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; 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
    • GPHYSICS
    • G06COMPUTING; 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Abstract

不同的系统和方法可以提供在高可用性虚拟机环境下执行的应用程序的高可用性。一种方法包括从在虚拟机中执行的监控代理接收指示该虚拟机中执行的应用程序的状态的信息。响应于接收到该信息,该方法涉及确定是否应该重启该虚拟机。根据该确定,该方法然后确定监控代理是否应该在超时间隔到期之前向虚拟化控制器发出心跳信息。如果该虚拟机在超时间隔到期之前没有发出心跳信息,配置该虚拟化控制器以重新启动虚拟机。

Description

在高可用性虚拟机环境中提供高可用性应用程序
[000Ί] 乔格.罗希特.维贾伊(Jog Rohit Vijay)
[0002]萨林.苏米特.曼莫汉(Sarin Sumit Manmohan)
技术领域
[0003] 本发明涉及高可用性,更具体地是涉及在虚拟机中提供高可用性应用程序。
背景技术
[0004] 虚拟化系统允许多个操作系统(实际上可以是相同类型操作系统的单独实例)在同一时段内在同一硬件上执行。每个执行的操作系统充当一个独立的“虚拟机”,它们可以交互并且可以采用基本相同的方式用作在独立硬件上执行的独立操作系统。通过将一个硬件计算装置有效地转变成若干虚拟机,虚拟机允许提高硬件资源的使用率。
[0005] —些虚拟化系统提供虚拟化控制器,该虚拟化控制器可以管理在一个或多个计算装置上实施的一个或多虚拟机。此类虚拟化控制器可以与虚拟机通信并且控制这些虚拟机的运行。在某些环境下,虚拟化控制器甚至可以采用提供虚拟机的高可用性的方式来管理虚拟机,这样如果一个特定虚拟机发生故障,虚拟化控制器可以在另一个计算装置上重启发生故障的虚拟机。不幸的是,在提供高可用性虚拟机的传统虚拟化系统中,同样不可能有效地使虚拟机内执行的应用程序具有高可用性。
发明内容
[0006] 在此披露了各种提供在高可用性虚拟机环境下执行的应用程序的高可用性的系统和方法。例如,一种方法包括从在虚拟机中执行的监控代理接收指示该虚拟机中执行的应用程序的状态的信息。响应于接收到该信息,该方法确定是否该重启该虚拟机。基于该确定,该方法然后确定监控代理是否在超时间隔到期之前向虚拟化控制器发出心跳信息。如果虚拟机在超时间隔到期之前没有发出心跳信息,配置虚拟化控制器以重新启动虚拟机。确定是否发出心跳信息的操作由计算装置执行。在一些实施方案中,由实施决策代理的计算装置来执行该确定操作,该决策代理并不在该虚拟机中执行。
[0007] 接收到的信息可以识别在虚拟机中执行的多个应用程序中的每一个应用程序的运行状态。确定是否重新启动该虚拟机可以基于该多个应用程序中的每一个应用程序的运行状态和优先级。
[0008] 例如,响应于识别出该多个应用程序中一个较高优先级的应用程序正确执行并且该多个应用程序中一个较低优先级的应用程序发生故障的信息,该方法可以确定不应该重启该虚拟机。或者,响应于识别出该多个应用程序中一个较高优先级的应用程序发生故障并且该多个应用程序中一个较低优先级的应用程序正确执行的信息,该方法可以确定应该重启该虚拟机。在一个实施方案中,响应于识别出该应用程序不正确运行的信息,该方法可以确定监控代理首先尝试重启该应用程序,其中在确定虚拟机是否应该重启之前尝试重启该应用程序。
[0009] 响应于识别出该应用程序已经有意脱机的信息,该方法可以决定注销监控代理以避免向虚拟化控制器提供心跳信息。监控代理被注销之后可以继续监控该应用程序。响应于识别出该应用程序重新上线的信息,该方法可以决定重新注册监控代理以便向虚拟化控制器提供心跳ί目息。
[0010]该方法可以包括从管理员接收信息。例如,该信息可以指示是否应用程序已经脱机和/或是否监控代理应该继续监控应用程序。
[0011] 系统的一个实例包括一个或多个处理器和连接至该一个或多个处理器的存储器。该存储器存储程序指令,这些程序指令可执行用于实施类似上述方法的一种方法。同样,这些程序指令可以存储在计算机可读存储介质上。
[0012]前述内容是概述,因此必然包含细节的简化、概括和省略;因此本领域的普通技术人员将会认识到此概述只是示例性的并且不用于任何形式的限制。仅由权利要求定义的本发明的其他方面、创新性特征以及优点在以下的非限定性详细描述中将变得明显。
[0013] 附图简述
[0014] 通过参考附图,本发明可以得到更好的理解,并且其众多目标、特征以及优点对本领域的普通技术人员是明显的。
[0015]图1是根据本发明的一个实施方案的一种在高可用性虚拟机环境下提供应用程序的高可用性的系统的框图。
[0016]图2是根据本发明的另一个实施方案的另一种在高可用性虚拟机环境下提供应用程序的高可用性系统的框图。
[0017]图3是根据本发明的一个实施方案的一种在高可用性虚拟机环境下提供应用程序的高可用性的方法的流程图。
[0018]图4是根据本发明的一个实施方案的一种确定是否允许心跳信号从执行多个监控应用程序的虚拟机发送到虚拟化控制器的方法的流程图。
[0019]图5是根据本发明的一个实施方案的一种计算装置的框图,该框图展示了监控代理和决策代理两者如何在软件中实施。
[0020]图6是根据本发明的一个实施方案的一种网络系统的框图,该框图展示了各种计算装置如何通过网络进行通信。
[0021]尽管很容易对本发明做出各种修改和替代形式,但在附图和详细的说明中仍以实例提供本发明的具体实施方案。应当理解,附图和详细说明并无意将本发明限制于所披露的具体形式。相反,目的是覆盖所有落入由所附权利要求所限定的本发明的精神和范围内的修改形式、等同形式和替代形式。
[0022] 实施本发明的一种或多种模式
[0023]图1是一个虚拟化系统的框图。如图所示,虚拟化系统包括两台主机10 (I)和10
(2)。在此实例中,每台主机实施两个虚拟机(VMs)。如图所示,主机10 (I)实施VM 30 (I)和VM302 (2).同样,主机10 (2)实施VM 30 (3)和VM 30⑷。应当注意的是替代实施方案可以每台主机实施与此实例中所示的主机不同数量的VM,并且相同的系统可以包括一个或多个主机,其中每台主机可以和在同一系统的其他主机实现不同数量的VM。
[0024] 虚拟机VM 30⑴-VM 30 (4)各自提供一个执行操作系统的自容式实例。可以利用相同或不同的操作系统实施在同一主机上执行的多个VM。与VM交互的客户端通常将以完全相同的方式(客户端与独立硬件上运行的独立操作系统进行交互)进行交互。可以利用虚拟化软件(例如美国加利福尼亚州的Palo Alto公司提供的VMware)来实施虚拟机。
[0025] 应用程序在虚拟机的每一个的内部执行。这种应用程序可以是数据库应用程序、邮件服务器等。这里,应用程序40⑴在VM 30(1)中执行,应用程序40 (2)在VM 30 (2)中执行,应用程序40⑶和40⑷在VM 30⑶中执行,而应用程序40⑶在VM 30⑷中执行如图所示,多个应用程序可以在一个单一 VM内执行。在一个给定的VM上执行的应用程序的类型和在同一个虚拟化系统内的另一个VM上执行的应用程序的类型可以相同或不同。
[0026] 监控代理(一种特殊类型的应用程序)也在每个VM内执行。每个监控代理被配置为监控在相同VM内执行的一个或多个应用程序的状态并且将所监控的一个或多个程序的状态报告给决策代理。如图所示,监控代理50⑴在VM 30(1)中执行并且监控应用程序40 (I)的状态。监控代理50 (2)在VM 30 (2)中执行并且监控应用程序40 (2)的状态。监控代理50 (3)在VM 30 (3)中执行并且监控应用程序40 (3)和40⑷中每一个的状态。监控代理50⑷在VM30 (4)中执行并且监控应用程序40 (5)的状态。尽管图1展示了一个单一的监控代理可以监控多个应用程序的实施方案,但替代实施方案可以在每个VM上使用多个监控代理,这样在被监控的应用程序和监控代理之间存在一一对应关系。应当注意的是监控代理可以被配置为监控比给定VM中执行的所有应用程序更少的应用程序。
[0027] 在一些实施方案中,监控代理被实施为VERITAS集群服务器(VCS)代理,该代理可从美国加利福尼亚州的库比蒂诺的Symantec公司购得。在这种实施方案中,每个VM可以被配置为一个独立的单节点群集。监控代理可以被配置为该单节点群集的监控服务组。在VM中受到监控的每个应用程序还可以被配置为该单节点群集的服务组。该监控服务组监控相同单节点集群内的其他服务组的状态。
[0028] 决策代理(另一种特殊类型的应用程序)在每一个VM内执行。决策代理被配置用于基于一个或多个应用程序的状态(由一个或多个相应的监控代理来识别)来确定应当采取什么动作(如果存在的话)。将在以下进行更为详细地描述决策代理的操作。如图所示,决策代理60⑴在VM 30⑴中执行,决策代理60⑵在VM 30⑵中执行,决策代理60⑶在VM 30
(3)中执行,而决策代理60 (4)在VM 30 (4)中执行。在一些实施方案中,监控代理和决策代理的功能可以合并为在每一个VM内执行的一个单一代理。
[0029] 主机10⑴和10 (2)相连接以便与服务器70进行通信(例如,通过网络),该服务器执行虚拟化控制器80。虚拟化控制器80控制在主机10⑴和10 (2)上实施的多个VM。因此,虚拟化控制器80监控每个VM的状态以识别每个VM是否正确执行。响应于检测到VM出现故障,虚拟化控制器80可以采取行动来纠正这种情况。此类行动可以包括在相同的或另一台主机上重启故障的VM或尝试纠正导致故障的问题。
[°03°] 在一些实施方案中,虚拟化控制器80可以作为VMware的vCenter服务器(TM)来实施。在此类实施方案中,虚拟化控制器80可以通过VMware Tools (TM)提供的心跳通道与VM进行通信,该TM可以安装在每一个VM中并在其中执行。在此类实施方案中,用于在另一个主机上重新启动VM的机构可以是vMot1n (TM)。可以利用虚拟化软件(例如由美国加利福尼亚州的Palo Alto公司的VMware所提供的虚拟化软件)来实现这些特征。
[0031] 这里,虚拟化控制器80依赖于每个VM的心跳信息来确定该VM的状态。在每个VM上的应用程序(例如,以下更为详细描述的监控代理)向虚拟化控制器80注册,以指示注册的应用程序将发送心跳给虚拟化控制器80。而当处于从一个特定VM接收心跳的状态时,虚拟化控制器80预计从该特定VM每周期(也称作超时间隔)接收一次心跳。如果在一个给定的周期内没有接收到一个心跳(或者如果在连续周期上没有接收到一系列心跳),虚拟化控制器80将确定该VM出现故障并且采取纠正行动(例如,重启另一台主机上的VM)。
[0032] 为了提供在图1的虚拟环境中执行的应用程序的高可用性,每个监控代理将向虚拟化控制器80注册,以为它的VM提供心跳。因此,监控代理50⑴注册以便为VM 30⑴提供心跳,监控代理50⑵注册以便为VM 30 (2)提供心跳,监控代理50 (3)注册以便为VM 30 (3)提供心跳,监控代理50 (4)注册以便为VM 30 (4)提供心跳。
[0033] 如上所述,监控代理50 (I) -50 (4)将监控应用程序并且将这些应用程序的状态报告给决策代理60⑴-60 (4)中的一个对应的决策代理。根据在特定VM上监控的程序的状态,该VM中的决策代理将决定是否应该重启该应用程序,该VM是否应该继续由虚拟化控制器进行监控,并且是否应该发送该VM的心跳信息。然后决策代理将其决策报告给监控代理,监控代理会采取所决定的行动。
[0034] 对于作为监控代理的相同VM内的每个受监控应用程序,该监控代理可以检测该应用程序是否正确执行。在至少一些实施方案中,监控代理还可以在一个非执行的应用程序是由于故障还是由于有意脱机而不执行之间进行辨别。例如,监控代理可以提供接口(例如,图形用户接口、命令行接口等),管理员可以通过该接口通知该监控代理一个应用程序已经脱机,作为响应,该监控代理可以更新与该应用程序相关的状态信息以指示该应用程序是有意脱机的。应当注意的是管理员可以在任何时候使应用程序脱机或重新联线(并且通过接口识别此动作),不管当前的操作状态是否由监控代理所检测。
[0035] 当监控代理检测到应用程序未执行,监控代理可以进行检查(例如,通过访问与该应用程序相关联的存储信息)以查看是否在该应用程序停止执行之前管理员就指示了该应用程序正在脱机。当有意脱机之后应用程序重新启动时,管理员可以再次(例如,通过接口)通知监控代理应用程序的状态变化。可替代地,监控代理可以简单检测到该应用程序已经在下个心跳周期重新启动并且清除以前与该应用程序相关的任何信息。
[0036]因此,监控代理识别每个被监控的应用程序是否正确执行。如果未正确执行,至少在某些实施方案中,监控代理将进一步分辨应用程序没有执行是由于故障或由于有意脱机。监控代理可以产生描述应用程序及其检测到的执行状态的信息,并且将这种信息提供给决策代理。例如,监控代理50⑴可以检测到应用程序40⑴发生故障,并且可以向决策代理60⑴发送指示应用程序40⑴发生故障的信息。
[0037]当从监控代理接收描述每个应用程序的状态的信息(例如,在线、故障、或有意脱机)时,作为响应,决策代理决定采取何种动作。如果在VM中只有一个单一的受监控的应用程序,而且该应用程序正在正常执行,决策代理将决定发送心跳信息(确保该虚拟化控制器不重启该VM)。如果该应用程序发生故障,决策代理将决定禁止发送心跳信息,这样将使虚拟化控制器重启VM (在该VM中发生故障应用程序正在执行),这将在已重启的VM内有效地重启发生故障的应用程序。
[0038] 如果应用程序已经有意脱机(例如,如果应用程序不执行但是并未出现故障),决策代理可以决定注销理应该撤销向虚拟化控制器提供心跳。监控代理通过向虚拟化控制器发送一个注销请求来实现注销。注销处理有效地从为高可用性而进行监控的VM组中删除已注销的VM。虚拟化控制器不再期望从VM接收到定期的心跳信息,并且当没有心跳从VM接收到时不会重启VM。
[0039] 接口(例如,用于允许管理员指示何时应用程序已经有意脱机)还可以允许管理员指定监控代理何时应该重新注册。例如,当应用程序重新联机时,管理员可以指定是否监控代理应该注册心跳信息。例如,如果应用程序脱机进行升级时,管理员可以指示该注销应该是暂时的。相反如果该应用程序是因为不再用于提供服务而脱机的,管理员可以指示该注销应该是永久性的。
[0040] 监控代理可以获取并报告每个被监控的应用程序每一次心跳周期的状态。同样,决策代理可以接收该信息并基于该信息在每一次心跳周期上产生一个决定。在不注册监控代理以发送心跳给虚拟化控制器期间,监控代理仍然可以继续监控一个或多个应用程序的状态并且向决策代理报告应用程序状态。同样,决策代理可以每周期一次地的从监控代理接收信息并且利用该信息决定采取何种动作(例如,发送心跳,不发送心跳,或注销)。在注销的同时,通过继续监控应用程序,监控代理可以检测何时应用程序重新联机。当检测到该动作时,作为响应,决策代理可以使监控代理重新注册以便向虚拟化控制器发送心跳信息。
[0041] 如果多个应用程序被监控时,监控代理将向适当的决策代理报告每个被监控应用程序的状态,然后根据状态和每个应用程序的优先级决定采用何种操作。应用程序的优先级可以通过管理员进行配置(例如,通过命令行接口或图形用户接口输入信息)并由决策代理存储。
[0042] 通常在做决定时,相比于较低优先级应用程序,决策代理将给予高优先级应用程序的状态更高的权重。考虑应用程序优先级的各种不同算法中的任意一种都可用于实现此过程。例如,一个简单的算法可以简单评估最高优先级应用程序的状态并且根据该应用程序的状态做出决定。如果该最高优先级应用程序正确执行时,决策代理可以决定该监控代理应该发送心跳,而不管任何较低优先级应用程序的状态如何。相似地,即使所有较低优先级应用程序正确运行,如果最高优先级应用程序发生故障,决策代理可以决定监控代理不应当发送心跳信息。在此实例中,所有权重都给予最高优先级应用程序的状态。
[0043] 其他算法可以比上述例子分配更多权重给较低优先级的应用程序,上述例子中除了最高优先级的应用程序外,不分配任何权重给任意应用程序。例如,一个算法可以将VM内正在被监控的发生故障的应用程序的优先级总和与VM内正在被监控的正确执行的应用程序优先级总和进行比较。如果对应于发生故障的应用程序总和更大,决策代理可以决定停止发送心跳。相似地,如果对应于正确执行的应用程序总和更大,决策代理可以决定继续发送心跳。如果总和相等,在一个实施方案中,决策代理可以决定停止发送心跳。另一个算法可以将正确执行和有意脱机的应用程序的优先级总和与发生故障的应用程序优先级总和进行比较。如果前者的总和更大,决策代理将使监控代理继续发送心跳。如果后者总和更大,决策代理将阻止心跳的发送。
[0044] 通过将多个应用程序的状态压缩到一个单一心跳通信信道,决策代理可以有效地在一个单一通信信道上将多个应用程序状态多路复用到一个单一心跳信息。这允许系统基于配置的优先级提供多个应用程序的高可用性,尽管只有一个单一心跳通信信道。
[0045] 在以上实例中,如果应用程序发生故障,标准的响应是停止发送心跳信息,从而使VM (其中发生故障的应用程序执行)重启。在另一个实施方案中,代替自动使包含故障应用程序的VM重启的是,决策代理相反可以首先决定监控代理应该尝试重启故障应用程序。决策代理可以被配置(例如,管理员通过接口输入信息)为具有最大数量的重试,以便允许在决策代理决定VM应该重启之前可以控制这种决定到达故障应用程序的次数。为了给应用程序重新启动的时间,在监控代理尝试重新启动应用程序的同时,决策代理可以指示监控代理向虚拟化控制器注销。
[0046]如上所提及,用于控制每个决策代理的不同信息可以由管理员通过接口输入信息进行配置。这些信息在VM之间和应用程序之间可以不同。因此,在一个VM中,管理员可以选择使应用程序A比分配到另一个VM中的应用程序A的实例具有更高的优先权。
[0047]图2展示了虚拟化系统的另一个例子。该实例说明了监控代理和决策代理的功能可以如何分离,这样决策代理在不同于监控代理的计算装置上执行。此外,该实例说明了在监控代理和决策代理之间不需要一一对应的关系。
[0048] 在图2的实例中,服务器70以及主机10⑴和10 (2)以类似于图1所示的方式进行配置。然而,在每个VM内执行的不是一个独立的决策代理,而是一个单独的决策代理60在计算装置90上执行,该装置与主机10⑴和10 (2)相连接以进行通信。在此实例中,每个监控代理50 (I) -50 (4)被配置用于将监控代理产生的信息发送到单一的决策代理60,然后决策代理利用类似上述的技术处理该信息并产生决定。接着决策代理60将描述其决定的信息返回给合适的监控代理。例如,响应于监控代理50 (3)接收到的指示该应用程序40 (4)(具有比应用程序40 (3)更高的优先级)发生故障的信息,决策代理60可以决定监控代理50 (3)应该停止向虚拟化控制器70发送心跳信息。响应于接收到的识别该决定的信息,监控代理50⑶将终止向虚拟化控制器80发送心跳信息,这将继而使虚拟化控制器80重启不同主机(例如,主机
10 ⑴)上的VM 30(3) ο
[0049]如图1所示的实例,管理员可以将决策代理60配置为在每个VM上不同的优先级用于不同应用程序。管理员可以为每个应用程序和每个VM提供不同的信息。决策代理可以选择使用哪个优先级和其他信息(例如,在决定对故障应用程序在其中执行的VM进行故障转移之前,尝试重启应用程序的次数)来处理从监控代理接收的一组给定信息(基于哪个监控代理发送了该信息)。因此,响应于从监控代理50 (I)接收信息,决策代理60可以选择使用与VM 30⑴相关的信息以处理接收的信息。
[0050]图3展示了一种在虚拟环境中提供高可用性应用程序的方法。该方法可以通过结合决策代理操作的监控代理来实现。如上图所示,这些组件可以或不可以在与彼此相同的计算装置上执行。
[0051]当在虚拟机内执行的监控代理检测到在该虚拟机内执行的应用程序状态时,该方法开始,以300示出。操作300的执行可可以包括监控另一个服务组(包括被监控的应用程序)的状态的监控服务组代理。描述操作300的结果的信息可以从监控代理发送至决策代理,决策代理可以或可以不与监控代理相集成。
[0052] 如果被监控的应用程序正确执行,如在305所确定的,可以针对是否当前注册了监控代理以向监控虚拟机的虚拟化控制器提供心跳信息而做出决定,以310示出。操作305和310可以通过决策代理来实现,决策代理处理由监控代理产生的信息。
[0053] 如果当前并未注册监控代理目来提供心跳信息,监控代理将注册以提供心跳信息,以315示出,然后在当前周期发送心跳。如果当前注册了监控代理以提供心跳,监控代理将当前周期的心跳信息发送至虚拟化控制器,以320示出。操作315和320的执行可以包括决策代理决定采取的动作并将该动作传输给监控代理,然后监控代理采取决策代理所选择的动作。
[0054] 如果应用程序未正确执行,可以针对是否应用程序发生故障或已经有意脱机来做出决定,以325示出。操作325的执行包括监控代理检测应用程序的状态(例如,在应用程序已经有意脱机的情况下利用管理员输入的信息)以及决策代理处理该信息。
[0055] 如果应用程序发生故障,监控代理将注册以提供心跳(如果尚未注册的话),以340和345示出。那么监控代理将不向虚拟化控制器发送心跳信息,以330示出。
[0056] 相反,如果应用程序已经有意脱机,监控代理将注销发送心跳信息给虚拟化控制器,以335示出。操作330和335的执行包括决策代理决定采取的动作并将该决定传递给监控代理,然后监控代理采取决策代理所选择的动作。
[0057]图3的方法(以及以下描述的图4的方法同样)可以每一次心跳周期重复一次。因此,例如在一个周期,可以检测到应用程序正在正常运行,而在下个周期,可以检测到相同的应用程序已经有意脱机了。作为响应,监控代理可以注销。此后的几个周期,可以再次检测到应用程序在线并且监控代理可以注册以再次提供心跳。此后一段时间,监控代理可以检测应用程序发生故障,并且监控代理可以通过停止发送心跳使应用程序重启(通过使应用程序在其中执行的虚拟机重新启动)。
[0058]图4是一种在虚拟环境下提供多个应用程序的高可用性的方法的实例。类似图3的方法,该方法可以通过与决策代理相结合操作的监控代理来实现。
[0059]图3所示的方法在400开始,此时监控代理检测在与检测代理相同的虚拟机内执行的若干被监控应用程序中每一个的运行状态(例如,正确执行,故障,或有意脱机)。决策代理可以检测那些被监控应用程序中每一个的优先级(例如,通过访问管理员输入的配置信息)。
[0060] 在405,决策代理使用识别应用程序的运行状态的信息和优先级来确定所希望的一个或多个应用程序组是否正确执行。决策代理可以使用上述算法之一做出该决定,或使用考虑了应用程序优先级的任何其他算法。
[0061] 如果所需的应用程序正在执行并且当前注册了监控代理以向虚拟化控制器提供用于虚拟机的心跳,决策代理决定监控代理应该发送当前周期的心跳信息,以420示出。如果监控代理当前未注册,监控代理将注册(415),然后发送心跳信息(420)。
[0062] 如果所需的应用程序未正确执行,决策代理确定(例如,通过寻找最高优先级应用程序的运行状态,通过比较发生故障和有意脱机的应用程序的优先级总和等)是否所需应用程序发生故障或已经有意脱机,以425示出。如果所需的应用程序发生故障,监控代理将注册以提供心跳(如果未注册的话),以440和445示出。决策代理可以使监控代理不发送当前周期(430)的心跳信息,这将继而导致虚拟化控制器重启VM,在该VM中故障应用程序在另一个主机被执行重启。相反如果所需的应用程序已经有意脱机,决策代理可以使监控代理向虚拟化控制器注销,以435示出。
[0063]图5是能够实现如上所述的监控代理和/或决策代理的计算系统510的框图。计算系统510广义上代表能够执行计算机可读指令的任何单处理器或多处理器的计算装置或系统。计算系统510的实例包括(但不限于)各种装置中的任意一个或多个,这些装置包括工作站、个人计算机、膝上型计算机、客户端侧终端、服务器、分布式计算系统、手持式装置(例如,个人数字助理以及移动电话)、网络设备、存储控制器(例如,阵列控制器、磁带驱动控制器、或硬盘驱动控制器)等。在其最基本的配置中,计算系统510可以包括至少一个处理器514和一个系统内存516。通过执行实现监控代理和/或决策代理的软件,计算系统510成为一个专用计算装置,该装置被配置为在虚拟环境中提供一个或多个应用程序的高可用性。
[0064] 处理器514总体上代表能够处理数据或解释并执行多个指令的任何类型或形式的处理单元。在某些实施方案中,处理器514可以从一个软件应用程序或模块中接收指令。这些指令可以使处理器514执行在此所说明和/或展示的这些示例性实施方案中的一个或多个的功能。例如,处理器514可以执行和/或作为一种手段用于执行此处所描述的操作。处理器514还可以执行和/或作为一种手段来执行在此说明和/或展示的任何其他操作、方法、或过程。
[0065]系统内存516总体上代表能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储装置或媒质。系统内存516的多个实例包括(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其他适当的存储装置。尽管未作要求,在某些实施方案中计算系统510可以既包括一个易失性内存单元(例如像系统内存516)又包括一个非易失性存储装置(例如像以下详细说明的主存储装置532)。在一个实例中,监控代理50中的一个或多个(例如,图5和2的监控代理50 (I) -50 (4)中的一个)或决策代理60 (例如,图1的决策代理60⑴-60 (4)中的一个或图2的决策代理60)可以被加载到系统内存516中。
[0066] 在某些实施方案中,除了处理器514和系统内存516外,计算系统510还可以包括一个或多个组件或元件。例如,如图5所示,计算系统510可以包括内存控制器518、输入/输出(I/O)控制器520、以及通信接口 522,它们中的每一个可以通过通信基础设施512相互连接。通信基础设施512总体上代表能够帮助在计算装置的一个或多个组件之间进行通信的任意类型或形式的基础设施。通信基础设施512的实例包括但不限于通信总线(例如工业标准体系结构(ISA)、外围组件互联(PCI)、第三代总线标准(PCIe)、或类似总线)和一个网络。
[0067]内存控制器518总体上代表在计算系统510的一个或多个组件之间操作内存或数据或者控制通信的任意类型或形式的装置。例如,在某些实施方案中,内存控制器518可以通过通信基础设施512控制处理器514、系统内存516以及I/O控制器520之间的通信。在某些实施方案中,内存控制器518可以独立地或与其他元件相结合地执行和/或作为一种手段执行在此描述和/或展示的多个步骤或特征中的一个或多个。
[0068] I/O控制器520总体上代表能够协调和/或控制一种计算装置的输入和输出功能的任何类型或形式的模块。例如,在一些实施方案中I/O控制器520可以控制或协助在计算系统510的一个或多个元件(如处理器514、系统内存516、通信接口522、显示适配器526、输入接口 530、以及存储接口 534)之间的数据传送。
[0069] 通信接口 522广义地代表能够协助计算系统510与一个或多个附加装置之间进行通信的任何类型或形式的通信装置或适配器。例如,在某些实施方案中,通信接口522可以协助计算系统510与包括多个附加的计算系统的私人或公共网络之间的通信。通信接口 522的实例包括而不限于有线网络接口(例如网络接口卡)、无线网络接口(例如无线网络接口卡)、调制解调器、以及任何其他适当的接口。在至少一个实施方案中,通信接口522可通过到网络(如互联网)的直接链接来提供到一台远程服务器的直接连接。通信接口522还可以间接地提供这种连接,例如通过局域网(如以太网)、个人局域网、电话或缆线网、蜂窝电话连接、卫星数据连接、或任何其他适当的连接。
[0070] 在某些实施方案中,通信接口 522还可以代表一种主机适配器,该主机适配器被配置为用于通过一条外部总线或通信信道协助计算系统510与一个或多个附加网络或存储装置之间的通信。主机适配器的实例包括,但不限于,小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机设配器、电气和电子工程学会(IEEE) 1394主机适配器、串行高级技术附件(SATA)和外部SATA (eSATA)主机适配器、高级技术附件(ATA)和并行ATA (PATA)主机适配器、光纤通道接口适配器、以太网适配器等。
[0071] 通信接口 522还可以允许计算系统510参与分布式计算或远程计算。例如,通信接口 522可以从一个远程装置接收指令或向一个远程装置发送指令用于执行。
[0072] 如图5所示,计算系统510还可以包括通过显示适配器526连接至通信基础设施512的至少一个显示装置524。显示装置524总体上代表能够可视地呈现显示适配器526所转发的显示信息的任意类型或形式的装置。相似地,显示适配器526总体上代表任意类型或形式的装置,这些装置被配置用于从通信基础设施512 (或从本领域已知的帧缓冲器)转发图形、文本以及其他数据以便显示在显示装置524上。
[0073] 如图5所示,计算系统510还可以包括通过输入接口 530连接至通信基础设施512的至少一个输入装置528。输入装置528总体上代表能够向示例性计算系统510提供由计算机或人员生成的输入的任意类型或形式的输入装置。输入装置528的实例包括但不限于键盘、定位装置、语音识别装置或任意其他输入装置。
[0074] 如图5所示,计算系统510还包括通过存储接口 534连接至通信基础设施512的一个主存储装置532和一个备份存储装置533。存储装置532和533总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或介质。例如,存储装置532与533可以是磁盘驱动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器、或者类似装置。存储接口 534总体上代表用于在存储装置532和533和计算装置510的其他组件之间传输数据的任意类型或形式的接口或装置。类似于主存储装置532的存储装置可以存储信息,如配置信息590 (例如,如上文所述,配置信息表示应用程序的优先级和每个应用程序重新尝试的次数)。
[0075] 在某些实施方案中,存储装置532和533可以被配置为用于读取自和/或写入到一个可移动存储单元,该可移动存储单元被配置为用于存储计算机软件、数据、或其他计算机可读信息。适合的可移动存储单元的实例包括但不限于软盘、磁带、光盘、闪存装置等等。存储装置532和533还可以包括其他类似的结构或装置,以允许计算机软件、数据或其他计算机可读指令下载到计算系统510中。例如,存储装置532和533可以被配置用于读或写软件、数据或其他计算机可读信息。存储装置532和533还可以作为计算系统510的一部分或可以是通过其他接口系统访问的一个分离的装置。
[0076] 很多其他装置或子系统可以连接至计算系统510上。相反地,为了实施在此描述和/展示的实施方案,不需要图5中所示的所有组件和装置。以上提到的这些装置和子系统还能够以不同于图5中所示的方式进行相互连接。
[0077] 计算系统510还可使用任何数目的软件、固件、和/或硬件的配置。例如,在此披露的示例性实施方案中的一个或多个可以被编码为一种计算机可读媒质上的计算机程序(也称为计算机软件、软件应用程序、计算机可读指令、或计算机控制逻辑)O计算机可读存储介质的实例包括磁存储介质(例如硬盘驱动器和软盘)、光存储介质(例如,CD或DVD-ROM)、电存储介质(例如,固态驱动器和闪存)等。此类计算程序也可以通过网络(例如因特网或载体介质)传输到计算系统510以存储在内存中。
[0078] 包含计算机程序的计算机可读媒质可以载入到计算系统510中。存储在计算机可读媒质上的所有或部分计算机程序然后可以存储在系统内存516和/或存储装置532和533的不同部分上。当由处理器514执行时,载入到计算系统510中的计算机程序可以使处理器514执行和/或作为一种手段执行在此描述和/或展示的示例性实施方案中的一个或多个的功能。另外或可替代地,在此所说明和/或展示的示例性实施方案中的一个或多个可以在固件和/或硬件中实施。例如,可以将计算系统510配置为一种专用集成电路(ASIC),该电路被适配为用于实施在此所披露的这些示例性实施方案中的一个或多个。
[0079] 图6是网络体系结构600的框图,在该网络体系结构中客户端系统610、620和630以及服务器640和645可以连接至网络650。客户端系统610、620和630总体上代表任意类型或形式的计算装置或系统,例如图5中的计算系统510。
[0080] 类似地,服务器640和645总体上代表被配置为用于提供不同的数据库服务和/或运行某种软件应用程序的计算装置或系统,如应用程序服务器或数据库服务器。网络650总体上代表任何电信或计算机网络,例如包括:内部网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、或互联网。在一个实例中,客户端系统610、620和/或630和/或服务器640和/或645可以包括如图1和2所示的监控代理和/或决策代理。
[0081] 如图6所示,一个或多个存储装置660 (I)-(N)可以直接附接至服务器640。类似地,一个或多个存储装置670⑴-(N)可以直接附接至服务器645。存储装置660⑴-(N)和存储装置670 (I) - (N)总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或媒质。在某些实施方案中,存储装置660⑴-(N)和存储装置670⑴-(N)可以代表网络附联存储(NAS)装置,这些装置被配置为利用不同协议(例如网络文件系统(NFS)、月艮务器消息块(SMB)、或公共互联网文件系统(CIFS))与服务器640和645进行通信。
[0082] 服务器640和645还可以连接至存储区域网络(SAN)结构680 JAN结构680总体上代表能够协助多个存储装置之间通信的任意类型或形式的计算机网络或体系结构。SAN结构680可以协助服务器640和645与多个存储装置690⑴-(N)和/或智能存储器阵列695之间的通信。SAN结构680还可以通过网络650和服务器640和645协助客户端系统610、620和630与存储装置690⑴-(N)和/或智能存储器阵列695之间的通信,其方式为装置690⑴-(N)以及阵列695对客户端系统610、620和630呈现为本地附接的装置。与存储装置660 (I) - (N)和存储装置670⑴-(N) —样,存储装置690⑴-(N)和存储阵列695总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或媒质。
[0083] 在某些实施方案中,参考图5的计算系统510,通信接口(例如图5中的通信接口522)可以用来在每个客户端系统610、620和630以及网络650之间提供连接。客户端系统610、620和630能够利用例如网络浏览器或其他客户端软件访问服务器640或645的信息。这种软件可以允许客户端系统610、620和630访问由服务器640、服务器645、存储装置660 (I)-(N)、存储装置670⑴-(N)、存储装置690⑴-(N)或智能存储器阵列695管理的数据。尽管图6描绘了使用网络(例如互联网)来交换数据,但在此描述和/或展示的实施方案不限于互联网或任意具体的基于网络的环境。
[0084] 在至少一个实施方案中,在此披露的示例性实施方案中的一个或多个的全部或一部分可被编码为一种计算机程序并且由服务器640、服务器645、存储装置660 (I) - (N)、存储装置670⑴-(N)、存储装置690⑴-(N)、智能存储阵列695、或它们中的任意组合加载并执行。在此披露的示例性实施方案中的一个或多个的全部或一部分还可以被编码成为一种计算机程序,它存储在服务器640中、由服务器645来运行、并在网络650上分发给客户端系统610、620、和630。
[0085] 在一些实例中,图1中示例性系统100的全部或一部分可以代表云计算的或基于网络的环境的多个部分。云计算环境可以通过互联网提供各种服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等)可以通过网络浏览器或其他的远程接口进行访问。在此所述的不同功能可以通过远程桌面环境或任何其他的基于云的计算环境来提供。
[0086] 另外,在此所述的这些模块中的一个或多个可以将数据、物理装置、和/或物理装置的表示从一种形式转换到另一种形式。例如,结合监控代理进行操作的决策代理可以通过控制心跳信息的传输来改变虚拟化系统的配置,方式为使虚拟机在另一台主机上重新启动。
[0087]尽管已经结合一些实施方案描述了本发明,但无意将本发明限制于本文阐述的具体形式。相反的是,本发明意在涵盖可以合理地包含在所附权利要求定义的本发明范围内的这些替代形式、修改形式以及等效形式。
[0088] 工业适用性
[0089] 本发明适用于计算装置和网络计算装置领域。

Claims (10)

1.一种用于提供高可用性虚拟机的方法,包括: 从在虚拟机中执行的监控代理接收指示在所述虚拟机中执行的一个或多个应用程序的运行状态的信息; 至少部分基于所述信息确定是否应该重启所述虚拟机; 响应于确定所述虚拟机应被重启,阻止所述监控代理在超时间隔到期之前传送一条心跳信息到虚拟化控制器,其中该虚拟化控制器被配置为如果该监控代理在该超时间隔到期之前没有发出该心跳信息就重启所述虚拟机,并且由一个计算装置执行该阻止;以及 响应于确定所述虚拟机不应被重启,响应于识别出所述一个或多个应用程序已经有意脱机的所述信息,注销所述监控代理以避免提供心跳信息到该虚拟化控制器。
2.根据权利要求1所述方法,进一步包括响应于识别出该一个或多个应用程序中一个较高优先级的应用程序正确执行并且该一个或多个应用程序中一个较低优先级的应用程序发生故障的信息,确定不应该重启该虚拟机。
3.根据权利要求1所述方法,进一步包括响应于识别出该一个或多个应用程序中一个较高优先级的应用程序发生故障并且该一个或多个应用程序中一个较低优先级的应用程序正确执行的信息,确定应该重启该虚拟机。
4.根据权利要求1所述方法,进一步包括响应于识别出该应用程序未正确运行的信息,决定该监控代理应该尝试重启该应用程序,其中尝试重启该应用程序在确定是否应该重启该虚拟机之前执行。
5.根据权利要求1所述方法,进一步包括在该监控代理注销后,该监控代理继续监控该应用程序。
6.根据权利要求1所述的方法,进一步包括响应于识别出该应用程序重新在线的消息,重新注册该监控代理以便向该虚拟化控制器提供心跳信息。
7.根据权利要求1所述方法,进一步包括从一个管理员接收信息,其中该信息指示该应用程序是否已经有意脱机和该监控代理是否应该继续监控该应用程序中的至少一项。
8.—种用于提供高可用性虚拟机的系统,包括: 一个或多个处理器;以及 存储器,该存储器连接至该一个或多个处理器并存储可由该一个或多个处理器执行的程序指令,以便: 从在虚拟机中执行的监控代理接收指示在所述虚拟机中执行的一个或多个应用程序的运行状态的信息; 响应于接收到该信息,至少部分基于所述信息确定是否应该重启所述虚拟机; 响应于确定所述虚拟机应被重启,阻止所述监控代理在超时间隔到期之前传送一条心跳信息到一个虚拟化控制器,其中该虚拟化控制器被配置为如果所述监控代理在该超时间隔到期之前没有发出该心跳信息就重启所述虚拟机;以及 响应于确定所述虚拟机不应被重启,注销所述监控代理以避免提供心跳信息到该虚拟化控制器,以响应识别出所述一个或多个应用程序已经有意脱机的所述信息。
9.根据权利要求8所述的系统,其中该程序指令进一步可由该一个或多个处理器执行,以便响应于识别出该一个或多个应用程序中一个较高优先级的应用程序正确执行并且该一个或多个应用程序中一个较低优先级的应用程序发生故障的信息,确定不应该重启该虚拟机。
10.根据权利要求8所述的系统,其中该程序指令进一步可由该一个或多个处理器执行,以便响应于识别出该一个或多个应用程序中一个较高优先级的应用程序发生故障并且该一个或多个应用程序中一个较低优先级的应用程序正确执行的信息,确定应该重启该虚拟机。
CN201180035090.2A 2010-07-30 2011-07-29 在高可用性虚拟机环境中提供高可用性应用程序 Active CN103201724B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US12/847,030 2010-07-30
US12/847,030 US8424000B2 (en) 2010-07-30 2010-07-30 Providing application high availability in highly-available virtual machine environments
US12/847030 2010-07-30
PCT/US2011/045951 WO2012016175A1 (en) 2010-07-30 2011-07-29 Providing application high availability in highly-available virtual machine environments

Publications (2)

Publication Number Publication Date
CN103201724A CN103201724A (zh) 2013-07-10
CN103201724B true CN103201724B (zh) 2017-05-03

Family

ID=44515140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180035090.2A Active CN103201724B (zh) 2010-07-30 2011-07-29 在高可用性虚拟机环境中提供高可用性应用程序

Country Status (5)

Country Link
US (1) US8424000B2 (zh)
EP (1) EP2598993B1 (zh)
JP (1) JP5851503B2 (zh)
CN (1) CN103201724B (zh)
WO (1) WO2012016175A1 (zh)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5354107B2 (ja) * 2010-08-16 2013-11-27 富士通株式会社 情報処理装置、リモート保守方法、及びプログラム
US10042656B2 (en) * 2011-08-01 2018-08-07 Avocent Corporation System and method for providing migrateable virtual serial port services
US10509705B2 (en) * 2011-11-04 2019-12-17 Veritas Technologies Llc Application protection through a combined functionality failure manager
TWI643063B (zh) * 2012-03-06 2018-12-01 智邦科技股份有限公司 Detection method
CN102664763A (zh) * 2012-03-20 2012-09-12 浪潮电子信息产业股份有限公司 一种快速检测连接状态并做虚拟机ha的方法
CN103377068B (zh) * 2012-04-13 2017-04-19 联想(北京)有限公司 控制方法和电子设备
JP5933356B2 (ja) * 2012-06-12 2016-06-08 ルネサスエレクトロニクス株式会社 コンピュータシステム
US9554366B2 (en) 2012-08-31 2017-01-24 Qualcomm Incorporated Optimized always-on wireless service using network assistance and keep-alives
US9507586B2 (en) 2012-10-05 2016-11-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virtual machine based controller and upgrade mechanism
US9032400B1 (en) * 2012-10-25 2015-05-12 Amazon Technologies, Inc. Opportunistic initiation of potentially invasive actions
US9271238B2 (en) 2013-01-23 2016-02-23 Seven Networks, Llc Application or context aware fast dormancy
US9521188B1 (en) * 2013-03-07 2016-12-13 Amazon Technologies, Inc. Scheduled execution of instances
US9176830B2 (en) * 2013-05-24 2015-11-03 Hyundai Motor Company Method for determining software error in virtualization based integrated control system
US9535794B2 (en) 2013-07-26 2017-01-03 Globalfoundries Inc. Monitoring hierarchical container-based software systems
US20150066553A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. Method and apparatus for multi-tenant service catalog for a software defined cloud
US9563374B2 (en) 2013-12-16 2017-02-07 Horatio Lo Storage proxy method for data-service SAN appliance
US9792243B2 (en) 2013-12-26 2017-10-17 Intel Corporation Computer architecture to provide flexibility and/or scalability
US10103959B2 (en) * 2014-01-07 2018-10-16 International Business Machines Corporation Scalable software monitoring infrastructure, using parallel task queuing, to operate in elastic cloud environments
KR20150095029A (ko) * 2014-02-12 2015-08-20 한국전자통신연구원 응용 프로그램 가상화 시스템 및 사용자 단말의 응용 프로그램 가상화 방법
CN104915241B (zh) 2014-03-12 2018-09-07 华为技术有限公司 一种虚拟机迁移控制方法及装置
CN103914352B (zh) * 2014-03-19 2017-11-14 汉柏科技有限公司 云集群系统中寄存器数据的修复方法及装置
US9524214B1 (en) 2014-03-24 2016-12-20 Google Inc. Virtual machine
US10063429B2 (en) * 2014-04-09 2018-08-28 The Keyw Corporation Systems and methods for optimizing computer network operations
EP3210367B1 (en) * 2014-10-23 2020-07-22 Telefonaktiebolaget LM Ericsson (publ) System and method for disaster recovery of cloud applications
US10079797B2 (en) * 2014-10-29 2018-09-18 Vmware, Inc. Methods, systems and apparatus to remotely start a virtual machine
US9921866B2 (en) * 2014-12-22 2018-03-20 Intel Corporation CPU overprovisioning and cloud compute workload scheduling mechanism
US20160188733A1 (en) * 2014-12-29 2016-06-30 Quixey, Inc. Generating Recommendations Based on Clustered Application States
US10108499B2 (en) * 2015-03-24 2018-10-23 Mitsubishi Electric Corporation Information processing device with watchdog timer
CN105991345A (zh) * 2015-04-27 2016-10-05 杭州迪普科技有限公司 虚拟机故障处理方法及装置
CN106302569B (zh) 2015-05-14 2019-06-18 华为技术有限公司 处理虚拟机集群的方法和计算机系统
WO2017000247A1 (zh) * 2015-06-30 2017-01-05 华为技术有限公司 一种终端与网络设备交互的方法和终端
US9898321B2 (en) * 2015-07-23 2018-02-20 At&T Intellectual Property I, L.P. Data-driven feedback control system for real-time application support in virtualized networks
DE102015214376A1 (de) * 2015-07-29 2017-02-02 Robert Bosch Gmbh Verfahren und Vorrichtung zur On-Board-Diagnose bei einem Steuergerät mit einem Hypervisor und mindestens einem unter dem Hypervisor betriebenen Gastsystem
US10505869B2 (en) 2015-08-04 2019-12-10 International Business Machines Corporation Mimicking a presence notification from an application executing on a virtual component to optimize computing resource allocation/utilization
US9852035B2 (en) * 2015-08-25 2017-12-26 International Business Machines Corporation High availability dynamic restart priority calculator
CN106559441B (zh) * 2015-09-25 2020-09-04 华为技术有限公司 一种基于云计算服务的虚拟机监控方法、装置及系统
CN105357038B (zh) * 2015-10-26 2019-05-07 北京百度网讯科技有限公司 监控虚拟机集群的方法和系统
CN107491339A (zh) * 2016-06-13 2017-12-19 深圳市深信服电子科技有限公司 服务器虚拟化的虚拟机监控方法及装置
US10275272B2 (en) 2016-06-20 2019-04-30 Vmware, Inc. Virtual machine recovery in shared memory architecture
US10282261B2 (en) * 2016-06-20 2019-05-07 Vmware, Inc. Pooled memory heartbeat in shared memory architecture
US10868883B2 (en) 2016-06-29 2020-12-15 Nicira, Inc. Upgrading a proxy that decouples network connections from an application during application's downtime
US10587673B2 (en) * 2016-06-29 2020-03-10 Nicira, Inc. Decoupling network connections from an application while the application is temporarily down
CN107870801B (zh) * 2016-09-26 2020-05-26 中国电信股份有限公司 虚拟机高可用功能自动开通方法、装置和系统
CN106959885A (zh) * 2017-03-31 2017-07-18 山东超越数控电子有限公司 一种虚拟机高可用实现系统及其实现方法
US10379923B2 (en) * 2017-09-15 2019-08-13 International Business Machines Corporation Efficiently repairing virtual machines by means of DVFS-aware proactive scheduling
CN107885576A (zh) * 2017-10-16 2018-04-06 北京易讯通信息技术股份有限公司 一种基于OpenStack的私有云中虚拟机HA的方法
US11048320B1 (en) * 2017-12-27 2021-06-29 Cerner Innovation, Inc. Dynamic management of data centers
CN108600284B (zh) * 2017-12-28 2021-05-14 武汉噢易云计算股份有限公司 一种基于Ceph的虚拟机高可用实现方法及系统
US11271801B2 (en) 2018-06-27 2022-03-08 T-Mobile Usa, Inc. Compromised network node detection system
CN109445925B (zh) * 2018-11-09 2022-02-18 郑州云海信息技术有限公司 一种应用程序接管方法、装置及系统
CN110825487A (zh) * 2019-09-19 2020-02-21 烽火通信科技股份有限公司 一种虚拟机防脑裂的管理方法及主服务器
US11238459B2 (en) 2020-01-07 2022-02-01 Bank Of America Corporation Intelligent systems for identifying transactions associated with an institution impacted by an event

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1669001A (zh) * 2002-05-31 2005-09-14 维里塔斯管理公司 用于服务器整合环境的业务连续性策略
US7213246B1 (en) * 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3711789B2 (ja) * 1999-06-08 2005-11-02 日立オムロンターミナルソリューションズ株式会社 システム自動再立ち上げ制御方法およびシステム自動再立ち上げ制御システム
US6691244B1 (en) * 2000-03-14 2004-02-10 Sun Microsystems, Inc. System and method for comprehensive availability management in a high-availability computer system
US20020194319A1 (en) * 2001-06-13 2002-12-19 Ritche Scott D. Automated operations and service monitoring system for distributed computer networks
US7886294B2 (en) * 2004-12-28 2011-02-08 Sap Ag Virtual machine monitoring
JP2007034479A (ja) * 2005-07-25 2007-02-08 Nec Corp 稼働系装置、待機系装置、稼働・待機システム、稼働系制御方法、待機系制御方法、および、稼働系・待機系制御方法
US20080104586A1 (en) * 2006-10-27 2008-05-01 Microsoft Corporation Allowing Virtual Machine to Discover Virtual Status Thereof
US7797587B2 (en) * 2007-06-06 2010-09-14 Dell Products L.P. System and method of recovering from failures in a virtual machine
US8209684B2 (en) * 2007-07-20 2012-06-26 Eg Innovations Pte. Ltd. Monitoring system for virtual application environments
JP2009080704A (ja) * 2007-09-26 2009-04-16 Toshiba Corp 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法
JP2009080692A (ja) * 2007-09-26 2009-04-16 Toshiba Corp 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法
JP4999670B2 (ja) * 2007-12-20 2012-08-15 三菱電機株式会社 計算機装置
US8468533B2 (en) * 2008-04-28 2013-06-18 Panasonic Corporation Virtual machine control device, method, and program wherein a switching task used to switch to the highest priority virtual machines is the highest priority task in the current virtual machine and the virtual machine that is the switching target
US7886183B2 (en) * 2008-08-07 2011-02-08 Symantec Operating Corporation Providing fault tolerant storage system to a cluster
JP2010134557A (ja) * 2008-12-02 2010-06-17 Nec Corp 仮想マシン運用管理システム、その運用管理方法、及びプログラム
CN101853710B (zh) * 2009-03-31 2014-11-19 Ge医疗系统环球技术有限公司 滤波器及利用该滤波器的x射线成像设备
US8219990B2 (en) * 2009-05-28 2012-07-10 Novell, Inc. Techniques for managing virtual machine (VM) states

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213246B1 (en) * 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine
CN1669001A (zh) * 2002-05-31 2005-09-14 维里塔斯管理公司 用于服务器整合环境的业务连续性策略

Also Published As

Publication number Publication date
CN103201724A (zh) 2013-07-10
JP5851503B2 (ja) 2016-02-03
EP2598993A1 (en) 2013-06-05
US20120030670A1 (en) 2012-02-02
US8424000B2 (en) 2013-04-16
WO2012016175A1 (en) 2012-02-02
EP2598993B1 (en) 2017-11-22
JP2013535745A (ja) 2013-09-12

Similar Documents

Publication Publication Date Title
CN103201724B (zh) 在高可用性虚拟机环境中提供高可用性应用程序
CN105357038B (zh) 监控虚拟机集群的方法和系统
US8910172B2 (en) Application resource switchover systems and methods
TWI229796B (en) Method and system to implement a system event log for system manageability
CN105051698B (zh) 用于基础设施即服务云中故障管理的方法和布置
CN106789306B (zh) 通信设备软件故障检测收集恢复方法和系统
US20160055066A1 (en) Fault tolerance for complex distributed computing operations
CN105659562A (zh) 利用簇中并行性进行容障处理
CN102402395A (zh) 基于仲裁磁盘的高可用系统不间断运行方法
US7979744B2 (en) Fault model and rule based fault management apparatus in home network and method thereof
US10102088B2 (en) Cluster system, server device, cluster system management method, and computer-readable recording medium
CN111506331A (zh) 一种服务器bmc刷新方法、系统、终端及存储介质
CN111181780A (zh) 基于ha集群的主机池切换方法、系统、终端及存储介质
US8537662B2 (en) Global detection of resource leaks in a multi-node computer system
US20100085871A1 (en) Resource leak recovery in a multi-node computer system
JP2003173272A (ja) 情報処理システム,情報処理装置及び保守センタ
US10489232B1 (en) Data center diagnostic information
JP2018169920A (ja) 管理装置、管理方法及び管理プログラム
CN111542048A (zh) 侦码设备采集功能重启方法、装置、服务器及存储介质
US20180225201A1 (en) Preserving volatile memory across a computer system disruption
CN109656742B (zh) 一种节点异常处理方法、装置及存储介质
CN110502345A (zh) 一种过载保护方法、装置、计算机设备及存储介质
CN112463514A (zh) 分布式缓存集群的监测方法和装置
CN114237891A (zh) 资源调度方法、装置、电子设备及存储介质
CN111858180A (zh) 分布式块存储系统的数据重构时间预测方法、系统及终端

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
GR01 Patent grant
GR01 Patent grant