CN1667600A - 分布式系统和冗余控制方法 - Google Patents

分布式系统和冗余控制方法 Download PDF

Info

Publication number
CN1667600A
CN1667600A CN200510053883.3A CN200510053883A CN1667600A CN 1667600 A CN1667600 A CN 1667600A CN 200510053883 A CN200510053883 A CN 200510053883A CN 1667600 A CN1667600 A CN 1667600A
Authority
CN
China
Prior art keywords
processing element
computing machine
distributed system
executing state
processing
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.)
Granted
Application number
CN200510053883.3A
Other languages
English (en)
Other versions
CN100380364C (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Solutions 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 Toshiba Solutions Corp filed Critical Toshiba Solutions Corp
Publication of CN1667600A publication Critical patent/CN1667600A/zh
Application granted granted Critical
Publication of CN100380364C publication Critical patent/CN100380364C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • 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/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit

Abstract

使用有效个数冗余方法的分布式系统,其中冗余处理由N个彼此可通信的处理元素中的至少Q个处理元素所执行,N个处理元素中的每个包括:重新同步判决装置(132),用于判决在这样的情况下所述处理元素自身的执行状态可以与所述分布式系统中最新的执行状态重新同步,其中在所述情况中,所述处理元素可以在重启所述处理元素的时刻与所述N个处理元素中的至少F+1个已经同步的元素(F=N-Q)进行通信;以及重新同步装置(133),用于根据所述重新同步判决装置的判决结果,将所述处理元素自身的执行状态重新同步到所述至少F+1个处理元素的执行状态中的最新一个上。

Description

分布式系统和冗余控制方法
技术领域
本发明涉及分布式系统和冗余控制方法,其中,处理中冗余N(其中N是4或大于4的整数)个处理元素,所述处理元素典型地是通过网络所连接并且能够彼此通信的计算机。
背景技术
近年来,计算机技术和网络技术已经得到显著提高,因此,商业计算机化已经广泛推广开来。然而,对于一些商业应用来说,由于计算机故障所引起的长期中止是不允许的。一般来说,因此,分布式系统最近被构建以便通过网络连接多个计算机。一种被配置了多个可彼此通信的处理元素(处理执行单元)的分布式系统也是已知的,其中所述处理元素在单个计算机上同时被操作。这些处理元素被包含在由操作系统(OS)所运行的已知的相互通信处理中,以便通过公共接口发送和接收消息及信息包。现在,关于具有通过网络所连接的多个计算机的分布式系统进行解释。
冗余计算机处理被认为是操作分布式系统的方法中的一种。在分布式系统中,每个计算机可以独立地发生故障。在由于单个计算机的故障引起整个系统故障的情况下,系统的可利用率被降低到低于单个计算机的可利用率。为了防止这种不便,需要整个系统的处理是冗余的。通过整个系统的冗余处理,分布式系统的可利用率可以被提高到超过单个计算机的可利用率。例如,考虑被配置了十个计算机的分布式系统,所述计算机中的每个都以99%的可利用率进行操作。假设根本没有冗余,那么整个系统的可利用率大约为90%。而另一方面,假设通过冗余可以容忍多达三个计算机的多点故障,则整个系统的可利用率变为约99.9998%。
【故障传递(fail-over)方法】
在分布式系统中,计算机的冗余处理方法通常是已知的,其中当检测到计算机故障时,特定的处理被传递到另外的计算机上。所述方法被认为是故障传递方法。
在故障传递方法中,计算机故障一般通过在计算机之间的周期通信检查相互操作的状况来检测。所述通信被称作“心跳(heart beat)”。计算机的停止故障通过心跳的超时来检测。换言之,在预先配置的时间间隔内没有发送心跳的计算机被认为是停止的。
在使用故障传递方法的分布式系统中,裂脑(split brain)引起了问题。所述裂脑被定义为这样的事实,即执行上下文(状态)被分成两个或多个。当错误地检测到故障时,裂脑发生。例如,在构成分布式系统的两组计算机不能彼此进行通信(网络分离)的情况下,所述两个计算机组检测彼此的故障。在这种情况下,所述两个计算机组中的每个开始独立操作,因此裂脑发生。在另一种情况下,给定计算机的心跳的传输由于异常重的负载而暂时地被中止,并且故障被检测到。即使在计算机随后恢复操作的情况下,裂脑也可能继续。
冗余处理通常是分布式系统中的重要处理。因此,一旦裂脑发生,处理就出现缺乏一致性,从而对整个系统产生重大的影响。
【多数表决(Majority voting)方法】
使用多数表决的方法(多数表决方法)被认为基本上解决了故障传递方法中的裂脑问题。在所述方法中,由所有冗余计算机执行相同的处理,并且在代表整体中的多数的计算机的操作可以被彼此共享(同步)的情况下,所述处理不管其余计算机的操作而继续进行。所述方法基本上可以避免所述裂脑。
例如,假设所述处理中冗余三个计算机X、Y、Z(三倍的),其网络被分成两个计算机X、Y的组A以及一个计算机Z的组B。即使在这种情况下,组A继续所述处理。而另一方面,组B的处理被中止。中止被定义为这样的状态,其中所述处理不能够继续,直到其中操作可以彼此共享的计算机的数目达到多数。
假设计算机Z在异常重的负载的情况下暂停。代表计算机的剩余多数的计算机组(组A)的处理不管计算机Z而继续进行。在计算机Z恢复之后,未构成多数的计算机Z的处理武断地不被执行。换言之,计算机Z是在与代表多数的计算机组的处理重新同步之后才恢复操作的。
【有效个数(Quorum)算法】
上述多数表决方法构成了有效个数算法中的一种。在有效个数算法中,所有冗余计算机执行相同的处理,并且一旦代表有效个数的计算机的操作可以被彼此共享,所述处理不管其余计算机的操作而继续进行。日本专利申请公开号2001-117895(段落0007、0018至0022,图1至5)以及2003-67215(段落0056至0064,图4)公开了使用所述有效个数算法的分布式系统。在日本专利申请公开号2001-117895中公开了所述多数表决方法的例子,其具有代表整体中的一半的有效个数(即,数目多于一半)。在日本专利申请公开号2001-117895中,公开了一种分布式系统,其中在代表多数的服务器(计算机)数目(即构成有效个数组的数目)为N的情况下,只要代表有效个数(多数)N的服务器在进行操作,所述数目N就可以动态地被改变。而另一方面,日本专利申请公开号2003-67215中公开了2/3有效个数算法,其中有效个数是代表多于整体的2/3的最小整数。所述2/3有效个数算法被认为是具有较高冗余的冗余方法。
如上所述,与故障传递方法不同,有效个数算法基本上可以避免裂脑。然而,有效个数算法引起故障传递方法中所没有遇到的其它问题。下面解释所述问题。
考虑多个计算机发生故障的情况,即在分布式系统中同时发生多点故障(multi-point-failure)。在故障传递方法中,只要一个计算机在进行操作,所述处理就可以继续。而另一方面,在有效个数算法中,当且仅当有效个数的计算机在进行操作,所述处理才可以继续。一旦在操作中的计算机的数目小于有效个数,操作计算机的处理就不能继续。在这种情况下,所述系统通常被停止。
但是,有其它的方法。在操作中的计算机的数目减小到少于有效个数的情况下,除了停止系统之外,还可以在特定的时间点上暂时中止所述处理,并且当故障计算机中的一些被恢复及重启时,它们可以与其余计算机的处理重新同步,由此自动恢复所述处理。然而,当使用所述方法时,有防止在时间轴上产生裂脑的技术问题。在时间轴上的裂脑被定义为这样的裂脑类型,在冗余处理从给定的时间点上重复并且再次执行的情况下,所述裂脑作为外部输入/输出处理之间的不匹配而发生。
参考这样的分布式系统来解释在时间轴上的裂脑,所述分布式系统使用图1中所示的具有7个计算机#1到#7的冗余处理的2/3有效个数判决算法。在这种情况下,有效个数是5。首先,在当计算机#1到#7完成处理P1、P2、P3的时间点T1上,假设两个计算机#1和#2与五个计算机#3到#7之间的通信失败。换言之,网络被分成包括两个计算机#1和#2的计算机组A和包括五个计算机#3到#7的计算机组B。
在这种情况下,满足有效个数的组B的计算机#3到#7继续所述处理。而另一方面,不满足有效个数的组A的计算机#1和#2中止所述处理。假设包括组B的全部计算机#3到#7的多点故障在时间点T2上发生,此时所述五个计算机#3到#7在处理P3之后完成了处理P4、P5、P6。同样假设,在时间点T3上,组B的计算机#3到#7被重启,并且网络分离被消除。
组B的重启的计算机#3到#7与组A的计算机#1和#2重新同步。组A的计算机#1和#2的处理是在时间点T1上中止的,即,是在处理P3的终点上中止的。因此,所述七个计算机#1到#7在时间点T3上从处理P3执行的终点上恢复所述处理。因此,计算机#3到#7再次执行从时间点T1到T2的所述处理。然而,考虑到从时间点T3上所恢复的处理包括来自于外部源的信号输入/发往外部源的信号输出,在时间点T3上所恢复的处理P3之后的处理P4’、P5’、P6’与从时间点T1到T2所执行的处理P4、P5、P6之间可能发生不匹配,即时间轴上的裂脑。
发明内容
本发明是考虑上述情况而实现的,并且其目标是为了提供分布式系统和冗余控制方法,其中所述处理中冗余N(N:4或大于4的整数)个可彼此通信的处理元素,以这种方式,可以防止裂脑,并且可以同时保证在多点故障时的可利用率。
根据本发明的一个方面,提供了使用有效个数冗余方法的分布式系统,其中仅在所述至少Q个处理元素的操作可以彼此同步的情况下,冗余处理由N(N:4或大于4的整数)个可彼此通信的处理元素中的至少Q(Q:有效个数)个处理元素所执行,其特征在于,N个处理元素中的每个都包括重新同步判决装置,用于判决在这样的情况下所述处理元素自身的执行状态能够与所述分布式系统中最新的执行状态重新同步,其中在所述情况中,所述处理元素可以在重启所述处理元素的时刻与所述N个处理元素中的至少F+1个已经同步的元素(F=N-Q)进行通信;以及重新同步装置,用于根据所述重新同步判决装置的判决结果,将所述处理元素自身的执行状态重新同步到所述至少F+1个处理元素的执行状态中的最新一个上。
根据本发明的另一方面,提供了在使用有效个数冗余方法的分布式系统中的冗余处理的冗余控制方法,其中仅在所述至少Q个处理元素的操作可以彼此同步的情况下,冗余处理由N(N:4或大于4的整数)个可彼此通信的处理元素中的至少Q(Q:有效个数)个处理元素所执行,所述方法的特征在于,其包括以下步骤:判决所重启的处理元素是否可以与所述N个处理元素中的至少F+1个已经同步的处理元素(F=N-Q)进行通信;在所述重启的处理元素可以与所述至少F+1个处理元素进行通信的情况下,从所述至少F+1个处理元素中检测(S13、S14)保存所述分布式系统中的最新执行状态的处理元素;以及将所述重启的处理元素的执行状态重新同步(S15)到所检测到的处理元素的执行状态上。
在这种配置下,字符F指示N-Q,其是在故障情况下还能执行冗余处理的处理元素的最大值。具体来说,在包括F个或少于F个处理元素的多点故障同时发生的情况下,冗余处理甚至不会暂时地被中止。而另一方面,在包括多于F个处理元素的多点故障的情况下,有效个数Q不能被满足,因此,在现有技术中,系统将被停止。同样地,在这样的情况下,在时间轴上引起了裂脑,其中在所述情况下,所述冗余控制被中止,并且从故障中所恢复的处理元素无条件地与已经同步的处理元素的执行进行重新同步。
而另一方面,在上述的配置中,仅在这样的情况下,重新同步被认为是可能的,其中在所述情况下,在从故障中所恢复并重启的所述处理元素与全部N个处理元素中已经同步的至少F+1个处理元素之间能进行通信。在这个系统中,仅在至少Q个处理元素的操作可以彼此同步的情况下,所述特定Q个处理元素继续进行所述处理。在所述系统中,至少Q个处理元素处于最新执行状态。因此,甚至在包括多于F(=N-Q)个处理元素的多点故障发生的情况下,假设所述重启的处理元素可以与全部N个处理元素中已经同步的至少F+1个处理元素进行通信。然后,所述特定F+1个处理元素中的至少一个保存最新的执行状态。为了确保与至少F+1个处理元素的通信,涉及多点故障的所述处理元素的允许数目被给定为N-(F+1)=(N-F)-1=Q-1。
因此,在所述配置中,只要可以与至少F+1个处理元素进行通信,所述重启的处理元素就被重新同步到所述至少F+1个处理元素的执行状态中的最新一个上。重新同步之后,所述重启的处理元素采用整个系统中的执行的最新状态。因此,所述重新同步没有引起任何裂脑。
如上所述,根据本发明,提供了有效个数冗余方法的分布式系统,其中仅在全部N个(N:4或大于4的整数)处理元素中的至少Q(Q:有效个数)个处理元素的操作可以彼此同步的情况下,所述冗余处理由所述特定Q个处理元素所执行。甚至在包括多于F(=N-Q)个处理元素的多点故障的情况下,假设从故障中所恢复并重启的处理元素可以与全部N个处理元素中的至少F+1个已经同步的处理元素进行通信。然后,如此重启的所述处理元素自动地被重新同步到所述至少F+1个处理元素的执行状态中的最新一个上。因此,在系统中总共有至少Q个处理元素能进行操作的阶段,所述处理可以基于上述的最新执行状态而自动重启。因此,所述裂脑被防止,并且同时确保了在多点故障时刻的可利用率。
本发明额外的目的和优点将在下面的描述中被阐述,并且在某种程度上将从本说明书中容易地看出,或可以通过本发明的实践而被了解。通过后面具体指出的手段和组合,可以实现及获得本发明的目的和优点。
附图说明
附图被结合进说明书中,并构成说明书的一部分,附图说明了本发明的实施例,并且与上面所给出的一般描述和下面所给出的实施例的详细描述一起用于解释本发明的原理。
图1是序列图,其示出了在重启时由于重新同步处理的无条件执行而在时间轴上发生裂脑的情况下的每个计算机的处理状况;
图2是示出根据本发明实施例的分布式系统配置的框图;
图3是示出根据所述实施例的冗余控制操作步骤的流程图;
图4是示出根据所述实施例的包括重新同步的重启处理步骤的流程图;以及
图5是示出根据所述实施例的每个计算机的处理状况的序列图。
具体实施方式
下面参考附图描述本发明的实施例。
图2是示出根据本发明实施例的分布式系统配置的框图。图2中所示的分布式系统被配置了N个(N:4或大于4的整数)或7个计算机10-1(#1)到10-7(#7)。计算机10-1到10-7是能够彼此通信的处理元素。计算机10-1到10-7通过网络20被相互连接起来,并且被配置成能够通过网络20进行相互通信。
在图2所示的分布式系统中,所述处理中冗余7个计算机10-1到10-7。同样地,图2中所示的分布式系统使用传统的有效个数算法来控制冗余操作。下面解释图2中使用有效个数算法的分布式系统的特征。首先,所述处理中所冗余的计算机的数量由N所表示。根据本发明,N=7。同样地,有效个数由Q所表示。众所周知,在就N个冗余计算机的处理而具有有效个数Q的有效个数算法中,假设至少Q个计算机的操作可以彼此共享(同步)(即在所述Q个计算机组成同一组的情况下)。仅在所述情况下,所述处理可以被继续,而不顾其它计算机中的任何一个所可能产生的故障。在使用2/3有效个数判决算法作为有效个数算法的情况下,例如,Q是大于2/3的最小整数,并且在N=7的情况下为5。同样地,值N-Q由F所表示。明显地,F是甚至在多点故障的情况下在整个系统中继续所述冗余处理的计算机的最大值。在使用2/3有效个数判决算法作为有效个数算法的情况下,对于N=7、Q=5来说,因此,F=2。
本实施例的特征在于这样的条件和方法,通过所述条件和方法,给定的计算机#1从故障(错误)中恢复、重启以及与其余计算机的操作重新同步。根据本实施例,重新同步被定义为这样的过程,在所述过程中,将已经在特定时间点上开始的其余计算机中的任何一个或多个所保存的最新处理状态拷贝到计算机#1中,作为其自身的最新处理状态。不管有多少个计算机保存所述最新处理状态,都执行所述重新同步。用于根据本实施例的重新同步所需的条件是:当计算机#1重启时,有至少F+1个计算机,所述计算机能够与计算机#1形成同一组,也就是说,能够与计算机#1进行通信。
出于下面将描述的原因,对于上述实施例独特的重新同步处理可以防止时间轴上的裂脑。在根据本实施例使用有效个数算法的分布式系统中,在至少Q个计算机彼此成功地被分组在一起的情况下,所述冗余处理继续。因此,分布式系统中最新处理状态由至少Q个计算机所保存。假设保存最新处理状态的计算机数量是最小值Q,未保存最新处理状态的计算机数量等于其余计算机的数量,即F=N-Q。而另一方面,在保存最新处理状态的计算机数量多于Q的情况下,未保存最新处理状态的计算机数量小于N-Q,即小于F。这表明系统中任意F+1个计算机中的至少一个保存最新处理状态。因此,计算机#i在上述重新同步的条件下重新同步,在这样的情况下,就整个系统来看,计算机#1总是处于处理(执行)的最新状态。因此,在时间轴上没有引起任何裂脑。
接着,参考图2来解释重新同步的具体机制。计算机10-1(#1)到10-7(#7)每个都包括描述由特定计算机10-1到10-7所冗余的处理步骤的程序11、用于在计算机10-1到10-7中保存当前时间点上的执行状态(处理状态)的执行状态存储单元12、以及用于根据程序11控制冗余处理(具有有效个数的冗余)的冗余控制单元13。然而为了便于说明,在图2中的计算机10-3到10-7中没有示出程序11、执行状态存储单元12和冗余控制单元13。同样地,在图2所示的每个计算机10-i(i:1至7)中,提供存储器区域以存储程序11的存储单元以及提供存储区域以实现执行状态存储单元12的存储单元没有被示出。
在每个计算机10-i中的冗余控制单元13由计算机10-i来实现,所述计算机10-i承载并执行安装在特定计算机10-i中的具体软件程序。所述程序可以通过预先存储在计算机可读存储媒介中而被分发,所述媒介例如是包括软盘(注册商标)的磁盘、包括CD-ROM或DVD的光盘、或包括闪存的半导体存储器。同样地,所述程序可以通过网络下载而被分发。冗余控制单元13包括序列号保存单元131、重新同步检测单元132和重新同步单元133。
序列号保存单元131用于保存序列号,作为构成计算机10-i中的处理的进展的标识的进展信息。例如,每当程序11的执行取得进展时,或每当执行状态存储单元12中的存储状态被更新时,就将序列号保存单元131中的内容加1。
重新同步判决单元132判决在重启计算机10-i的情况下,所述计算机10-i是否可以被重新同步到保存系统中最新执行状态的计算机的处理上。重新同步单元133根据重新同步判决单元132的判决结果来重新同步计算机10-i。通过将计算机10-i中的执行状态存储单元12的内容更新为最新执行状态,重新同步单元133重新同步计算机10-i。通过比较在已经与计算机10-i同步并通信的计算机(在后面描述的冗余控制之下的计算机)的序列号保存单元131中所保存的序列号,保存系统中最新执行状态的计算机可以被检测到。
接着,参考图3和4的流程图以及图5的序列图,解释图2中所示的系统操作。
首先,冗余控制被解释。计算机10-i(i:1至7)中的冗余控制单元13通过网络20彼此交换信息(步骤S1)。所述信息交换使得在每个计算机10-i中的冗余控制单元13能够判决包括所述特定计算机10-i的至少Q个计算机的操作是否可以彼此共享(同步)(步骤S2)。在日本专利申请公开号2003-67215(段落0056到0064,图4)的情况中,例如,用于处理Pj的输入在计算机之间被交换,并且判决所述特定输入是否可以由至少Q个计算机所共享。用于处理Pj的输入可以由至少Q个计算机所共享,这等于是说,包括所述特定计算机10-i的至少Q个计算机的操作可以彼此共享。
在包括所述计算机10-i的至少Q个计算机的操作可以彼此共享(步骤S2)的情况下,计算机10-i中的冗余控制单元13产生由所述至少Q个计算机所组成的组,并且进行到步骤S3。在步骤S3中,在程序11中所描述的所有处理中,计算机10-i中的冗余控制单元13执行处理Pj,所述处理Pj对应于在执行状态存储单元12中所保存的当前执行状态。一旦完成处理Pj的执行,冗余控制单元13就将执行状态存储单元12中所保存的执行状态更新为这样的状态,在所述状态中处理Pj的执行被完成(步骤S4)。同样地,冗余控制单元13将序列号保存单元131中所保存的序列号加1(步骤S5)。冗余控制单元13重复步骤S1到S5的处理。
而另一方面,在包括计算机10-i的Q个计算机的操作不能彼此共享的情况下,在计算机10-i中的冗余控制单元13中止执行程序11的处理。在这种情况下,冗余控制单元13重复步骤S1上的与其余计算机的信息交换以及步骤S2上的判决处理,直到至少Q个计算机的操作能够彼此共享。由计算机10-i的冗余控制单元13所进行的在步骤S1和S2上的所述重复操作也是冗余控制操作的一部分。具体来说,只要步骤S1和S2的处理被重复,即使计算机10-i没有执行程序11的新处理,计算机10-i仍然根据图3的流程图继续执行所述冗余控制操作。一旦包括计算机10-i的Q个计算机的操作能够彼此共享,计算机10-i可以立即进行到与执行程序11的处理的其它计算机的操作同步的新处理中。
现在,假设在系统的所有计算机10-1到10-7中,如图5中所示地那样来执行程序11的处理P1、P2、P3。在完成处理P3的时间点T1,假设两个计算机10-1(#1)、10-2(#2)与五个计算机10-3(#3)到10-7(#7)之间的通信失败。换言之,假设包括两个计算机10-1(#1)、10-2(#2)的计算机组A和包括五个计算机10-3(#3)到10-7(#7)的计算机组B被分离成两个网络部分。在图2中的系统采用2/3有效个数判决算法作为有效个数算法的情况下,N=7、Q=5并且F=2。
在这种情况下,计算机组B被配置了五个计算机10-3到10-7,因此满足2/3的有效个数Q。因此,如图5中所示的那样,计算机10-3到10-7在处理P3之后继续程序11的处理。而另一方面,计算机组A的计算机10-1、10-2不能满足Q(=5),因此,如图5所示的那样,所述计算机10-1、10-2中止程序11的处理,在处理P3之后不再继续进行处理。
此后,在时间点T2,当计算机10-3到10-7完成了在处理P3之后的处理P4、P5、P6时,假设例如计算机10-3到10-7中的四个计算机10-4到10-7出现故障并且最终停止。即使在这样的情况下,仍然不满足2/3有效个数,因此,所述处理被中止,其中在所述情况下,由于网络分离所造成的计算机10-3与计算机10-1、10-2的分离被取消,并且计算机10-3能够与计算机10-1、10-2共享所述操作,即计算机10-3能够与计算机10-1、10-2组成同一组。
现在,假设计算机10-4到10-7的故障是暂时的,并且计算机10-4到10-7从故障中恢复及重启。计算机10-4到10-7中的冗余控制单元13根据图4的流程图开始重启处理。
首先,计算机10-j(j:4到7)中的冗余控制单元13与系统中的其它计算机进行通信(步骤S11)。作为在步骤S11上的通信的结果,计算机10-j的冗余控制单元13的重新同步判决单元132判决是否能与F+1个或更多的执行冗余控制操作(已经同步)的计算机(即,至少F+1个计算机)进行通信(步骤S12)。在有F+1个或更多的计算机能够与计算机10-j进行通信并且正在执行所述冗余控制操作的情况下,重新同步判决单元132判决计算机10-j可以被重新同步。在这种情况下,所述重新同步判决单元132将控制操作传递给在同一计算机10-j中的重新同步单元133。
根据本实施例(Q=5),其中图2中所示的系统被配置了七个计算机10-1到10-7(N=7),并且所述系统使用2/3有效个数判决算法作为有效个数算法,F+1=(N-Q)+1=(7-5)+1=3。如上所述,在有F+1(=3)个或更多的计算机执行所述冗余控制操作的情况下,所述F+1(=3)个计算机中的至少一个保存最新执行状态(处理状态)。在图5所示的序列图中,在时间点T3上执行冗余控制操作的计算机的数量是F+1(=3),即计算机10-1到10-3。在这种情况下,所述F+1(=3)个计算机10-1到10-3中的至少一个保存最新执行状态(处理P6的执行被完成所处的状态)。
以下面所描述的方式,计算机10-j(j:4到7)中的重新同步单元133检测保存最新执行状态的计算机,并且执行处理用于将计算机10-j与保存所述最新执行状态的计算机重新同步。首先,从可与计算机10-j通信并且执行所述冗余控制操作的F+1个或更多的计算机中(在这种情况下,F+1=3,即3个计算机10-1到10-3),计算机10-j获取由所述F+1个或更多计算机的序列号保存单元131所保存的序列号(步骤S13)。例如可以由计算机10-j中的重新同步单元133获取所述序列号,计算机10-j请求了F+1个或更多的计算机传递所述序列号。
通过比较从所述F+1个或更多的计算机中所获取的序列号,计算机10-j中的重新同步单元133判决最新的序列号(在这种情况下,即最大值的序列号)(步骤S14)。在执行冗余控制操作的所有计算机中,保存最新序列号的计算机(此后被称作计算机10-k)是包含于图5所示的序列图的计算机10-1到10-3中的计算机10-3。重新同步单元133标识保存最新序列号的所述计算机10-k,并且将计算机10-j重新同步到所标识的计算机10-k的当前执行状态上(步骤S15)。在图5的情况下,计算机10-k是计算机10-3,因此,计算机10-j(j:4到7),即计算机10-4到10-7与计算机10-3重新同步。由所述重新同步单元133运行所述重新同步,所述重新同步单元133将计算机10-k(保存最新序列号的计算机)的执行状态存储单元12的内容拷贝到计算机10-j的执行状态存储单元12中。在所述重新同步处理中,所述最新的序列号还被拷贝到计算机10-j的序列号保存单元131中。在步骤S14上所判决的最新序列号还被保存到计算机10-j的序列号保存单元131中,在这样的情况下,考虑到重新同步已被完成,因此,上述拷贝操作可以被省略。
一旦完成与计算机10-k(10-3)的重新同步,计算机10-j(j:4到7)就根据图3所示的流程图开始所述冗余控制操作。因此,一旦包括其自身的Q个计算机的操作能够彼此共享,计算机10-j的冗余控制单元13就基于执行状态存储单元12中所保存的最新执行状态来执行下面的处理。在图5的情况中,在计算机10-4到10-7产生故障的时间点T2上,计算机10-k,即计算机10-3已经完成了直到P6的处理。此后,假设计算机10-4到10-7被重启,并且计算机10-1到10-3与计算机10-4到10-7的通信成为可能,从而,如图5所示,在时间点T3上,计算机10-4到10-7可以与计算机10-3重新同步。在这种情况下,计算机10-4到10-7的执行状态等于和计算机10-3相同的最新执行状态。同样地,由于所述冗余控制操作,计算机10-1、10-2也处于与计算机10-3相同的最新执行状态。因此,在时间点T3上,计算机10-1到10-7从处理P6之后的处理P7处开始所述冗余操作,因此没有任何时间轴上的裂脑发生。
下面简要概括了上述实施例的效果。
首先,所述实施例采用有效个数算法(2/3有效个数判决算法),其中在构成分布式系统的N(N=7)个计算机中的至少Q(Q=5)个计算机的操作可以彼此共享的情况下,继续进行所述处理(冗余操作)。在这种情况下,如果F(F=N-Q=2)个或更少的计算机发生故障,类似于日本专利申请公开号2003-67215(段落0056到0064,图5)中所描述的现有技术,所述冗余操作甚至不会暂时地被中止。而另一方面,在F+1个或多于F+1个但不多于Q-1个计算机发生故障的情况下,所述系统不被关闭,并且只要故障系统中的一些被重启,并且总共有Q个或更多的计算机能够被操作,那么,即使暂时中止所述处理,所述处理也可以自动地被恢复。因此,根据所述实施例,其中N=7、Q=5并且F=2,即使在数目为超过F的3(F+1=3)个到4个(Q-1=4)的计算机出现故障的情况下,所述处理也可以自动地被恢复。例如,4个计算机出现故障。只要其中的两个被重启,通过与其余3个F+1个计算机的处理重新同步,可以自动恢复所述处理。通过重新同步的所述处理的自动重启在通常已知的有效个数算法中是不可能的,在所述算法中易于在时间轴上发生裂脑。
短暂的硬件故障或者例如OS(操作系统)的软件的故障占计算机故障的主要部分,其中所述故障不是不可挽回的或永久的硬件故障。根据所述实施例,在重启计算机的时刻,自动地运行所述重新同步,因此,在多点故障情况下的系统可利用率可以显著地被提高。
上述实施例采用2/3有效个数判决算法作为有效个数算法。然而,本发明也可以被应用于具有相同效果的其它有效个数算法,例如多数表决方法。然而,在N是奇数的情况下,F+1=Q,因此,如下面的解释,象上述实施例中的那样在重启系统的时刻进行重新同步处理的应用不是有效的。首先,在F+1=Q的情况下,用于同步的条件就是至少Q个计算机正在执行冗余控制操作,因此,所述冗余操作甚至不会暂时地被中止,其中所述同步即至少F+1个计算机正在执行多控制操作。在这种情况下,根据图3的流程图,在所述冗余控制操作中,产生故障的计算机的操作可以与保存最新执行状态的计算机的操作进行共享,因此,不需要根据所述实施例在重启时刻上进行重新同步处理。而在另一方面,在N是偶数的情况下,Q-F=2,即F+1<Q,因此,根据所述实施例在重启系统的时刻上进行重新同步是非常有效的。另外,在N=8的情况下,多数表决方法具有Q=5、F=3并且F+1=4,而在2/3有效个数判决算法中,Q=6、F=2并且F+1=3。
上面参考这样的情况描述了所述实施例,在所述情况中,构成所述分布式系统并且能够彼此通信的处理元素是计算机。然而,本发明也可应用于这样的情况,其中所述处理元素是在计算机的操作系统上所操作的冗余处理或冗余服务器,这也具有相同的效果。
对于本技术领域的技术人员而言,其它的优点和修改会很容易地出现。因此,本发明在其更广泛的方面上不局限于这里所显示和描述的具体细节及代表性的实施例。因此,可以进行各种修改,而不脱离如所附权利要求及其等同物所定义的一般发明概念的精神或范围。

Claims (6)

1.使用有效个数冗余方法的分布式系统,其中仅在所述至少Q个处理元素的操作可以彼此同步的情况下,冗余处理由N(N:4或大于4的整数)个彼此可通信的处理元素中的至少Q(Q:有效个数)个处理元素所执行,其特征在于,N个处理元素中的每个包括:
重新同步判决装置(132),用于判决在这样的情况下所述处理元素自身的执行状态可以与所述分布式系统中最新的执行状态重新同步,其中在所述情况中,所述处理元素可以在重启所述处理元素的时刻与所述N个处理元素中的至少F+1个已经同步的元素(F=N-Q)进行通信;以及
重新同步装置(133),用于根据所述重新同步判决装置的判决结果,将所述处理元素自身的执行状态重新同步到所述至少F+1个处理元素的执行状态中的最新一个上。
2.根据权利要求1的分布式系统,其特征在于,所述N个处理元素中的每个还包括执行状态存储装置(12),用于保存所述处理元素自身的最新执行状态,并且,所述重新同步装置通过将所述最新执行状态从这样的处理元素中拷贝到所述处理元素自身的执行状态存储装置中来执行所述重新同步,其中所述这样的处理元素保存所述至少F+1个处理元素的分布式系统中的最新执行状态。
3.根据权利要求1的分布式系统,其特征在于,所述N个处理元素中的每个还包括进展信息保存装置(131),用于保存进展信息,所述进展信息构成所述处理元素自身中的处理的进展的指示,并且,所述重新同步装置从由所述至少F+1个处理元素的进展信息保存装置所保存的进展信息中,检测保存所述分布式系统中的最新执行状态的处理元素。
4.根据权利要求1的分布式系统,其特征在于,所述进展信息保存装置作为所述进展信息来保存序列号,每当在所述处理元素的相应一个中的处理取得进展时,所述序列号就被加1,并且,所述重新同步装置对所述序列号进行比较,所述序列号作为进展信息被保存在所述至少F+1个处理元素的进展信息保存装置中,并且,检测具有用于保存最大序列号值的进展信息保存装置的处理元素作为保存分布式系统中的最新执行状态的处理元素。
5.根据权利要求1的分布式系统,其特征在于,Q是与大于N的2/3的最小整数相一致的2/3有效个数。
6.在使用有效个数冗余方法的分布式系统中的冗余处理的冗余控制方法,其中仅在所述至少Q个处理元素的操作可以彼此同步的情况下,冗余处理由N(N:4或大于4的整数)个可彼此通信的处理元素中的至少Q(Q:有效个数)个处理元素所执行,其特征在于,所述方法包括以下步骤:
判决(S12)所重启的处理元素是否可以与所述N个处理元素中的至少F+1个已经同步的处理元素(F=N-Q)进行通信;
在所述重启的处理元素可以与所述至少F+1个处理元素进行通信的情况下,从所述至少F+1个处理元素中检测(S13、S14)保存所述分布式系统中的最新执行状态的处理元素;以及
将所述重启的处理元素的执行状态重新同步(S15)到所检测到的处理元素的执行状态上。
CNB2005100538833A 2004-03-12 2005-03-14 分布式系统和冗余控制方法 Active CN100380364C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004071494A JP3808874B2 (ja) 2004-03-12 2004-03-12 分散システム及び多重化制御方法
JP071494/2004 2004-03-12

Publications (2)

Publication Number Publication Date
CN1667600A true CN1667600A (zh) 2005-09-14
CN100380364C CN100380364C (zh) 2008-04-09

Family

ID=34824642

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100538833A Active CN100380364C (zh) 2004-03-12 2005-03-14 分布式系统和冗余控制方法

Country Status (5)

Country Link
US (1) US7620845B2 (zh)
EP (1) EP1574956B1 (zh)
JP (1) JP3808874B2 (zh)
CN (1) CN100380364C (zh)
DE (1) DE602005003490T8 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100429596C (zh) * 2006-01-19 2008-10-29 吴胜华 集散型大容量现场高速实时数据冗余通信方法及其系统
CN102176202A (zh) * 2010-12-29 2011-09-07 哈尔滨工业大学 一种星上商用器件冗余网络设计电路
CN110462534A (zh) * 2017-04-25 2019-11-15 横河电机株式会社 控制装置、控制方法和程序
CN111884923A (zh) * 2016-04-01 2020-11-03 横河电机株式会社 冗余化装置、冗余化系统以及冗余化方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070214314A1 (en) * 2006-03-07 2007-09-13 Reuter James M Methods and systems for hierarchical management of distributed data
KR101042908B1 (ko) * 2009-02-12 2011-06-21 엔에이치엔(주) 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체
US8327181B2 (en) * 2009-06-22 2012-12-04 Citrix Systems, Inc. Systems and methods for failover between multi-core appliances
JP4956603B2 (ja) * 2009-12-04 2012-06-20 株式会社東芝 分散システムおよび論理時間調整方法
US9755985B1 (en) * 2010-09-28 2017-09-05 Amazon Technologies, Inc. Utilizing multiple algorithms in a distributed-service environment
US8578204B1 (en) * 2010-12-29 2013-11-05 Emc Corporation Witness facility for distributed storage system
US8516355B2 (en) * 2011-02-16 2013-08-20 Invensys Systems, Inc. System and method for fault tolerant computing using generic hardware
US8745467B2 (en) * 2011-02-16 2014-06-03 Invensys Systems, Inc. System and method for fault tolerant computing using generic hardware
US9152458B1 (en) * 2012-08-30 2015-10-06 Google Inc. Mirrored stateful workers
US9990414B2 (en) 2015-06-15 2018-06-05 International Business Machines Corporation Cognitive architecture with content provider managed corpus
JP2017016319A (ja) * 2015-06-30 2017-01-19 日本信号株式会社 多重化データ処理装置
US11544228B2 (en) 2020-05-07 2023-01-03 Hewlett Packard Enterprise Development Lp Assignment of quora values to nodes based on importance of the nodes
CN113110124B (zh) * 2021-03-11 2022-08-19 上海新时达电气股份有限公司 双mcu控制方法及控制系统
WO2023148976A1 (ja) * 2022-02-07 2023-08-10 株式会社Pfu ノード装置、クラスタ再構成方法、プログラム及びクラスタシステム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4733353A (en) * 1985-12-13 1988-03-22 General Electric Company Frame synchronization of multiply redundant computers
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
US5278975A (en) * 1990-06-14 1994-01-11 Fujitsu Limited Synchronization control system in a parallel computer
US5991518A (en) * 1997-01-28 1999-11-23 Tandem Computers Incorporated Method and apparatus for split-brain avoidance in a multi-processor system
US5903717A (en) * 1997-04-02 1999-05-11 General Dynamics Information Systems, Inc. Fault tolerant computer system
US6202067B1 (en) * 1998-04-07 2001-03-13 Lucent Technologies, Inc. Method and apparatus for correct and complete transactions in a fault tolerant distributed database system
US6223304B1 (en) * 1998-06-18 2001-04-24 Telefonaktiebolaget Lm Ericsson (Publ) Synchronization of processors in a fault tolerant multi-processor system
US6161196A (en) 1998-06-19 2000-12-12 Lucent Technologies Inc. Fault tolerance via N-modular software redundancy using indirect instrumentation
US6260124B1 (en) * 1998-08-13 2001-07-10 International Business Machines Corporation System and method for dynamically resynchronizing backup data
US6470462B1 (en) * 1999-02-25 2002-10-22 Telefonaktiebolaget Lm Ericsson (Publ) Simultaneous resynchronization by command for state machines in redundant systems
KR100324275B1 (ko) * 1999-07-14 2002-02-25 서평원 이중화된 프로세서의 이중화 상태 제어 방법
US6490693B1 (en) * 1999-08-31 2002-12-03 International Business Machines Corporation Dynamic reconfiguration of a quorum group of processors in a distributed computing system
US6542929B1 (en) 1999-08-31 2003-04-01 International Business Machines Corporation Relaxed quorum determination for a quorum based operation
EP1107119A3 (en) 1999-12-02 2005-07-20 Sun Microsystems, Inc. Extending cluster membership and quorum determinations to intelligent storage systems
US7272632B2 (en) * 2001-06-15 2007-09-18 Kabushiki Kaisha Toshiba Distributed system and multiplexing control method for the system
JP3655263B2 (ja) 2001-06-15 2005-06-02 株式会社東芝 分散システムおよび同システムの多重化制御方法
US7016946B2 (en) 2001-07-05 2006-03-21 Sun Microsystems, Inc. Method and system for establishing a quorum for a geographically distributed cluster of computers

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100429596C (zh) * 2006-01-19 2008-10-29 吴胜华 集散型大容量现场高速实时数据冗余通信方法及其系统
CN102176202A (zh) * 2010-12-29 2011-09-07 哈尔滨工业大学 一种星上商用器件冗余网络设计电路
CN102176202B (zh) * 2010-12-29 2013-12-25 哈尔滨工业大学 一种星上商用器件冗余网络设计电路
CN111884923A (zh) * 2016-04-01 2020-11-03 横河电机株式会社 冗余化装置、冗余化系统以及冗余化方法
CN111884924A (zh) * 2016-04-01 2020-11-03 横河电机株式会社 冗余化装置、冗余化系统以及冗余化方法
CN111884924B (zh) * 2016-04-01 2022-10-04 横河电机株式会社 冗余化装置、冗余化系统以及冗余化方法
CN110462534A (zh) * 2017-04-25 2019-11-15 横河电机株式会社 控制装置、控制方法和程序
CN110462534B (zh) * 2017-04-25 2022-05-10 横河电机株式会社 控制装置、控制方法和程序

Also Published As

Publication number Publication date
US7620845B2 (en) 2009-11-17
JP3808874B2 (ja) 2006-08-16
EP1574956A2 (en) 2005-09-14
DE602005003490T8 (de) 2009-02-05
EP1574956A3 (en) 2006-10-04
US20050204184A1 (en) 2005-09-15
CN100380364C (zh) 2008-04-09
DE602005003490T2 (de) 2008-10-09
DE602005003490D1 (de) 2008-01-10
EP1574956B1 (en) 2007-11-28
JP2005258946A (ja) 2005-09-22

Similar Documents

Publication Publication Date Title
CN1667600A (zh) 分布式系统和冗余控制方法
CN1224905C (zh) 在群集计算机系统中的执行资源动作的方法
CN1191528C (zh) 透明的基于时间的选择软件再生的方法和系统
CN100340982C (zh) 一种传输设备单板软件在线升级出错后的恢复方法
CN1893370A (zh) 用于服务器群集恢复和维护的方法和系统
CN1818882A (zh) 容错系统、其中所用的控制装置、访问控制方法及控制程序
CN1732438A (zh) 用于成簇系统的德耳塔对象复制系统和方法
CN1739098A (zh) 智能网络适配器的状态恢复及故障修复
CN1892612A (zh) 集群可用性管理方法和系统
US20080320332A1 (en) Error Processing Across Multiple Initiator Network
CN1491386A (zh) 在可修复的故障后使群集器系统自动投入运行
JP2009129409A (ja) 障害回復方法、計算機、クラスタシステム、管理計算機及び障害回復プログラム
CN101201767A (zh) 计算机系统数据的磁盘镜像备份与恢复系统及方法
CN1622483A (zh) 一种实现软件上主备双机热备份的方法
US7752497B2 (en) Method and system to detect errors in computer systems by using state tracking
CN1269039C (zh) 信息处理设备
US7996585B2 (en) Method and system for state tracking and recovery in multiprocessing computing systems
CN1248425C (zh) 一种通讯设备中的主备倒换方法
CN1831782A (zh) 网络信息系统异地数据镜像方法
JP5707409B2 (ja) 計算機
CN1243431C (zh) 宽带网络通信产品的通用路由平台命令行的解析方法
CN1093964C (zh) 输入/输出装置的检查点恢复方法
CN1928828A (zh) 用于执行恢复的方法和系统
CN1093661C (zh) 反向恢复型输入输出控制装置和输入输出控制方法
CN1592222A (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
ASS Succession or assignment of patent right

Owner name: TOSHIBA SOLVING PLAN CO., LTD.; EAST CO., LTD. TO

Free format text: FORMER OWNER: TOSHIBA SOLVING PLAN CO., LTD.

Effective date: 20080516

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20080516

Address after: Tokyo, Japan

Co-patentee after: Toshiba

Patentee after: Toshiba Solutions Corporation

Address before: Tokyo, Japan, Japan

Patentee before: Toshiba Solutions Corporation

ASS Succession or assignment of patent right

Owner name: TOSHIBA CORPORATION; TOSHIBA SOLVING PLAN CO., LT

Free format text: FORMER OWNER: TOSHIBA SOLVING PLAN CO., LTD.; EAST CO., LTD. TOSHIBA

Effective date: 20080711

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20080711

Address after: Tokyo, Japan

Co-patentee after: Toshiba Solutions Corporation

Patentee after: Toshiba

Address before: Tokyo, Japan

Co-patentee before: Toshiba

Patentee before: Toshiba Solutions Corporation