CN101178668A - 一种用于在节点集群中管理分区划分的方法和设备 - Google Patents

一种用于在节点集群中管理分区划分的方法和设备 Download PDF

Info

Publication number
CN101178668A
CN101178668A CNA2007101676416A CN200710167641A CN101178668A CN 101178668 A CN101178668 A CN 101178668A CN A2007101676416 A CNA2007101676416 A CN A2007101676416A CN 200710167641 A CN200710167641 A CN 200710167641A CN 101178668 A CN101178668 A CN 101178668A
Authority
CN
China
Prior art keywords
node
subregion
cluster
prime number
equipment
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.)
Pending
Application number
CNA2007101676416A
Other languages
English (en)
Inventor
A·J·普雷斯顿
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 CN101178668A publication Critical patent/CN101178668A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种用于在节点集群中管理分区划分的方法、设备和软件,其中为每个节点分配一个素数,用于确定在集群分区划分后哪个分区应该被激活。

Description

一种用于在节点集群中管理分区划分的方法和设备
技术领域
本发明涉及一种用于在节点集群中管理分区划分(partitioning)的方法、设备或软件。
背景技术
在计算体系中,集群是一种用于表示一系列诸如计算机的互联的节点的术语。将集群安排用以提供诸如对处理许多并发计算任务的负载进行平衡的设备、提供如数据、应用程序或并行处理等资源的高可用性。将高可用性(HA)集群安排用以保证该集群提供的服务的可用性,并且可以使用通常情况下不活动的冗余节点来实现。然后,使用这些非活动的节点代替任何故障的活动节点来提供集群服务。将用于给定集群的集群管理系统安排来使用集群中固有的冗余,以消除单点故障。
针对集群而必须管理的一个问题是分区划分。分区划分发生在一个或多个节点出现故障的时候,或节点之间的通信链路出现故障的时候。这会导致该集群被有效地分成两个分离的子集群或分区。如果没有被正确地管理,集群分区可能竞争诸如通信或数据资源之类的集群资源,这可能导致数据损坏或服务降级。因此,一旦检测到分区划分,就将每个集群分区安排用以识别是否它应该提供集群的服务,还是应该关闭而由另一分区来提供服务。
一种用于确定哪一个分区应该在重组中存活的方法是一个定额系统(quorum system),其中选择出一个分区提供集群的服务。在一些定额系统中,给节点分配不同的权值,针对每个分区的节点权值的乘积来确定哪个分区提供集群的服务。采用这种定额系统存在的一个问题是,分区可能伴随着相等数量的节点或节点的权值乘积相同而出现。在这种情况下,除非提供一个额外的管理系统来解决这种“加赛”(tie-break)的情况,否则集群分区会相互竞争,导致数据损坏或服务降级。附加的管理系统增加了用来对集群进行重组的时间以及在每个节点上的处理负担。
发明内容
本发明的一个实施例提供一种用于在节点集群中管理分区划分的方法,该方法包括步骤:
a)  为节点集群中的节点分配素数;
b)  监视这个集群以用于该集群的分区划分;
c)  如果检测到该集群的分区划分,则从分配给每个分区中的每个节点的素数的乘积中计算出分区值;
d)  如果节点在具有最大分区值的分区中,那么使该节点在该分区中激活。
该节点可以维护一个分配给该集群中每个节点的所有素数的记录。该节点可以将一个唯一的标识符和所分配的素数发送到集群中所有的其他节点。如果该节点在不具有最大分区值的分区内,那么该节点可能未激活。该方法可以包括进一步的步骤:计算每个分区中的节点数,如果一个节点在具有最大节点数的分区内则使该节点保持活动;如果有多于一个的分区具有最大节点数,则使用分区值来确定是否将该节点保持活动。
较大的素数可以被分配给一个或多个特定节点,以便增加特定节点位于活动的分区中的可能性。素数可以从一个素数范围内随机选择。可以提供多个素数范围,将每个素数范围分配给不同种类的节点。可以在一个预定的限制范围之内调整表示素数的位数。可以将用于该集群的新节点的素数选择为未分配给集群中任何其他节点的最小素数。
另一个实施例提供一种用于在节点集群中管理分区划分的设备,该设备可被操作来:
a)  为节点集群中的节点分配素数;
b)  监视这个集群以用于该集群的分区划分;
c)  如果检测到该集群的分区划分,则从分配给每个分区中的每个节点的素数的乘积中计算出分区值;
d)  如果节点在具有最大分区值的分区中,那么使该节点在该分区中被激活。
另一个实施例提供一个程序或一组程序,其被安排用来使一个可编程的装置或一组这样的装置来执行用于管理节点集群中分区划分的方法,该方法包括步骤:
a)  为节点集群中的节点分配素数;
b)  监视这个集群以用于该集群的分区划分;
c)  如果检测到该集群的分区划分,则从分配给每个分区中的每个节点的素数的乘积中计算出分区值;
d)  如果节点在具有最大分区值的分区中,那么使该节点在该分区中被激活。
另外一个实施例提供一个程序或一组程序,用来使一个可编程的装置或一组这样的装置来提供用于在一个节点集群中管理分区的设备,该设备可被操作为:
a)  为节点集群中的节点分配素数;
b)  监视这个集群以用于该集群的分区划分;
c)  如果检测到该集群的分区划分,则从分配给每个分区中的每个节点的素数的乘积中计算出分区值;
d)  如果节点在具有最大分区值的分区中,那么使该节点在该分区中被激活。
附图说明
现在将参考附图仅仅通过举例的方式来描述本发明的实施例,附图中:
图1为包含集群的计算机网络的示意图;
图2是示出用于图1中的集群中的数据的表格;
图3是示出当向图1的集群中增加新节点时所执行的处理的流程图;以及
图4是示出当在图1的集群中检测到分区划分时所执行的处理的流程图。
具体实施方式
参考图1,以高可用性集群101的形式存在的计算机集群通过网络102连接到客户端计算机103。集群101包含服务器计算机104、105、106、107形式的4个节点以及2个数据库108、109。集群101中的单元通过集群互联110相互连接,集群互联110还提供集群101和网络102之间的连接。该集群被安排用以向客户端计算机103提供数据库服务。服务器计算机104、105、106、107运行数据库应用程序,所述数据库应用程序使用两个数据库108、109用于存储它们的相关数据。每一个服务器计算机104、105、106、107都被分配一个唯一的标识符,其形式为媒体访问控制(MAC)地址,为清楚起见,在图1中分别用字母A、B、C、D表示。
另外,为运行数据库应用程序,每个服务器计算机104、105、106、107运行集群管理程序,将该集群管理程序安排用以使得每个节点104、105、106、107在集群101中正常执行。集群管理程序的功能之一是,当节点或通信链路发生错误而导致集群101的分区划分的情况下,使集群能够自发地进行重组。集群重组保证了由集群101向客户端计算机103所提供的数据库服务的最小限度的中断。
在当前实施例中,节点104、105、106、107中的每一个节点都被分配一个素数,对于每个给定节点来说该素数都是唯一的。每个节点还配有一个查询表(LUT)201,如图2所示,表中存储了所有节点104、105、106、107的MAC地址和它们相关的素数。当新节点加入到集群101中时,它们的集群管理程序将自动为它们分配一个未使用的素数。新节点的MAC地址和它相关的素数被发送给集群中的每个现有节点,以更新它们相应的LUT 201。新节点被包括到具有完全更新的LUT 201的集群中。
当节点104、105、106、107中的任何一个节点检测到故障的情况下,由故障检测节点的集群管理程序将一个分区消息广播给集群101中的所有节点。响应分区消息,将每个节点104、105、106、107安排用以识别在它的分区中的所有其他节点,然后使用它的LUT 201来计算分配给那些节点中的每一个节点的素数的乘积x。然后每个节点计算分配给不在它的分区中的每个节点的素数的乘积y。如果乘积x大于乘积y,则这一个节点位于活动的分区内,该分区将在故障后提供集群服务。在活动的分区中的每个节点中的集群管理程序被安排用以与该分区中的其他节点协作来提供集群服务。如果乘积x比乘积y小,则这一个节点在非活动的分区中,并且每个这样的节点停止提供任何集群服务。因为没有两个分区具有它们各自分配到的素数的相同乘积,这样,协作的集群管理程序避免了在分区划分事件中利用针对限定作为活动分区的相同标准形成的两个分区的可能性,因为没有两个分区可以具有它们各自分配到的素数的相同乘积。两组素数的乘积永远不可能具有相同的值的事实是以算术基本定理为基础的,也是通常所说的唯一析因定理(unique factorization theorem)。
这里将参考图3的流程图对加入到集群101的节点所执行的处理做更为详细的描述。在步骤301,一个连接到集群互联110的新节点的集群管理程序开始处理。在步骤302,该新节点访问该群中一个或多个现有节点的LUT 201。这使得该新节点识别该集群中最后被分配的素数,并用集群中现有节点的MAC地址和分配的素数繁殖它自己的LUT 201。然后处理移到步骤303,在这里确定下一个最小的未使用的素数,然后处理移到步骤304。在步骤304,分配给该新节点的素数被存储在该新节点的LUT 201中。然后处理移到步骤305,在这里该新节点向网络中的所有现有节点广播自己的MAC地址和分配的素数,因而使每个节点用该新节点的细节更新它们各自的LUT。然后该集群继续如常提供服务,必要时会使用该新节点的资源。
现在将参考图4的流程图进一步描述当检测到一个分区划分时集群101中的任一节点所执行的处理。在步骤401,警告当前节点关于集群101已被分区划分的事实。该节点或者通过其自身检测到分区划分而被警告,或者由其他节点发来的分区通知消息而被警告。然后处理移到步骤402,在这里访问LUT。在步骤403,该节点确定哪些其他节点在同一个分区中,之后处理移到步骤404。在步骤404,根据LUT中的条目,计算分配给每个节点的素数的乘积x,其中这些节点被识别为存在于当前分区中。之后处理移到步骤405,在这里根据LUT中的剩余条目计算那些被识别为不存在于当前分区中的每个节点所分配到的素数的乘积y。
然后处理移到步骤406,在这里比较乘积x和乘积y,如果x大于y则处理移到步骤407。在步骤407,该节点被指定为保持活动的节点,也就是说,在活动的子集群或分区中的节点。之后这个活动的分区继续提供集群101的服务。如果在步骤406,x小于y,则处理移到步骤409,在这里该节点被指定为不活动的节点,并将和所在分区中的所有其他节点一起被关闭。
一旦分区划分发生,活动的子集群将继续提供集群服务,直到引起分区划分的所述错误被校正并且整个集群恢复,或者直到该活动的子集群的进一步分区划分发生。
在另一个实施例中,通常选择具有最大数目节点的子集群作为活动分区。只有当两个分区具有相同的最大数目的节点的情况下,使用分配的素数的乘积来确定哪个分区应该被选为活动的分区。
在又一个实施例中,从一个预定的素数范围内选择素数。在另一个实施例中,从一个素数范围内随机选择素数。在又一个实施例中,将较大的素数分配给更特殊的节点,使得在由分区划分引起重组之后那些特殊节点更多地在活动的分区中。在另一个实施例中,提供多个素数范围,每个范围被安排用于分配给不同类型的节点。
在又一个实施例中,素数和节点标识符对被存储在全局表中,以避免新节点访问现有节点的LUT的需要,也避免了单独节点管理它们各自的LUT的需要。在另一个实施例中,使用数学库函数,以便将生成的素数保持在诸如64位之类的预定限制范围内。
在又一个实施例中,并不采用每个节点都运行集群管理程序的方式,取而代之的是提供一个中央集群管理程序,由节点中的一个或一个指定的节点来运行。该中央集群管理程序向集群中的每个节点提供集群管理功能,拥有一个中央LUT,当分区划分发生时执行计算功能以选出活动的分区。
本领域技术人员可以理解,集群节点可以由虚拟节点或机器来提供。此外,虽然上面的实施例涉及高可用性集群,但是这些集群的特征还可以组合于其他集群服务或功能,例如并行处理或负载平衡。
本领域技术人员可以理解,体现了本发明的部分或全部的设备可以是通用的装置,其具有安排来提供本发明的部分或全部实施例的软件。该装置可以是单个的装置也可以是一组装置,该软件可以是一个单个的程序也可以是一组程序。此外,用于实现本发明的任何软件或全部的软件都可以通过任何适当的传输或存储方式被传送,以便可以将该软件加载到一个或多个装置上。
虽然本发明已在其实施例的描述中被说明,并且实施例已被描述得相当详细,然而这不意味着申请人要以该详细描述来限定,或以任何方式限制所附权利要求书的保护范围。对于本领域技术人员来说,额外的改进和修改也是显而易见的。因此,在更宽范围内的发明不被限制到详细的具有代表性的设备和方法中以及所示和所说明的示意性示例中。相应地,在不偏离申请人的总的发明构思的精神和范围的情况下,可以对本发明的细节进行改动。

