首页> 中国专利> 用于检查点系统中的故障转移检测和处理的方法和系统

用于检查点系统中的故障转移检测和处理的方法和系统

摘要

本发明涉及一种用于检查点系统中的故障转移检测和处理的方法和系统。一种用于在具有多个主机的系统中处理系统管理程序调用序列的方法包括:为所述系统中的多个主机分配主机ID;标识系统管理程序调用序列的第一系统管理程序调用所源自的主机的第一主机ID;标识所述系统管理程序调用序列的第二系统管理程序调用所源自的主机的第二主机ID,其中所述第二系统管理程序调用是在所述第一系统管理程序调用之后的调用;以及确定所述第二主机ID是否等于所述第一主机ID。

著录项

  • 公开/公告号CN104516789A

    专利类型发明专利

  • 公开/公告日2015-04-15

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201410514971.8

  • 申请日2014-09-28

  • 分类号G06F11/07;G06F9/455;G06F9/48;

  • 代理机构北京市中咨律师事务所;

  • 代理人于静

  • 地址 美国纽约

  • 入库时间 2023-12-17 03:57:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-09-05

    授权

    授权

  • 2015-05-13

    实质审查的生效 IPC(主分类):G06F11/07 申请日:20140928

    实质审查的生效

  • 2015-04-15

    公开

    公开

说明书

技术领域

本公开涉及检查点系统。具体地说,涉及用于检测和处理主机故障转 移的系统管理程序接口系统。

背景技术

虚拟化涉及在硬件平台上创建抽象系统。系统管理程序在计算机系统 上创建一个或多个虚拟机,并且管理虚拟机的资源、存储器和设备分配。 系统管理程序可以直接安装在硬件上,或者可以安装在主机操作系统上。 每个虚拟机具有抽象组件,例如处理器、存储器和I/O设备,以及安装的 客机操作系统。

虚拟机通常执行并行任务并且针对任务进行管理。虚拟机可能由于以 下项而失败:硬件故障、固件故障、电源中断,或者中断虚拟化系统的操 作的其它事故。高可用性是指以下概念:在发生此类故障的情况下维持虚 拟组件的服务。

发明内容

本公开包括一种用于在具有多个主机的系统中处理具有多个系统管理 程序调用的系统管理程序调用序列的方法,所述方法包括:为系统中的多 个主机分配主机身份(ID);检索系统管理程序调用序列的第一系统管理 程序调用所源自的主机的第一主机ID;从虚拟机接收所述系统管理程序调 用序列的第二系统管理程序调用,其中所述第二系统管理程序调用是在所 述第一系统管理程序调用之后的调用;检索标识所述第二系统管理程序调 用所源自的主机的第二主机ID;以及判定所述第二主机ID是否等于所述 第一主机ID。

本公开包括一种用于在具有多个主机的系统中处理具有多个系统管理 程序调用的系统管理程序调用序列的计算机系统,所述计算机系统包括一 个或多个处理器电路,其被配置和布置为执行以下操作:为系统中的多个 主机分配主机身份(ID);标识系统管理程序调用序列的第一系统管理程 序调用所源自的主机的第一主机ID;标识所述系统管理程序调用序列的第 二系统管理程序调用所源自的主机的第二主机ID,其中所述第二系统管理 程序调用是在所述第一系统管理程序调用之后的调用;以及确定所述第二 主机ID是否等于所述第一主机ID。

本公开包括一种用于在具有多个主机的系统中处理具有多个系统管理 程序调用的系统管理程序调用序列的计算机可读存储介质,所述计算机可 读存储介质具有存储在其上的指令,当执行所述指令时,导致处理器执行 以下操作:为系统中的多个主机分配主机ID;标识系统管理程序调用序列 的第一系统管理程序调用所源自的主机的第一主机ID;标识所述系统管理 程序调用序列的第二系统管理程序调用所源自的主机的第二主机ID,其中 所述第二系统管理程序调用是在所述第一系统管理程序调用之后的调用; 以及确定所述第二主机ID是否等于所述第一主机ID。

