CN104205060B - 提供用于ha集群的管理程序的基于应用的监控及恢复 - Google Patents

提供用于ha集群的管理程序的基于应用的监控及恢复 Download PDF

Info

Publication number
CN104205060B
CN104205060B CN201380018522.8A CN201380018522A CN104205060B CN 104205060 B CN104205060 B CN 104205060B CN 201380018522 A CN201380018522 A CN 201380018522A CN 104205060 B CN104205060 B CN 104205060B
Authority
CN
China
Prior art keywords
virtual machine
guest virtual
node
supervisory routine
application
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
CN201380018522.8A
Other languages
English (en)
Other versions
CN104205060A (zh
Inventor
M·穆勒
M·米特尔施塔特
R·E·哈珀
L·F·斯帕诺维尔
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104205060A publication Critical patent/CN104205060A/zh
Application granted granted Critical
Publication of CN104205060B publication Critical patent/CN104205060B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 OR 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 OR 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 OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)
  • Mathematical Physics (AREA)

Abstract

本发明的实施例涉及一种与包括管理程序和来宾虚拟机的节点相关联的方法,其中,每个来宾虚拟机由管理程序管理,并被安排以运行应用,该节点与其它节点一起形成高可用性集群。该方法包括:在每个来宾虚拟机和管理程序之间建立内部双向通信通道,并还包括通过通道发送命令和对命令的响应,其中各个命令管理在给定来宾虚拟机上运行的指定应用。有选择地监控消息,以检测与在给定来宾虚拟机上运行的指定应用相关联的故障状态。响应于检测到故障状态,采取措施以纠正故障状态,其中,措施包括通过内部通道将至少一个命令从管理程序发送到给定来宾虚拟机。

Description