Claims (20)

1.一种用于在节点集群中管理分区划分的方法,该方法包括步骤:
a)为所述节点的集群中的节点分配素数;
b)监视所述集群以用于所述集群的分区划分;
c)如果检测到所述集群的分区划分,则从分配到每个所述分区中的每个所述节点的所述素数的乘积中计算出分区值;
d)仅当所述节点在具有最大分区值的所述分区中时激活所述节点,使所述节点在所述分区中被激活。
2.如权利要求1所述的方法,其中每个所述节点都维护一个分配给该集群中每个节点的全部素数的记录。
3.如前述的任一权利要求所述的方法,其中:响应于给节点分配所述素数,所述节点将唯一的标识符和所述分配的素数发送给所述集群中的所有其他节点。
4.如前述的任一权利要求所述的方法,其中:如果所述节点在不具有最大分区值的所述分区内,则使所述节点不被激活。
5.如前述的任一权利要求所述的方法,还包括进一步的步骤:
计算每个所述分区中的节点数,并且只有当所述节点在包括最大节点数的所述分区内时使所述节点激活以保持活动;而如果有多于一个的所述分区具有所述最大节点数,那么使用所述分区值来确定哪一个所述分区中的所述节点是否保持活动。
6.如前述的任一项权利要求所述的方法,其中较大的素数将分配给一个或多个特定节点,以增加所述特定节点位于所述活动的分区中的可能性。
7.如权利要求5或6所述的方法,其中所述素数是从一个素数范围内随机选择的。
8.如权利要求7所述的方法,其中:提供多个素数范围,每个范围分配给不同种类的节点。
9.如前述的任一权利要求所述的方法,其中用于表示所述素数的位数在一个预定的限制范围内调整。
10.如权利要求2-9的任一权利要求所述的方法,其中用于所述集群的一个新节点的所述素数被选择为通过将集群中另一个所述现有节点的所述记录中保持的最大素数进行递增而获得的、未分配给集群中任何其他节点的最小素数。
11.一种用于在节点集群中管理分区划分的设备,该设备可被操作来:
a)  为所述节点的集群中的节点分配素数;
b)  监视所述集群以用于所述集群的分区划分;
c)  如果检测到所述集群的分区划分,则从分配到每个分区中的每个所述节点的所述素数的乘积中计算出分区值;
d)  如果所述节点在具有最大分区值的所述分区内,则使所述节点在所述分区中被激活。
12.如权利要求11所述的设备,其中所述节点维护一个分配给该集群中每个节点的全部素数的记录。
13.如权利要求11或12所述的设备,其中所述节点将唯一的标识符和所述分配的素数发送给所述集群中的所有其他节点。
14.如权利要求11至13的任一权利要求所述的设备,其中如果所述节点在不具有最大分区值的所述分区内,则所述节点被安排为不被激活。
15.如权利要求11至14的任一权利要求所述的设备,进一步可被操作来:
计算每个所述分区中的节点数,并且如果所述节点在包括最大节点数的所述分区内,则使所述节点保持活动;而如果有多于一个的所述分区具有所述最大节点数,则使用所述分区值来确定所述节点是否保持活动。
16.如权利要求11至15的任一权利要求所述的设备,其中较大的素数将分配给一个或多个特定节点,以增加所述特定节点位于所述活动的分区中的可能性。
17.如权利要求15或16所述的设备,其中所述素数是从一个素数范围内随机选择的。
18.如权利要求17所述的设备,其中:提供多个素数范围,每个范围分配给不同种类的节点。
19.如权利要求11至18的任一权利要求所述的设备,其中用于表示所述素数的位数在一个预定的限制范围内调整。
20.如权利要求12至19的任一权利要求所述的设备,其中用于所述集群中的一个新节点的所述素数被选择为未分配给集群中任何其他节点的最小素数。
CNA2007101676416A 2006-11-11 2007-10-26 一种用于在节点集群中管理分区划分的方法和设备 Pending CN101178668A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0622553.6A GB0622553D0 (en) 2006-11-11 2006-11-11 A method, apparatus or software for managing partitioning in a cluster of nodes
GB0622553.6 2006-11-11

