民主自治的集群管理方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種集群管理方法,具體涉及基于集群子系統(tǒng)間民主自治策略的集群 管理系統(tǒng),W提高集群系統(tǒng)的可用性、可管理性及可擴(kuò)展性。
【背景技術(shù)】
[0002] 隨著信息技術(shù)的發(fā)展,計(jì)算機(jī)技術(shù)的應(yīng)用已經(jīng)到達(dá)了一種前所未有的廣泛程度, 系統(tǒng)和應(yīng)用規(guī)模成倍增加。在該種情況下,可提供更高并發(fā)量訪問、更穩(wěn)定服務(wù)質(zhì)量的系統(tǒng) 集群技術(shù)就應(yīng)運(yùn)而生,目前的集群技術(shù)多WMaster-Slave模式為基礎(chǔ),Master-Slave集群 管理方法在集群系統(tǒng)中定義一個(gè)Mater管理子系統(tǒng)(節(jié)點(diǎn))和若干Slave服務(wù)提供子系統(tǒng) (節(jié)點(diǎn)),Master節(jié)點(diǎn)可提供集群管理服務(wù)(部分集群系統(tǒng)也將其設(shè)計(jì)為可提供業(yè)務(wù)服務(wù)), Slave節(jié)點(diǎn)僅能提供業(yè)務(wù)服務(wù),該種集群模式保證了集群管理的唯一性,同時(shí)集群內(nèi)節(jié)點(diǎn)可 并行對外提供服務(wù),但該種方案具有W下問題:
[0003]UMaster節(jié)點(diǎn)存在單點(diǎn)故障的風(fēng)險(xiǎn)。由于為了保障集群管理的唯一性,集群系統(tǒng) 中僅設(shè)計(jì)了一個(gè)Master(-些改進(jìn)型Master-Slave集群系統(tǒng)設(shè)計(jì)了備用Master,但也不 能避免Master和備用Master都出現(xiàn)故障的情況),而管理功能只由Master提供,所W當(dāng) Master故障時(shí),整個(gè)集群系統(tǒng)雖能正常對外提供業(yè)務(wù)服務(wù),當(dāng)喪失了管理功能,在Master 修復(fù)前都不可對集群進(jìn)行管理;
[0004] 2、Master-Slave集群系統(tǒng)缺乏彈性伸縮的靈活性。Master-Slave集群在集群 啟動時(shí)為每個(gè)節(jié)點(diǎn)定義了角色,Master僅管理預(yù)先定義好的Slave節(jié)點(diǎn),當(dāng)由于訪問量激 增而需要臨時(shí)增加節(jié)點(diǎn)W加快服務(wù)響應(yīng)時(shí)、或訪問量激降而需要臨時(shí)減少節(jié)點(diǎn)W節(jié)約資源 時(shí),Master-Slave集群管理模式都難W實(shí)現(xiàn)對臨時(shí)節(jié)點(diǎn)的管理。
[0005] 經(jīng)對現(xiàn)有技術(shù)進(jìn)行檢索,發(fā)現(xiàn)如下相關(guān)文獻(xiàn)。
[0006] 申請?zhí)?;CN201310058640. 3,名稱;一種用于分布式服務(wù)的集群管理方法和系統(tǒng)。 該發(fā)明公開了一種用于分布式服務(wù)的集群管理方法和系統(tǒng),每個(gè)服務(wù)器向Zookeeper服務(wù) 發(fā)送注冊請求;Zookeeper服務(wù)根據(jù)注冊請求對每個(gè)服務(wù)器進(jìn)行注冊,并根據(jù)先后順序選 定其中的一個(gè)服務(wù)器作為Master;每個(gè)已注冊的服務(wù)器判斷是否被選定為Master,如果是 則被選定為Master的服務(wù)器作為集群管理者對所有的服務(wù)器進(jìn)行管理,并等待其它沒有 被選定為Master的服務(wù)器來注冊,否則沒有被選定為Master的服務(wù)器向選定為Master的 服務(wù)器進(jìn)行注冊。集群所有服務(wù)器啟動后首先通過Zookeeper來選舉Master,Worker主動 聯(lián)系Master,從而實(shí)現(xiàn)Master對集群中所有服務(wù)器的管理。
[0007] 該發(fā)明設(shè)計(jì)了一種集群中Master服務(wù)器的管理辦法,通過向指定的Zookeeper服 務(wù)發(fā)送注冊請求、根據(jù)注冊先后順序來確定Master服務(wù)器。但該發(fā)明對Master的選擇需 要第H方服務(wù),不能通過民主自治選取產(chǎn)生,需依賴第H方服務(wù),存在第H方服務(wù)出現(xiàn)故障 時(shí)的單點(diǎn)風(fēng)險(xiǎn);且該發(fā)明只能存在一個(gè)大集群限制,容錯(cuò)性和可管理性較低。
【發(fā)明內(nèi)容】
[000引針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明主要解決的問題是,在保留現(xiàn)有Master-Slave集 群管理唯一性、并發(fā)提供服務(wù)訪問的前提下,同時(shí)解決集群管理單點(diǎn)故障風(fēng)險(xiǎn)、加強(qiáng)集群系 統(tǒng)的彈性伸縮靈活性,使得集群系統(tǒng)具備更好的可管理性和更高的服務(wù)提供質(zhì)量。
[0009] 根據(jù)本發(fā)明提供的一種民主自治的集群管理方法,包括如下步驟:
[0010] 步驟1 ;集群啟動;
[0011] 步驟2;集群運(yùn)行自治;
[001引步驟3;集群分裂自治;
[001引步驟4;集群融合自治;
[0014] 步驟5 ;集群動態(tài)伸縮自治;
[0015] 步驟6;集群管理員治理,其中,集群管理員用戶集群管理的最高權(quán)限,各節(jié)點(diǎn)均 提供管理員入口,W執(zhí)行主席節(jié)點(diǎn)檢修升級、追加服務(wù)節(jié)點(diǎn)、調(diào)整全局策略參數(shù)操作。
[0016] 優(yōu)選地,所述步驟1包括如下步驟:
[0017] 步驟101 ;集群初始化啟動時(shí),根據(jù)系統(tǒng)管理員的指定指令產(chǎn)生主席節(jié)點(diǎn),其中, 所述指定指令在確定主席過程中擁有最高權(quán)限;
[001引步驟102 ;除主席節(jié)點(diǎn)外,其余節(jié)點(diǎn)自動將本節(jié)點(diǎn)角色Role置為別ave節(jié)點(diǎn);
[0019] 步驟103;主席節(jié)點(diǎn)管理集群的全局配置策略,并將全局策略初始化派送給各 Slave節(jié)點(diǎn),其中,所述全局策略初始化包括;全局節(jié)點(diǎn)數(shù)量、集群標(biāo)識、各節(jié)點(diǎn)名稱、各節(jié) 點(diǎn)角色、各節(jié)點(diǎn)監(jiān)聽地址、各節(jié)點(diǎn)服務(wù)地址、健康檢查策略、不信任策略、信息同步策略、信 息同步時(shí)間間隔、信息同步時(shí)間、民主選舉策略、各節(jié)點(diǎn)當(dāng)前狀態(tài)、集群伸縮策略。
[0020] 優(yōu)選地,節(jié)點(diǎn)狀態(tài)包括:
[0021] 啟動狀態(tài)BOOTING;當(dāng)啟動失敗時(shí),轉(zhuǎn)入脫離狀態(tài);當(dāng)啟動成功時(shí),轉(zhuǎn)入控制狀態(tài);
[0022] 脫離狀態(tài)DISC0NN;當(dāng)收到信息同步指令時(shí),轉(zhuǎn)入控制狀態(tài);
[0023] 控制狀態(tài)CONN;當(dāng)被認(rèn)為不健康時(shí),轉(zhuǎn)入脫離狀態(tài);當(dāng)收到隔離指令時(shí),轉(zhuǎn)入隔離 狀態(tài);當(dāng)收到待機(jī)指令時(shí),轉(zhuǎn)入待機(jī)狀態(tài);當(dāng)收到關(guān)閉指令時(shí),轉(zhuǎn)入關(guān)閉進(jìn)行狀態(tài);
[0024] 關(guān)閉進(jìn)行狀態(tài)S皿TD0WING;當(dāng)關(guān)閉結(jié)束后,轉(zhuǎn)入關(guān)閉結(jié)束狀態(tài);
[00巧]隔離狀態(tài)ISOLATED;當(dāng)收到集合指令時(shí),轉(zhuǎn)入控制狀態(tài);
[002引待機(jī)狀態(tài)IDLE;當(dāng)收到隔離指令時(shí),轉(zhuǎn)入隔離狀態(tài);當(dāng)收到恢復(fù)指令時(shí),轉(zhuǎn)入控制 狀態(tài);當(dāng)收到關(guān)閉指令時(shí),轉(zhuǎn)入關(guān)閉進(jìn)行狀態(tài);
[0027] 未定義狀態(tài)UNASSIGNED;當(dāng)收到啟動指令時(shí),轉(zhuǎn)入啟動狀態(tài);當(dāng)收到信息同步指 令時(shí),轉(zhuǎn)入控制狀態(tài)。
[0028] 優(yōu)選地,所述步驟2包括如下步驟:
[0029] 步驟201 ;各節(jié)點(diǎn)按照信息同步策略及信息同步時(shí)間間隔,將自身狀態(tài)信息塊同 步給集群中其他節(jié)點(diǎn),其中,所述信息同步策略包括增量同步和海量同步;
[0030] 步驟202 ;主席節(jié)點(diǎn)將全局信息按照信息同步策略及信息同步時(shí)間間隔,將集群 全局信息同步給所有Slave節(jié)點(diǎn),信息同步策略包括增量同步和海量同步;
[003。步驟203 ;所有節(jié)點(diǎn)接收到其他節(jié)點(diǎn)的同步信息后,在BBS中更新相應(yīng)節(jié)點(diǎn)信息存 儲內(nèi)存塊中;
[0032]步驟204;Slave節(jié)點(diǎn)在接收到主席節(jié)點(diǎn)全局同步信息時(shí),更新BBS中主席節(jié)點(diǎn) 信息存儲內(nèi)存塊及全局配置變化的參數(shù),比較其余節(jié)點(diǎn)更新時(shí)間與全局信息包中子項(xiàng)的時(shí) 間,將BBS中Slave節(jié)點(diǎn)信息內(nèi)存塊的信息更新為最新狀態(tài)值;
[0033] 步驟205;所有節(jié)點(diǎn)按照全局健康檢查策略檢查各自BBS塊中其他節(jié)點(diǎn)狀態(tài),并維 護(hù)管理節(jié)點(diǎn)狀態(tài),其中,健康檢查策略由檢查周期化、狀態(tài)裁定周期n*化決定;
[0034] 步驟206;主席節(jié)點(diǎn)執(zhí)行步驟205操作,當(dāng)裁定Slave節(jié)點(diǎn)狀態(tài)為脫離狀態(tài) DISC0NN、或者未定義狀態(tài)UNASSIGNED時(shí),對Slave執(zhí)行Boot指令;
[00巧]步驟207 ;Slave節(jié)點(diǎn)執(zhí)行步驟205,根據(jù)不信任策略,當(dāng)裁定主席節(jié)點(diǎn)狀態(tài)為脫離 狀態(tài)DISOWN時(shí),執(zhí)行步驟208選舉操作;不信任策略為健康檢查策略與管理員操作的綜合