附图说明

包括在本申请中的附图结合在本说明书中并构成本说明书的一部分。 它们示出了本发明的实施例并与说明书一起用来解释本发明的原理。附图 仅例示本发明的实施例并且并非限制本发明,这些附图是:

图1是根据本公开实施例的没有和具有故障转移的主机ID更改的示 意图;

图2是根据本公开实施例的用于判定是否在系统管理程序调用序列中 的两个系统管理程序调用之间发生故障转移的方法的示意图;

图3是根据本公开实施例的用于判定是否在系统管理程序调用序列期 间发生故障转移的方法的示意图;

图4是根据本公开实施例的用于判定是否在系统管理程序调用序列中 的调用期间发生故障转移的方法的示意图。

具体实施方式

本公开的各方面涉及检查点系统,而更具体的方面涉及用于检测和处 理主机故障转移的系统管理程序接口系统。尽管本发明并不一定限于这些 应用,但可以通过使用该上下文讨论不同示例来理解本发明的不同方面。

与本公开的各实施例一致,虚拟机可以通过系统管理程序调用发送对 信息或动作的请求。在系统管理程序调用期间,虚拟机通过系统管理程序 接口与系统管理程序通信。当虚拟机进行系统管理程序调用时,系统管理 程序接口设置调用的环境参数和条件,收集不同输入和数据块,对系统管 理程序进行调用,并且对来自虚拟机执行的操作系统的系统管理程序的结 果进行解码。系统管理程序接口可以充当过程转换器,并且可以在操作系 统与现有系统管理程序接口之间添加其它系统管理程序接口。

单个系统管理程序调用可以包括单个动作,例如简单的操作。对于要 执行更复杂动作的虚拟机,虚拟机可以执行简单系统管理程序调用序列。 系统管理程序调用序列中的每个系统管理程序调用可以执行独立的动作。 系统管理程序调用序列可以具有起始索引和调用计数器,以便在系统管理 程序调用序列中跟踪系统管理程序调用。

如果操作一个或多个程序的主要主机系统出现故障,则虚拟机可以通 过称为实时迁移或故障转移的过程,迁移到镜像辅助主机。如果当发生故 障转移时虚拟机正在执行系统管理程序调用序列,则系统管理程序调用序 列的一部分可以在主要主机上执行,并且系统管理程序调用序列的一部分 可以在辅助主机上执行。在系统管理程序调用期间使用来自多个系统的数 据或者由于故障转移而在错误系统上执行动作可以导致意外结果。例如, 主机可以通常以不同配置存在,当系统迁移到另一个主机时,用于具有特 定配置的主机的系统管理程序调用可能无法正确执行。

根据本公开的各实施例,主机ID系统管理程序接口可以评估系统管 理程序调用序列以便判定是否在高可用性系统中发生故障转移。主机ID 系统管理程序接口可以维护系统中的主机的主机ID,并且确定从中发送系 统管理程序调用或系统管理程序调用序列的主机。系统可以通过检测多个 主机已执行系统管理程序调用序列中的系统管理程序调用,确定已发生故 障转移。

图1是根据本公开实施例的具有通过中间系统管理程序接口层与系统 管理程序通信的虚拟机的系统的示意图。出于图1的目的,每个主要(A) 和辅助(B)组件可以根据其图号统称为功能类似,尽管通常存在每个组 件的不同配置。所述系统可以包含两个或更多主机101(在此示出主要主 机101A和辅助主机101B),这些主机通过网络110连接并对具有操作系 统107的虚拟机102进行抽象。每个主机101可以托管虚拟机102的相应 实例,一个实例可以是活动实例,另一个实例可以是故障转移或冗余实例。 虚拟机102可以包括操作系统107。每个主机可以包含系统管理程序104 和主机硬件105。主机硬件105可以包括主机CPU 106和主机存储器107。 不同主机101上的虚拟机102的相应实例可以在功能上和/或逻辑上相同。