提供用于HA集群的管理程序的基于应用的监控及恢复
技术领域
在此公开和要求保护的本发明一般涉及一种方法和装置,其中,管理程序被链接到一个或多个其它管理程序以形成高可用性(HA)集群。更具体地,本发明涉及一种上述类型的方法和装置,其中,每个管理程序可使得多个来宾操作***或来宾虚拟机(VM)能够在主机计算平台上同时运行。
背景技术
某些虚拟化管理产品通过在其产品供应中包括或嵌入HA集群产品来维持来宾VM的可用性。典型地,这些产品通过将底层管理程序形成为高可用性集群来工作,其中每个底层管理程序运行在物理机上。然后,在管理程序之间执行心跳。当集群的成员或者由于管理程序故障或者由于物理服务器故障而心跳故障时,所嵌入的HA集群技术在替代服务器上重新启动来宾VM,从而维持来宾VM的可用性。
该方法有很多局限性。例如,该方法不能检测来宾VM***自身的故障并从中恢复,除了来宾的操作***全部崩溃以外。这种方法只检测底层管理程序及其物理服务器的故障并从中恢复。它也不检测在来宾VM内运行的应用的故障并从中恢复。因此,应用可在来宾VM内运行时发生故障,而基于管理程序的集群没有注意到。在这种情况下,来宾机仍在运行,但不提供服务。这对虚拟化***的可实现的可用性造成明显限制,因为故障通常是由于操作***问题,应用崩溃并中止。此外,更复杂的关键业务应用要求应用级别的操作利用某个内置数据复制技术。如果没有来宾VM内的任何可见性,则不可能调用这些操作并利用内置特性。
此外,希望利用管理程序级别的HA特性或来宾VM内的HA特性的用户通常必须精通并必须安装管理程序级别和应用级别的HA集群管理器。同时,这种用户必须确保表示资源之间的关系和确保例如文件***被安装在应用被启动或者数据复制对的接收机在另一个物理***上被启动为发送机的地方的策略被管理程序级别和应用级别的HA***维持。然而,这一级别的复杂性管理通常超出了大多数用户的能力。
发明内容
本发明的实施例可有选择地采用方法、计算机程序产品或装置的形式。针对方法的实施例与第一节点相关联,该第一节点包括管理程序和一个或多个来宾虚拟机(VM),其中,每个来宾虚拟机被安排以运行一个或多个应用,第一节点与一个或多个其它节点一起形成高可用性(HA)集群。该方法包括:在第一节点的每个来宾虚拟机和管理程序之间建立内部双向通信通道。该方法还包括:在管理程序和给定来宾VM之间,通过内部通道发送包括命令和对命令的响应的消息,其中,各个命令被发送以管理在给定来宾VM上运行的指定应用。有选择地监控消息,以检测与在给定来宾虚拟机上运行的指定应用相关联的故障状态的发生。响应于检测到故障状态,采取措施以纠正故障状态,其中,措施包括通过内部通道将至少一个命令从管理程序发送到给定来宾VM。
附图说明
图1A和1B是各自描绘HA节点集群的框图,其中实现了本发明的说明性实施例;
图2是说明用于图1A或1B的节点集群的节点的示意图;
图3是示出包括本发明的实施例的方法的步骤的流程图;
图4是示出可用作本发明的实施例的一个或多个组件的计算机或数据处理***的框图。
具体实施方式
所属技术领域的技术人员知道,本发明的各个方面可以实现为***、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包括计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取内存(RAM)、只读内存(ROM)、可擦式可编程只读内存(EPROM或闪存)、光纤、便携式紧凑盘只读内存(CD-ROM)、光内存件、磁内存件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包括或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包括的程序代码可以用任何适合的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以给定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(articleofmanufacture)。
也可以把这些计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备中,以使一系列操作步骤在计算机、其它可编程数据处理装置、或其它设备中执行,以产生计算机实现的过程,以使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
参照图1A,示出了高可用性(HA)计算机集群100,其包括例如节点102和104的多个节点。节点102和104也可分别表示为节点1和节点N,其中N是节点的总数。有用地,N是2,但集群100并不限于此。各个节点一起通过总线106等形成集群。
每个节点包括计算机服务器***,其根据本发明的实施例构建或配置,如下文结合图2所描述的。更具体地,每个节点包括管理程序和硬件平台,用于运行应用和多个来宾操作***,此处来宾操作***被称为来宾虚拟机(VM)。
进一步参照图1A,示出了缆线108,其用于将集群100的节点的每个管理程序互连,并承载其间的心跳脉冲或消息。如果应用在给定节点上运行,并且其它节点检测到由给定节点发送的心跳的改变或故障,则其它节点将认识到在给定节点的管理程序或物理服务器中已发生了故障。然后,其它节点可被启动以执行故障转移,以从由其它节点的管理程序管理的来宾VM运行应用。
集群100是对等设置,因为集群没有配备中央管理器以指示或控制不同节点之间的故障转移。作为替代,故障转移由节点自身实施。
参照图1B,再次示出了通过总线106一起形成集群的节点102和节点104。然而,代替心跳线108,图1B的集群装备有HA集群管理器110。当应用在给定节点上运行时,给定节点所发送的心跳有管理器110监控。在检测到由心跳指示的故障后,管理器110可以实施故障转移以在其它节点上运行应用。
参照图2,示出了节点200,其可用作图1A和图1B中的节点102或节点104。节点200具有计算平台202,其包括硬件组件204a和包括管理程序206的操作***204b。硬件组件204a和主机204b工作以提供由管理程序206管理的来宾操作***或虚拟机(VM)208和210。来宾VM208和210能够运行各自的应用212和214,并装备有用于控制并监控这种应用的应用可用性管理器216和218。
图2还示出了本地HA集群管理器220,其通过诸如链路220a的双向通信路径管理管理程序206。如下文进一步详细描述的,提供HA集群管理器220以实施涉及节点200的故障转移。例如,如果应用在来宾VM上运行,管理程序206将检测到的故障通知集群管理器220,则HA集群管理器220可以指示管理程序206以使应用在节点200的不同来宾VM或者相关联的节点集群的不同节点的来宾VM上运行。通过提供这种能力,节点集群能够实现高可用性。下文将更详细地描述HA集群管理器220和管理程序206各自的操作以及二者之间的交互以监控和管理来宾VM208、210和在来宾VM上运行的应用。
在本发明的再一个实施例中,HA集群管理器220可以位于邻近管理程序206的位置或者可包含在管理程序206内。在该实施例中,这些组件的每一个可如上所述地起作用或工作。
有用地,HA集群管理器220包括国际商用机器公司的Tivoli***自动化多平台(TSA-MP)的组件。然而,本发明并不限于此。图2还示出了HA集群管理器220,其分别通过链路220b和220c与计算平台202的本地文件***组件222和224连接并进行交互。这些文件***组件用于分别与来宾VM216和218的数据传输,如在下文进一步详细描述的。
进一步参照图2,示出了VM通道或内部通道226,其在管理程序206和来宾VM208的应用可用性管理器216之间延伸。类似的内部通道228在管理程序206和来宾VM210的应用可用性管理器218之间延伸。内部通道226和228每个都是双向的,并因此能够在管理程序206与各自的来宾VM208和210之间携带消息。图2还示出了进一步延伸到文件***222的通道226和进一步延伸到文件***224的通道228。内部通道226和228可以通过使用基于内核的虚拟机(KVM)管理程序实现,虽然本发明并不限于此。
内部通道226包括预先指定的路径,其用于在管理程序206和来宾VM208的应用可用性管理器208之间在两个方向上对数据进行流传输。内部通道226在其每一端包括预先指定的容量的存储缓冲器,以通过通道对数据进行流传输或接收流传输的数据。读消息和写消息可通过使用,创建并使用用于内部通道上的通信的端口的API发送。端口可创建在管理程序处,也可创建在应用可用性管理器216处。
内部通道228与内部通道226类似或相同,除了内部通道228在管理程序206和应用可用性管理器218之间延伸以外。
通过提供根据本发明的实施例并如上所述的通道226和228,通过管理程序206工作的HA集群管理器220被给予管理和控制在来宾VM208和210上运行的应用的增强能力。例如,管理程序206能够通过内部通道226向来宾VM208的内核发送命令,更具体地,向来宾VM208的应用可用性管理器216发送。这些命令包括与应用212相关的启动命令、停止命令和状态查询命令。响应于这些命令,响应代码从来宾VM208的管理器216发送回管理程序206。因此,当应用212在来宾VM208上运行时,管理程序206能够直接控制应用212的运行。
此外,管理程序206可以通过内部通道226向可用性管理器216发送消息,以请求在来宾VM208上运行的应用212的状态或可用性。由可用性管理器216通过内部通道226提供的状态信息可包括由管理器216记录的错误消息、应用212的性能信息和诸如有限的存储容量的警告消息。状态信息还可进一步包括阈值已被超过的通知,其与同应用212相关联的预先指定的规则有关。通过监控从来宾VM208的应用可用性管理器216通过内部通道226发送的对这些请求的响应以及其它消息,可检测已经在运行的应用212或来宾VM208中发生的故障。在检测到其中一个故障后,可采取纠正措施。因此,通过如上所述地提供应用可用性管理器216以及内部通道,可管理和监控VM208内的应用。
HA集群管理器220能够通过链路220a等从管理程序206获得关于来宾VM208和210两者中的应用可用性设备和硬件设备的状态信息,这包括可用性管理器216和218。响应于积累这些状态信息,集群管理器220能够基于预先制定的规则进行决策,以用于对管理程序206执行命令。这些命令可通过运行脚本等执行。因此,如果在运行应用212中检测到故障,则如上所述,HA集群管理器220可指示管理程序206启动、停止、然后在同一个来宾VM208上重新启动应用212。该措施可通过从管理程序206通过内部通道226向虚拟机208发送适合的命令序列容易地执行。
作为可选的纠正措施,应用212可被停止,然后在节点200的不同来宾VM(例如来宾VM210)上重新启动以运行,。作为再一个纠正措施,应用212可被停止,然后在位于节点集群100中除了节点200之外的节点上的来宾VM上重新启动以运行。来宾VM可以是来宾VM208或者不同的来宾VM。正如本领域技术人员知道并在此使用的,上述类型的措施成为“故障转移”和“实施故障转移”。
应当知道,上述的来宾VM208、应用212、管理器216和内部通道226的功能和运行的描述也分别适用于来宾VM210、应用214、管理器218和内部通道228。
当应用在如图2所示的类型的来宾VM上运行时,需要跟踪由此产生的并与其相关联的数据。需要确保这样的数据在如上所述地发生故障转移到不同的节点或者转移到同一个节点的不同来宾VM的情况下可用。为此,在如上所述的节点集群100的每个节点上分发复制软件。并且,如图2所示,来宾VM208和210分别装备了I/O模拟器230和232。每个模拟器使得数据能够被对应的来宾VM接收和从对应的来宾VM发送。I/O设备请求组件234与模拟器230相关联,并连接到内部通道226。组件234响应通过内部通道226发送的命令,以使数据在来宾VM208和计算平台202的文件***222之间有选择性地交换。类似的I/O设备请求组件236与I/O模拟器232相关联,并连接到内部通道228。
当应用212在来宾VM208上运行时,诸如组件234的组件作为复制发送器运行。也就是说,它使与运行的应用212相关联的进入数据和其它数据被诸如文件***222等复制和存储。在此期间,诸如来宾VM210的组件236的组件可作为复制接收器运行。复制接收器用于接收或跟踪已被复制发送器复制的数据。然后,如果如上所述地发生故障,则应用212可在来宾VM208上停止,并在来宾VM210上启动。如果发生这种情况,则命令通过内部通道228从管理器220发送到组件236,其中命令指示组件236以执行复制发送器的功能而非复制接收器的功能。类似地,指示组件234以执行复制接收器的功能。然后,被复制发送器236复制的数据可被路由以用于存储。可选地,在SAPAG的队列复制服务(ENQREP)的情况下,在存储器中保存所复制的数据。如果SAP队列服务(ENQ)终止并在ENQREP的来宾机上重新启动,则它通过存储器到存储器转储来获取其数据,这种转储比任何存储器存取更快。
通过如上所述地在图2的配置中提供VM或内部通道,本发明的实施例向其用户提供更重要的益处。更具体地,HA集群管理器220可以是可能很复杂的高可用性集群管理产品的组件。例如,这种产品可包括复杂的管理脚本和资源配置。然而,在图2的实施例中,这种脚本和配置都包含在管理程序206中,如组件238所示。因此,使用图2的实施例以在来宾VM208和210等上运行其应用的用户不需要学习或熟悉集群管理产品的所有脚本和资源。
参照图3,示出了包括本发明的实施例的方法的步骤。在步骤302中,在计算平台的管理程序和多个来宾VM的每一个之间建立内部双向通道,其中管理程序和来宾VM被包括在节点集群的节点中。在步骤304中,通过管理程序和一个来宾VM之间的内部通道发送消息,以管理在该来宾VM上运行的应用。步骤306公开了监控通过内部通道发送的消息,以便检测在来宾VM上运行的应用的故障。
响应于检测到故障,采取纠正措施,其包括通过内部通道,从管理程序向来宾VM发送命令,其中,命令停止然后重新启动在来宾VM上运行的应用。根据决策步骤310,如果步骤308的纠正措施成功,以使得所检测到的故障被克服,则图3的方法结束。否则,方法进行到步骤312。
在步骤312中,选择若干进一步的措施中的一个。这些措施的每一个最初包括停止在来宾VM上运行的应用,这通常通过从管理程序通过内部通道向来宾VM发送停止命令来实现。然后,进一步的措施分别包括:在同一个节点的不同来宾VM上运行应用;在集群的不同节点上运行应用和来宾VM;以及在不同节点的不同来宾VM上运行应用。在采取这些措施之一后,图3的方法结束。
图4是示出根据说明性的实施例的数据处理***的框图。数据处理***400是计算机的例子,其可用于实现本发明的实施例的一个或多个组件,并可在其中设有用于说明性的实施例的实现相关过程的计算机可用程序代码或指令。在该说明性的例子中,数据处理***400包括通信架构402,其提供处理器单元404、存储器406、永久存储器408、通信单元410,输入/输出(I/O)单元412和显示器414之间的通信。
处理器单元404用于执行可装载入存储器406的软件指令。处理器单元404可以是一个或多个处理器的集合或者可以是多处理器核,这取决于具体实现。进一步地,处理器单元404可使用一个或多个异构处理器***实现,其中主处理器与次级处理器一起在单个芯片上提供。作为另一个说明性的例子,处理器单元404可以是包含多个相同类型的处理器的对称多处理器***。
存储器406和永久存储器408是存储设备416的例子。存储设备是任何能够存储信息的硬件,信息例如但不限于是数据、功能形式的程序代码和/或其它适合的临时和/或永久的信息。在这些例子中,存储器406可以例如是随机存取存储器或者任何其它适合的易失性或非易失性存储设备。永久存储器408可以采用各种形式,这取决于具体实现。例如,永久存储器408可包含一个或多个组件或器件。例如,永久存储器408可以是硬盘、闪存、可重写光盘、可重写磁带或者上述的一些组合。永久存储器408所使用的介质可以是可移除的。例如,可移除硬盘驱动器可用于永久存储器408。
在这些例子中,通信单元410提供与其它数据处理***或设备之间的通信。在这些例子中,通信单元410是网络接口卡。通信单元410可通过使用物理通信链路和无线通信链路的任意之一或两者来提供通信。
输入/输出单元412允许与可连接到数据处理***400的其它设备的数据输入和输出。例如,输入/输出单元412可向通过键盘、鼠标和/或其它适合的输入设备的用户输入提供连接。进一步地,输入/输出单元412可向打印机发送输出。显示器414提供向用户显示信息的机制。
用于操纵***、应用和/或程序的指令可设在存储设备416中,其通过通信架构402与处理器单元404进行通信。在这些说明性例子中,指令在永久存储器408上采用功能形式。这些指令可被加载到存储器406中以用于由处理器单元404执行。不同的实施例的过程可由处理器单元404使用计算机实现的指令执行,其中计算机实现的指令可设在存储器中,诸如存储器406。
这些指令指可称为程序代码、计算机可用程序代码、或者计算机可读程序代码,其可由处理器单元404中的处理器读取并执行。在不同的实施例中,程序代码可包含在不同的物理或计算机可读存储介质中,诸如存储器406或永久存储器408。
程序代码418以功能形式设在可选择地移除的计算机可读介质420上,并可被加载到或传送到数据处理***400以用于由处理器单元404执行。程序代码418和计算机可读介质420形成计算机程序产品422。在一个例子中,计算机可读介质420可以是计算机可读存储介质424或计算机可读信号介质426。计算机可读存储介质424可以包括例如光盘或磁盘,其被***或置入是永久存储器408的一部分的驱动器或其它设备中,以用于传送到是永久存储器408的一部分的存储设备上,诸如硬盘驱动器。计算机可读存储介质424也可以采用永久存储器的形式,诸如连接到数据处理***400的硬盘驱动器、拇指驱动器或闪存。在一些实例中,计算机可读存储介质424不可以从数据处理***400中移除。
可选地,程序代码418可使用计算机可读信号介质426而传送到数据处理***400。计算机可读信号介质426可以是例如包含程序代码418的传播数据信号。例如,计算机可读信号介质426可以是电磁信号、光信号和/或任何其它合适类型的信号。这些信号可通过通信链路传输,诸如无线通信链路、光纤电缆、同轴电缆、电线和/或任何其它合适类型的通信链路。换句话说,在说明性的例子中,通信链路和/或连接可以是物理的或无线的。计算机可读介质还可以采用非有形介质的形式,诸如包含程序代码的通信链路或无线传输。
在一些说明性的实施例中,程序代码418可通过在数据处理***400内使用的计算机可读信号介质426从另一个设备或数据处理***通过网络下载到永久存储器408上。例如,在服务器数据处理***中的计算机可读存储介质中存储的程序代码可通过网络从服务器下载到数据处理***400上。提供程序代码418的数据处理***可以是服务器计算机、客户端计算机或某些其它能够存储并传输程序代码418的设备。
用于数据处理***400的不同组件并不意味着对可实现不同实施例的方式提供物理或结构的限制。不同的说明性实施例可在除了包括用于数据处理***400的组件之外还包括其它组件的数据处理***中实现,和/或在包括代替数据处理***400的组件的组件的数据处理***中实现。图4中所示的其它组件可根据所示的说明性例子改变。不同的实施例可使用任何能够执行程序代码的硬件设备或***实现。作为一个例子,数据处理***400可包括与无机组件集成的有机组件和/或可完全由不包括人类的有机组件构成。例如,存储设备可以包括有机半导体。
作为另一个例子,数据处理***400中的存储设备是任何可存储数据的硬件装置。存储器406、永久存储器408和计算机可读介质420是采用有形形式的存储设备的例子。
在另一个例子中,总线***可用于实现通信架构402,并可包括一个或多个总线,诸如***总线或输入/输出总线。当然,总线***可使用任何合适类型的在连接到总线***的不同组件或设备之间提供数据传送的架构实现。此外,通信单元可以包括一个或多个用于传输和接收数据的设备,诸如调制解调器或网络适配器。进一步地,存储器可以是例如存储器406或缓存器,诸如在可在通信架构402中提供的接口和存储器控制器集线器中发现的。
已经给出了本发明的各种实施例的描述以用于说明的目的,但并不意味着穷尽或限制在此公开的实施例。对于本领域技术人员来说,在不脱离所描述的实施例的范围和精神的前提下,显然可以进行许多修改和变形。在此使用的术语被选择以最佳地解释本发明的原理、实际应用或对现有技术的技术改进,或者以使得本领域技术人员能够更好地理解在此公开的实施例。
附图中的流程图和框图说明了根据本发明的各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表代码的模块、片段或一部分,其包括一个或多个用于实现指定的逻辑功能的可执行指令。还应当注意,在某些可选的的实现中,在方框中所标注的功能可以按照不同于附图中所标注的顺序发生。例如,显示为连续的两个方框实际上可以基本并行地执行,或者有时可以按相反的顺序执行,这取决于所涉及的功能。也应当注意,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合可以通过执行指定功能或动作的专用的基于硬件的***或者专用硬件与计算机指令的组合来实现。

