專利名稱:一種用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)通信網(wǎng)絡(luò),尤其涉及一種用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁方法及裝置。
背景技術(shù):
在集群計(jì)算機(jī)系統(tǒng)中,當(dāng)發(fā)生故障使集群系統(tǒng)分裂為幾個(gè)子集群時(shí),如果不采用相應(yīng)的防止手段會(huì)導(dǎo)致集群發(fā)生腦裂,即分裂后的幾個(gè)子集群都互相接管其他子集群的服務(wù)共同向外提供服務(wù)或訪問共享資源。仲裁機(jī)制是解決當(dāng)前集群計(jì)算機(jī)系統(tǒng)腦裂的手段之一,其實(shí)現(xiàn)方式為集群系統(tǒng)中的每個(gè)節(jié)點(diǎn)投一票或多票,當(dāng)集群發(fā)生分裂時(shí),節(jié)點(diǎn)票數(shù)多的子集群為合法集群,然后由合法集群接管不合法子集群的服務(wù)。但是,采用上述節(jié)點(diǎn)投票方式為分裂后合法子集群的確定(即子集群的接管)進(jìn)行仲裁的過程中,當(dāng)不合法子集群上運(yùn)行了啟動(dòng)時(shí)間較長(zhǎng),完成切換所需時(shí)間較長(zhǎng)的資源,而合法子集群上運(yùn)行的資源切換相對(duì)簡(jiǎn)單時(shí),會(huì)增加資源的切換時(shí)間,從增加服務(wù)宕機(jī)時(shí)間,降低集群計(jì)算機(jī)系統(tǒng)連續(xù)對(duì)外服務(wù)的時(shí)間,即降低集群系統(tǒng)的可用性。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁方法及裝置,通過將分裂后子集群的節(jié)點(diǎn)票數(shù)和節(jié)點(diǎn)上的資源票數(shù)作為合法集群接管仲裁的考慮因素,有效地解決僅將節(jié)點(diǎn)數(shù)作為仲裁考慮因素而導(dǎo)致的接管切換時(shí)間增加,集群系統(tǒng)連續(xù)服務(wù)時(shí)間降低的問題。根據(jù)本發(fā)明實(shí)施例的第一方面,提供了一種用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁方法,所述方法包括當(dāng)所述集群計(jì)算機(jī)系統(tǒng)發(fā)生分裂時(shí),根據(jù)所述分裂后子集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)和節(jié)點(diǎn)票數(shù)為分裂后合法子集群的確定進(jìn)行仲裁以使所述仲裁得到的合法子集群繼續(xù)提供服務(wù),其中所述資源票數(shù)可根據(jù)節(jié)點(diǎn)上運(yùn)行的應(yīng)用資源的啟動(dòng)時(shí)間進(jìn)行設(shè)置。根據(jù)本發(fā)明實(shí)施例的第二方面,提供了一種用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁裝置,所述裝置包括用于當(dāng)所述集群計(jì)算機(jī)系統(tǒng)發(fā)生分裂時(shí),根據(jù)所述分裂后子集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)和節(jié)點(diǎn)票數(shù)為分裂后合法子集群的確定進(jìn)行仲裁以使所述仲裁得到的合法子集群繼續(xù)提供服務(wù),其中所述資源票數(shù)可根據(jù)節(jié)點(diǎn)上運(yùn)行的應(yīng)用資源的啟動(dòng)時(shí)間進(jìn)行設(shè)置。實(shí)施本發(fā)明實(shí)施例,具有如下有益效果通過根據(jù)節(jié)點(diǎn)上的運(yùn)行資源的啟動(dòng)時(shí)間為各節(jié)點(diǎn)設(shè)置資源票數(shù),在集群發(fā)生分裂后,將分裂后子集群的節(jié)點(diǎn)票數(shù)和節(jié)點(diǎn)上的資源票數(shù)作為分裂后子集群接管的仲裁因素,有效地降低了分裂后子集群接管的切換處理時(shí)間,達(dá)到了減少服務(wù)宕機(jī)時(shí)間的效果。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1圖示了根據(jù)本發(fā)明實(shí)施方式的用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁方法流程示意圖。圖2圖示了根據(jù)本發(fā)明實(shí)施方式的集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)設(shè)置的流程示意圖。圖3圖示了根據(jù)本發(fā)明實(shí)施方式的雙節(jié)點(diǎn)高可用集群計(jì)算機(jī)系統(tǒng)的組網(wǎng)模型示意圖。圖4圖示了根據(jù)本發(fā)明實(shí)施方式的用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁裝置的結(jié)構(gòu)示意圖。圖5圖示了根據(jù)本發(fā)明實(shí)施方式的資源票數(shù)設(shè)置模塊的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。參見圖1,圖示了根據(jù)本發(fā)明實(shí)施方式的用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁方法流程示意圖,本發(fā)明提供的用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁方法包括當(dāng)所述集群計(jì)算機(jī)系統(tǒng)發(fā)生分裂時(shí),根據(jù)所述分裂后子集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)和節(jié)點(diǎn)票數(shù)為分裂后合法子集群的確定進(jìn)行仲裁以使所述仲裁得到的合法子集群繼續(xù)提供服務(wù),其中所述資源票數(shù)可根據(jù)節(jié)點(diǎn)上運(yùn)行的應(yīng)用資源的啟動(dòng)時(shí)間進(jìn)行設(shè)置。本發(fā)明的實(shí)施方式中,當(dāng)集群計(jì)算機(jī)系統(tǒng)發(fā)生故障分裂時(shí),根據(jù)分裂后各子集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)和節(jié)點(diǎn)票數(shù)為分裂后合法集群的確定(即子集群的接管)進(jìn)行仲裁以使仲裁得到的合法子集群繼續(xù)提供服務(wù)。其中,所述故障可能是因節(jié)點(diǎn)間的心跳檢測(cè)故障而導(dǎo)致的集群分裂,也可能是因某一節(jié)點(diǎn)自身故障而導(dǎo)致的集群分裂。例如,雙節(jié)點(diǎn)集群系統(tǒng)因兩節(jié)點(diǎn)間的心跳檢測(cè)故障發(fā)生分裂,分裂為子集群1(包括節(jié)點(diǎn)1)和子集群2 (包括節(jié)點(diǎn)2)。本發(fā)明實(shí)施方式中,分裂后子集群內(nèi)的節(jié)點(diǎn)票數(shù)可以采用每個(gè)節(jié)點(diǎn)投一票或一票以上的形式實(shí)施,例如上述的雙節(jié)點(diǎn)集群系統(tǒng)中,可以采用每個(gè)節(jié)點(diǎn)投一票,子集群1僅包括1個(gè)節(jié)點(diǎn)(即節(jié)點(diǎn)1),則其節(jié)點(diǎn)票數(shù)為1票,子集群2包括1個(gè)節(jié)點(diǎn)(即節(jié)點(diǎn)2),則其節(jié)點(diǎn)票數(shù)也為1票。節(jié)點(diǎn)上的資源票數(shù)是節(jié)點(diǎn)上運(yùn)行的應(yīng)用資源的票數(shù)之和,可以根據(jù)節(jié)點(diǎn)上各個(gè)應(yīng)用資源的啟動(dòng)時(shí)間進(jìn)行資源票數(shù)設(shè)置,例如節(jié)點(diǎn)1上有應(yīng)用資源appl和app2,應(yīng)用資源appl的啟動(dòng)時(shí)間20S (S為時(shí)間度量單位秒),可設(shè)置資源票數(shù)為1票,應(yīng)用資源app2 的啟動(dòng)時(shí)間為40S,可設(shè)置資源票數(shù)為2票,節(jié)點(diǎn)1上的資源票數(shù)為該節(jié)點(diǎn)上應(yīng)用資源appl和app2的資源票數(shù)之和,即3票。值得指出的是,本領(lǐng)域技術(shù)人員可以根據(jù)應(yīng)用需要設(shè)置應(yīng)用資源啟動(dòng)時(shí)間與資源票數(shù)之間的對(duì)應(yīng)關(guān)系,并不限于本發(fā)明實(shí)施方式中所提到的對(duì)應(yīng)關(guān)系。本發(fā)明實(shí)施方式中,分裂后子集群的資源票數(shù)為該子集群內(nèi)各節(jié)點(diǎn)的資源票數(shù)之和,例如子集群1內(nèi)包括節(jié)點(diǎn)1和節(jié)點(diǎn)2,節(jié)點(diǎn)1的資源票數(shù)為2票,節(jié)點(diǎn)2的資源票數(shù)為3 票,則子集群1的資源票數(shù)為該子集群內(nèi)節(jié)點(diǎn)1和節(jié)點(diǎn)2的資源票數(shù)之和,即5票。本發(fā)明的一些實(shí)施方式中,以四節(jié)點(diǎn)集群計(jì)算機(jī)系統(tǒng)為例,因故障分裂為兩個(gè)子集群,子集群1 (包括節(jié)點(diǎn)1和節(jié)點(diǎn)2、和子集群2 (包括節(jié)點(diǎn)3和節(jié)點(diǎn)4),節(jié)點(diǎn)1的資源票數(shù)為4票,節(jié)點(diǎn)2的資源票數(shù)為2票,節(jié)點(diǎn)3的資源票數(shù)為1票,節(jié)點(diǎn)4的資源票數(shù)為1票, 采用每個(gè)節(jié)點(diǎn)投一票的形式,子集群1包括兩個(gè)節(jié)點(diǎn),其節(jié)點(diǎn)票數(shù)為2票,子集群2包括兩個(gè)節(jié)點(diǎn),其節(jié)點(diǎn)票數(shù)同樣為兩票,通過本發(fā)明提供的投票仲裁方法根據(jù)分裂后子集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)和節(jié)點(diǎn)票數(shù)確定合法子集群,子集群1和子集群2的節(jié)點(diǎn)票數(shù)相同,通過節(jié)點(diǎn)票數(shù)比較不能確定出合法子集群,通過比較子集群1 (資源票數(shù)為6票)和子集群2(資源票數(shù)為2票)的資源票數(shù),可知子集群1的資源票數(shù)大于子集群2的資源票數(shù),將子集群 1確定為合法子集群,由確定出的合法子集群1接管子集群2。本發(fā)明的所述分裂后子集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)的確定可以采用圖2所示的流程設(shè)置。參見圖2,圖示了根據(jù)本發(fā)明實(shí)施方式的集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)設(shè)置的流程示意圖,具體可以包括S200,資源啟動(dòng)單元啟動(dòng)所述節(jié)點(diǎn)上的應(yīng)用資源;S202,監(jiān)測(cè)單元通過監(jiān)測(cè)腳本監(jiān)測(cè)所述應(yīng)用資源的啟動(dòng)時(shí)間;S204,資源投票分?jǐn)?shù)設(shè)置器根據(jù)監(jiān)測(cè)得到的啟動(dòng)時(shí)間設(shè)置所述應(yīng)用資源的資源票數(shù)。需要說明的是,本發(fā)明實(shí)施方式中的資源啟動(dòng)單元、監(jiān)測(cè)單元和資源投票分?jǐn)?shù)設(shè)置器可部署于用于管理集群計(jì)算系統(tǒng)的設(shè)備內(nèi)。本發(fā)明的實(shí)施方式中,為使節(jié)點(diǎn)上運(yùn)行的應(yīng)用資源參與投票,其中應(yīng)用資源包括httpd應(yīng)用資源、tomcat應(yīng)用資源等??梢栽谫Y源啟動(dòng)單元啟動(dòng)應(yīng)用資源后,根據(jù)監(jiān)測(cè)腳本監(jiān)測(cè)到的啟動(dòng)時(shí)間為各節(jié)點(diǎn)上的應(yīng)用資源設(shè)置相應(yīng)的票數(shù),其中票數(shù)設(shè)置的高低與監(jiān)測(cè)腳本監(jiān)測(cè)得到的資源的啟動(dòng)時(shí)間有關(guān),監(jiān)測(cè)腳本監(jiān)測(cè)得到的啟動(dòng)時(shí)間越長(zhǎng),資源投票分?jǐn)?shù)設(shè)置器為所述應(yīng)用資源設(shè)置的資源票數(shù)越高。例如, 在本發(fā)明的一些實(shí)施方式中,資源啟動(dòng)時(shí)間與資源票數(shù)可以是如下表1所示,表中啟動(dòng)時(shí)間為T,S為時(shí)間度量單位秒。表 權(quán)利要求
1.一種用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁方法,其特征在于,所述方法包括當(dāng)所述集群計(jì)算機(jī)系統(tǒng)發(fā)生分裂時(shí),根據(jù)所述分裂后子集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)和節(jié)點(diǎn)票數(shù)為分裂后合法子集群的確定進(jìn)行仲裁以使所述仲裁得到的合法子集群繼續(xù)提供服務(wù),其中所述資源票數(shù)可根據(jù)節(jié)點(diǎn)上運(yùn)行的應(yīng)用資源的啟動(dòng)時(shí)間進(jìn)行設(shè)置。
2.如權(quán)利要求1所述的方法,其特征在于,所述分裂后子集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)的設(shè)置步驟包括資源啟動(dòng)單元啟動(dòng)所述節(jié)點(diǎn)上的應(yīng)用資源;監(jiān)測(cè)單元通過監(jiān)測(cè)腳本監(jiān)測(cè)所述應(yīng)用資源的啟動(dòng)時(shí)間;資源投票分?jǐn)?shù)設(shè)置器根據(jù)監(jiān)測(cè)得到的啟動(dòng)時(shí)間設(shè)置所述應(yīng)用資源的資源票數(shù)。
3.如權(quán)利要求2所述的方法,其特征在于,所述監(jiān)測(cè)得到的啟動(dòng)時(shí)間越長(zhǎng),所述資源投票分?jǐn)?shù)設(shè)置器為所述應(yīng)用資源設(shè)置的資源票數(shù)越高。
4.如權(quán)利要求3所述的方法,其特征在于,所述應(yīng)用資源包括甲骨文數(shù)據(jù)庫應(yīng)用資源。
5.如權(quán)利要求4所述的方法,其特征在于,所述方法包括通過監(jiān)測(cè)腳本獲取所述應(yīng)用資源的業(yè)務(wù)量,當(dāng)所述業(yè)務(wù)量超過預(yù)定的閾值時(shí),資源投票分?jǐn)?shù)設(shè)置器為所述應(yīng)用資源重新設(shè)置資源票數(shù)。
6.如權(quán)利要求3所述的方法,其特征在于,所述集群計(jì)算機(jī)系統(tǒng)包括雙節(jié)點(diǎn)高可用集群計(jì)算機(jī)系統(tǒng)。
7.如權(quán)利要求6所述的方法,其特征在于,所述根據(jù)所述分裂后子集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)和節(jié)點(diǎn)票數(shù)為分裂后合法子集群的確定進(jìn)行仲裁以使所述仲裁得到的合法子集群繼續(xù)提供服務(wù)包括通過比較所述雙節(jié)點(diǎn)高可用集群計(jì)算機(jī)系統(tǒng)內(nèi)兩節(jié)點(diǎn)上的資源票數(shù)確定出具有最大資源票數(shù)的節(jié)點(diǎn),將確定出的具有最大資源票數(shù)的節(jié)點(diǎn)作為合法子集群以使所述合法子集群繼續(xù)提供服務(wù)。
8.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述集群計(jì)算機(jī)系統(tǒng)包括含三個(gè)以上節(jié)點(diǎn)的高可用集群計(jì)算機(jī)系統(tǒng)。
9.一種用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁裝置,其特征在于,所述裝置包括仲裁模塊,用于當(dāng)所述集群計(jì)算機(jī)系統(tǒng)發(fā)生分裂時(shí),根據(jù)所述分裂后子集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)和節(jié)點(diǎn)票數(shù)為分裂后合法子集群的確定進(jìn)行仲裁以使所述仲裁得到的合法子集群繼續(xù)提供服務(wù),其中所述資源票數(shù)可根據(jù)節(jié)點(diǎn)上運(yùn)行的應(yīng)用資源的啟動(dòng)時(shí)間進(jìn)行設(shè)置。
10.如權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括資源票數(shù)設(shè)置模塊,具體包括資源啟動(dòng)單元,用于啟動(dòng)所述節(jié)點(diǎn)上的應(yīng)用資源;監(jiān)測(cè)單元,用于通過監(jiān)測(cè)腳本監(jiān)測(cè)所述應(yīng)用資源的啟動(dòng)時(shí)間;資源投票分?jǐn)?shù)設(shè)置器,用于根據(jù)監(jiān)測(cè)單元監(jiān)測(cè)得到的啟動(dòng)時(shí)間設(shè)置所述應(yīng)用資源的資源票數(shù)。
11.如權(quán)利要求10所述的裝置,其特征在于,所述監(jiān)測(cè)單元監(jiān)測(cè)得到的啟動(dòng)時(shí)間越長(zhǎng), 所述資源投票分?jǐn)?shù)設(shè)置器為所述應(yīng)用資源設(shè)置的資源票數(shù)越高。
12.如權(quán)利要求11所述的裝置,其特征在于,所述應(yīng)用資源包括甲骨文數(shù)據(jù)庫應(yīng)用資源。
13.如權(quán)利要求12所述的裝置,其特征在于,所述監(jiān)測(cè)單元,還用于通過監(jiān)測(cè)腳本獲取所述應(yīng)用資源的業(yè)務(wù)量,當(dāng)所述業(yè)務(wù)量超過預(yù)定的閾值時(shí),啟動(dòng)資源投票分?jǐn)?shù)設(shè)置器為所述應(yīng)用資源重新設(shè)置資源票數(shù)。
14.如權(quán)利要求11所述的裝置,其特征在于,所述集群計(jì)算機(jī)系統(tǒng)包括雙節(jié)點(diǎn)高可用集群計(jì)算機(jī)系統(tǒng)。
15.如權(quán)利要求14所述的裝置,其特征在于,所述仲裁模塊用于實(shí)現(xiàn)通過比較所述雙節(jié)點(diǎn)高可用集群計(jì)算機(jī)系統(tǒng)內(nèi)兩節(jié)點(diǎn)上的資源票數(shù)確定出具有最大資源票數(shù)的節(jié)點(diǎn),將確定出的具有最大資源票數(shù)的節(jié)點(diǎn)作為合法子集群以使所述合法子集群繼續(xù)提供服務(wù)。
16.如權(quán)利要求11所述的裝置,其特征在于,所述集群計(jì)算機(jī)系統(tǒng)包括含三個(gè)以上節(jié)點(diǎn)的高可用集群計(jì)算機(jī)系統(tǒng)。
全文摘要
本發(fā)明實(shí)施例公開了一種用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁方法,所述方法包括當(dāng)所述集群計(jì)算機(jī)系統(tǒng)發(fā)生分裂時(shí),根據(jù)所述分裂后子集群內(nèi)節(jié)點(diǎn)上的資源票數(shù)和節(jié)點(diǎn)票數(shù)為分裂后合法子集群的確定進(jìn)行仲裁以使所述仲裁得到的合法子集群繼續(xù)提供服務(wù)。相應(yīng)地,本發(fā)明還提供了一種用于集群計(jì)算機(jī)系統(tǒng)的投票仲裁裝置。實(shí)施本發(fā)明提供的方法和裝置,可有效地降低合法子集群確定過程中的資源切換處理時(shí)間,提高集群系統(tǒng)連續(xù)對(duì)外服務(wù)的時(shí)間。
文檔編號(hào)H04L29/08GK102308559SQ201180001450
公開日2012年1月4日 申請(qǐng)日期2011年7月26日 優(yōu)先權(quán)日2011年7月26日
發(fā)明者杜學(xué)文, 王衛(wèi)偉 申請(qǐng)人:華為技術(shù)有限公司