Publications (1)

Publication Number Publication Date
CN101178668A true CN101178668A (zh) 2008-05-14

Family

ID=37594791

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101676416A Pending CN101178668A (zh) 2006-11-11 2007-10-26 一种用于在节点集群中管理分区划分的方法和设备

Country Status (3)

Country Link
US (1) US8645525B2 (zh)
CN (1) CN101178668A (zh)
GB (1) GB0622553D0 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012083693A1 (zh) * 2011-07-26 2012-06-28 华为技术有限公司 一种用于集群计算机系统的投票仲裁方法及装置
CN102640133A (zh) * 2009-10-30 2012-08-15 日立数据系统有限公司 使用名称空间在分区的内容平台上的固定内容存储

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192401B1 (en) * 1997-10-21 2001-02-20 Sun Microsystems, Inc. System and method for determining cluster membership in a heterogeneous distributed system
US5999712A (en) 1997-10-21 1999-12-07 Sun Microsystems, Inc. Determining cluster membership in a distributed computer system
JP3833412B2 (ja) * 1999-04-09 2006-10-11 富士通株式会社 有限体演算における表現データ生成装置および方法
US7093133B2 (en) * 2001-12-20 2006-08-15 Hewlett-Packard Development Company, L.P. Group signature generation system using multiple primes
US8812501B2 (en) * 2005-08-08 2014-08-19 Hewlett-Packard Development Company, L.P. Method or apparatus for selecting a cluster in a group of nodes
US7926043B2 (en) * 2006-06-20 2011-04-12 Microsoft Corporation Data structure path profiling

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102640133A (zh) * 2009-10-30 2012-08-15 日立数据系统有限公司 使用名称空间在分区的内容平台上的固定内容存储
CN102640133B (zh) * 2009-10-30 2015-04-01 日立数据系统有限公司 用于操作物理归档集群实例的方法和装置
WO2012083693A1 (zh) * 2011-07-26 2012-06-28 华为技术有限公司 一种用于集群计算机系统的投票仲裁方法及装置