Claims (15)

1.一种用于高可用性集群的管理程序的方法,与第一节点相关联,所述第一节点包括管理程序和一个或多个来宾虚拟机VM,其中每个来宾虚拟机被安排以运行一个或多个应用,所述第一节点与一个或多个其它节点一起形成高可用性HA集群,其中,所述第一节点被配置为运行本地HA管理器,所述方法包括以下步骤:
在所述第一节点的每个来宾虚拟机和管理程序之间,建立内部双向通信通道;
在所述管理程序和给定来宾虚拟机之间,通过所述内部通道发送包括命令和对命令的响应的消息,其中,各个命令被发送以管理在所述给定来宾虚拟机上运行的指定应用;
有选择地监控所述消息,以检测与在所述给定来宾虚拟机上运行的所述指定应用相关联的故障状态的发生,其中所述本地HA管理器管理所述第一节点的管理程序;以及
响应于检测到故障状态,采取措施以纠正所述故障状态,其中,所述措施包括通过所述内部通道将至少一个命令从所述管理程序发送到所述给定来宾虚拟机。
2.根据权利要求1所述的方法,其中,
每个所述内部双向通道建立在与一个所述来宾虚拟机相关联的应用可用性管理器和所述第一节点的所述管理程序之间。
3.根据权利要求1所述的方法,其中,所述纠正的措施选择性地包括:
通过所述内部通道,将命令序列从所述管理程序发送到所述给定来宾虚拟机,以停止在所述给定来宾虚拟机上运行的所述指定应用,然后,在所述第一节点中,在所述给定来宾虚拟机上重新启动所述指定应用;或者
实现所述指定应用的故障转移到所述第一节点的除了所述给定来宾虚拟机之外的另一个来宾虚拟机,并在所述另一个来宾虚拟机上运行所述指定应用。
4.根据权利要求3所述的方法,其中,
在故障转移到所述另一个来宾虚拟机之前,所述另一个来宾虚拟机的指定组件被用作复制接收器;在故障转移到所述另一个来宾虚拟机之后,响应于通过所述内部通道从所述管理程序发送到所述另一个来宾虚拟机的命令,所述另一个来宾虚拟机的所述指定组件被用作复制发送器。
5.根据权利要求4所述的方法,其中,
在故障转移到所述另一个来宾虚拟机之后,进入数据被路由到所述另一个来宾虚拟机,并被所述复制发送器复制到与所述另一个来宾虚拟机相关联的存储器,所述给定来宾虚拟机的指定组件被用作复制接收器。
6.根据权利要求1所述的方法,其中,所述纠正的措施包括:
实现所述指定应用和所述给定来宾虚拟机的故障转移到所述高可用性集群的第二节点,以及在所述第二节点中,在所述给定来宾虚拟机上运行所述指定应用。
7.根据权利要求1所述的方法,其中,所述纠正的措施包括:
实现所述指定应用的故障转移到所述高可用性集群的第二节点,以及在所述第二节点中,在除了所述给定来宾虚拟机之外的来宾虚拟机上运行所述指定应用。
8.根据权利要求1所述的方法,其中,
在所述给定来宾虚拟机上运行的所述指定应用由与所述管理程序相关联的高可用性集群管理器管理,其中,所述高可用性集群管理器要求指定的管理脚本和配置资源以用于其运行,并且所有所述脚本和配置都包括在所述管理程序中。
9.根据权利要求1所述的方法,其中,
所述高可用性集群具备用于监控由所述高可用性集群的各个节点产生的心跳的***,其中,节点的故障通过由此产生的所述心跳的缺陷指示。
10.根据权利要求1所述的方法,其中,
所述高可用性集群的每个节点具有本地高可用性管理器,其中,节点中的来宾虚拟机故障由其高可用性管理器检测。
11.一种用于高可用性集群的管理程序的装置,与第一节点相关联,所述第一节点包括管理程序和一个或多个来宾虚拟机,其中每个来宾虚拟机被安排以运行一个或多个应用,所述第一节点与一个或多个其它节点一起形成高可用性HA集群,其中,所述第一节点被配置为运行本地HA管理器,所述装置包括:
用于在所述第一节点的每个来宾虚拟机和所述管理程序之间建立内部双向通信通道的处理器装置;
用于在所述管理程序和给定来宾虚拟机之间,通过所述内部通道发送包括命令和对命令的响应的消息的处理器装置,其中,各个命令被发送以管理在所述给定来宾虚拟机上运行的指定应用;
用于有选择地监控所述消息以检测与在所述给定来宾虚拟机上运行的所述指定应用相关联的故障状态的发生的处理器装置;以及
用于响应于检测到故障状态,采取措施以纠正所述故障状态的处理器装置,其中,所述措施包括通过所述内部通道,将至少一个命令从所述管理程序发送到所述给定来宾虚拟机。
12.根据权利要求11所述的装置,其中,
每个所述内部双向通道建立在与一个所述来宾虚拟机相关联的应用可用性管理器和所述第一节点的所述管理程序之间。
13.根据权利要求11所述的装置,其中,所述纠正的措施选择性地包括:
通过所述内部通道,将命令序列从所述管理程序发送到所述给定来宾虚拟机,以停止在所述给定来宾虚拟机上运行的所述指定应用,然后在所述第一节点中,在所述给定来宾虚拟机上重新启动所述指定应用;或者
实现所述指定应用的故障转移到所述第一节点中除了所述给定来宾虚拟机之外的另一个来宾虚拟机,以及在所述另一个来宾虚拟机上运行所述指定应用。
14.根据权利要求11所述的装置,其中,所述纠正的措施包括:
实现所述指定应用的故障转移到所述高可用性集群的第二节点,以及在所述第二节点中,在除了所述给定来宾虚拟机之外的来宾虚拟机上运行所述指定应用。
15.根据权利要求11所述的装置,其中,
在所述给定来宾虚拟机上运行的所述指定应用由与所述管理程序相关联的高可用性集群管理器管理,其中,所述高可用性集群管理器要求指定的管理脚本和配置资源以用于其运行,并且所有所述脚本和配置都包括在所述管理程序中。
CN201380018522.8A 2012-04-12 2013-03-26 提供用于ha集群的管理程序的基于应用的监控及恢复 Active CN104205060B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/444,997 2012-04-12
US13/444,997 US20130275966A1 (en) 2012-04-12 2012-04-12 Providing application based monitoring and recovery for a hypervisor of an ha cluster
PCT/IB2013/052388 WO2013153472A1 (en) 2012-04-12 2013-03-26 Providing application based monitoring and recovery for a hypervisor of an ha cluster

