一种冗余保护方法、装置、设备及系统的制作方法
【专利摘要】本发明实施例提供了一种冗余保护方法、装置、设备及系统,涉及计算机领域。该方法包括:检测是否存在故障节点;当存在故障节点,且故障节点包括承载第一主用子系统的第一主用节点、和承载第一备用子系统的第一备用节点时,将第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使该第二备用节点承载第一主用子系统,该第一备用子系统是第一主用子系统的默认备用子系统,该第二备用子系统是第一主用子系统的非默认备用子系统。该装置包括:检测模块和第一执行模块。本发明支持多个故障进程,增加了系统的可靠性。
【专利说明】一种冗余保护方法、装置、设备及系统
【技术领域】
[0001]本发明涉及计算机领域,特别涉及一种冗余保护方法、装置、设备及系统。
【背景技术】
[0002]Cluster (集群)是指,若干相互独立的服务实体(计算机或工作站等),通过高速网络互联而构成的服务平台。区别于单一服务实体,Cluster具有均衡负载和冗余保护两项特性。其中,冗余保护指,当执行某个任务的资源(可以为服务器或者服务器上的进程)由于某种原因出现故障时,对应该资源的备用资源将接着完成该任务。
[0003]具体地,以执行某个任务的资源为服务器上的进程为例,现有的冗余保护流程通常如下。首先,在Cluster的每个服务实体上部署相等数量的主用资源和备用资源。其次,采用环型备份的方式为主用资源设置备用资源,保证主用资源与自己的备用资源不在一个服务实体上。例如,Cluster包括编号分别为1,…,N-1、N和N+1的服务实体。各服务实体上均分布了 M个主用资源和M个备用资源。N-1上M个主用资源所对应的备用资源分布在N上;N上M个主用资源所对应的备用资源分布在N+1上;N+1上M个主用资源所对应的备用资源分布在I上;以此类推。然后,实时检测各主用资源的运行状态;同时,主用资源在执行任务时,对应的备用资源备份主用资源的所有数据。当检测到主用资源发生故障时,关闭故障的主用资源,启动故障的主用资源对应的备用资源。由于备用资源备份了故障的主用资源的所有数据,因此能够保证任务不中断。[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]若主用资源和与该主用资源对应的备用资源都发生故障,则主用资源上的任务将发生中断,影响Cluster的可靠性。
【发明内容】
[0006]为了增加Cluster的可靠性,本发明实施例提供了一种冗余保护方法、装置、设备及系统。所述技术方案如下:
[0007]—方面,本发明实施例提供了一种冗余保护方法,所述方法包括:
[0008]检测是否存在故障节点;
[0009]当存在故障节点,且所述故障节点包括承载第一主用子系统的第一主用节点、和承载第一备用子系统的第一备用节点时,将所述第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使所述第二备用节点承载所述第一主用子系统,所述第一备用子系统是所述第一主用子系统的默认备用子系统,所述第二备用子系统是所述第一主用子系统的非默认备用子系统。
[0010]优选地,所述将所述第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使所述第二备用节点承载所述主用子系统,包括:
[0011]在所述第一主用子系统的非默认备用子系统中,选择一个优先级最低的备用子系统,将被选中的所述备用子系统所在的备用节点作为所述第二备用节点,并将所述第一主用子系统绑定至所述第二备用节点。
[0012]优选地,在所述将所述第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使所述第二备用节点承载所述主用子系统之前,所述方法还包括:
[0013]判断所述第一主用子系统是否具备抢占能力;
[0014]若所述第一主用子系统具备抢占能力,则将所述第一主用子系统绑定至所述第二备用节点。
[0015]优选地,在将所述第一主用子系统绑定至所述第二备用节点之后,所述方法还包括:
[0016]检测所述第一主用节点和所述第一备用节点是否恢复正常;
[0017]若所述第一主用节点先恢复正常,则将所述第一备用子系统绑定至所述第一主用节点,以使所述第一主用节点承载所述第一备用子系统;
[0018]若所述第一备用节点先恢复正常,则将所述第一备用子系统绑定至所述第一备用节点,以使所述第一备用节点承载所述第一备用子系统。
[0019]优选地,在所述将所述第一备用子系统绑定至所述第一主用节点,以使所述第一主用节点承载所述第一备用子系统之后,所述方法还包括:
[0020]对所述第一主用节点和所述第二备用节点进行主备倒换,以使所述第一主用节点承载所述第一主用子系统,而所述第二备用节点承载所述第一备用子系统。
[0021]优选地,在所述对所述第一主用节点和所述第二备用节点进行主备倒换之后,所述方法还包括:
[0022]在所述第一备用节点恢复正常后,将所述第一备用子系统绑定至所述第一备用节点并释放所述第二备用节点,以使所述第一备用节点承载所述第一备用子系统。
[0023]优选地,所述将所述第一备用子系统绑定至所述第一备用节点,以使所述第一备用节点承载所述第一备用子系统之后,所述方法还包括:
[0024]对所述第一备用节点和所述第二备用节点进行主备倒换,以使所述第一备用节点承载所述第一主用子系统,而所述第二备用节点承载所述第一备用子系统。
[0025]优选地,在所述对所述第一备用节点和所述第二备用节点进行主备倒换之后,所述方法还包括:
[0026]在所述第一主用节点恢复正常之后,将所述第一备用子系统绑定至所述第一主用节点并释放所述第二备用节点,以使所述第一主用节点承载所述第一备用子系统。
[0027]优选地,在所述将所述第一备用子系统绑定至所述第一主用节点并释放所述第二备用节点之后,所述方法还包括:
[0028]对所述第一主用节点和所述第二备用节点进行主备倒换,以使所述第一主用节点承载所述第一主用子系统,而所述第二备用节点承载所述第一备用子系统。
[0029]优选地,所述方法还包括:
[0030]当存在故障节点,且所述故障节点包括承载第二主用子系统的第二主用节点,而所述故障节点不包括备用节点或者所述故障节点包括的备用节点承载的备用子系统均不是所述第二主用子系统的默认备用子系统时,
[0031]对第二主用节点和承载第三备用子系统的第三备用节点进行主备倒换,以使所述第三备用节点承载所述第二主用子系统,所述第三备用子系统为所述第二主用子系统的默认备用子系统。
[0032]优选地,在对第二主用节点和承载第三备用子系统的第三备用节点进行主备倒换,以使所述第三备用节点承载所述第二主用子系统之前,所述方法还包括:
[0033]判断所述第二主用子系统是否存在默认备用子系统;
[0034]若存在,则将所述第二主用子系统绑定至承载第三备用子系统的第三备用节点;
[0035]若不存在,则将所述第二主用子系统绑定至承载第四备用子系统的第四备用节点,所述第四备用子系统为所述第二主用子系统的非默认备用子系统。
[0036]优选地,在将所述第二主用子系统绑定至所述第三备用节点或所述第四备用节点之后,所述方法还包括:
[0037]检测所述第二主用节点是否恢复正常;
[0038]若所述第二主用节点恢复正常,则将所述第二主用子系统绑定至所述第二主用节点。
[0039]优选地,所述方法还包括:
[0040]当存在故障节点,且所述故障节点包括承载第五备用子系统的第五备用节点,而所述故障节点不包括主用节点或者所述故障节点包括的主用节点承载的主用子系统的默认子备用子系统均不是所述第五备用子系统时,
[0041]根据所述第五备用子系统的优先级,抢占承载第六备用子系统的第六备用节点,以使所述第六备用节点承载所述第五备用子系统。
[0042]优选地,所述方法还包括:
[0043]为主用子系统和备用子系统设置优先级。
[0044]优选地,所述方法还包括:
[0045]为主用子系统设置默认备用子系统。
[0046]优选地,承载主用子系统的主用节点的数量和承载备用子系统的备用节点的数量相等,每一个所述主用子系统具有一个默认备用子系统。
[0047]优选地,所述主用节点和所述备用节点均为服务器上的进程,同一服务器上的所述主用节点承载的主用子系统的默认备用子系统所在的进程,平均分布在与所述服务器相邻两个服务器上。
[0048]再一方面,本发明实施例提供了一种冗余保护装置,所述装置包括:
[0049]检测模块,用于检测是否存在故障节点;
[0050]第一执行模块,用于当存在故障节点,且所述故障节点包括承载第一主用子系统的第一主用节点、和承载第一备用子系统的第一备用节点时,将所述第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使所述第二备用节点承载所述第一主用子系统,所述第一备用子系统是所述第一主用子系统的默认备用子系统,所述第二备用子系统是所述第一主用子系统的非默认备用子系统。
[0051 ] 优选地,所述第一执行模块用于,
[0052]当存在故障节点,且所述故障节点包括承载第一主用子系统的第一主用节点、和承载第一备用子系统的第一备用节点时,在所述第一主用子系统的非默认备用子系统中,选择一个优先级最低的备用子系统,将被选中的所述备用子系统所在的备用节点作为所述第二备用节点,并将所述第一主用子系统绑定至所述第二备用节点。[0053]优选地,所述装置还包括:
[0054]第一判断模块,用于判断所述第一主用子系统是否具备抢占能力;
[0055]相应地,所述第一执行模块还用于,当所述第一主用子系统具备抢占能力时,将所述第一主用子系统绑定至所述第二备用节点。
[0056]优选地,所述检测模块还用于,检测所述第一主用节点和所述第一备用节点是否恢复正常;
[0057]相应地,所述第一执行模块还用于,当所述第一主用节点先恢复正常时,则将所述第一备用子系统绑定至所述第一主用节点,以使所述第一主用节点承载所述第一备用子系统;当所述第一备用节点先恢复正常时,则将所述第一备用子系统绑定至所述第一备用节点,以使所述第一备用节点承载所述第一备用子系统。
[0058]优选地,所述第一执行模块还用于,在所述将所述第一备用子系统绑定至所述第一主用节点,以使所述第一主用节点承载所述第一备用子系统之后,
[0059]对所述第一主用节点和所述第二备用节点进行主备倒换,以使所述第一主用节点承载所述第一主用子系统,而所述第二备用节点承载所述第一备用子系统。
[0060]优选地,所述第一执行模块还用于,
[0061]在所述第一备用节点恢复正常后,将所述第一备用子系统绑定至所述第一备用节点并释放所述第二备用节点,以使所述第一备用节点承载所述第一备用子系统。
[0062]优选地,所述第一执行模块还用于,所述将所述第一备用子系统绑定至所述第一备用节点,以使所述第一备用节点承载所述第一备用子系统之后,
[0063]对所述第一备用节点和所述第二备用节点进行主备倒换,以使所述第一备用节点承载所述第一主用子系统,而所述第二备用节点承载所述第一备用子系统。
[0064]优选地,所述第一执行模块还用于,
[0065]在所述第一主用节点恢复正常之后,将所述第一备用子系统绑定至所述第一主用节点并释放所述第二备用节点,以使所述第一主用节点承载所述第一备用子系统。
[0066]优选地,所述第一执行模块还用于,
[0067]对所述第一主用节点和所述第二备用节点进行主备倒换,以使所述第一主用节点承载所述第一主用子系统,而所述第二备用节点承载所述第一备用子系统。
[0068]优选地,所述装置还包括:
[0069]第二执行模块,用于当所述检测模块检测到存在故障节点,且所述故障节点包括承载第二主用子系统的第二主用节点,而所述故障节点不包括备用节点或者所述故障节点包括的备用节点承载的备用子系统均不是所述第二主用子系统的默认备用子系统时,将所述第二主用子系统绑定至承载第三备用子系统的第三备用节点,以使所述第三备用节点承载所述第二主用子系统,所述第三备用子系统为所述第二主用子系统的默认备用子系统。
[0070]优选地,所述装置还包括:
[0071]第二判断模块,用于判断所述第二主用子系统是否存在默认备用子系统;
[0072]相应地,所述第二执行模块还用于,当所述第二判断模块的判断结果为存在时,将所述第二主用子系统绑定至承载第三备用子系统的第三备用节点;当所述第二判断模块的判断结果为不存在时,将所述第二主用子系统绑定至承载第四备用子系统的第四备用节点,所述第四备用子系统为所述第二主用子系统的非默认备用子系统。[0073]优选地,所述检测模块还用于,检测所述第二主用节点是否恢复正常;
[0074]相应地,所述第二执行模块还用于,当所述第二主用节点恢复正常,则将所述第二主用子系统绑定至所述第二主用节点。
[0075]优选地,所述装置还包括:
[0076]第三执行模块,用于当所述检测模块检测到存在故障节点,且所述故障节点包括承载第五备用子系统的第五备用节点,而所述故障节点不包括主用节点或者所述故障节点包括的主用节点承载的主用子系统的默认子备用子系统均不是所述第五备用子系统时,根据所述第五备用子系统的优先级,抢占承载第六备用子系统的第六备用节点,以使所述第六备用节点承载所述第五备用子系统。
[0077]优选地,所述装置还包括:
[0078]第一设置模块,用于为主用子系统和备用子系统设置优先级。
[0079]优选地,所述装置还包括:
[0080]第二设置模块,用于为主用子系统设置默认备用子系统。
[0081]又一方面,本发明实施例提供了一种冗余保护设备,所述设备包括:处理器和存储器,用于执行前述冗余保护方法。
[0082]另一方面,本发明实施例提供了一种冗余保护系统,所述系统包括:多个节点、以及前述冗余保护装置,所述多个节点用于在所述装置的控制下执行任务。
[0083]可选地,所述节点可以为服务器上的进程或服务器。
[0084]优选地,当所述节点为服务器上的进程时,承载主用子系统的主用节点的数量和承载备用子系统的备用节点的数量相等,每一个所述主用子系统具有一个默认备用子系统,同一服务器上的所述主用节点承载的主用子系统的默认备用子系统所在的进程,平均分布在与所述服务器相邻两个服务器上。
[0085]本发明实施例提供的技术方案带来的有益效果是:通过在承载第一主用子系统的第一主用节点、和承载第一备用子系统(第一主用子系统的默认备用子系统)的第一备用节点均故障时,将第一主用子系统绑定至承载第二备用子系统(第一主用子系统的非默认备用子系统)的第二备用节点,以使该第二备用节点承载第一主用子系统,从而可以保证第一主用子系统的正常运行;因此,本发明实施例可以支持多个节点故障,有效增加了系统的可靠性。
【专利附图】
【附图说明】
[0086]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0087]图1是本发明实施例1提供的一种冗余保护方法的流程图;
[0088]图2是本发明实施例2提供的无线网络控制器的结构示意图;
[0089]图3是本发明实施例2提供的一种冗余保护方法的流程图;
[0090]图4是本发明实施例2提供的双向备份方式的示意图;
[0091]图5-图12是本发明实施例2提供的冗余保护方法的具体应用的示意图;[0092]图13是本发明实施例3提供的一种冗余保护装置的结构示意图;
[0093]图14是本发明实施例4提供的一种冗余保护装置的结构示意图;
[0094]图15是本发明实施例5提供的一种冗余保护设备的结构示意图;
[0095]图16是本发明实施例6提供的一种冗余保护系统的结构示意图。
【具体实施方式】
[0096]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0097]实施例1
[0098]参见图1,本发明实施例提供了一种冗余保护方法,该方法流程包括:
[0099]步骤101:检测是否存在故障节点。
[0100]具体地,在本发明实施例中,节点为用于执行某个任务的资源,可以是一个服务器,也可以是服务器上的一个进程。
[0101]步骤102:当存在故障节点,且故障节点包括承载第一主用子系统的第一主用节点、和承载第一备用子系统的第一备用节点时,将第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使该第二备用节点承载第一主用子系统,该第一备用子系统是第一主用子系统的默认备用子系统,该第二备用子系统是第一主用子系统的非默认备用子系统。
[0102]具体地,在本发明实施例中,主用子系统的默认备用子系统,是指会同步备份该主用子系统的运行数据的备用子系统。主用子系统的非默认备用子系统是指不会同步备份该主用子系统的运行数据的备用子系统,在具体实现中,主用子系统和默认备用子系统可以是——对应的,也可以不是——对应的。在——对应的情况下,一个主用子系统的默认备用子系统是另一个主用子系统的非默认子系统;在不是一一对应的情况下,一个主用子系统的非默认备用子系统可以是另一个主用子系统的默认备用子系统,也可以不是任何主用子系统的默认备用子系统。
[0103]本发明实施例提供的上述方法的有益效果是:通过在承载第一主用子系统的第一主用节点、和承载第一备用子系统(第一主用子系统的默认备用子系统)的第一备用节点均故障时,将第一主用子系统绑定至承载第二备用子系统(第一主用子系统的非默认备用子系统)的第二备用节点,以使该第二备用节点承载第一主用子系统,从而可以保证第一主用子系统的正常运行;因此,本发明实施例可以支持多个节点故障,有效增加了系统的可靠性。此外,由于本发明实施例在主用子系统以及备用子系统同时故障时,主用子系统还可以抢占其他备用节点,因此采用较少的备用节点即可以保证系统的运行,节约了资源。
[0104]实施例2
[0105]本发明实施例将以RNC(Radio Network Controller,无线网络控制器)为例,对本发明的冗余保护方法进行说明。为便于对本发明实施例描述的技术方案的理解,首先介绍一下RNC。RNC是3G(3rd Generation,第三代移动通信)网络的一个关键网元及接入网的组成部分,用于提供移动性管理、呼叫处理、链接管理和切换机制。为了保证移动通信的可靠性,RNC通常是一个Cluster系统。参见图2,RNC由若干互联的单板(即服务实体)组成。单板为功能模块,可以是提供特定功能的刀片式服务器。单板包括若干进程(即节点)。进程是单板上CPU计算资源的抽象体现,一个进程就是一个物理运算单元。每一个进程承载一个独立的逻辑应用(即任务)。这里,将一个独立的逻辑应用称为一个子系统。
[0106]下面结合图3说明本发明实施例提供的冗余保护方法,参见图3,该方法包括:
[0107]步骤201:为主用子系统设置默认备用子系统。
[0108]具体地,通过建立主用子系统和备用子系统之间的对应关系,即可为主用子系统设置默认备用子系统。在主用子系统的运行过程中,该主用子系统的默认备用子系统会对其进行同步备份。
[0109]优选地,参见图4,在本发明实施例中,主用子系统与备用子系统的数量相等,主用子系统与备用子系统一一对应,每一个主用子系统都具有一个默认备用子系统,也就是说,RNC采用1+1冗余备份的方式。
[0110]更优选地,本发明实施例可采用双向备份方式。双向备份方式是指,首先,在各单板上部署相等数量的主用子系统和备用子系统;其次,使一个单板上的一部分主用子系统与前一个单板上的备用子系统关联,另一部分主用子系统与后一个单板上的备用子系统关联,也就是说,该单板上的主用子系统的默认备用子系统平均分布在该单板前后的两个单板上。这样,当单板发生故障,这个单板的负载将分摊在前后两个单板上,对于前后单板的影响较小。容易知道,这里的前、后是指逻辑上相邻的相同类型的单板,比如,在同一个机框内,包括两种类型的单板,一种是冗余保护单板,其上运行的子系统均采用冗余保护的方式,而另一种是非冗余保护单板,其上运行的子系统没有采用冗余保护的方式。假设冗余保护单板在该机框内所在的槽位号为0、1、2、4、5、6,那么,对于2号槽位的单板而言,其前后的两个单板分别为I号槽位的单板和4号槽位的单板。
[0111]显然,也可采用现有的环形备份方式,将一个单板上的所有主用子系统与相邻一个单板的备用子系统关联。容易知道,这里相邻同样是指逻辑相邻的相同类型的单板。
[0112]值得说明的是,在本实施例中,采用了 1+1冗余备份的方式,即主用子系统与备用子系统的数量相等,每个主用子系统具有一个默认备用子系统,然而,在其它实施例中,主用子系统的数量也可以大于或小于备用子系统的数量。当备用子系统的数量大于主用子系统的数量时,存在冗余的备用子系统。当主用子系统的数量大于备用子系统的数量时,可以按照主用子系统的优先级(见步骤202)建立主用子系统和备用子系统的对应关系,比如,先建立优先级高的主用子系统和备用子系统之间的对应关系。
[0113]步骤202:为主用子系统和备用子系统设置优先级。
[0114]进一步地,该步骤202可以包括:根据子系统的业务类型、用户类型和/或地域,为主用子系统和备用子系统设置优先级。
[0115]优选地,在本实施例中,可以根据子系统的业务类型,为主用子系统设置优先级。例如,根据子系统的业务类型,将主用子系统划分为4个优先级,高优先级、中优先级、低优先级和O优先级。其中,高优先级可为负载RNC中负责信令处理的子系统,该主用子系统故障将影响RNC中所有业务,影响最大。中优先级可为负载RNC中负责小区管理的子系统,该主用子系统故障会导致该子系统管理的小区退出服务,影响较大。低优先级可为预留,便于后续扩展。O优先级可为负载RNC中负责呼叫处理的子系统,该主用子系统故障会导致该子系统上当前正在进行的通话,影响最小。
[0116]备用子系统的优先级继承对应的主用子系统的优先级,即主用子系统的预置优先级与该主用子系统的默认备用子系统的优先级相同。备用子系统的优先级仅用于备用子系统之间比较优先级高低。
[0117]优选地,该方法还可以包括:设置主用子系统的抢占能力。
[0118]具体地,主用子系统的抢占能力也可以采用优先级表示。比如,可以在设置优先级时定义,O优先级的主用子系统不具备抢占能力,也就是说,当承载O优先级的主用子系统的进程故障时,其不能抢占其它非默认备用子系统。当然,抢占能力也可以不采用优先级表示,而采用其他参数表示。
[0119]在本实施例中,主用子系统的抢占能力也采用优先级表示,所以只有非O优先级的主用子系统才具备抢占能力,也就是说,所有非O优先级的主用子系统的优先级大于任意备用子系统的优先级。
[0120]可选地,在其它实施例中,也可以根据用户类型,为主用子系统和备用子系统设置优先级。比如,可以将贵宾用户的业务都分配到一些子系统上,而将普通用户的业务都分配到另一些子系统上,面向贵宾用户的子系统比普通用户的子系统的优先级高。
[0121]可选地,在其它实施例中,还可以根据地域为主用子系统和备用子系统设置优先级。比如,可以将人口密度大的服务地域(例如城市)的业务分配到一些子系统,而将人口密度小的服务地域(例如山区)的业务分配到另一些子系统,人口密度大的服务地域对应的子系统比人口密度小的服务地域对应的子系统的优先级高。
[0122]需要说明的是,在具体实现中,步骤201和202没有先后顺序,可以同时执行。此夕卜,步骤201和202为可选步骤,可以预先设置。
[0123]步骤203:检测是否存在故障节点。
[0124]当存在故障节点,且该故障节点包括承载第一主用子系统的第一主用节点、和承载第一备用子系统的第一备用节点时,执行步骤204,其中,第一备用子系统是第一主用子系统的默认备用子系统;
[0125]当存在故障节点,且该故障节点包括承载第二主用子系统的第二主用节点,而该故障节点不包括备用节点或者该故障节点包括的备用节点承载的备用子系统均不是该第二主用子系统的默认备用子系统时,执行步骤214 ;
[0126]当存在故障节点,且该故障节点包括承载第五备用子系统的第五备用节点,而该故障节点不包括主用节点或者该故障节点包括的主用节点承载的主用子系统的默认子备用子系统均不是该第五备用子系统时,执行步骤218。
[0127]进一步地,在本实施例中,检测是否存在故障节点,包括以下两种情况:
[0128]第一种、若只是单板上的某个节点(即进程)发生故障,单板上的检测程序检测到该故障后,会通过操作系统接口向控制中心(即实施例三或四中的装置、或者实施例五中的设备)上报故障的节点,控制中心根据单板上报的信息获知故障节点。
[0129]第二种、若单板故障,例如硬件故障或网络故障,这种情况下,由于控制中心和单板之间会定时发送握手报文,一旦发生单板故障,控制中心在预定时间或长时间未收到报文,此时,则表示该单板上的所有节点都故障。
[0130]容易知道,控制中心中通常保存有节点和子系统的对应关系、以及主用子系统和默认备用子系统的对应关系(比如以列表的形式),所以,当存在故障节点时,通过查询前述对应关系,就可以获知故障节点承载的子系统的类型。[0131]具体地,参见图5,在本实施例中,可以假设故障节点包括第一主用节点a和第一备用节点b,a承载第一主用子系统X,b承载第一备用子系统X’,X’为X的默认备用子系统。
[0132]优选地,在检测是否存在故障节点之后,该方法还包括:
[0133]检测第一主用节点和第一备用节点是否在重启后预定时间内恢复正常。
[0134]在本实施例中,节点为单板上的进程,所以,在检测出第一主用节点和第一备用节点故障后,控制中心应立即重启该第一主用节点和第一备用节点。并且,重启后应检测第一主用节点和第一备用节点是否在预定时间内恢复正常。当第一主用节点或第一备用节点恢复正常时,会向控制中心发送启动消息,控制中心即可根据该启动消息判断第一主用节点和第一备用节点是否恢复正常。
[0135]具体地,该预定时间为预先设置,用于使故障节点完成重新启动,一般还设置有时间保护余量。例如,该预定时间=子系统的启动时间90秒+时间保护余量30秒=120秒。
[0136]相应地,若第一主用节点和第一备用节点均未在重启后预定时间内恢复正常,再执行后续步骤204,若第一主用节点和第一备用节点在预定时间内恢复正常,则不执行后续步骤204。
[0137]步骤204:判断第一主用子系统是否具备抢占能力。若该第一主用子系统具备抢占能力,则执行步骤205 ;若该第一主用子系统不具备抢占能力,则退出本次流程。
[0138]具体地,若是采用优先级表示主用子系统的抢占能力,那么,判断第一主用子系统是否具备抢占能力包括:判断该第一主用子系统的优先级是否为非O优先级。若该第一主用子系统的优先级为非O优先级,则该第一主用子系统具备抢占能力。若该第一主用子系统的优先级为O优先级,则该第一主用子系统不具备抢占能力。
[0139]步骤205:将第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使第二备用节点承载第一主用子系统;该第二备用子系统是第一主用子系统的非默认备用子系统。
[0140]具体地,该步骤205包括:
[0141]在第一主用子系统的非默认备用子系统中,选择一个优先级最低的备用子系统,将被选中的备用子系统所在的备用节点作为第二备用节点,并将第一主用子系统绑定至该第二备用节点。
[0142]在RNC中,将第一主用子系统绑定至第二备用节点,包括:
[0143]将第一主用子系统的启动参数和数据发送给第二备用节点,以使第二备用节点采用接收到的启动参数和数据运行,此为本领域的现有技术,在此省略详细描述。
[0144]参见图6,可以假设第二备用节点为c,c初始承载第二备用子系统Y’。在步骤205之后,X被绑定至C。
[0145]容易知道,在将第一主用子系统绑定至承载第二备用子系统的第二备用节点之前,控制中心会刷新其保存的子系统与节点之间的对应关系,然后根据刷新后的对应关系,发送前述启动参数。
[0146]步骤206:检测第一主用节点和第一备用节点是否恢复正常;若第一主用节点先恢复正常,则执行步骤207 ;若第一备用节点先恢复正常,则执行步骤210。
[0147]具体地,当故障节点恢复正常时,会向控制中心发送启动消息,所以,控制中心可以根据是否收到故障节点发送的启动消息来判断该故障节点是否恢复正常。
[0148]在本实施例中,仅描述了第一主用节点和第一备用节点相继恢复正常的情况(第一主用节点先恢复正常或第一备用节点先恢复正常)。理论上,可能存在第一主用节点和第一备用节点同时恢复正常的情况。然而,在本发明实施例的具体实现中,由于所有步骤的执行均是以消息交互的方式进行处理,对于控制中心而言,只可能先接收第一主用节点和第一备用节点其中一个发送的启动消息。因此,在实际应用中,并不会出现第一主用节点和第一备用节点同时恢复正常的情况。
[0149]步骤207:将第一备用子系统绑定至第一主用节点,以使第一主用节点承载第一备用子系统。
[0150]具体地,在第一主用节点先恢复正常时,将第一备用子系统绑定至该第一主用节点,这样使得第一主用节点启动后,能预先运行第一备用子系统对第一主用子系统进行备份,便于备份完成后,将第一主用子系统再绑回第一主用节点。参见图7,在a先恢复正常时,将X’绑定至a。
[0151]步骤208:对第一主用节点和第二备用节点进行主备倒换,以使第一主用节点承载第一主用子系统,而第二备用节点承载第一备用子系统。
[0152]具体地,在第一备用子系统完成对第一主用子系统的备份(可以设置备份时间)后,对第一主用节点和第二备用节点进行主备倒换:将第一主用子系统绑定至第一主用节点,以使第一主用节点重新承载第一主用子系统;将第一备用子系统绑定至第二备用节点,以使第二备用节点承载该第一备用子系统。参见图8,进行节点间的主备倒换时:将X绑回
a,使a重新承载X。将V绑定至C,使c开始承载V。
[0153]步骤209:在第一备用节点恢复正常后,将第一备用子系统绑定至第一备用节点并释放第二备用节点,以使第一备用节点承载第一备用子系统。
[0154]具体地,在第一主用节点恢复正常后,第一备用节点也恢复了正常,这时,将第一备用子系统绑定至第一备用节点并释放第二备用节点,以使第一备用节点承载第一备用子系统,并重启被释放的第二备用节点,以使其恢复原始的备用子系统(第二备用子系统)。参见图9,在b也恢复正常后,将X’绑回b,并释放C。
[0155]这样,通过步骤207-209,第一主用子系统、第一备用子系统和第二备用子系统均恢复至初始状态。
[0156]步骤210:将第一备用子系统绑定至第一备用节点,以使第一备用节点承载第一备用子系统。
[0157]具体地,在第一备用节点先恢复正常时,将第一备用子系统绑定至第一备用节点,以使第一备用子系统对第一主用子系统进行备份。参见图10,假设a和b故障后,b先恢复正常。则将X’绑定至b。
[0158]步骤211:对第一备用节点和第二备用节点进行主备倒换,以使第一备用节点承载第一主用子系统,而第二备用节点承载第一备用子系统。
[0159]具体地,在第一备用子系统完成对第一主用子系统的备份(可以设置备份时间)后,对第一备用节点和第二备用节点进行主备倒换:将第一主用子系统绑定至第一备用节点,将第一备用子系统绑定至第二备用节点。参见图ll,b先恢复正常且将X’绑定至b后,对b和C进行主备倒换:将X绑至b,将X’绑至C。[0160]步骤212:在第一主用节点恢复正常之后,将第一备用子系统绑定至第一主用节点并释放第二备用节点,以使第一主用节点承载第一备用子系统。
[0161]具体地,在第一备用节点恢复正常后,第一主用节点也恢复了正常,这时,将第一备用子系统绑定至第一主用节点并释放第二备用节点,以使第一主用节点承载第一备用子系统。第一备用子系统绑定至第一主用节点后,开始对第一主用子系统进行备份。参见图12,在b先恢复正常后a也恢复了正常,这时,将V绑至a,并释放C。
[0162]步骤213:对第一主用节点和第一备用节点进行主备倒换,以使第一主用节点承载第一主用子系统,而第一备用节点承载第一备用子系统。
[0163]具体地,待第一备用子系统完成对第一主用子系统的备份,对第一主用节点和第一备用节点进行主备倒换:将第一主用子系统绑定至第一主用节点,将第一备用子系统绑定至第一备用节点。再次参见图9,V完成对X的备份后,再进行a与b的主备倒换:将X绑回a,X’绑回b。
[0164]同样地,通过步骤210-213,第一主用子系统、第一备用子系统和第二备用子系统均恢复至初始状态。
[0165]需要说明的是,步骤208-209和步骤211-213均为优选步骤,便于实现系统的负载平衡。
[0166]步骤214:判断第二主用子系统是否存在默认备用子系统。若存在,则执行步骤215 ;若不存在,则执行步骤216。
[0167]具体地,判断第二主用子系统是否存在默认备用子系统,包括:根据服务器中保存的主用子系统和默认备用子系统的对应关系,判断第二主用子系统是否存在默认备用子系统。
[0168]步骤215:对第二主用节点和承载第三备用子系统的第三备用节点进行主备倒换,以使第三备用节点承载第二主用子系统,该第三备用子系统为第二主用子系统的默认备用子系统。
[0169]具体地,若第二主用子系统存在默认备用子系统,且该默认备用子系统为第三备用子系统,则将第二主用子系统绑定至承载第三备用子系统的第三备用节点。
[0170]步骤216:将第二主用子系统绑定至承载第四备用子系统的第四备用节点,该第四备用子系统为第二主用子系统的非默认备用子系统。
[0171]具体地,将第二主用子系统绑定至承载第四备用子系统的第四备用节点,同步骤204?步骤205描述的过程,在此不再详述。
[0172]步骤217:检测第二主用节点是否恢复正常;若第二主用节点恢复正常,则将第二主用子系统绑定至第二主用节点。
[0173]具体地,检测过程与步骤206描述的检测过程相同,在此不再详述。若第二主用节点恢复正常,则将第二主用子系统绑定至第二主用节点;若该第二主用节点未恢复正常,则继续进行检测。
[0174]具体地,若第二主用节点恢复正常,则将第二主用子系统绑定至第二主用节点,包括两种情况:
[0175]第一种情况:如步骤215描述,第三备用节点承载第二主用子系统,这时,若第二主用节点恢复正常,则先将第三备用子系统绑定至第二主用节点,以使第二主用节点承载第三备用子系统;然后,对第二主用节点和第三备用节点进行主备倒换,以使第二主用节点承载第二主用子系统,而第三备用节点承载第三备用子系统。
[0176]第二种情况:如步骤216描述,第四备用节点承载第二主用子系统,这时,若第二主用节点恢复正常,则将第二主用子系统绑定至第二主用节点,并释放第四备用节点。
[0177]步骤218:根据第五备用子系统的优先级,抢占承载第六备用子系统的第六备用节点,以使第六备用节点承载第五备用子系统。
[0178]其中,该第六备用子系统的优先级比第五备用子系统的优先级低。进一步地,抢占的过程可参见步骤205,在此不再详述。
[0179]优选地,在检测出第五备用节点故障后,控制中心应立即重启该第五备用节点。重启后,应检测第五备用节点是否在预定时间内恢复正常;若是,则不进行抢占;若否,则执行抢占。
[0180]更优选地,在该第五备用子系统抢占第六备用节点之后,该方法还包括:
[0181]当第五备用节点恢复正常之后,释放第六备用节点,并将第五备用子系统绑定至第五备用节点,以使第五备用节点重新承载第五备用子系统。
[0182]值得说明的是,在本实施例中,节点为RNC中单板上的一个进程,在其他实施例中,节点可以是RNC中一个单板,也可以是其他Cluster系统中一个服务器或服务器上的一个资源。
[0183]本发明实施例提供的上述方法的有益效果是:通过在承载第一主用子系统的第一主用节点、和承载第一备用子系统(第一主用子系统的默认备用子系统)的第一备用节点均故障时,将第一主用子系统绑定至承载第二备用子系统(第一主用子系统的非默认备用子系统)的第二备用节点,以使该第二备用节点承载第一主用子系统,从而可以快速恢复故障的第一主用子系统,保证第一主用子系统的正常运行;因此,本发明实施例可以支持多个节点故障,有效增加了系统的可靠性。此外,由于本发明实施例在主用子系统以及备用子系统同时故障时,主用子系统还可以抢占其他备用节点,因此采用较少的备用节点即可以保证系统的运行,节约了资源。另外,当承载高优先级的备用子系统的备用节点故障时,可以根据优先级抢占承载低优先级的备用子系统的备用节点,因此可以优先保证高优先级的主用子系统存在默认备用子系统,即保证优先级高的主用子系统,优先拥有冗余保护,从而可以降低业务中断的风险,进一步提高系统的可靠性,并且根据优先级抢占的方式,实现简单。
[0184]实施例3
[0185]本发明实施例提供了一种冗余保护装置,参见图13,该装置包括:
[0186]检测模块301,用于检测是否存在故障节点。
[0187]第一执行模块302,用于当检测模块301检测到存在故障节点,且故障节点包括承载第一主用子系统的第一主用节点、和承载第一备用子系统的第一备用节点时,将第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使第二备用节点承载第一主用子系统,该第一备用子系统是第一主用子系统的默认备用子系统,该第二备用子系统是第一主用子系统的非默认备用子系统。
[0188]本发明实施例提供的上述装置的有益效果是:通过在承载第一主用子系统的第一主用节点、和承载第一备用子系统(第一主用子系统的默认备用子系统)的第一备用节点均故障时,将第一主用子系统绑定至承载第二备用子系统(第一主用子系统的非默认备用子系统)的第二备用节点,以使该第二备用节点承载第一主用子系统,从而可以保证第一主用子系统的正常运行;因此,本发明实施例可以支持多个节点故障,有效增加了系统的可靠性。
[0189]实施例4
[0190]本发明实施例提供了一种冗余保护装置,参见图14,与实施例3的装置的不同之处在于,第一执行模块302还用于,当检测模块301检测到存在故障节点,且故障节点包括承载第一主用子系统的第一主用节点、和承载第一备用子系统的第一备用节点时,在第一主用子系统的非默认备用子系统中,选择一个优先级最低的备用子系统,将被选中的备用子系统所在的备用节点作为第二备用节点,并将第一主用子系统绑定至第二备用节点。
[0191]进一步地,该装置还包括:第一判断模块403,用于判断第一主用子系统是否具备抢占能力;
[0192]相应地,第一执行模块302还用于,当第一主用子系统具备抢占能力时,将第一主用子系统绑定至第二备用节点。
[0193]进一步地,检测模块301还用于,检测第一主用节点和第一备用节点是否恢复正常;
[0194]相应地,第一执行模块302还用于,当第一主用节点先恢复正常时,将第一备用子系统绑定至第一主用节点,以使第一主用节点承载第一备用子系统;当第一备用节点先恢复正常时,将第一备用子系统绑定至第一备用节点,以使第一备用节点承载第一备用子系统。
[0195]进一步地,第一执行模块302还用于,在将第一备用子系统绑定至第一主用节点,以使第一主用节点承载第一备用子系统之后,对第一主用节点和第二备用节点进行主备倒换,以使第一主用节点承载第一主用子系统,而第二备用节点承载第一备用子系统。
[0196]进一步地,第一执行模块302还用于,在第一备用节点恢复正常后,将第一备用子系统绑定至第一备用节点并释放第二备用节点,以使第一备用节点承载所述第一备用子系统。
[0197]进一步地,第一执行模块302还用于,在将第一备用子系统绑定至第一备用节点,以使第一备用节点承载第一备用子系统之后,对第一备用节点和第二备用节点进行主备倒换,以使第一备用节点承载第一主用子系统,而第二备用节点承载第一备用子系统。
[0198]进一步地,第一执行模块302还用于,在第一主用节点恢复正常之后,将第一备用子系统绑定至第一主用节点并释放第二备用节点,以使第一主用节点承载第一备用子系统。
[0199]进一步地,第一执行模块302还用于,对第一主用节点和第二备用节点进行主备倒换,以使第一主用节点承载第一主用子系统,而第二备用节点承载第一备用子系统。
[0200]进一步地,该装置还包括:
[0201]第二执行模块404,用于当检测模块301检测到存在故障节点,且故障节点包括承载第二主用子系统的第二主用节点,而故障节点不包括备用节点或者故障节点包括的备用节点承载的备用子系统均不是第二主用子系统的默认备用子系统时,将第二主用子系统绑定至承载第三备用子系统的第三备用节点,以使第三备用节点承载第二主用子系统,该第三备用子系统为第二主用子系统的默认备用子系统。
[0202]进一步地,该装置还包括:第二判断模块405,用于判断第二主用子系统是否存在默认备用子系统;
[0203]相应地,第二执行模块404还用于,当第二判断模块405的判断结果为存在时,将第二主用子系统绑定至承载第三备用子系统的第三备用节点;当第二判断模块405的判断结果为不存在时,将第二主用子系统绑定至承载第四备用子系统的第四备用节点,该第四备用子系统为第二主用子系统的非默认备用子系统。
[0204]进一步地,检测模块301还用于,检测第二主用节点是否恢复正常;相应地,第二执行模块404还用于,当第二主用节点恢复正常,则将第二主用子系统绑定至第二主用节点。
[0205]进一步地,该装置还包括:
[0206]第三执行模块406,用于当检测模块301检测到存在故障节点,且故障节点包括承载第五备用子系统的第五备用节点,而故障节点不包括主用节点或者故障节点包括的主用节点承载的主用子系统的默认子备用子系统均不是第五备用子系统时,根据第五备用子系统的优先级,抢占承载第六备用子系统的第六备用节点,以使第六备用节点承载第五备用子系统。
[0207]进一步地,该装置还包括:
[0208]第一设置模块407,用于为主用子系统和备用子系统设置优先级。
[0209]进一步地,该装置还包括:
[0210]第二设置模块408,用于为主用子系统设置默认备用子系统。
[0211]本发明实施例提供的上述装置的有益效果是:通过在承载第一主用子系统的第一主用节点、和承载第一备用子系统(第一主用子系统的默认备用子系统)的第一备用节点均故障时,将第一主用子系统绑定至承载第二备用子系统(第一主用子系统的非默认备用子系统)的第二备用节点,以使该第二备用节点承载第一主用子系统,从而可以保证第一主用子系统的正常运行;因此,本发明实施例可以支持多个节点故障,有效增加了系统的可靠性。此外,由于本发明实施例在主用子系统以及备用子系统同时故障时,主用子系统还可以抢占其他备用节点,因此采用较少的备用节点即可以保证系统的运行,节约了资源。另外,当承载高优先级的备用子系统的备用节点故障时,可以根据优先级抢占承载低优先级的备用子系统的备用节点,因此可以优先保证高优先级的主用子系统存在默认备用子系统,从而进一步提高系统的可靠性,并且根据优先级抢占的方式,实现简单。
[0212]实施例5
[0213]本发明实施例提供了一种冗余保护设备,参见图15,该设备包括处理器51 (例如CPU)、存储器52和网络接口 53。
[0214]下面结合图15对冗余保护设备50的各个构成部件进行具体的介绍:
[0215]网络接口 53用于与各节点通信连接。
[0216]存储器52可用于存储软件程序和/或应用模块,从而执行冗余保护设备50的各种功能应用以及数据处理。存储器52可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据冗余保护设备50的使用所创建的数据,例如主用子系统和备用子系统之间的对应关系、子系统的优先级、以及主用子系统的抢占能力等。此外,存储器52可以包括高速RAM (Random AccessMemory,随机存取存储器),还可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0217]具体地,通过运行或执行存储在存储器52内的软件程序和/或应用模块,以及调用存储在存储器52内的数据,处理器51可以实现,检测是否存在故障节点,并确定故障节点承载的子系统。具体地,当存在故障节点,且该故障节点包括承载第一主用子系统的第一主用节点、和承载第一备用子系统的第一备用节点时,处理器51通过网络接口 53向第二备用节点发送承载第一主用子系统的指示消息(包括第一主用子系统的启动参数),该指示消息用于将第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使该第二备用节点承载第一主用子系统,第一备用子系统是第一主用子系统的默认备用子系统,该第二备用子系统是第一主用子系统的非默认备用子系统。
[0218]优选地,处理器51具体用于在第一主用子系统的非默认备用子系统中,选择一个优先级最低的备用子系统,将被选中的备用子系统所在的备用节点作为第二备用节点,并将第一主用子系统绑定至该第二备用节点。
[0219]优选地,处理器51还可以实现,在将第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使第二备用节点承载主用子系统之前,
[0220]判断第一主用子系统是否具备抢占能力;
[0221]若第一主用子系统具备抢占能力,则将第一主用子系统绑定至第二备用节点。
[0222]优选地,处理器51还可以实现,在将第一主用子系统绑定至第二备用节点之后,
[0223]检测第一主用节点和第一备用节点是否恢复正常;
[0224]若第一主用节点先恢复正常,则将第一备用子系统绑定至第一主用节点,以使第一主用节点承载第一备用子系统;
[0225]若第一备用节点先恢复正常,则将第一备用子系统绑定至第一备用节点,以使第一备用节点承载第一备用子系统。
[0226]进一步地,处理器51还可以实现,在将第一备用子系统绑定至第一主用节点,以使第一主用节点承载第一备用子系统之后,对第一主用节点和第二备用节点进行主备倒换,以使第一主用节点承载第一主用子系统,而第二备用节点承载第一备用子系统。
[0227]优选地,处理器51还可以实现,在对第一主用节点和第二备用节点进行主备倒换之后,在第一备用节点恢复正常后,将第一备用子系统绑定至第一备用节点并释放第二备用节点,以使第一备用节点承载第一备用子系统。
[0228]优选地,处理器51还可以实现,在将第一备用子系统绑定至第一备用节点,以使第一备用节点承载第一备用子系统之后,对第一备用节点和第二备用节点进行主备倒换,以使第一备用节点承载第一主用子系统,而第二备用节点承载第一备用子系统。
[0229]优选地,处理器51还可以实现,在对第一备用节点和第二备用节点进行主备倒换之后,
[0230]在第一主用节点恢复正常之后,将第一备用子系统绑定至第一主用节点并释放第二备用节点,以使第一主用节点承载第一备用子系统。
[0231]优选地,处理器51还可以实现,在将所述第一备用子系统绑定至第一主用节点并释放第二备用节点之后,[0232]对第一主用节点和第二备用节点进行主备倒换,以使第一主用节点承载第一主用子系统,而第二备用节点承载第一备用子系统。
[0233]进一步地,处理器51还可以实现,当存在故障节点,且该故障节点包括承载第二主用子系统的第二主用节点,而该故障节点不包括备用节点或者该故障节点包括的备用节点承载的备用子系统均不是该第二主用子系统的默认备用子系统时,处理器51通过网络接口 53向第三备用节点发送升主的消息(该第三备用子系统为第二主用子系统的默认备用子系统),该消息用于指示第三备用节点承载第二主用子系统;或者,处理器51通过网络接口 53向第四备用节点发送承载第二主用子系统的指示信息(包括第二主用子系统的启动参数),该指示信息用于将第二主用子系统绑定至第四备用节点,以使第四备用节点承载第二主用子系统,该第四备用子系统为第二主用子系统的非默认备用子系统。
[0234]优选地,处理器51还可以实现,在第三备用节点承载第二主用子系统之前,
[0235]判断第二主用子系统是否存在默认备用子系统;
[0236]若存在,则将第二主用子系统绑定至承载第三备用子系统的第三备用节点;
[0237]若不存在,则将第二主用子系统绑定至承载第四备用子系统的第四备用节点,第四备用子系统为第二主用子系统的非默认备用子系统。
[0238]优选地,处理器51还可以实现,在将第二主用子系统绑定至第三备用节点或第四备用节点之后,
[0239]检测第二主用节点是否恢复正常;
[0240]若第二主用节点恢复正常,则将第二主用子系统绑定至第二主用节点。
[0241]进一步地,处理器51还可以实现,当存在故障节点,且该故障节点包括承载第五备用子系统的第五备用节点,而该故障节点不包括主用节点或者该故障节点包括的主用节点承载的主用子系统的默认子备用子系统均不是该第五备用子系统时,处理器51通过网络接口 53向第六备用节点发送承载第五备用子系统的指示信息(该第六备用子系统的优先级比第五备用子系统的优先级低),该指示信息用于将第五备用子系统绑定至第六备用节点,以使第六备用节点承载第五备用子系统。
[0242]更进一步地,处理器51还可以实现,为主用子系统和备用子系统设置优先级。
[0243]更进一步地,处理器51还可以实现,为主用子系统设置默认备用子系统。
[0244]本领域技术人员可以理解,图15中所示出的结构并不构成对冗余保护设备的限定,其可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0245]本发明实施例提供的上述系统的有益效果是:通过在承载第一主用子系统的第一主用节点、和承载第一备用子系统(第一主用子系统的默认备用子系统)的第一备用节点均故障时,将第一主用子系统绑定至承载第二备用子系统(第一主用子系统的非默认备用子系统)的第二备用节点,以使该第二备用节点承载第一主用子系统,从而可以保证第一主用子系统的正常运行;因此,本发明实施例可以支持多个节点故障,有效增加了系统的可靠性。此外,由于本发明实施例在主用子系统以及备用子系统同时故障时,主用子系统还可以抢占其他备用节点,因此采用较少的备用节点即可以保证系统的运行,节约了资源。另外,当承载高优先级的备用子系统的备用节点故障时,可以根据优先级抢占承载低优先级的备用子系统的备用节点,因此可以优先保证高优先级的主用子系统存在默认备用子系统,从而进一步提高系统的可靠性,并且根据优先级抢占的方式,实现简单。[0246]实施例6
[0247]本发明实施例提供了一种冗余保护系统,参见图16,该系统包括多个节点601、以及冗余保护装置602。其中,该冗余保护装置602可以为本发明实施例3或4中提供的冗余保护装置、或者本发明实施例5中提供的冗余保护设备。
[0248]其中,节点601可以为服务器上的进程或服务器。
[0249]进一步地,当节点601为服务器上的进程时,承载主用子系统的主用节点的数量和承载备用子系统的备用节点的数量相等,每一个主用子系统具有一个默认备用子系统,同一服务器上的主用节点承载的主用子系统的默认备用子系统所在的进程,平均分布在与该服务器相邻两个服务器上。
[0250]如前所述,本实施例的系统适用于RNC以及其它Cluster形式的IT (InformationTechnology,信息技术)产品。
[0251]本发明实施例提供的上述系统的有益效果是:通过在承载第一主用子系统的第一主用节点、和承载第一备用子系统(第一主用子系统的默认备用子系统)的第一备用节点均故障时,将第一主用子系统绑定至承载第二备用子系统(第一主用子系统的非默认备用子系统)的第二备用节点,以使该第二备用节点承载第一主用子系统,从而可以保证第一主用子系统的正常运行;因此,本发明实施例可以支持多个节点故障,有效增加了系统的可靠性。
[0252]需要说明的是:上述实施例提供的冗余保护装置在执行冗余保护时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的冗余保护装置与冗余保护方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0253]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0254]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0255]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种冗余保护方法,其特征在于,所述方法包括: 检测是否存在故障节点; 当存在故障节点,且所述故障节点包括承载第一主用子系统的第一主用节点、和承载第一备用子系统的第一备用节点时,将所述第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使所述第二备用节点承载所述第一主用子系统,所述第一备用子系统是所述第一主用子系统的默认备用子系统,所述第二备用子系统是所述第一主用子系统的非默认备用子系统。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使所述第二备用节点承载所述主用子系统,包括: 在所述第一主用子系统的非默认备用子系统中,选择一个优先级最低的备用子系统,将被选中的所述备用子系统所在的备用节点作为所述第二备用节点,并将所述第一主用子系统绑定至所述第二备用节点。
3.根据权利要求1或2所述的方法,其特征在于,在所述将所述第一主用子系统绑定至承载第二备用 子系统的第二备用节点,以使所述第二备用节点承载所述主用子系统之前,所述方法还包括: 判断所述第一主用子系统是否具备抢占能力; 若所述第一主用子系统具备抢占能力,则将所述第一主用子系统绑定至所述第二备用节点。
4.根据权利要求1-3任一项所述的方法,其特征在于,在将所述第一主用子系统绑定至所述第二备用节点之后,所述方法还包括: 检测所述第一主用节点和所述第一备用节点是否恢复正常; 若所述第一主用节点先恢复正常,则将所述第一备用子系统绑定至所述第一主用节点,以使所述第一主用节点承载所述第一备用子系统; 若所述第一备用节点先恢复正常,则将所述第一备用子系统绑定至所述第一备用节点,以使所述第一备用节点承载所述第一备用子系统。
5.根据权利要求4所述的方法,其特征在于,在所述将所述第一备用子系统绑定至所述第一主用节点,以使所述第一主用节点承载所述第一备用子系统之后,所述方法还包括: 对所述第一主用节点和所述第二备用节点进行主备倒换,以使所述第一主用节点承载所述第一主用子系统,而所述第二备用节点承载所述第一备用子系统。
6.根据权利要求5所述的方法,其特征在于,在所述对所述第一主用节点和所述第二备用节点进行主备倒换之后,所述方法还包括: 在所述第一备用节点恢复正常后,将所述第一备用子系统绑定至所述第一备用节点并释放所述第二备用节点,以使所述第一备用节点承载所述第一备用子系统。
7.根据权利要求4所述的方法,其特征在于,在所述将所述第一备用子系统绑定至所述第一备用节点,以使所述第一备用节点承载所述第一备用子系统之后,所述方法还包括: 对所述第一备用节点和所述第二备用节点进行主备倒换,以使所述第一备用节点承载所述第一主用子系统,而所述第二备用节点承载所述第一备用子系统。
8.根据权利要求7所述的方法,其特征在于,在所述对所述第一备用节点和所述第二备用节点进行主备倒换之后,所述方法还包括: 在所述第一主用节点恢复正常之后,将所述第一备用子系统绑定至所述第一主用节点并释放所述第二备用节点,以使所述第一主用节点承载所述第一备用子系统。
9.根据权利要求8所述的方法,其特征在于,在所述将所述第一备用子系统绑定至所述第一主用节点并释放所述第二备用节点之后,所述方法还包括: 对所述第一主用节点和所述第二备用节点进行主备倒换,以使所述第一主用节点承载所述第一主用子系统,而所述第二备用节点承载所述第一备用子系统。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述方法还包括: 当存在故障节点,且所述故障节点包括承载第二主用子系统的第二主用节点,而所述故障节点不包括备用节点或者所述故障节点包括的备用节点承载的备用子系统均不是所述第二主用子系统的默认备用子系统时, 对第二主用节点和承载第三备用子系统的第三备用节点进行主备倒换,以使所述第三备用节点承载所述第二主用子系统,所述第三备用子系统为所述第二主用子系统的默认备用子系统。
11. 根据权利要求10所述的方法,其特征在于,在所述对第二主用节点和承载第三备用子系统的第三备用节点进行主备倒换,以使所述第三备用节点承载所述第二主用子系统之前,所述方法还包括: 判断所述第二主用子系统是否存在默认备用子系统; 若存在,则将所述第二主用子系统绑定至承载第三备用子系统的第三备用节点; 若不存在,则将所述第二主用子系统绑定至承载第四备用子系统的第四备用节点,所述第四备用子系统为所述第二主用子系统的非默认备用子系统。
12.根据权利要求11所述的方法,其特征在于,在将所述第二主用子系统绑定至所述第三备用节点或所述第四备用节点之后,所述方法还包括: 检测所述第二主用节点是否恢复正常; 若所述第二主用节点恢复正常,则将所述第二主用子系统绑定至所述第二主用节点。
13.根据权利要求1-12任一项所述的方法,其特征在于,所述方法还包括: 当存在故障节点,且所述故障节点包括承载第五备用子系统的第五备用节点,而所述故障节点不包括主用节点或者所述故障节点包括的主用节点承载的主用子系统的默认子备用子系统均不是所述第五备用子系统时, 根据所述第五备用子系统的优先级,抢占承载第六备用子系统的第六备用节点,以使所述第六备用节点承载所述第五备用子系统。
14.根据权利要求1-13任一项所述的方法,其特征在于,所述方法还包括: 为主用子系统和备用子系统设置优先级。
15.根据权利要求1-14任一项所述的方法,其特征在于,所述方法还包括: 为主用子系统设置默认备用子系统。
16.根据权利要求1-15任一项所述的方法,其特征在于,承载主用子系统的主用节点的数量和承载备用子系统的备用节点的数量相等,每一个所述主用子系统具有一个默认备用子系统。
17.根据权利要求16所述的方法,其特征在于,所述主用节点和所述备用节点均为服务器上的进程,同一服务器上的所述主用节点承载的主用子系统的默认备用子系统所在的进程,平均分布在与所述服务器相邻的两个服务器上。
18.—种冗余保护装置,其特征在于,所述装置包括: 检测模块,用于检测是否存在故障节点; 第一执行模块,用于当所述检测模块检测到存在故障节点,且所述故障节点包括承载第一主用子系统的第一主用节点、和承载第一备用子系统的第一备用节点时,将所述第一主用子系统绑定至承载第二备用子系统的第二备用节点,以使所述第二备用节点承载所述第一主用子系统,所述第一备用子系统是所述第一主用子系统的默认备用子系统,所述第二备用子系统是所述第一主用子系统的非默认备用子系统。
19.根据权利要求18所述的装置,其特征在于,所述第一执行模块用于, 当存在故障节点,且所述故障节点包括承载第一主用子系统的第一主用节点、和承载第一备用子系统的第一备用节点时,在所述第一主用子系统的非默认备用子系统中,选择一个优先级最低的备用子系统,将被选中的所述备用子系统所在的备用节点作为所述第二备用节点,并将所述第一主用子系统绑定至所述第二备用节点。
20.根据权利要求18或19所述的装置,其特征在于,所述装置还包括: 第一判断模块,用于判断所述第一主用子系统是否具备抢占能力; 相应地,所述第一执行模块还用于,当所述第一主用子系统具备抢占能力时,将所述第一主用子系统绑定至所述第二备用节点。
21.根据权利要求18-20任一项所述的装置,其特征在于, 所述检测模块还用于,检测所述第一主用节点和所述第一备用节点是否恢复正常; 相应地,所述第一执行模块还用于,当所述第一主用节点先恢复正常时,则将所述第一备用子系统绑定至所述第一主用节点,以使所述第一主用节点承载所述第一备用子系统;当所述第一备用节点先恢复正常时,则将所述第一备用子系统绑定至所述第一备用节点,以使所述第一备用节点承载所述第一备用子系统。
22.根据权利要求21所述的装置,其特征在于,所述第一执行模块还用于, 在所述将所述第一备用子系统绑定至所述第一主用节点,以使所述第一主用节点承载所述第一备用子系统之后, 对所述第一主用节点和所述第二备用节点进行主备倒换,以使所述第一主用节点承载所述第一主用子系统,而所述第二备用节点承载所述第一备用子系统。
23.根据权利要求22所述的装置,其特征在于,所述第一执行模块还用于, 在所述第一备用节点恢复正常后,将所述第一备用子系统绑定至所述第一备用节点并释放所述第二备用节点,以使所述第一备用节点承载所述第一备用子系统。
24.根据权利要求21所述的装置,其特征在于,所述第一执行模块还用于, 在所述将所述第一备用子系统绑定至所述第一备用节点,以使所述第一备用节点承载所述第一备用子系统之后, 对所述第一备用节点和所述第二备用节点进行主备倒换,以使所述第一备用节点承载所述第一主用子系统,而所述第二备用节点承载所述第一备用子系统。
25.根据权利要求24所述的装置,其特征在于,所述第一执行模块还用于,在所述第一主用节点恢复正常之后,将所述第一备用子系统绑定至所述第一主用节点并释放所述第二备用节点,以使所述第一主用节点承载所述第一备用子系统。
26.根据权利要求25所述的装置,其特征在于,所述第一执行模块还用于, 对所述第一主用节点和所述第二备用节点进行主备倒换,以使所述第一主用节点承载所述第一主用子系统,而所述第二备用节点承载所述第一备用子系统。
27.根据权利要求18-26任一项所述的装置,其特征在于,所述装置还包括: 第二执行模块,用于当所述检测模块检测到存在故障节点,且所述故障节点包括承载第二主用子系统的第二主用节点,而所述故障节点不包括备用节点或者所述故障节点包括的备用节点承载的备用子系统均不是所述第二主用子系统的默认备用子系统时,将所述第二主用子系统绑定至承载第三备用子系统的第三备用节点,以使所述第三备用节点承载所述第二主用子系统,所述第三备用子系统为所述第二主用子系统的默认备用子系统。
28.根据权利要求27所述的装置,其特征在于,所述装置还包括: 第二判断模块,用于判断所述第二主用子系统是否存在默认备用子系统; 相应地,所述 第二执行模块还用于,当所述第二判断模块的判断结果为存在时,将所述第二主用子系统绑定至承载第三备用子系统的第三备用节点;当所述第二判断模块的判断结果为不存在时,将所述第二主用子系统绑定至承载第四备用子系统的第四备用节点,所述第四备用子系统为所述第二主用子系统的非默认备用子系统。
29.根据权利要求28所述的装置,其特征在于, 所述检测模块还用于,检测所述第二主用节点是否恢复正常; 相应地,所述第二执行模块还用于,当所述第二主用节点恢复正常,则将所述第二主用子系统绑定至所述第二主用节点。
30.根据权利要求18-29任一项所述的装置,其特征在于,所述装置还包括: 第三执行模块,用于当所述检测模块检测到存在故障节点,且所述故障节点包括承载第五备用子系统的第五备用节点,而所述故障节点不包括主用节点或者所述故障节点包括的主用节点承载的主用子系统的默认子备用子系统均不是所述第五备用子系统时,根据所述第五备用子系统的优先级,抢占承载第六备用子系统的第六备用节点,以使所述第六备用节点承载所述第五备用子系统。
31.根据权利要求18-30任一项所述的装置,其特征在于,所述装置还包括: 第一设置模块,用于为主用子系统和备用子系统设置优先级。
32.根据权利要求18-31任一项所述的装置,其特征在于,所述装置还包括: 第二设置模块,用于为主用子系统设置默认备用子系统。
33.一种冗余保护设备,其特征在于,所述设备包括:处理器和存储器,用于执行如权利要求I至17中任一项所述的冗余保护方法。
34.一种冗余保护系统,其特征在于,所述系统包括:多个节点、以及如权利要求18-32任一项所述的装置,所述多个节点用于在所述装置的控制下执行任务。
35.根据权利要求34所述的系统,其特征在于,所述节点为服务器上的进程或服务器。
36.根据权利要求34或35所述的系统,其特征在于,当所述节点为服务器上的进程时,承载主用子系统的主用节点的数量和承载备用子系统的备用节点的数量相等,每一个所述主用子系统具有一个默认备用子系统,同一服务器上的所述主用节点承载的主用子系统的默认备 用子系统所在的进程,平均分布在与所述服务器相邻两个服务器上。
【文档编号】H02H3/05GK103931139SQ201380003769
【公开日】2014年7月16日 申请日期:2013年3月19日 优先权日:2013年3月19日
【发明者】朱家悦 申请人:华为技术有限公司