專(zhuān)利名稱(chēng):一種用于在節(jié)點(diǎn)集群中管理分區(qū)劃分的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及 一 種用于在節(jié)點(diǎn)集群中管理分區(qū)劃分
(partitioning)的方法、i殳備或軟^f牛。
背景技術(shù):
在計(jì)算體系中,集群是一種用于表示一 系列諸如計(jì)算機(jī)的互聯(lián)的 節(jié)點(diǎn)的術(shù)語(yǔ)。將集群安排用以提供諸如對(duì)處理許多并發(fā)計(jì)算任務(wù)的負(fù) 載進(jìn)行平衡的設(shè)備、提供如數(shù)據(jù)、應(yīng)用程序或并行處理等資源的高可 用性。將高可用性(HA)集群安排用以保證該集群提供的服務(wù)的可用 性,并且可以使用通常情況下不活動(dòng)的冗余節(jié)點(diǎn)來(lái)實(shí)現(xiàn)。然后,使用 這些非活動(dòng)的節(jié)點(diǎn)代替任何故障的活動(dòng)節(jié)點(diǎn)來(lái)提供集群服務(wù)。將用于 給定集群的集群管理系統(tǒng)安排來(lái)使用集群中固有的冗余,以消除單點(diǎn) 故障。
針對(duì)集群而必須管理的一個(gè)問(wèn)題是分區(qū)劃分。分區(qū)劃分發(fā)生在一 個(gè)或多個(gè)節(jié)點(diǎn)出現(xiàn)故障的時(shí)候,或節(jié)點(diǎn)之間的通信鏈路出現(xiàn)故障的時(shí) 候。這會(huì)導(dǎo)致該集群被有效地分成兩個(gè)分離的子集群或分區(qū)。如果沒(méi) 有被正確地管理,集群分區(qū)可能竟?fàn)幹T如通信或數(shù)據(jù)資源之類(lèi)的集群 資源,這可能導(dǎo)致數(shù)據(jù)損壞或服務(wù)降級(jí)。因此, 一旦檢測(cè)到分區(qū)劃分, 就將每個(gè)集群分區(qū)安排用以識(shí)別是否它應(yīng)該提供集群的服務(wù),還是應(yīng) 該關(guān)閉而由另一分區(qū)來(lái)提供服務(wù)。
一種用于確定哪一個(gè)分區(qū)應(yīng)該在重組中存活的方法是一個(gè)定額 系統(tǒng)(quorum system),其中選擇出 一個(gè)分區(qū)提供集群的服務(wù)。在一 些定額系統(tǒng)中,給節(jié)點(diǎn)分配不同的權(quán)值,針對(duì)每個(gè)分區(qū)的節(jié)點(diǎn)權(quán)值的 乘積來(lái)確定哪個(gè)分區(qū)提供集群的服務(wù)。采用這種定額系統(tǒng)存在的一個(gè) 問(wèn)題是,分區(qū)可能伴隨著相等數(shù)量的節(jié)點(diǎn)或節(jié)點(diǎn)的權(quán)值乘積相同而出
現(xiàn)。在這種情況下,除非提供一個(gè)額外的管理系統(tǒng)來(lái)解決這種"加
賽"(tie-break)的情況,否則集群分區(qū)會(huì)相互竟?fàn)帲瑢?dǎo)致數(shù)據(jù)損 壞或服務(wù)降級(jí)。附加的管理系統(tǒng)增加了用來(lái)對(duì)集群進(jìn)行重組的時(shí)間以 及在每個(gè)節(jié)點(diǎn)上的處理負(fù)擔(dān)。
發(fā)明內(nèi)容
本發(fā)明的 一 個(gè)實(shí)施例提供 一 種用于在節(jié)點(diǎn)集群中管理分區(qū)劃分 的方法,該方法包括步驟
a) 為節(jié)點(diǎn)集群中的節(jié)點(diǎn)分配素?cái)?shù);
b) 監(jiān)視這個(gè)集群以用于該集群的分區(qū)劃分;
c) 如果檢測(cè)到該集群的分區(qū)劃分,則從分配給每個(gè)分區(qū)中的每 個(gè)節(jié)點(diǎn)的素?cái)?shù)的乘積中計(jì)算出分區(qū)值;
d) 如果節(jié)點(diǎn)在具有最大分區(qū)值的分區(qū)中,那么使該節(jié)點(diǎn)在該分 區(qū)中激活。
該節(jié)點(diǎn)可以維護(hù)一個(gè)分配給該集群中每個(gè)節(jié)點(diǎn)的所有素?cái)?shù)的記 錄。該節(jié)點(diǎn)可以將一個(gè)唯一的標(biāo)識(shí)符和所分配的素?cái)?shù)發(fā)送到集群中所 有的其他節(jié)點(diǎn)。如果該節(jié)點(diǎn)在不具有最大分區(qū)值的分區(qū)內(nèi),那么該節(jié) 點(diǎn)可能未激活。該方法可以包括進(jìn)一步的步驟計(jì)算每個(gè)分區(qū)中的節(jié) 點(diǎn)數(shù),如果一個(gè)節(jié)點(diǎn)在具有最大節(jié)點(diǎn)數(shù)的分區(qū)內(nèi)則使該節(jié)點(diǎn)保持活 動(dòng);如果有多于一個(gè)的分區(qū)具有最大節(jié)點(diǎn)數(shù),則使用分區(qū)值來(lái)確定是 否將該節(jié)點(diǎn)保持活動(dòng)。
較大的素?cái)?shù)可以被分配給一個(gè)或多個(gè)特定節(jié)點(diǎn),以便增加特定節(jié) 點(diǎn)位于活動(dòng)的分區(qū)中的可能性。素?cái)?shù)可以從一個(gè)素?cái)?shù)范圍內(nèi)隨機(jī)選 擇??梢蕴峁┒鄠€(gè)素?cái)?shù)范圍,將每個(gè)素?cái)?shù)范圍分配給不同種類(lèi)的節(jié)點(diǎn)。 可以在 一 個(gè)預(yù)定的限制范圍之內(nèi)調(diào)整表示素?cái)?shù)的位數(shù)。可以將用于該 集群的新節(jié)點(diǎn)的素?cái)?shù)選擇為未分配給集群中任何其他節(jié)點(diǎn)的最小素 數(shù)。
另一個(gè)實(shí)施例提供一種用于在節(jié)點(diǎn)集群中管理分區(qū)劃分的設(shè)備, 該設(shè)備可被操作來(lái)a) 為節(jié)點(diǎn)集群中的節(jié)點(diǎn)分配素?cái)?shù);
b) 監(jiān)視這個(gè)集群以用于該集群的分區(qū)劃分;
c) 如果檢測(cè)到該集群的分區(qū)劃分,則從分配給每個(gè)分區(qū)中的每 個(gè)節(jié)點(diǎn)的素?cái)?shù)的乘積中計(jì)算出分區(qū)值;
d) 如果節(jié)點(diǎn)在具有最大分區(qū)值的分區(qū)中,那么使該節(jié)點(diǎn)在該分 區(qū)中被激活。
另 一個(gè)實(shí)施例提供一個(gè)程序或一組程序,其被安排用來(lái)使一個(gè)可 編程的裝置或一組這樣的裝置來(lái)執(zhí)行用于管理節(jié)點(diǎn)集群中分區(qū)劃分 的方法,該方法包括步驟
a) 為節(jié)點(diǎn)集群中的節(jié)點(diǎn)分配素?cái)?shù);
b) 監(jiān)視這個(gè)集群以用于該集群的分區(qū)劃分;
c) 如果檢測(cè)到該集群的分區(qū)劃分,則從分配給每個(gè)分區(qū)中的每 個(gè)節(jié)點(diǎn)的素?cái)?shù)的乘積中計(jì)算出分區(qū)值;
d) 如果節(jié)點(diǎn)在具有最大分區(qū)值的分區(qū)中,那么使該節(jié)點(diǎn)在該分 區(qū)中^皮激活。
另外一個(gè)實(shí)施例提供一個(gè)程序或一組程序,用來(lái)使一個(gè)可編程的 裝置或一組這樣的裝置來(lái)提供用于在一個(gè)節(jié)點(diǎn)集群中管理分區(qū)的設(shè) 備,該設(shè)備可被操作為
a) 為節(jié)點(diǎn)集群中的節(jié)點(diǎn)分配素?cái)?shù);
b) 監(jiān)視這個(gè)集群以用于該集群的分區(qū)劃分;
c) 如果檢測(cè)到該集群的分區(qū)劃分,則從分配給每個(gè)分區(qū)中的每 個(gè)節(jié)點(diǎn)的素?cái)?shù)的乘積中計(jì)算出分區(qū)值;
d) 如果節(jié)點(diǎn)在具有最大分區(qū)值的分區(qū)中,那么使該節(jié)點(diǎn)在該分 區(qū)中祐j敫活。
現(xiàn)在將參考附圖僅僅通過(guò)舉例的方式來(lái)描述本發(fā)明的實(shí)施例,附 圖中
圖1為包含集群的計(jì)算機(jī)網(wǎng)絡(luò)的示意圖2是示出用于圖1中的集群中的數(shù)據(jù)的表格; 圖3是示出當(dāng)向圖1的集群中增加新節(jié)點(diǎn)時(shí)所執(zhí)行的處理的流程 圖;以及
圖4是示出當(dāng)在圖1的集群中檢測(cè)到分區(qū)劃分時(shí)所執(zhí)行的處理的 流程圖。
具體實(shí)施例方式
參考圖1,以高可用性集群101的形式存在的計(jì)算機(jī)集群通過(guò)網(wǎng) 絡(luò)102連接到客戶(hù)端計(jì)算機(jī)103。集群101包含服務(wù)器計(jì)算機(jī)104、 105、 106、 107形式的4個(gè)節(jié)點(diǎn)以及2個(gè)數(shù)據(jù)庫(kù)108、 109。集群101 中的單元通過(guò)集群互聯(lián)110相互連接,集群互聯(lián)110還提供集群101 和網(wǎng)絡(luò)102之間的連接。該集群被安排用以向客戶(hù)端計(jì)算機(jī)10 3提供 數(shù)據(jù)庫(kù)服務(wù)。服務(wù)器計(jì)算機(jī)104、 105、 106、 107運(yùn)行數(shù)據(jù)庫(kù)應(yīng)用程 序,所述數(shù)據(jù)庫(kù)應(yīng)用程序使用兩個(gè)數(shù)據(jù)庫(kù)108、 109用于存儲(chǔ)它們的 相關(guān)數(shù)據(jù)。每一個(gè)服務(wù)器計(jì)算機(jī)104、 105、 106、 107都被分配一個(gè) 唯一的標(biāo)識(shí)符,其形式為媒體訪問(wèn)控制(MAC)地址,為清楚起見(jiàn), 在圖1中分別用字母A、 B、 C、 D表示。
另外,為運(yùn)行數(shù)據(jù)庫(kù)應(yīng)用程序,每個(gè)服務(wù)器計(jì)算機(jī)104、 105、 106、 107運(yùn)行集群管理程序,將該集群管理程序安排用以使得每個(gè)節(jié)點(diǎn) 104、 105、 106、 107在集群101中正常執(zhí)行。集群管理程序的功能之 一是,當(dāng)節(jié)點(diǎn)或通信鏈路發(fā)生錯(cuò)誤而導(dǎo)致集群101的分區(qū)劃分的情況 下,使集群能夠自發(fā)地進(jìn)行重組。集群重組保證了由集群101向客戶(hù) 端計(jì)算機(jī)103所提供的數(shù)據(jù)庫(kù)服務(wù)的最小限度的中斷。
在當(dāng)前實(shí)施例中,節(jié)點(diǎn)104、 105、 106、 107中的每一個(gè)節(jié)點(diǎn)都 被分配一個(gè)素?cái)?shù),對(duì)于每個(gè)給定節(jié)點(diǎn)來(lái)說(shuō)該素?cái)?shù)都是唯一的。每個(gè)節(jié) 點(diǎn)還配有一個(gè)查詢(xún)表(LUT) 201,如圖2所示,表中存儲(chǔ)了所有節(jié)點(diǎn) 104、 105、 106、 107的MAC地址和它們相關(guān)的素?cái)?shù)。當(dāng)新節(jié)點(diǎn)加入到 集群IOI中時(shí),它們的集群管理程序?qū)⒆詣?dòng)為它們分配一個(gè)未使用的 素?cái)?shù)。新節(jié)點(diǎn)的MAC地址和它相關(guān)的素?cái)?shù)被發(fā)送給集群中的每個(gè)現(xiàn)有
節(jié)點(diǎn),以更新它們相應(yīng)的LUT 201。新節(jié)點(diǎn)被包括到具有完全更新的 LUT 201的集群中。
當(dāng)節(jié)點(diǎn)104、 105、 106、 107中的4壬何一個(gè)節(jié)點(diǎn)4全測(cè)到故障的情 況下,由故障檢測(cè)節(jié)點(diǎn)的集群管理程序?qū)?一 個(gè)分區(qū)消息廣播給集群 101中的所有節(jié)點(diǎn)。響應(yīng)分區(qū)消息,將每個(gè)節(jié)點(diǎn)104、 105、 106、 107 安排用以識(shí)別在它的分區(qū)中的所有其他節(jié)點(diǎn),然后使用它的LUT 201 來(lái)計(jì)算分配給那些節(jié)點(diǎn)中的每一個(gè)節(jié)點(diǎn)的素?cái)?shù)的乘積x。然后每個(gè)節(jié) 點(diǎn)計(jì)算分配給不在它的分區(qū)中的每個(gè)節(jié)點(diǎn)的素?cái)?shù)的乘積y。如果乘積 x大于乘積y,則這一個(gè)節(jié)點(diǎn)位于活動(dòng)的分區(qū)內(nèi),該分區(qū)將在故障后 提供集群服務(wù)。在活動(dòng)的分區(qū)中的每個(gè)節(jié)點(diǎn)中的集群管理程序被安排 用以與該分區(qū)中的其他節(jié)點(diǎn)協(xié)作來(lái)提供集群服務(wù)。如果乘積x比乘積 y小,則這一個(gè)節(jié)點(diǎn)在非活動(dòng)的分區(qū)中,并且每個(gè)這樣的節(jié)點(diǎn)停止提 供任何集群服務(wù)。因?yàn)闆](méi)有兩個(gè)分區(qū)具有它們各自分配到的素?cái)?shù)的相 同乘積,這樣,協(xié)作的集群管理程序避免了在分區(qū)劃分事件中利用針 對(duì)限定作為活動(dòng)分區(qū)的相同標(biāo)準(zhǔn)形成的兩個(gè)分區(qū)的可能性,因?yàn)闆](méi)有 兩個(gè)分區(qū)可以具有它們各自分配到的素?cái)?shù)的相同乘積。兩組素?cái)?shù)的乘 積永遠(yuǎn)不可能具有相同的值的事實(shí)是以算術(shù)基本定理為基礎(chǔ)的,也是 通常所i兌的p舉 一 一斤因定理(unique factorization theorem)。
這里將參考圖3的流程圖對(duì)加入到集群101的節(jié)點(diǎn)所執(zhí)行的處理 做更為詳細(xì)的描述。在步驟301, —個(gè)連接到集群互聯(lián)110的新節(jié)點(diǎn) 的集群管理程序開(kāi)始處理。在步驟302,該新節(jié)點(diǎn)訪問(wèn)該群中一個(gè)或 多個(gè)現(xiàn)有節(jié)點(diǎn)的LUT 201。這使得該新節(jié)點(diǎn)識(shí)別該集群中最后被分配 的素?cái)?shù),并用集群中現(xiàn)有節(jié)點(diǎn)的MAC地址和分配的素?cái)?shù)繁殖它自己的 LUT201。然后處理移到步驟303,在這里確定下一個(gè)最小的未使用的 素?cái)?shù),然后處理移到步驟304。在步驟304,分配給該新節(jié)點(diǎn)的素?cái)?shù) 被存儲(chǔ)在該新節(jié)點(diǎn)的LUT 201中。然后處理移到步驟305,在這里該 新節(jié)點(diǎn)向網(wǎng)絡(luò)中的所有現(xiàn)有節(jié)點(diǎn)廣播自己的MAC地址和分配的素?cái)?shù), 因而使每個(gè)節(jié)點(diǎn)用該新節(jié)點(diǎn)的細(xì)節(jié)更新它們各自的LUT。然后該集群 繼續(xù)如常提供服務(wù),必要時(shí)會(huì)使用該新節(jié)點(diǎn)的資源。
現(xiàn)在將參考圖4的流程圖進(jìn)一步描述當(dāng)檢測(cè)到一個(gè)分區(qū)劃分時(shí)集
群101中的任一節(jié)點(diǎn)所執(zhí)行的處理。在步驟401,警告當(dāng)前節(jié)點(diǎn)關(guān)于 集群IOI已被分區(qū)劃分的事實(shí)。該節(jié)點(diǎn)或者通過(guò)其自身檢測(cè)到分區(qū)劃 分而被警告,或者由其他節(jié)點(diǎn)發(fā)來(lái)的分區(qū)通知消息而被警告。然后處 理移到步驟402,在這里訪問(wèn)LUT。在步驟403,該節(jié)點(diǎn)確定哪些其他 節(jié)點(diǎn)在同一個(gè)分區(qū)中,之后處理移到步驟404。在步驟404,根據(jù)LUT 中的條目,計(jì)算分配給每個(gè)節(jié)點(diǎn)的素?cái)?shù)的乘積x,其中這些節(jié)點(diǎn)被識(shí) 別為存在于當(dāng)前分區(qū)中。之后處理移到步驟405,在這里根據(jù)LUT中 的剩余條目計(jì)算那些被識(shí)別為不存在于當(dāng)前分區(qū)中的每個(gè)節(jié)點(diǎn)所分 配到的素?cái)?shù)的乘積y。
然后處理移到步驟406,在這里比較乘積x和乘積y,如果x大 于y則處理移到步驟407。在步驟407,該節(jié)點(diǎn)纟皮指定為保持活動(dòng)的 節(jié)點(diǎn),也就是說(shuō),在活動(dòng)的子集群或分區(qū)中的節(jié)點(diǎn)。之后這個(gè)活動(dòng)的 分區(qū)繼續(xù)提供集群101的服務(wù)。如果在步驟406, x小于y,則處理 移到步驟409,在這里該節(jié)點(diǎn)被指定為不活動(dòng)的節(jié)點(diǎn),并將和所在分 區(qū)中的所有其他節(jié)點(diǎn)一起被關(guān)閉。
一旦分區(qū)劃分發(fā)生,活動(dòng)的子集群將繼續(xù)提供集群服務(wù),直到引 起分區(qū)劃分的所述錯(cuò)誤被校正并且整個(gè)集群恢復(fù),或者直到該活動(dòng)的 子集群的進(jìn)一步分區(qū)劃分發(fā)生。
在另一個(gè)實(shí)施例中,通常選擇具有最大數(shù)目節(jié)點(diǎn)的子集群作為活 動(dòng)分區(qū)。只有當(dāng)兩個(gè)分區(qū)具有相同的最大數(shù)目的節(jié)點(diǎn)的情況下,使用 分配的素?cái)?shù)的乘積來(lái)確定哪個(gè)分區(qū)應(yīng)該;陂選為活動(dòng)的分區(qū)。
在又一個(gè)實(shí)施例中,從一個(gè)預(yù)定的素?cái)?shù)范圍內(nèi)選擇素?cái)?shù)。在另一 個(gè)實(shí)施例中,從一個(gè)素?cái)?shù)范圍內(nèi)隨機(jī)選擇素?cái)?shù)。在又一個(gè)實(shí)施例中, 將較大的素?cái)?shù)分配給更特殊的節(jié)點(diǎn),使得在由分區(qū)劃分引起重組之后 那些特殊節(jié)點(diǎn)更多地在活動(dòng)的分區(qū)中。在另一個(gè)實(shí)施例中,提供多個(gè) 素?cái)?shù)范圍,每個(gè)范圍被安排用于分配給不同類(lèi)型的節(jié)點(diǎn)。
在又一個(gè)實(shí)施例中,素?cái)?shù)和節(jié)點(diǎn)標(biāo)識(shí)符對(duì)被存儲(chǔ)在全局表中,以 避免新節(jié)點(diǎn)訪問(wèn)現(xiàn)有節(jié)點(diǎn)的LUT的需要,也避免了單獨(dú)節(jié)點(diǎn)管理它們 各自的LUT的需要。在另一個(gè)實(shí)施例中,使用數(shù)學(xué)庫(kù)函數(shù),以便將生 成的素?cái)?shù)保持在諸如64位之類(lèi)的預(yù)定限制范圍內(nèi)。
在又一個(gè)實(shí)施例中,并不采用每個(gè)節(jié)點(diǎn)都運(yùn)行集群管理程序的方 式,取而代之的是提供一個(gè)中央集群管理程序,由節(jié)點(diǎn)中的一個(gè)或一 個(gè)指定的節(jié)點(diǎn)來(lái)運(yùn)行。該中央集群管理程序向集群中的每個(gè)節(jié)點(diǎn)提供 集群管理功能,擁有一個(gè)中央LUT,當(dāng)分區(qū)劃分發(fā)生時(shí)執(zhí)行計(jì)算功能 以選出活動(dòng)的分區(qū)。
本領(lǐng)域技術(shù)人員可以理解,集群節(jié)點(diǎn)可以由虛擬節(jié)點(diǎn)或機(jī)器來(lái)提 供。此外,雖然上面的實(shí)施例涉及高可用性集群,但是這些集群的特 征還可以組合于其他集群服務(wù)或功能,例如并行處理或負(fù)載平衡。
本領(lǐng)域技術(shù)人員可以理解,體現(xiàn)了本發(fā)明的部分或全部的設(shè)備可 以是通用的裝置,其具有安排來(lái)提供本發(fā)明的部分或全部實(shí)施例的軟 件。該裝置可以是單個(gè)的裝置也可以是一組裝置,該軟件可以是一個(gè) 單個(gè)的程序也可以是一組程序。此外,用于實(shí)現(xiàn)本發(fā)明的任何軟件或 全部的軟件都可以通過(guò)任何適當(dāng)?shù)膫鬏敾虼鎯?chǔ)方式被傳送,以便可以 將該軟件加載到一個(gè)或多個(gè)裝置上。
雖然本發(fā)明已在其實(shí)施例的描述中被說(shuō)明,并且實(shí)施例已被描述 得相當(dāng)詳細(xì),然而這不意p未著申請(qǐng)人要以該詳細(xì)描述來(lái)限定,或以任 何方式限制所附權(quán)利要求書(shū)的保護(hù)范圍。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō), 額外的改進(jìn)和修改也是顯而易見(jiàn)的。因此,在更寬范圍內(nèi)的發(fā)明不被 限制到詳細(xì)的具有代表性的設(shè)備和方法中以及所示和所說(shuō)明的示意 性示例中。相應(yīng)地,在不偏離申請(qǐng)人的總的發(fā)明構(gòu)思的精神和范圍的 情況下,可以對(duì)本發(fā)明的細(xì)節(jié)進(jìn)行改動(dòng)。
權(quán)利要求
1.一種用于在節(jié)點(diǎn)集群中管理分區(qū)劃分的方法,該方法包括步驟a)為所述節(jié)點(diǎn)的集群中的節(jié)點(diǎn)分配素?cái)?shù);b)監(jiān)視所述集群以用于所述集群的分區(qū)劃分;c)如果檢測(cè)到所述集群的分區(qū)劃分,則從分配到每個(gè)所述分區(qū)中的每個(gè)所述節(jié)點(diǎn)的所述素?cái)?shù)的乘積中計(jì)算出分區(qū)值;d)僅當(dāng)所述節(jié)點(diǎn)在具有最大分區(qū)值的所述分區(qū)中時(shí)激活所述節(jié)點(diǎn),使所述節(jié)點(diǎn)在所述分區(qū)中被激活。
2. 如權(quán)利要求1所述的方法,其中每個(gè)所述節(jié)點(diǎn)都維護(hù)一個(gè)分配給該集群中每個(gè)節(jié)點(diǎn)的全部素?cái)?shù)的記錄。
3. 如前述的任一權(quán)利要求所述的方法,其中響應(yīng)于給節(jié)點(diǎn)分 配所述素?cái)?shù),所述節(jié)點(diǎn)將唯一的標(biāo)識(shí)符和所述分配的素?cái)?shù)發(fā)送給所述 集群中的所有其他節(jié)點(diǎn)。
4. 如前述的任一權(quán)利要求所述的方法,其中如果所述節(jié)點(diǎn)在 不具有最大分區(qū)值的所述分區(qū)內(nèi),則使所述節(jié)點(diǎn)不被激活。
5. 如前述的任一權(quán)利要求所述的方法,還包括進(jìn)一步的步驟 計(jì)算每個(gè)所述分區(qū)中的節(jié)點(diǎn)數(shù),并且只有當(dāng)所述節(jié)點(diǎn)在包括最大節(jié)點(diǎn)數(shù)的所述分區(qū)內(nèi)時(shí)使所述節(jié)點(diǎn)激活以保持活動(dòng);而如果有多于一 個(gè)的所述分區(qū)具有所述最大節(jié)點(diǎn)數(shù),那么使用所述分區(qū)值來(lái)確定哪一 個(gè)所述分區(qū)中的所述節(jié)點(diǎn)是否保持活動(dòng)。
6. 如前述的任一項(xiàng)權(quán)利要求所述的方法,其中較大的素?cái)?shù)將分 配給一個(gè)或多個(gè)特定節(jié)點(diǎn),以增加所述特定節(jié)點(diǎn)位于所述活動(dòng)的分區(qū) 中的可能性。
7. 如權(quán)利要求5或6所述的方法,其中所述素?cái)?shù)是從一個(gè)素?cái)?shù) 范圍內(nèi)隨機(jī)選擇的。 '
8. 如權(quán)利要求7所述的方法,其中提供多個(gè)素?cái)?shù)范圍,每個(gè) 范圍分配給不同種類(lèi)的節(jié)點(diǎn)。
9. 如前述的任一權(quán)利要求所述的方法,其中用于表示所述素?cái)?shù) 的位數(shù)在一個(gè)預(yù)定的限制范圍內(nèi)調(diào)整。
10. 如權(quán)利要求2-9的任一權(quán)利要求所述的方法,其中用于所 述集群的一個(gè)新節(jié)點(diǎn)的所述素?cái)?shù)被選擇為通過(guò)將集群中另一個(gè)所述 現(xiàn)有節(jié)點(diǎn)的所述記錄中保持的最大素?cái)?shù)進(jìn)行遞增而獲得的、未分配給 集群中任何其他節(jié)點(diǎn)的最小素?cái)?shù)。
11. 一種用于在節(jié)點(diǎn)集群中管理分區(qū)劃分的設(shè)備,該設(shè)備可被操 作來(lái)a) 為所述節(jié)點(diǎn)的集群中的節(jié)點(diǎn)分配素?cái)?shù);b) 監(jiān)視所述集群以用于所述集群的分區(qū)劃分;c) 如果檢測(cè)到所述集群的分區(qū)劃分,則從分配到每個(gè)分區(qū)中的 每個(gè)所述節(jié)點(diǎn)的所述素?cái)?shù)的乘積中計(jì)算出分區(qū)值;d) 如果所述節(jié)點(diǎn)在具有最大分區(qū)值的所述分區(qū)內(nèi),則使所述節(jié) 點(diǎn)在所述分區(qū)中被激活。
12. 如權(quán)利要求11所述的設(shè)備,其中所述節(jié)點(diǎn)維護(hù)一個(gè)分配給 該集群中每個(gè)節(jié)點(diǎn)的全部素?cái)?shù)的記錄。
13. 如權(quán)利要求11或12所述的設(shè)備,其中所述節(jié)點(diǎn)將唯一的標(biāo)識(shí)符和所述分配的素?cái)?shù)發(fā)送給所述集群中的所有其他節(jié)點(diǎn)。
14. 如權(quán)利要求11至13的任一權(quán)利要求所述的設(shè)備,其中如果 所述節(jié)點(diǎn)在不具有最大分區(qū)值的所述分區(qū)內(nèi),則所述節(jié)點(diǎn)被安排為不 被激活。
15. 如權(quán)利要求11至14的任一權(quán)利要求所述的設(shè)備,進(jìn)一步可 被操作來(lái)二計(jì)算每個(gè)所述分區(qū)中的節(jié)點(diǎn)數(shù),并且如果所述節(jié)點(diǎn)在包括最大節(jié) 點(diǎn)數(shù)的所述分區(qū)內(nèi),則使所述節(jié)點(diǎn)保持活動(dòng);而如果有多于一個(gè)的所 述分區(qū)具有所述最大節(jié)點(diǎn)數(shù),則使用所述分區(qū)值來(lái)確定所述節(jié)點(diǎn)是否 保持活動(dòng)。
16. 如權(quán)利要求11至15的任一權(quán)利要求所述的設(shè)備,其中較大 的素?cái)?shù)將分配給一個(gè)或多個(gè)特定節(jié)點(diǎn),以增加所述特定節(jié)點(diǎn)位于所述活動(dòng)的分區(qū)中的可能性。
17. 如權(quán)利要求15或16所述的設(shè)備,其中所述素?cái)?shù)是從一個(gè)素 數(shù)范圍內(nèi)隨機(jī)選擇的。
18. 如權(quán)利要求17所述的設(shè)備,其中提供多個(gè)素?cái)?shù)范圍,每 個(gè)范圍分配給不同種類(lèi)的節(jié)點(diǎn)。
19. 如權(quán)利要求11至18的任一權(quán)利要求所述的設(shè)備,其中用于 表示所述素?cái)?shù)的位數(shù)在 一 個(gè)預(yù)定的限制范圍內(nèi)調(diào)整。
20. 如權(quán)利要求12至19的任一權(quán)利要求所述的設(shè)備,其中用于 所述集群中的 一個(gè)新節(jié)點(diǎn)的所述素?cái)?shù)被選擇為未分配給集群中任何 其他節(jié)點(diǎn)的最小素?cái)?shù)。
全文摘要
本發(fā)明公開(kāi)了一種用于在節(jié)點(diǎn)集群中管理分區(qū)劃分的方法、設(shè)備和軟件,其中為每個(gè)節(jié)點(diǎn)分配一個(gè)素?cái)?shù),用于確定在集群分區(qū)劃分后哪個(gè)分區(qū)應(yīng)該被激活。
文檔編號(hào)G06F9/50GK101178668SQ20071016764
公開(kāi)日2008年5月14日 申請(qǐng)日期2007年10月26日 優(yōu)先權(quán)日2006年11月11日
發(fā)明者A·J·普雷斯頓 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司