在每个主机101上抽象的虚拟机102可以通过系统管理程序接口层 103与系统管理程序104通信。系统管理程序接口层103可以包括主机ID 系统管理程序接口108和操作系统管理程序接口109。主机ID系统管理程 序接口108可以用于跟踪主机的执行实例。操作系统管理程序接口109可 以用于收集数据、执行特权功能,以及其它过程和信息任务。系统管理程 序接口层103可以具有多个操作系统管理程序接口109。例如,如果系统 具有多个底层体系架构或系统管理程序,则可以对多个操作系统管理程序 接口109进行系统管理程序调用。操作系统管理程序接口109可以是任何 用于过程或信息用途的系统管理程序接口。

主机ID系统管理程序接口108可以在虚拟机102和涉及系统管理程 序调用的操作系统管理程序接口109之间通信。主机ID系统管理程序接 口108可以是接收目的地为操作系统管理程序接口109的输入和目的地为 虚拟机102的输出的计算机实现。主机ID系统管理程序接口108可以具 有用于维护系统中的每个主机101的主机ID,并且当由来自虚拟机102的 系统管理程序调用或调用序列查询或者接收来自虚拟机102的系统管理程 序调用或调用序列时,用于确定当前执行虚拟机102的主机101的逻辑。

例如,虚拟机102可以在主要主机101A上执行系统管理程序调用序 列的第一系统管理程序调用。在没有主机ID系统管理程序接口108的情 况下,第一系统管理程序调用将传递到主要操作系统管理程序接口109。 如果在序列期间发生故障转移,则虚拟机102可以迁移到辅助主机101B, 从而使辅助主机101B上的虚拟机102的对应实例成为活动实例。当虚拟 机102执行所述序列中的第二系统管理程序调用时,第二系统管理程序调 用将再次传递到辅助操作系统管理程序接口109B。如果要在不同机器上继 续执行系统管理程序调用序列,则可能出现不一致或次优结果。

继续该示例,在具有主机ID系统管理程序接口108的情况下,在传 递到主要操作系统管理程序接口109A之前,第一系统管理程序调用可以 传递到主机ID系统管理程序接口108。主机ID系统管理程序接口108可 以确定第一主机ID,该第一主机ID指示虚拟机102从中发起第一系统管 理程序调用的主要主机101A。如果在序列期间发生故障转移,则虚拟机 102可以仍然迁移到辅助主机101B。但是,现在当由虚拟机102(目前在 辅助主机101B上执行)执行第二系统管理程序调用时,主机ID系统管理 程序接口108可以确定第二主机ID,该第二主机ID指示虚拟机102从中 发送第二系统管理程序调用的辅助主机101B。所述系统然后可认识到第一 和第二系统管理程序调用发送自不同主机101,并且例如通过在辅助主机 101B上重新启动系统管理程序调用序列来处理故障转移。

主机101可以是具有处理器、存储器和输入/输出资源的数据处理系 统,例如服务器。主机101的系统配置可以类似,尽管它们在系统中的操 作在功能上不同。主机101可以根据其故障转移条件进行物理配置,并且 通常主要和辅助主机101将在物理上和电气上分离以便实现电源中断故障 转移条件。对于需要更可靠的高可用性的系统,系统可以包括多个辅助主 机101B。尽管可以根据特定功能描述主要和辅助主机101,但它们可以被 配置为由于其故障转移功能而执行另一个主机的功能。

每个主机101可以具有作为固件或软件安装的系统管理程序104(或 虚拟机管理器)。系统管理程序104可以直接安装在硬件上(类型1系统 管理程序),例如安装在固件或系统存储器上,或者可以安装在操作系统 上(类型2系统管理程序)。系统管理程序104控制、管理物理资源之间 的交互,并且将物理资源分配给在其主机101上抽象的虚拟机102。

主要和辅助主机101的主要和辅助系统管理程序104可以将虚拟机 102抽象到其相应主机101的硬件上。虚拟机102是物理机的软件或硬件 实现,其可以像物理机那样执行指令。由主要系统管理程序104A抽象到 主要主机101A上的虚拟机102可以执行指令,并且消耗运行应用的处理 器资源。由辅助系统管理程序104B抽象到辅助主机101B上的虚拟机102 可以通过检查点接收状态和存储页更新,但可能无法执行指令,直到发生 故障转移并且控制转移到辅助主机101B。虚拟机的硬件实现可以包括硬件 资源的逻辑分区。

图2是根据本公开实施例的用于判定是否在高可用性系统中发生故障 转移的方法的示意图。可以将有关图2的讨论与系统(例如图1的系统) 一起使用。在系统管理程序调用序列期间,系统可以判定是否多个主机托 管虚拟机102。主机ID系统管理程序接口108为系统中的多个主机101的 每一个分配主机ID,如201中所示。主机ID系统管理程序接口108从虚 拟机接收系统管理程序调用序列的第一系统管理程序调用,如202中所示。 主机ID系统管理程序接口108检索第一主机ID,该第一主机ID标识第 一系统管理程序调用所源自的主机,如203中所示,并且存储该第一主机 ID。系统管理程序接口108从虚拟机接收系统管理程序调用序列的后续第 二系统管理程序调用,如204中所示。主机ID系统管理程序接口检索第 二主机ID,该第二主机ID标识第二系统管理程序调用所源自的主机,如 205中所示。系统中的逻辑(无论在主机ID系统管理程序接口108中还是 在虚拟机102中)例如通过将第二主机ID与第一主机ID相比较,判定第 二主机ID是否等于第一主机ID,如206中所示。基于该判定的结果,系 统可以将第二系统管理程序调用传递到操作系统管理程序接口,如208中 所示,或者例如通过重新启动系统管理程序调用序列来处理故障转移,如 207中所示。

图3是根据本公开实施例的用于判定是否在高可用性系统中发生故障 转移的另一方法的示意图。根据各实施例,针对系统管理程序调用序列的 起始系统管理程序调用和调用序列中的终止系统管理程序调用确定主机 ID。主机ID系统管理程序接口108针对系统中的多个主机101的每一个 分配和维护主机ID,如301中所示。当系统管理程序在主机101上执行虚 拟机102时,可以进行该分配。

主机ID系统管理程序接口108接收系统管理程序调用序列,如302 中所示。主机ID系统管理程序接口108确定当接收系统管理程序调用序 列时虚拟机102在其上主动执行的主机101的主机ID,并且将该主机ID 维护为系统管理程序调用序列的初始主机ID(IDI),如303中所示。所 述系统执行系统管理程序调用序列,如304中所示。当系统管理程序调用 序列完成时,主机ID系统管理程序接口确定当完成系统管理程序调用序 列时虚拟机在其上主动执行的主机101的主机ID,并且将该主机ID维护 为系统管理程序调用序列的最终主机ID(IDF),如305中所示。

主机ID系统管理程序接口108可以判定最终主机ID(IDF)是否等于 初始主机ID(IDI),如306中所示。备选地,虚拟机102可以查询主机 ID系统管理程序接口108以获得初始主机ID(IDI)和最终主机ID(IDF), 并且判定最终主机ID(IDF)是否等于初始主机ID(IDI)。如果最终主 机ID(IDF)等于初始主机ID(IDI),则系统可以继续操作,如309中 所示。如果最终主机ID(IDF)不等于初始主机ID(IDI),则主机ID系 统管理程序接口108可以将故障转移响应发送到虚拟机102,如307中所 示,备选地,虚拟机102可以确认已发生故障转移。此外,所述系统可以 例如通过重新启动系统管理程序调用序列来处理故障转移,如308中所示, 并且主机ID系统管理程序接口108可以返回到确定初始主机ID(IDI), 如303中所示。