Publications (2)

Publication Number Publication Date
CN104205060A CN104205060A (zh) 2014-12-10
CN104205060B true CN104205060B (zh) 2016-01-20

Family

ID=49326183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380018522.8A Active CN104205060B (zh) 2012-04-12 2013-03-26 提供用于ha集群的管理程序的基于应用的监控及恢复

Country Status (5)

Country Link
US (2) US20130275966A1 (zh)
CN (1) CN104205060B (zh)
DE (1) DE112013002014B4 (zh)
GB (1) GB2513282A (zh)
WO (1) WO2013153472A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130275966A1 (en) * 2012-04-12 2013-10-17 International Business Machines Corporation Providing application based monitoring and recovery for a hypervisor of an ha cluster
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US9208015B2 (en) * 2013-06-18 2015-12-08 Vmware, Inc. Hypervisor remedial action for a virtual machine in response to an error message from the virtual machine
US20150019704A1 (en) * 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US20150100826A1 (en) * 2013-10-03 2015-04-09 Microsoft Corporation Fault domains on modern hardware
CN103559124B (zh) * 2013-10-24 2017-04-12 华为技术有限公司 故障快速检测方法及装置
US9213572B2 (en) 2013-12-02 2015-12-15 Vmware, Inc. Interdependent virtual machine management
EP3103215B1 (en) 2014-02-04 2018-05-16 Telefonaktiebolaget LM Ericsson (publ) Managing service availability in a mega virtual machine
CN104036548A (zh) * 2014-07-01 2014-09-10 浪潮(北京)电子信息产业有限公司 Mha集群环境重建方法、装置和***
US10095590B2 (en) * 2015-05-06 2018-10-09 Stratus Technologies, Inc Controlling the operating state of a fault-tolerant computer system
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
US10084674B2 (en) * 2015-09-09 2018-09-25 International Business Machines Corporation Virtual desktop operation and data continuity preservation
CN106559441B (zh) * 2015-09-25 2020-09-04 华为技术有限公司 一种基于云计算服务的虚拟机监控方法、装置及***
US10089124B2 (en) 2015-12-31 2018-10-02 International Business Machines Corporation Security application for a guest operating system in a virtual computing environment
US9990222B2 (en) 2016-03-18 2018-06-05 Airwatch Llc Enforcing compliance rules against hypervisor and virtual machine using host management component
CN108139925B (zh) 2016-05-31 2022-06-03 安华高科技股份有限公司 虚拟机的高可用性
US10318311B2 (en) * 2016-06-30 2019-06-11 Amazon Technologies, Inc. Memory allocation techniques at partially-offloaded virtualization managers
US10127068B2 (en) 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
CN111309515B (zh) * 2018-12-11 2023-11-28 华为技术有限公司 一种容灾控制方法、装置及***
CN113360395A (zh) * 2021-06-24 2021-09-07 中国电子科技集团公司第十四研究所 一种仿真***实时交互管理技术

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3958714B2 (ja) * 2003-06-16 2007-08-15 ソフトバンクモバイル株式会社 携帯通信機器
US20050132379A1 (en) 2003-12-11 2005-06-16 Dell Products L.P. Method, system and software for allocating information handling system resources in response to high availability cluster fail-over events
JP2005202652A (ja) 2004-01-15 2005-07-28 Canon Inc アプリケーション制御装置、その制御方法及び記憶媒体
US7444538B2 (en) 2004-09-21 2008-10-28 International Business Machines Corporation Fail-over cluster with load-balancing capability
JP4733399B2 (ja) 2005-01-28 2011-07-27 株式会社日立製作所 計算機システム、計算機、ストレージ装置及び管理端末
KR100930576B1 (ko) * 2006-12-04 2009-12-09 한국전자통신연구원 가상화 기반 고가용성 클러스터 시스템 및 고가용성클러스터 시스템에서 장애 관리 방법
JP4809209B2 (ja) 2006-12-28 2011-11-09 株式会社日立製作所 サーバ仮想化環境における系切り替え方法及び計算機システム
US8554981B2 (en) * 2007-02-02 2013-10-08 Vmware, Inc. High availability virtual machine cluster
US7757116B2 (en) 2007-04-04 2010-07-13 Vision Solutions, Inc. Method and system for coordinated multiple cluster failover
JP5032191B2 (ja) 2007-04-20 2012-09-26 株式会社日立製作所 サーバ仮想化環境におけるクラスタシステム構成方法及びクラスタシステム
US7797587B2 (en) * 2007-06-06 2010-09-14 Dell Products L.P. System and method of recovering from failures in a virtual machine
US20090070761A1 (en) * 2007-09-06 2009-03-12 O2Micro Inc. System and method for data communication with data link backup
US8117495B2 (en) * 2007-11-26 2012-02-14 Stratus Technologies Bermuda Ltd Systems and methods of high availability cluster environment failover protection
US7886183B2 (en) 2008-08-07 2011-02-08 Symantec Operating Corporation Providing fault tolerant storage system to a cluster
US8549364B2 (en) 2009-02-18 2013-10-01 Vmware, Inc. Failure detection and recovery of host computers in a cluster
US8055933B2 (en) 2009-07-21 2011-11-08 International Business Machines Corporation Dynamic updating of failover policies for increased application availability
US20110191627A1 (en) * 2010-01-29 2011-08-04 Maarten Koning System And Method for Handling a Failover Event
US8171349B2 (en) * 2010-06-18 2012-05-01 Hewlett-Packard Development Company, L.P. Associating a monitoring manager with an executable service in a virtual machine migrated between physical machines
US9176829B2 (en) * 2011-07-01 2015-11-03 Microsoft Technology Licensing, Llc Managing recovery virtual machines in clustered environment
US20130275966A1 (en) * 2012-04-12 2013-10-17 International Business Machines Corporation Providing application based monitoring and recovery for a hypervisor of an ha cluster