Also Published As

Publication number Publication date
GB0622553D0 (en) 2006-12-20
US20080301287A1 (en) 2008-12-04
US8645525B2 (en) 2014-02-04

Similar Documents

Publication Publication Date Title
CN106663030B (zh) 在分布式集群中的可扩展故障恢复通信
CN106575247B (zh) 计算集群的容错联盟
CN1669001B (zh) 用于在服务器整合环境中执行业务连续性策略的方法和装置
EP3279794B1 (en) Time-based node election method and apparatus
US5778224A (en) Method of executing a plurality of transactions and a distributed processing system for performing such a method
US10454754B1 (en) Hybrid cluster recovery techniques
US20060155912A1 (en) Server cluster having a virtual server
CN106789362A (zh) 一种设备管理方法及网管系统
CN111049705A (zh) 一种监控分布式存储系统的方法及装置
US20090070425A1 (en) Data processing system, method of updating a configuration file and computer program product
CN112217847A (zh) 微服务平台及其实现方法、电子设备及存储介质
CN106775953A (zh) 实现OpenStack高可用的方法与系统
WO2012069091A1 (en) Real time database system
CN109101357A (zh) 一种osd故障的检测方法及装置
CN105337780A (zh) 一种服务器节点配置方法及物理节点
CN111158608A (zh) 硬盘故障处理方法、装置及分布式系统
CN106657167A (zh) 管理服务器、服务器集群、以及管理方法
CN104185841A (zh) 数据库系统、程序以及数据处理方法
CN114070739A (zh) 一种集群部署方法、装置、设备和计算机可读存储介质
CN116777182A (zh) 半导体晶圆制造执行任务派工方法
EP4116827A1 (en) A distributed event platform for processing and publishing event transactions
CN101467132A (zh) 用于在通信网络中分配数据处理单元的方法和系统
CN114531373A (zh) 节点状态检测方法、节点状态检测装置、设备及介质
CN101178668A (zh) 一种用于在节点集群中管理分区划分的方法和设备
CN109510730A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication