明實(shí)施例中,該主節(jié)點(diǎn)可以為至少一個(gè)主節(jié)點(diǎn)中的任意一個(gè)主節(jié)點(diǎn)。主節(jié)點(diǎn)宕機(jī)可以是主節(jié)點(diǎn)死機(jī)或者關(guān)機(jī),此時(shí)主節(jié)點(diǎn)將不會給集群管理裝置發(fā)送心跳報(bào)文,當(dāng)在預(yù)設(shè)時(shí)間間隔內(nèi)集群管理裝置均未接收到該主節(jié)點(diǎn)發(fā)送的心跳報(bào)文時(shí),則集群管理裝置認(rèn)為該主節(jié)點(diǎn)不可用,并對該主節(jié)點(diǎn)進(jìn)行切主操作。
[0095]302、集群管理裝置通知備節(jié)點(diǎn)加載主節(jié)點(diǎn)對應(yīng)的浮動(dòng)ip。
[0096]本發(fā)明實(shí)施例中,該備節(jié)點(diǎn)為至少一個(gè)備節(jié)點(diǎn)中的任意一個(gè)備節(jié)點(diǎn)。集群管理裝置通知備節(jié)點(diǎn)加載浮動(dòng)ip,以使備節(jié)點(diǎn)執(zhí)行升主操作。
[0097]303、備節(jié)點(diǎn)加載主節(jié)點(diǎn)對應(yīng)的浮動(dòng)ip,并檢測該浮動(dòng)ip是否存在沖突,若不存在沖突,則執(zhí)行步驟304。
[0098]本發(fā)明實(shí)施例中,備節(jié)點(diǎn)可以利用PING命令來檢測,當(dāng)PING通,則說明原主節(jié)點(diǎn)已釋放該浮動(dòng)ip,此時(shí)浮動(dòng)ip不存在沖突,可以繼續(xù)執(zhí)行步驟304 ;當(dāng)PING不通,則說明原主節(jié)點(diǎn)還未釋放該浮動(dòng)ip,此時(shí)原主節(jié)點(diǎn)和備節(jié)點(diǎn)上都加載同一浮動(dòng)ip,使得該浮動(dòng)ip存在沖突,則此時(shí)備節(jié)點(diǎn)可以進(jìn)行若干次的判斷等待,當(dāng)不沖突,則執(zhí)行后續(xù)步驟304,當(dāng)若干次判斷等待后仍存在沖突,則備節(jié)點(diǎn)釋放該浮動(dòng)ip,由集群管理裝置重新選取另一個(gè)備節(jié)點(diǎn)進(jìn)行升主操作。
[0099]304、備節(jié)點(diǎn)向集群管理裝置查詢該浮動(dòng)ip對應(yīng)的共享卷。
[0100]305、集群管理裝置向備節(jié)點(diǎn)發(fā)送查詢到的該浮動(dòng)ip對應(yīng)的共享卷。
[0101]本發(fā)明實(shí)施例中,當(dāng)浮動(dòng)ip不存在沖突時(shí),備節(jié)點(diǎn)可以向集群管理裝置查詢該浮動(dòng)ip對應(yīng)的共享卷,集群管理裝置中事先記錄有每一個(gè)主節(jié)點(diǎn)加載的浮動(dòng)ip,以及浮動(dòng)ip與共享卷的對應(yīng)關(guān)系,即每一個(gè)浮動(dòng)ip對應(yīng)的是哪個(gè)共享卷等。集群管理裝置可以在事先存儲的映射關(guān)系中查找該浮動(dòng)ip對應(yīng)的共享卷,獲得查找結(jié)果,該查找結(jié)果中可以包括該浮動(dòng)ip對應(yīng)的共享卷,并向備節(jié)點(diǎn)反饋該浮動(dòng)ip對應(yīng)的共享卷。
[0102]306、備節(jié)點(diǎn)向卷管理裝置查詢該共享卷的掛載點(diǎn)。
[0103]本發(fā)明實(shí)施例中,卷管理裝置管理著各個(gè)共享卷,可以包含各個(gè)共享卷的掛載信息和加鎖信息等。備節(jié)點(diǎn)可以向卷管理裝置查詢該浮動(dòng)ip對應(yīng)的共享卷的掛載信息,該共享卷的掛載信息可以包括共享卷的掛載點(diǎn)。
[0104]307、卷管理裝置查詢該共享卷的掛載點(diǎn),獲得第一查詢結(jié)果。
[0105]308、卷管理裝置向備節(jié)點(diǎn)發(fā)送第一查詢結(jié)果。
[0106]309、當(dāng)?shù)谝徊樵兘Y(jié)果為不存在該共享卷的掛載點(diǎn)時(shí),備節(jié)點(diǎn)加載該共享卷。
[0107]本發(fā)明實(shí)施例中,當(dāng)卷管理裝置發(fā)送的第一查詢結(jié)果為不存在該共享卷的掛載點(diǎn),即該共享卷當(dāng)前沒有掛載在任何目錄下時(shí),可以認(rèn)為原主節(jié)點(diǎn)已經(jīng)釋放了該共享卷,備節(jié)點(diǎn)可以加載該共享卷,此時(shí)該共享卷的掛載點(diǎn)可以是該備節(jié)點(diǎn)上的某個(gè)目錄。
[0108]作為一種可選的實(shí)施方式,當(dāng)該第一查詢結(jié)果為存在該共享卷的掛載點(diǎn)時(shí),圖3所描述的方法還可以包括以下步驟:
[0109]31)備節(jié)點(diǎn)每隔第一時(shí)間向卷管理裝置查詢該共享卷的掛載點(diǎn);
[0110]32)當(dāng)備節(jié)點(diǎn)向卷管理裝置執(zhí)行第一預(yù)設(shè)次數(shù)查詢后獲得的查詢結(jié)果均為存在該共享卷的掛載點(diǎn)時(shí),備節(jié)點(diǎn)向集群管理裝置發(fā)送反饋信息;
[0111]33)集群管理裝置根據(jù)該反饋信息控制至少一個(gè)備節(jié)點(diǎn)中除該備節(jié)點(diǎn)外的一個(gè)備節(jié)點(diǎn)執(zhí)行升主操作。
[0112]在該實(shí)施方式中,當(dāng)卷管理裝置發(fā)送的第一查詢結(jié)果為存在該共享卷的掛載點(diǎn)時(shí),可以認(rèn)為原主節(jié)點(diǎn)還未釋放該共享卷。備節(jié)點(diǎn)可以每隔第一時(shí)間向卷管理裝置查詢該共享卷的掛載點(diǎn),可以執(zhí)行查詢操作的上限為第一預(yù)設(shè)次數(shù),其中,第一時(shí)間可以是2秒、5秒等,第一預(yù)設(shè)次數(shù)可以是3次、5次等等,可以根據(jù)經(jīng)驗(yàn)來設(shè)置,一般的經(jīng)驗(yàn)值為5秒3次,即備節(jié)點(diǎn)向卷管理裝置進(jìn)行5秒*3次的查詢等待。當(dāng)查詢結(jié)果均為存在該共享卷的掛載點(diǎn)時(shí),備節(jié)點(diǎn)向集群管理裝置發(fā)送反饋信息,該反饋信息用于告知集群管理裝置加載共享卷異常,則集群管理裝置根據(jù)該反饋信息重新選取另一個(gè)備節(jié)點(diǎn)以控制其完成升主操作,即再次執(zhí)行步驟302。此時(shí),原備節(jié)點(diǎn)可以釋放已加載的浮動(dòng)ip等信息。
[0113]310、備節(jié)點(diǎn)向卷管理裝置查詢該共享卷加載的Scs1-3鎖。
[0114]本發(fā)明實(shí)施例中,當(dāng)備節(jié)點(diǎn)加載上該共享卷后,可以進(jìn)一步向卷管理裝置查詢該共享卷上加載的Scs1-3鎖。
[0115]311、卷管理裝置查詢該共享卷加載的Scs1-3鎖,獲得第二查詢結(jié)果。
[0116]312、卷管理裝置向備節(jié)點(diǎn)發(fā)送第二查詢結(jié)果。
[0117]313、當(dāng)?shù)诙樵兘Y(jié)果為不存在該共享卷加載的Scs1-3鎖時(shí),備節(jié)點(diǎn)為該共享卷加載Scs1-3鎖。
[0118]本發(fā)明實(shí)施例中,當(dāng)?shù)诙樵兘Y(jié)果為不存在該共享卷加載的Scs1-3鎖時(shí),可以認(rèn)為原主節(jié)點(diǎn)已釋放該共享卷的Scs1-3鎖,即該共享卷上當(dāng)前未加鎖,則此時(shí)備節(jié)點(diǎn)可以為該共享卷加載Scs1-3鎖,以使該共享卷只能被該備節(jié)點(diǎn)唯一訪問。
[0119]314、加載完成后,備節(jié)點(diǎn)升為新的主節(jié)點(diǎn),并繼續(xù)提供服務(wù)。
[0120]本發(fā)明實(shí)施例中,當(dāng)備節(jié)點(diǎn)成功加載完浮動(dòng)ip、共享卷以及Scs1-3鎖時(shí),備節(jié)點(diǎn)升為新的主節(jié)點(diǎn),并代替原主節(jié)點(diǎn)繼續(xù)執(zhí)行任務(wù)以向客戶端提供服務(wù)。
[0121]作為一種可選的實(shí)施方式,當(dāng)?shù)诙樵兘Y(jié)果為存在該共享卷加載的Scs1-3鎖時(shí),圖3所描述的方法還可以包括以下步驟:
[0122]34)備節(jié)點(diǎn)每隔第二時(shí)間向卷管理裝置查詢該共享卷的加鎖信息;
[0123]35)當(dāng)備節(jié)點(diǎn)向卷管理裝置執(zhí)行第二預(yù)設(shè)次數(shù)查詢后獲得的查詢結(jié)果均為存在該共享卷加載的Scs1-3鎖時(shí),備節(jié)點(diǎn)搶占該共享卷加載的Scs1-3鎖。
[0124]在該實(shí)施方式中,當(dāng)卷管理裝置發(fā)送的第二查詢結(jié)果為存在該共享卷加載的Scs1-3鎖時(shí),可以認(rèn)為原主節(jié)點(diǎn)還未釋放該共享卷的Scs1-3鎖,即未給該共享卷進(jìn)行解鎖,此時(shí)其他節(jié)點(diǎn)均不能對該共享卷進(jìn)行訪問。備節(jié)點(diǎn)可以每隔第二時(shí)間向卷管理裝置查詢該共享卷加載的Scs1-3鎖,可以執(zhí)行查詢操作的上限為第二預(yù)設(shè)次數(shù),其中,第二時(shí)間可以是2秒、3秒等,第二預(yù)設(shè)次數(shù)可以為5次、10次等,一般的經(jīng)驗(yàn)值為3秒10次,即備節(jié)點(diǎn)向卷管理裝置進(jìn)行3秒*10次的查詢等待。當(dāng)查詢結(jié)果均為存在該共享卷的Scs1-3鎖時(shí),備節(jié)點(diǎn)進(jìn)行強(qiáng)行搶鎖,即搶占該共享卷加載的Scs1-3鎖,當(dāng)搶鎖成功時(shí),貝Ij備節(jié)點(diǎn)替代原主節(jié)點(diǎn)升為新的主節(jié)點(diǎn);當(dāng)搶鎖失敗時(shí),備節(jié)點(diǎn)向集群管理裝置發(fā)送反饋信息,集群管理裝置根據(jù)該反饋信息重新選取另一個(gè)備節(jié)點(diǎn)以控制其進(jìn)行升主操作。此時(shí),備節(jié)點(diǎn)可以釋放已加載的浮動(dòng)ip和共享卷等信息。
[0125]可見,實(shí)施圖3所描述的方法,本發(fā)明實(shí)施例中高可用性集群可以包括多個(gè)主節(jié)點(diǎn)和多個(gè)備節(jié)點(diǎn),且每一個(gè)主節(jié)點(diǎn)可以共享多個(gè)備節(jié)點(diǎn),可以通過多主對多備的模式來提高備節(jié)點(diǎn)的資源利用率;此外,將多個(gè)主節(jié)點(diǎn)與多個(gè)備節(jié)點(diǎn)同時(shí)連接到集群管理裝置,由集群管理裝置對異常情況進(jìn)行判斷來進(jìn)行切主操作,將浮動(dòng)ip、共享卷的掛載信息、加鎖信息等一起構(gòu)成備節(jié)點(diǎn)升主的條件,通過多級條件判斷來大大降低腦裂發(fā)生的概率,進(jìn)而提高服務(wù)的可靠性。
[0126]基于圖1所示的網(wǎng)絡(luò)構(gòu)架,本發(fā)明實(shí)施例公開了又一種高可用性集群管理方法。請參閱圖4,圖4是本發(fā)明實(shí)施例公開的又一種高可用性集群管理方法的流程示意圖。如圖4所示,該高可用性集群管理方法可以包括以下步驟:
[0127]401、主節(jié)點(diǎn)服務(wù)異常時(shí),向集群管理裝置發(fā)送異常服務(wù)上報(bào)信息。
[0128]本發(fā)明實(shí)施例中,主節(jié)點(diǎn)服務(wù)異??梢园ㄖ鞴?jié)點(diǎn)加載的浮動(dòng)ip異常、主節(jié)點(diǎn)加載的Scs1-3鎖異常、主節(jié)點(diǎn)上運(yùn)行的進(jìn)程異常等等。當(dāng)主節(jié)點(diǎn)服務(wù)異常時(shí),主節(jié)點(diǎn)通過心跳鏈路向集群管理裝置發(fā)送異常服務(wù)上報(bào)信息。
[0129]402、集群管理裝置根據(jù)該異常服務(wù)上報(bào)信息,通知備節(jié)點(diǎn)加載主節(jié)點(diǎn)對應(yīng)的浮動(dòng)ip。
[0130]403、備節(jié)點(diǎn)加載主節(jié)點(diǎn)對應(yīng)的浮動(dòng)ip,并檢測該浮動(dòng)ip是否存在沖突,若不存在沖突,則執(zhí)行步驟404。
[0131]404、備節(jié)點(diǎn)向集群管理裝置查詢該浮動(dòng)ip對應(yīng)的共享卷。
[0132]405、集群管理裝置向備節(jié)點(diǎn)發(fā)送查詢到的該浮動(dòng)ip對應(yīng)的共享卷。
[0133]406、備節(jié)點(diǎn)向卷管理裝置查詢該共享卷的掛載點(diǎn)。
[0134]407、卷管理裝置查詢該共享卷的掛載點(diǎn),獲得第一查詢結(jié)果。
[0135]408、卷管理裝置向備節(jié)點(diǎn)發(fā)送第一查詢結(jié)果。
[0136]409、當(dāng)?shù)谝徊樵兘Y(jié)果為不存在該共享卷的掛載點(diǎn)時(shí),備節(jié)點(diǎn)加載該共享卷。
[0137]作為一種可選的實(shí)施方式,當(dāng)該第一查詢結(jié)果為存在該共享卷的掛載點(diǎn)時(shí),圖4所描述的方法還可以包括以下步驟:
[0138]41)備節(jié)點(diǎn)每隔第一時(shí)間向卷管理裝置查詢該共享卷的掛載點(diǎn);
[0139]42)當(dāng)備節(jié)點(diǎn)向卷管理裝置執(zhí)行第一預(yù)設(shè)次數(shù)查詢后獲得的查詢結(jié)果均為存在該共享卷的掛載點(diǎn)時(shí),備節(jié)點(diǎn)向集群管理裝置發(fā)送反饋信息;
[0140]43)集群管理裝置根據(jù)該反饋信息控制至少一個(gè)備節(jié)點(diǎn)中除該備節(jié)點(diǎn)外的一個(gè)備節(jié)點(diǎn)執(zhí)行升主操作。
[0141]410、備節(jié)點(diǎn)向卷管理裝置查詢該共享卷加載的Scs1-3鎖。
[0142]411、卷管理裝置查詢該共享卷加載的Scs1-3鎖,獲得第二查詢結(jié)果。
[0143]412、卷管理裝置向備節(jié)點(diǎn)發(fā)送第二查詢結(jié)果。
[0144]413、當(dāng)?shù)诙樵兘Y(jié)果為不存在該共享卷加載的Scs1-3鎖時(shí),備節(jié)點(diǎn)為該共享卷加載Scs1-3鎖。
[0145]作為一種可選的實(shí)施方式,當(dāng)?shù)诙樵兘Y(jié)果為存在該共享卷加載的Scs1-3鎖時(shí),圖4所描述的方法還可以包括以下步驟:
[0146]44)備節(jié)點(diǎn)每隔第二時(shí)間向卷管理裝置查詢該共享卷的加鎖信息;
[0147]45)當(dāng)備節(jié)點(diǎn)向卷管理裝置執(zhí)行第二預(yù)設(shè)次數(shù)查詢后獲得的查詢結(jié)果均為存在該共享卷加載的Scs1-3鎖時(shí),備節(jié)點(diǎn)搶占該共享卷加載的Scs1-3鎖。
[0148]414、加載完成后,備節(jié)點(diǎn)升為新的主節(jié)點(diǎn),并繼續(xù)提供服務(wù)。
[0149]可見,實(shí)施圖4所描述的方法,本發(fā)明實(shí)施例中高可用性集群可以包括多個(gè)主節(jié)點(diǎn)和多個(gè)備節(jié)點(diǎn),且每一個(gè)主節(jié)點(diǎn)可以共享多個(gè)備節(jié)點(diǎn),可以通過多主對多備的模式來提高備節(jié)點(diǎn)的資源利用率;此外,將多個(gè)主節(jié)點(diǎn)與多個(gè)備節(jié)點(diǎn)同時(shí)連接到集群管理裝置,由集群管理裝置對異常情況進(jìn)行判斷來進(jìn)行切主操作,將浮動(dòng)ip、共享卷的掛載信息、加鎖信息等一起構(gòu)成備節(jié)點(diǎn)升主的條件,通過多級條件判斷來大大降低腦裂發(fā)生的概率,進(jìn)而提高服務(wù)的可靠性。
[0150]基于圖1所示的網(wǎng)絡(luò)構(gòu)架,本發(fā)明實(shí)施例公開了一種集群管理裝置。請參閱圖5,圖5是本發(fā)明實(shí)施例公開的一種集群管理裝置的結(jié)構(gòu)示意圖,可以用于執(zhí)行本發(fā)明實(shí)施例公開的高可用性集群管理方法,其中,高可用性集群可以包括至少一個(gè)主節(jié)點(diǎn)、至少一個(gè)備節(jié)點(diǎn)以及集群管理裝置。如圖5所示,該集群管理裝置可以包括:
[0151]檢測單元501,用于針對至少一個(gè)主節(jié)點(diǎn)中的每一個(gè)主節(jié)點(diǎn),檢測是否發(fā)生目標(biāo)事件,該目標(biāo)事件為觸發(fā)集群管理裝置針對該主節(jié)點(diǎn)進(jìn)行切主操作的事件。
[0152]本發(fā)明實(shí)施例中,集群管理裝置通過心跳鏈路分別與各個(gè)主節(jié)點(diǎn)和各個(gè)備節(jié)點(diǎn)進(jìn)行通信連接。主節(jié)點(diǎn)用于執(zhí)行業(yè)務(wù)以向客戶端提供各項(xiàng)服務(wù),備節(jié)點(diǎn)一直處于等待狀態(tài),且備節(jié)點(diǎn)可以被所有的主節(jié)點(diǎn)所共享。
[0153]本發(fā)明實(shí)施例中,主節(jié)點(diǎn)和備節(jié)點(diǎn)是由集群管理裝置來決定的,集群管理裝置通過選主機(jī)制來決定誰是主節(jié)點(diǎn),誰是備節(jié)點(diǎn)??梢詫⒚恳粋€(gè)主節(jié)點(diǎn)和每一個(gè)備節(jié)點(diǎn)分別看作是一臺計(jì)算機(jī),且集群管理裝置可以集成在主節(jié)點(diǎn)中,也可以集成在備節(jié)點(diǎn)中,還可以集成在其他計(jì)算機(jī)中