Also Published As

Publication number Publication date
US20130275966A1 (en) 2013-10-17
GB2513282A (en) 2014-10-22
DE112013002014B4 (de) 2019-08-14
GB201414770D0 (en) 2014-10-01
CN104205060A (zh) 2014-12-10
US9110867B2 (en) 2015-08-18
DE112013002014T5 (de) 2015-01-08
US20130275805A1 (en) 2013-10-17
WO2013153472A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
CN104205060B (zh) 提供用于ha集群的管理程序的基于应用的监控及恢复
KR101888029B1 (ko) 가상 머신 클러스터 모니터링 방법 및 모니터링 시스템
US8910172B2 (en) Application resource switchover systems and methods
CN110807064B (zh) Rac分布式数据库集群***中的数据恢复装置
CA2957749A1 (en) Systems and methods for fault tolerant communications
CN104516789A (zh) 用于检查点***中的故障转移检测和处理的方法和***
KR20110044858A (ko) 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지
CN101763301B (zh) 用于测试引导镜像的***和方法
CN101390336A (zh) 灾难恢复体系结构
CN109558260B (zh) Kubernetes故障排除***、方法、设备及介质
US9569629B2 (en) Communication between key manager and storage subsystem kernel via management console
US10880153B2 (en) Method and system for providing service redundancy between a master server and a slave server
US10102088B2 (en) Cluster system, server device, cluster system management method, and computer-readable recording medium
US11977449B2 (en) Distributed package management using meta-scheduling
US10484300B2 (en) Admission control based on the end-to-end availability
CN110291505A (zh) 减少应用的恢复时间
US10976941B2 (en) Validation of storage volumes that are in a peer to peer remote copy relationship
CN108573049A (zh) 数据处理方法和分布式存储装置
CN105426273A (zh) 恢复物理存储单元数据的方法和服务器
US20160259560A1 (en) Information processing apparatus, information processing system, and control program
US20240231842A9 (en) Self-contained worker orchestrator in a distributed system
US20240134656A1 (en) Self-contained worker orchestrator in a distributed system
US10430307B2 (en) In-line announcement of impending critical events within a distributed storage environment
CN113391949A (zh) 用于存储管理的方法、电子设备和计算机程序产品
CN115280287A (zh) 执行生命周期管理

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