專利名稱:識別集群網(wǎng)絡中可用分區(qū)的方法、裝置及集群網(wǎng)絡系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信技術(shù)領(lǐng)域,尤其涉及一種識別集群網(wǎng)絡分割的可用分區(qū)的方法、 裝置及集群網(wǎng)絡系統(tǒng)。
背景技術(shù):
隨著集群技術(shù)的成熟,越來越多的應用放在了集群系統(tǒng)上,使資源得到充分利用, 同時也避免單獨設備帶來的不可靠。集群系統(tǒng)的高可用性保障包括節(jié)點的故障檢測和恢復,節(jié)點的故障檢測大多都是用心跳機制來檢測,當網(wǎng)絡發(fā)生故障后,將集群割裂為幾個分區(qū),以保證集群正常工作,然而,被割裂的所有的分區(qū)上的物理節(jié)點都會嘗試提供所有服務,搶奪資源,以及嘗試恢復對方分區(qū)的服務,這樣在不能識別可用的分區(qū)和不可用分區(qū)的情況下,導致同一業(yè)務在不同的分區(qū)節(jié)點上啟動,從而發(fā)生腦裂?,F(xiàn)有技術(shù),針對于高可用集群出現(xiàn)網(wǎng)絡分割故障時發(fā)生腦裂的現(xiàn)象,通常采用1/2 仲裁方式識別集群中的可用分區(qū)和不可用分區(qū),以防止腦裂,具體為各自節(jié)點檢查當前分區(qū),當檢查當前分區(qū)中可用節(jié)點個數(shù)大于集群的總節(jié)點數(shù)的1/2時,判斷當前分區(qū)為可用分區(qū);否則判斷當前分區(qū)判定為不可用分區(qū),則對該不可用分區(qū)采用爆頭以預防腦裂。然而,采用1/2仲裁方式識別集群中的可用分區(qū),僅從每個分區(qū)所具有的節(jié)點個數(shù)來判斷分區(qū)是否是可用分區(qū),而沒有考慮整體的分割情況,因此,當出現(xiàn)下列情況無法有效判斷,可能導致整個集群對外服務不可I、網(wǎng)絡分割為2塊以上時,有可能沒有單個分區(qū)有大于1/2節(jié)點個數(shù)。2、集群節(jié)點個數(shù)為偶數(shù),網(wǎng)絡分割為2個平均的分區(qū)。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種識別可用分區(qū)的方法、裝置,以及應用該方法的集群網(wǎng)絡系統(tǒng),實現(xiàn)集群網(wǎng)絡分割時可用分區(qū)的有效識別。為了實現(xiàn)上述目的,本發(fā)明實施例提供如下技術(shù)方案本發(fā)明實施例提供一種集群網(wǎng)絡系統(tǒng),所述系統(tǒng)包括管理節(jié)點和至少兩個業(yè)務節(jié)點,其中所述業(yè)務節(jié)點用于向所述集群網(wǎng)絡系統(tǒng)中的其它業(yè)務節(jié)點發(fā)送心跳信息;當在預設時間內(nèi)沒收到I個或I個以上其它業(yè)務節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況,并收集其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),所述聯(lián)通狀況數(shù)據(jù)反映該業(yè)務節(jié)點與其它業(yè)務節(jié)點聯(lián)通與否;所述管理節(jié)點用于根據(jù)所述至少兩個業(yè)務節(jié)點收集的聯(lián)通狀況數(shù)據(jù),將所述集群網(wǎng)絡分割成至少兩個分區(qū),從所述分區(qū)中確定出可用分區(qū)。本發(fā)明實施例還提供了一種識別集群網(wǎng)絡中可用分區(qū)的方法,所述方法包括根據(jù)所述集群網(wǎng)絡中節(jié)點之間的聯(lián)通狀況數(shù)據(jù)將所述集群網(wǎng)絡分割成至少兩個分區(qū);
4
從所述分區(qū)中確定出可用分區(qū)。本發(fā)明實施例還提供了一種識別集群網(wǎng)絡中可用分區(qū)的裝置,所述裝置包括分割模塊,用于根據(jù)所述集群網(wǎng)絡中節(jié)點之間的聯(lián)通狀況數(shù)據(jù)將所述集群網(wǎng)絡分割成至少兩個分區(qū);識別模塊,用于從所述分區(qū)中確定出可用分區(qū)。本實施例通過業(yè)務節(jié)點檢測集群網(wǎng)絡中的其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況, 并收集其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),通過管理節(jié)點將所述集群網(wǎng)絡分割成至少兩個分區(qū),從所述分區(qū)中確定出可用分區(qū)。由于充分考慮了集群網(wǎng)絡中節(jié)點與節(jié)點間的聯(lián)通狀況數(shù)據(jù),使得當集群因為交換機或者其他原因發(fā)生網(wǎng)絡分割故障時,能夠有效識別可用分區(qū),繼續(xù)對外提供服務,尤其是當分區(qū)節(jié)點數(shù)目都小于或者等于1/2節(jié)點個數(shù),或當集群節(jié)點為偶數(shù)時,仍然能夠有效識別可用分區(qū),繼續(xù)對外提供服務。
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明實施例一提供的集群網(wǎng)絡系統(tǒng)一的結(jié)構(gòu)圖;圖2是本發(fā)明實施例一提供的集群網(wǎng)絡系統(tǒng)二的結(jié)構(gòu)圖;圖3是發(fā)明實施例二提供的識別集群網(wǎng)絡中可用分區(qū)的方法的實現(xiàn)的流程4是本發(fā)明實施例二提供的掩碼標識網(wǎng)絡節(jié)點的示意圖。圖5是本發(fā)明實施例二提供的識別網(wǎng)絡分區(qū)過程的示意圖;圖6是本發(fā)明實施例三提供的識別集群網(wǎng)絡中可用分區(qū)的裝置的結(jié)構(gòu)圖;、圖7是本發(fā)明實施例三提供的識別集群網(wǎng)絡中可用分區(qū)的裝置的另一結(jié)構(gòu)8是本發(fā)明實施例三提供的集群網(wǎng)絡中可用分區(qū)的裝置在集群網(wǎng)絡系統(tǒng)一布局的結(jié)構(gòu)圖;圖9是本發(fā)明實施例三提供的集群網(wǎng)絡中可用分區(qū)的裝置在集群網(wǎng)絡系統(tǒng)二布局的結(jié)構(gòu)圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。以下結(jié)合具體實施例對本發(fā)明的實現(xiàn)進行詳細描述實施例一本實施例中的集群網(wǎng)絡系統(tǒng)包括管理節(jié)點和至少兩個業(yè)務節(jié)點,其中所述業(yè)務節(jié)點用于向所述集群網(wǎng)絡系統(tǒng)中的其它業(yè)務節(jié)點發(fā)送心跳信息;當在預設時間內(nèi)沒收到I個或I個以上其它業(yè)務節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況,并收集其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),所述聯(lián)通狀況數(shù)據(jù)反映該業(yè)務節(jié)點與其它業(yè)務節(jié)點聯(lián)通與否;本實施例中,集群網(wǎng)絡中的節(jié)點平時定時互發(fā)心跳以通告其它的節(jié)點本節(jié)點存活,相應的,每個節(jié)點都會檢查是否收到其它節(jié)點的心跳數(shù)據(jù)。當一個節(jié)點在預設時間沒收到其它的I個節(jié)點的預設心跳信息時,可能是節(jié)點故障或單個節(jié)點主機隔離;當一個節(jié)點在預設時間沒有收到2個以上節(jié)點的心跳信息時,可能是多個節(jié)點故障或網(wǎng)絡分割故障。所述管理節(jié)點用于根據(jù)所述至少兩個業(yè)務節(jié)點收集的聯(lián)通狀況數(shù)據(jù),將所述集群網(wǎng)絡分割成至少兩個分區(qū),從所述分區(qū)中確定出可用分區(qū)。其中,管理節(jié)點可以是業(yè)務節(jié)點之外的節(jié)點,即管理節(jié)點可以不執(zhí)行集群系統(tǒng)的業(yè)務操作,在應用層面上實際不屬于該集群系統(tǒng),例如可以是第三方仲裁機為物理機或者虛擬機;管理節(jié)點也可以是業(yè)務節(jié)點中的某一個節(jié)點。其中,可用分區(qū)為節(jié)點個數(shù)最多的分區(qū)或分區(qū)權(quán)重值最大的分區(qū),所述分區(qū)權(quán)重值為根據(jù)所述分區(qū)中每個節(jié)點的權(quán)重,按照加權(quán)法則,計算得到的值。集群網(wǎng)絡系統(tǒng)一在集群網(wǎng)絡系統(tǒng)一中,管理節(jié)點是業(yè)務節(jié)點之外的節(jié)點,即獨立的管理節(jié)點,請參閱圖I示出了本發(fā)明實施例一提供的集群網(wǎng)絡系統(tǒng)一的結(jié)構(gòu)圖,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分,所述集群網(wǎng)絡系統(tǒng)包括匯聚交換機11 ;接入交換機12、接入
交換機13......接入交換機1M,每一個接入交換機對應的多個業(yè)務節(jié)點,節(jié)點I至節(jié)點N,
如接入交換機12對應的業(yè)務節(jié)點包括121、122......12N,接入交換機13對應的業(yè)務節(jié)點
包括131、132......13N,接入交換機IM對應的業(yè)務節(jié)點包括1M1、1M2......1MN,以及管理
節(jié)點15。在所述集群網(wǎng)絡系統(tǒng)一中,業(yè)務節(jié)點收集其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),并將收集到的數(shù)據(jù)發(fā)送到管理節(jié)點15,由管理節(jié)點15根據(jù)所述至少兩個業(yè)務節(jié)點收集的聯(lián)通狀況數(shù)據(jù),將所述集群網(wǎng)絡分割成至少兩個分區(qū),從所述分區(qū)中確定出可用分區(qū)。 其中,管理節(jié)點15收集到的聯(lián)通狀況數(shù)據(jù)可以是全部節(jié)點的數(shù)據(jù)時,也可以是部分節(jié)點的數(shù)據(jù),當收集的是全部節(jié)點數(shù)據(jù)時,則根據(jù)收集到的全部節(jié)點數(shù)據(jù)將所述集群網(wǎng)絡分割成至少兩個分區(qū),從所述分區(qū)中確定出可用分區(qū);當某些節(jié)點出現(xiàn)節(jié)點故障時,此時管理節(jié)點 15收集到的聯(lián)通狀況數(shù)據(jù)是部分業(yè)務節(jié)點的聯(lián)通狀況時,可以只根據(jù)收集到的節(jié)點數(shù)據(jù)將所述集群網(wǎng)絡分割成至少兩個分區(qū),從所述分區(qū)中確定出可用分區(qū);當然,管理節(jié)點15可以只收集發(fā)生變化的節(jié)點的聯(lián)通狀況數(shù)據(jù),而復用未發(fā)生變化的節(jié)點的聯(lián)通狀況數(shù)據(jù)。集群網(wǎng)絡系統(tǒng)二在集群網(wǎng)絡系統(tǒng)二中,管理節(jié)點是多個業(yè)務節(jié)點中的選取的某一個節(jié)點,請參閱圖2示出了本發(fā)明實施例一提供的集群網(wǎng)絡系統(tǒng)二的結(jié)構(gòu)圖,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分,所述集群網(wǎng)絡系統(tǒng)包括匯聚交換機21 ;接入交換機22、接入交
換機23......接入交換機2M,每一個接入交換機對應的多個業(yè)務節(jié)點,節(jié)點I至節(jié)點N,如
接入交換機22對應的業(yè)務節(jié)點包括221、222...... 22N,接入交換機23對應的業(yè)務節(jié)點包
括231、232...... 23N,接入交換機2M對應的業(yè)務節(jié)點包括2M1、2M2......2MN,以及存儲節(jié)
點25。集群網(wǎng)絡系統(tǒng)二還包括存儲節(jié)點25用于存儲所述業(yè)務節(jié)點收集的聯(lián)通狀況數(shù)據(jù)存儲節(jié)點,其中存儲節(jié)點可以實現(xiàn)為集群網(wǎng)路中的共享存儲,也可以實現(xiàn)為其它具備存儲功能的物理節(jié)點。此時,所述業(yè)務節(jié)點還用于將收集的其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù)發(fā)送給所述存儲節(jié)點;所述業(yè)務節(jié)點中選取的管理節(jié)點用于從所述存儲節(jié)點中獲取所述至少兩個業(yè)務節(jié)點收集的聯(lián)通狀況數(shù)據(jù)。以及所述管理節(jié)點還用于向所述集群網(wǎng)絡系統(tǒng)中的業(yè)務節(jié)點發(fā)送心跳信息;當在預設時間內(nèi)沒收到I個或I個以上業(yè)務節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的業(yè)務節(jié)點與自己本身的聯(lián)通狀況并收集業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),所述聯(lián)通狀況數(shù)據(jù)反映該管理節(jié)點與業(yè)務節(jié)點聯(lián)通與否。本實施例中,可以根據(jù)實際需求制定管理節(jié)點的選取策略,例如,可以在存儲節(jié)點中設置相應的屬性位,當存儲節(jié)點的數(shù)據(jù)發(fā)生變化時,業(yè)務節(jié)點對存儲節(jié)點的屬性值進行修改,可以選取第一個修改存儲節(jié)點的業(yè)務節(jié)點為管理節(jié)點,寫入數(shù)據(jù)順序由存儲節(jié)點上的寫入鎖保障。本實施例通過業(yè)務節(jié)點檢測集群網(wǎng)絡中的其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況, 并收集其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),通過管理節(jié)點將所述集群網(wǎng)絡分割成至少兩個分區(qū),從所述分區(qū)中確定出可用分區(qū)。由于充分考慮了集群網(wǎng)絡中節(jié)點與節(jié)點間的聯(lián)通狀況數(shù)據(jù),使得當集群因為交換機或者其他原因發(fā)生網(wǎng)絡分割故障時,而且分區(qū)節(jié)點數(shù)目都小于或者等于1/2節(jié)點個數(shù)的情形下,能夠有效識別可用分區(qū),繼續(xù)對外提供服務; 且當集群節(jié)點為偶數(shù)時,仍然能夠有效識別可用分區(qū),繼續(xù)對外提供服務。實施例二圖3示出了本發(fā)明實施例二提供的識別集群網(wǎng)絡中可用分區(qū)的方法的實現(xiàn)的流程圖,在集群網(wǎng)絡中所有節(jié)點會向其它節(jié)點發(fā)送心跳信息以檢測與其它節(jié)點的聯(lián)通狀況, 所述方法詳述如下在步驟S301中,根據(jù)所述集群網(wǎng)絡中節(jié)點之間的聯(lián)通狀況數(shù)據(jù)將所述集群網(wǎng)絡分割成至少兩個分區(qū)。本發(fā)明實施例通過集群網(wǎng)絡中各個節(jié)點之間的聯(lián)通狀況數(shù)據(jù)找到相互聯(lián)通的節(jié)點組成一個分區(qū),找到的各個分區(qū)之間不聯(lián)通。本實施例中,聯(lián)通狀況數(shù)據(jù)可以是本地存儲的,也可以是從存儲節(jié)點(例如共享存儲)上獲取的,當聯(lián)通狀況數(shù)據(jù)可以是本地存儲時,收集其它節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù)的過程具體為當在預設時間內(nèi)沒收到I個或I個以上節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的其它節(jié)點與自己本身的聯(lián)通狀況并收集其它節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),所述聯(lián)通狀況數(shù)據(jù)反映該節(jié)點與其它節(jié)點聯(lián)通與否,其中,可以通過Ping包檢測2節(jié)點間是否能夠聯(lián)通。本實施例中,所述聯(lián)通狀況數(shù)據(jù)可以使用二進制掩碼表示,具體為將集群網(wǎng)絡中的每一個節(jié)點與其它節(jié)點的聯(lián)通狀況分別以I個二進制字節(jié)表示,若當前節(jié)點跟其它節(jié)點的通信狀況為不連通,則記錄為O ;若當前節(jié)點跟其它節(jié)點的通信狀況為連通,則記錄為I ; 每個節(jié)點本身為聯(lián)通,記錄為I。則步驟S301具體可以采用以下方式I、判斷當前節(jié)點與其它節(jié)點是否聯(lián)通;2、若聯(lián)通則記錄為I,若未聯(lián)通則記錄為O ;3、判斷當前節(jié)點是否是集群網(wǎng)絡的最后一個節(jié)點,若是,則執(zhí)行步驟S302,若否, 則獲取下一個網(wǎng)絡節(jié)點,并執(zhí)行步驟I。值得說明的是,在實際的應用中,也可以采用若當前節(jié)點跟其它節(jié)點的通信狀況為不連通,則記錄為I ;若當前節(jié)點跟其它節(jié)點的通信狀況為連通,則記錄為O。為了便于理解,以下以8個節(jié)點的集群網(wǎng)絡為例對集群網(wǎng)絡中掩碼記錄的過程進行說明,但不以此情況為限,假設I號節(jié)點為當前節(jié)點,那么第I位即最低位表示跟I號節(jié)點自身的聯(lián)通狀態(tài)記錄I ;第2位表示I號節(jié)點與2號節(jié)點的聯(lián)通狀態(tài),為不聯(lián)通,則記錄為0 ;第3位表示I號節(jié)點與3號節(jié)點的聯(lián)通狀態(tài),為不聯(lián)通,則記錄為0 ;第4位表示
I號節(jié)點與4號節(jié)點的聯(lián)通狀態(tài),為聯(lián)通,則記錄為I ;......以此類推,I號節(jié)點與5號
節(jié)點至8號節(jié)點的聯(lián)通狀態(tài),均為不聯(lián)通,記錄為0,則I號節(jié)點與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)記錄為“00001001” ;2號節(jié)點與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)記錄為“00010010” ;3號節(jié)點與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)記錄為“11100100” ;4號節(jié)點與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)記錄為“00001001” ;5號節(jié)點與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)記錄為“00010010” ;6號節(jié)點與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)記錄為“11100100” ;7號節(jié)點與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)記錄為 “11100100” ;8號節(jié)點與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)記錄為“11100100”,具體可以參閱圖4。此時,所述步驟S301具體為A、在所述集群網(wǎng)絡節(jié)點之間的聯(lián)通狀況數(shù)據(jù)中選擇一個節(jié)點的聯(lián)通狀況數(shù)據(jù),將所述選擇的節(jié)點的聯(lián)通狀況數(shù)據(jù)與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)進行與運算,根據(jù)運算的結(jié)果,將與所述選擇的節(jié)點有交集的節(jié)點作為一個分區(qū);本實施例中,如果該節(jié)點的聯(lián)通狀況數(shù)據(jù)與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)進行與運算的結(jié)果不為0,表示兩節(jié)點有交集,則兩節(jié)點為相同分區(qū);如果該節(jié)點的聯(lián)通狀況數(shù)據(jù)與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)進行與運算的結(jié)果為0,表示兩節(jié)點沒有交集,則兩節(jié)點為不同分區(qū)。B、在未被分區(qū)的節(jié)點中繼續(xù)選擇下一個節(jié)點的聯(lián)通狀況數(shù)據(jù),將所述下一個節(jié)點的聯(lián)通狀況數(shù)據(jù)與剩余的未被分區(qū)的節(jié)點的聯(lián)通狀況數(shù)據(jù)繼續(xù)進行與運算,根據(jù)運算的結(jié)果,將與所述下一個節(jié)點有交集的節(jié)點作為一個分區(qū);C、判斷分區(qū)是否完成,若是,則結(jié)束;若否,則返回執(zhí)行步驟B。為了便于理解,以下仍然以上述8個節(jié)點的集群網(wǎng)絡為例,對集群網(wǎng)絡節(jié)點分區(qū)的過程進行說明,但不以此情況為限,請參與圖5為識別網(wǎng)絡分區(qū)的具體過程首先,將節(jié)點I與其它的7個節(jié)點進行與運算,根據(jù)運算結(jié)果,節(jié)點I與節(jié)點4有交集,則將節(jié)點I和節(jié)點4劃分為I個分區(qū);在未被分區(qū)的六個節(jié)點中,繼續(xù)將節(jié)點2與其它的節(jié)點進行與運算, 將節(jié)點2和節(jié)點5劃分為I個分區(qū);以此類推,得到節(jié)點3、節(jié)點6、節(jié)點7和節(jié)點8構(gòu)成的分區(qū),此時,分區(qū)完成,得到所有3個分區(qū)。本實施例中,通過二進制掩碼標識網(wǎng)絡節(jié)點間聯(lián)通狀況,使不同的網(wǎng)絡節(jié)點間通過循環(huán)與運算比較得到網(wǎng)絡整體狀態(tài),實現(xiàn)將集群網(wǎng)絡節(jié)點分割成不同的分區(qū)。在步驟S302中,從所述分區(qū)中確定出可用分區(qū);本實施例中,所述可用分區(qū)為節(jié)點個數(shù)最多的分區(qū)或分區(qū)權(quán)重值最大的分區(qū),所述分區(qū)權(quán)重值為根據(jù)所述分區(qū)中每個節(jié)點的權(quán)重,按照加權(quán)法則,計算得到的值,其中,每個節(jié)點的權(quán)重可以根據(jù)每個集群的具體情況進行預先設置。另外,可選的,本發(fā)明實施例提供的方法步驟S301之前還可以包括當在預設時間內(nèi)沒收到I個或I個以上節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的其它節(jié)點與自己本身的聯(lián)通狀況并收集其它節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),所述聯(lián)通狀況數(shù)據(jù)反映該節(jié)點與其它節(jié)點聯(lián)通與否。應當理解的是,該收集信息的步驟應當是至少兩個節(jié)點。本實施例中,當集群網(wǎng)絡遇到網(wǎng)絡分割故障后,各節(jié)點接收到分割故障信息,并根據(jù)故障信息,采用本實施例中的算法對集群進行分區(qū),取代了原來的1/2策略算法。后續(xù)集群管理進程使可用分區(qū)接管集群對外提供服務,并嘗試恢復位于非此分區(qū)上的業(yè)務;不可用分區(qū)的節(jié)點爆頭(下電),或根據(jù)業(yè)務用戶自設的網(wǎng)絡分割執(zhí)行策略,例如虛擬化集群下,可以按用戶設定的相關(guān)策略——虛擬機繼續(xù)運行/下電/強制下電執(zhí)行,以達到用戶期望結(jié)果。本實施例通過業(yè)務節(jié)點檢測集群網(wǎng)絡中的其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況, 并收集其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),通過管理節(jié)點將所述集群網(wǎng)絡分割成至少兩個分區(qū),從所述分區(qū)中確定出可用分區(qū)。由于充分考慮了集群網(wǎng)絡中節(jié)點與節(jié)點間的聯(lián)通狀況數(shù)據(jù),使得當集群因為交換機或者其他原因發(fā)生網(wǎng)絡分割故障時,而且分區(qū)節(jié)點數(shù)目都小于或者等于1/2節(jié)點個數(shù)的情形下,能夠有效識別可用分區(qū),繼續(xù)對外提供服務; 且當集群節(jié)點為偶數(shù)時,仍然能夠有效識別可用分區(qū),繼續(xù)對外提供服務。實施例三圖6示出了本發(fā)明實施例三提供的識別集群網(wǎng)絡中可用分區(qū)的裝置的結(jié)構(gòu)圖,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。所述裝置包括分割模塊61和識別模塊62。分割模塊61,用于根據(jù)所述集群網(wǎng)絡中節(jié)點之間的聯(lián)通狀況數(shù)據(jù)將所述集群網(wǎng)絡分割成至少兩個分區(qū);識別模塊62,用于從所述分區(qū)中確定出可用分區(qū)??蛇x的,所述聯(lián)通狀況數(shù)據(jù)可以使用二進制掩碼表示,所述分割模塊62具體用于A、在所述集群網(wǎng)絡節(jié)點之間的聯(lián)通狀況數(shù)據(jù)中選擇一個節(jié)點的聯(lián)通狀況數(shù)據(jù),將所述選擇的節(jié)點的聯(lián)通狀況數(shù)據(jù)與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)進行與運算,根據(jù)運算的結(jié)果,將與所述選擇的節(jié)點有交集的節(jié)點作為一個分區(qū)、在未被分區(qū)的節(jié)點中繼續(xù)選擇下一個節(jié)點的聯(lián)通狀況數(shù)據(jù),將所述下一個節(jié)點的聯(lián)通狀況數(shù)據(jù)與剩余的未被分區(qū)的節(jié)點繼續(xù)進行與運算,根據(jù)運算的結(jié)果,將與所述下一個節(jié)點有交集的節(jié)點作為一個分區(qū);C、判斷分區(qū)是否完成,若是,則結(jié)束;若否,則返回執(zhí)行步驟B。具體實現(xiàn)過程可以參考實施例二中介紹, 在此不再贅述??蛇x的,所述可用分區(qū)為節(jié)點個數(shù)最多的分區(qū)或分區(qū)權(quán)重值最大的分區(qū),所述分區(qū)權(quán)重值為根據(jù)所述分區(qū)中每個節(jié)點的權(quán)重,按照加權(quán)法則,計算得到的值??蛇x的,所述裝置還包括信息收集模塊63,請參閱圖7,信息收集模塊63用于當在預設時間內(nèi)沒收到I個或I個以上業(yè)務節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的業(yè)務節(jié)點與自己本身的聯(lián)通狀況并收集業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),所述聯(lián)通狀況數(shù)據(jù)反映該管理節(jié)點與業(yè)務節(jié)點聯(lián)通與否。應當理解的是,信息收集的功能可以由本發(fā)明實施例的識別可用分區(qū)裝置完成,也可以由其他裝置完成,例如集群系統(tǒng)中的集群故障檢測裝置等。根據(jù)集群網(wǎng)絡的不同,上述識別集群網(wǎng)絡中可用分區(qū)的裝置在集群網(wǎng)絡系統(tǒng)中的布局可以采用如下方式對于實施例一中的集群網(wǎng)絡系統(tǒng)一,識別集群網(wǎng)絡可用分區(qū)的裝置在集群網(wǎng)絡中的布局請參閱圖8,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分
9
其中,可以在各個業(yè)務節(jié)點上設置信息收集模塊63,用于當在預設時間內(nèi)沒收到 I個或I個以上其它業(yè)務節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況,并收集其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),所述聯(lián)通狀況數(shù)據(jù)反映該業(yè)務節(jié)點與其它業(yè)務節(jié)點聯(lián)通與否。應當理解的是,初始情況下,各個業(yè)務節(jié)點向所述集群網(wǎng)絡系統(tǒng)中的其它業(yè)務節(jié)點發(fā)送心跳信息,所述心跳信息用于檢測網(wǎng)絡的聯(lián)通狀況。部屬在獨立的管理節(jié)點上分隔模塊61和識別模塊62,根據(jù)所述至少兩個業(yè)務節(jié)點收集的聯(lián)通狀況數(shù)據(jù),將所述集群網(wǎng)絡分割成至少兩個分區(qū),從所述分區(qū)中確定出可用分區(qū)。對于實施例一中的集群網(wǎng)絡系統(tǒng)二,識別集群網(wǎng)絡中可用分區(qū)的裝置在集群網(wǎng)絡中的請參閱圖9,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分在所有業(yè)務節(jié)點上設置信息收集模塊63,向所述集群網(wǎng)絡系統(tǒng)中的其它業(yè)務節(jié)點發(fā)送心跳信息;當在預設時間內(nèi)沒收到I個或I個以上其它業(yè)務節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況,并收集其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),所述聯(lián)通狀況數(shù)據(jù)反映該業(yè)務節(jié)點與其它業(yè)務節(jié)點聯(lián)通與否;并在業(yè)務節(jié)點中選取業(yè)務節(jié)點I作為管理節(jié)點,并在所述選中的管理節(jié)點部屬所述分隔模塊61和識別模塊62,兩個模塊用于根據(jù)所述至少兩個業(yè)務節(jié)點收集的聯(lián)通狀況數(shù)據(jù),將所述集群網(wǎng)絡分割成至少兩個分區(qū),從所述分區(qū)中確定出可用分區(qū)。除以上之外,集群網(wǎng)絡中還可以包括存儲節(jié)點25,用來存儲各個業(yè)務節(jié)點收集的網(wǎng)絡連通狀況數(shù)據(jù),并提供給上述管理節(jié)點使用。本發(fā)明實施例提供的識別集群網(wǎng)絡中可用分區(qū)的裝置可以使用在前述對應的方法實施例二中,詳情參見上述實施例二的描述,在此不再贅述。值得注意的是,上述裝置和系統(tǒng)實施例中,所包括的各個單元只是按照功能邏輯進行劃分的,但并不局限于上述的劃分,只要能夠?qū)崿F(xiàn)相應的功能即可;另外,各功能單元的具體名稱也只是為了便于相互區(qū)分,并不用于限制本發(fā)明的保護范圍。另外,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述各實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,相應的程序可以存儲于一計算機可讀取存儲介質(zhì)中,所述的存儲介質(zhì),如R0M/RAM、磁盤或光盤等。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種集群網(wǎng)絡系統(tǒng),其特征在于,所述系統(tǒng)包括管理節(jié)點和至少兩個業(yè)務節(jié)點,其中所述業(yè)務節(jié)點用于向所述集群網(wǎng)絡系統(tǒng)中的其它業(yè)務節(jié)點發(fā)送心跳信息;當在預設時間內(nèi)沒收到I個或I個以上其它業(yè)務節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況,并收集其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),所述聯(lián)通狀況數(shù)據(jù)反映該業(yè)務節(jié)點與其它業(yè)務節(jié)點聯(lián)通與否;所述管理節(jié)點用于根據(jù)至少兩個業(yè)務所述節(jié)點收集的聯(lián)通狀況數(shù)據(jù),將所述集群網(wǎng)絡分割成至少兩個分區(qū),從所述分區(qū)中確定出可用分區(qū)。
2.根據(jù)權(quán)利要求I所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括存儲節(jié)點,其中所述存儲節(jié)點用于存儲所述業(yè)務節(jié)點收集的聯(lián)通狀況數(shù)據(jù);所述業(yè)務節(jié)點還用于將收集的其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù)發(fā)送給所述存儲節(jié)點;所述管理節(jié)點還用于從所述存儲節(jié)點中獲取所述至少兩個業(yè)務節(jié)點收集的聯(lián)通狀況數(shù)據(jù)。
3.根據(jù)權(quán)利要求I或2所述的系統(tǒng),其特征在于,所述管理節(jié)點還用于向所述集群網(wǎng)絡系統(tǒng)中的業(yè)務節(jié)點發(fā)送心跳信息;當在預設時間內(nèi)沒收到I個或I個以上業(yè)務節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的業(yè)務節(jié)點與自己本身的聯(lián)通狀況并收集業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),所述聯(lián)通狀況數(shù)據(jù)反映該管理節(jié)點與業(yè)務節(jié)點聯(lián)通與否。
4.根據(jù)權(quán)利要求I所述的系統(tǒng),其特征在于,所述可用分區(qū)為節(jié)點個數(shù)最多的分區(qū)或分區(qū)權(quán)重值最大的分區(qū),所述分區(qū)權(quán)重值為根據(jù)所述分區(qū)中每個節(jié)點的權(quán)重,按照加權(quán)法則,計算得到的值。
5.一種識別集群網(wǎng)絡中可用分區(qū)的方法,其特征在于,所述方法包括根據(jù)所述集群網(wǎng)絡中節(jié)點之間的聯(lián)通狀況數(shù)據(jù)將所述集群網(wǎng)絡分割成至少兩個分區(qū);從所述分區(qū)中確定出可用分區(qū)。
6.如權(quán)利要求5所述的方法,其特征在于,所述聯(lián)通狀況數(shù)據(jù)使用二進制掩碼表示,所述根據(jù)所述集群網(wǎng)絡中節(jié)點之間的聯(lián)通狀況數(shù)據(jù)將所述集群網(wǎng)絡分割成至少兩個分區(qū),具體包括A、在所述集群網(wǎng)絡節(jié)點之間的聯(lián)通狀況數(shù)據(jù)中選擇一個節(jié)點的聯(lián)通狀況數(shù)據(jù),將所述選擇的節(jié)點的聯(lián)通狀況數(shù)據(jù)與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)進行與運算,根據(jù)運算的結(jié)果,將與所述選擇的節(jié)點有交集的節(jié)點作為一個分區(qū);B、在未被分區(qū)的節(jié)點中繼續(xù)選擇下一個節(jié)點的聯(lián)通狀況數(shù)據(jù),將所述下一個節(jié)點的聯(lián)通狀況數(shù)據(jù)與剩余的未被分區(qū)的節(jié)點的聯(lián)通狀況數(shù)據(jù)繼續(xù)進行與運算,根據(jù)運算的結(jié)果, 將與所述下一個節(jié)點有交集的節(jié)點作為一個分區(qū);C、判斷分區(qū)是否完成,若是,則結(jié)束;若否,則返回執(zhí)行步驟B。
7.如權(quán)利要求5或6所述的方法,其特征在于,所述可用分區(qū)為節(jié)點個數(shù)最多的分區(qū)或分區(qū)權(quán)重值最大的分區(qū),所述分區(qū)權(quán)重值為根據(jù)所述分區(qū)中每個節(jié)點的權(quán)重,按照加權(quán)法則,計算得到的值。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括當在預設時間內(nèi)沒收到I個或I個以上節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的其它節(jié)點與自己本身的聯(lián)通狀況并收集其它節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),所述聯(lián)通狀況數(shù)據(jù)反映該節(jié)點與其它節(jié)點聯(lián)通與否。
9.一種識別集群網(wǎng)絡中可用分區(qū)的裝置,其特征在于,所述裝置包括分割模塊,用于根據(jù)所述集群網(wǎng)絡中節(jié)點之間的聯(lián)通狀況數(shù)據(jù)將所述集群網(wǎng)絡分割成至少兩個分區(qū);識別模塊,用于從所述分區(qū)中確定出可用分區(qū)。
10.如權(quán)利要求9所述的裝置,其特征在于,所述聯(lián)通狀況數(shù)據(jù)使用二進制掩碼表示, 所述分割模塊具體用于A、在所述集群網(wǎng)絡節(jié)點之間的聯(lián)通狀況數(shù)據(jù)中選擇一個節(jié)點的聯(lián)通狀況數(shù)據(jù),將所述選擇的節(jié)點的聯(lián)通狀況數(shù)據(jù)與其它節(jié)點的聯(lián)通狀況數(shù)據(jù)進行與運算, 根據(jù)運算的結(jié)果,將與所述選擇的節(jié)點有交集的節(jié)點作為一個分區(qū);B、在未被分區(qū)的節(jié)點中繼續(xù)選擇下一個節(jié)點的聯(lián)通狀況數(shù)據(jù),將所述下一個節(jié)點的聯(lián)通狀況數(shù)據(jù)與剩余的未被分區(qū)的節(jié)點繼續(xù)進行與運算,根據(jù)運算的結(jié)果,將與所述下一個節(jié)點有交集的節(jié)點作為一個分區(qū);C、判斷分區(qū)是否完成,若是,則結(jié)束;若否,則返回執(zhí)行步驟B。
11.如權(quán)利要求9或10所述的裝置,其特征在于,所述可用分區(qū)為節(jié)點個數(shù)最多的分區(qū)或分區(qū)權(quán)重值最大的分區(qū),所述分區(qū)權(quán)重值為根據(jù)所述分區(qū)中每個節(jié)點的權(quán)重,按照加權(quán)法則,計算得到的值。
12.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括信息收集模塊,用于當在預設時間內(nèi)沒收到I個或I個以上業(yè)務節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的業(yè)務節(jié)點與自己本身的聯(lián)通狀況并收集業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù),所述聯(lián)通狀況數(shù)據(jù)反映該管理節(jié)點與業(yè)務節(jié)點聯(lián)通與否。
全文摘要
本發(fā)明適用于通信技術(shù)領(lǐng)域,提供了一種識別可用分區(qū)的方法、裝置以及集群網(wǎng)絡系統(tǒng),所述系統(tǒng)包括管理節(jié)點和至少兩個業(yè)務節(jié)點,所述業(yè)務節(jié)點用于向集群網(wǎng)絡系統(tǒng)中的其它業(yè)務節(jié)點發(fā)送心跳信息;當在預設時間內(nèi)沒收到1個或1個以上其它業(yè)務節(jié)點的心跳信息時,檢測集群網(wǎng)絡中的其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況,并收集其它業(yè)務節(jié)點與自己本身的聯(lián)通狀況數(shù)據(jù);所述管理節(jié)點用于根據(jù)至少兩個業(yè)務節(jié)點收集的聯(lián)通狀況數(shù)據(jù),將所述集群網(wǎng)絡分割成至少兩個分區(qū),從所述分區(qū)中確定出可用分區(qū)。本發(fā)明使得當集群發(fā)生網(wǎng)絡分割故障時,而且分區(qū)節(jié)點數(shù)目都小于或者等于1/2節(jié)點個數(shù)的情形下,能夠有效識別可用分區(qū),繼續(xù)對外提供服務。
文檔編號H04L29/08GK102594596SQ20121003390
公開日2012年7月18日 申請日期2012年2月15日 優(yōu)先權(quán)日2012年2月15日
發(fā)明者何敏 申請人:華為技術(shù)有限公司