图4是根据本公开实施例的用于判定是否在高可用性系统中发生故障 转移的另一方法的示意图。根据各实施例,针对系统管理程序调用序列的 起始系统管理程序调用和系统管理程序调用序列中的后续调用确定主机 ID。在某些实施例中,主机ID系统管理程序接口可以检查每个后续调用 及紧接其前的调用。在不同实施例中,主机ID系统管理程序接口可以不 检查每个调用。例如,主机ID系统管理程序接口可以每隔两个调用而检 查调用。主机ID系统管理程序接口108针对系统中的多个主机101的每 一个分配和维护主机ID,如401中所示。当系统管理程序103在主要主机 101上执行虚拟机102时,可以进行该分配。

更具体地说,主机ID系统管理程序接口108接收系统管理程序调用 序列,如402中所示。主机ID系统管理程序接口108确定当接收系统管 理程序调用序列时虚拟机102在其上主动执行的主机101的主机ID,并且 将该主机ID维护为序列ID(IDS),如403中所示。主机ID系统管理程 序接口108接收系统管理程序调用,如404中所示。主机ID系统管理程 序接口108确定当接收系统管理程序调用时虚拟机在其上执行的主机101 的主机ID,并且将该主机ID维护为调用ID(IDC),如405中所示。

系统管理程序接口可以判定调用ID(IDC)是否等于序列ID(IDS), 如406中所示。如果调用ID(IDC)不等于序列ID(IDS),则主机ID系 统管理程序接口108可以将故障转移响应发送到虚拟机102,如407中所 示。此外,所述系统可以例如通过重新启动系统管理程序调用序列来处理 故障转移,如408中所示。如果调用ID(IDC)等于序列ID(IDS),则 主机ID系统管理程序接口108可以允许系统管理程序调用通过,如409 中所示。虚拟机102或主机ID系统管理程序接口108可以评估当前系统 管理程序调用是否是系统管理程序调用序列的最后一个系统管理程序调 用,如410中所示。如果当前系统管理程序调用不是系统管理程序调用序 列的最后一个系统管理程序调用,则主机ID系统管理程序接口108可以 返回到接收系统管理程序调用,如404中所示。如果当前系统管理程序调 用是系统管理程序调用序列的最后一个系统管理程序调用,则主机ID系 统管理程序接口108可以继续系统操作,如411中所示。

所属技术领域的技术人员知道,本公开的各个方面可以实现为系统、 方法或计算机程序产品。因此,本公开的各个方面可以具体实现为以下形 式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软 件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电 路”、“模块”、“器件”或“系统”。此外,本发明的各个方面还可以 实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算 机可读介质中包含计算机可读的程序代码。

可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可 以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质 可以是—但不限于—例如电、磁、光、电磁、红外线、或半导体的系统、 装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体 的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计 算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦 式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储 器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。 在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质, 该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传 播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号 可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合 适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何 计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令 执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质 上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、 有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本公开的 各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的语 言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言— 诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算 机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部 分在用户计算机上部分在远程计算机或服务器上执行、或者完全在远程计 算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过 任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户 计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通 过因特网连接)。

以上已经参照根据本公开实施例的方法、装置(系统)和计算机程序 产品的流程图和/或框图描述本公开的各个方面。应当理解,流程图和/或 框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程 序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或 其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令 在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流 程图和/或框图中的一个或多个方框中规定的功能/动作的装置。

也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使 得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而, 存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的 一个或多个方框中规定的功能/动作的指令的制造品(article of  manufacture)。

也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、 或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列 操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装 置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的 功能/动作的过程。

附图中的流程图和框图显示了根据本公开的不同实施例的系统、方法 和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程 图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述 模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的 可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功 能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上 可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的 功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/ 或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬 件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

尽管根据特定实施例描述了本公开,但将预计到的是,对本公开的更 改和修改将对于所属技术领域的技术人员来说变得显而易见。因此,以下 权利要求旨在被解释为涵盖所有落入本公开的真实精神和范围之内的此类 更改和修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号