一種云存儲(chǔ)系統(tǒng)中選舉主控節(jié)點(diǎn)的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及互聯(lián)網(wǎng)云計(jì)算及云存技術(shù)領(lǐng)域,尤其涉及一種云存儲(chǔ)系統(tǒng)中選舉主控節(jié)點(diǎn)的方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)網(wǎng)絡(luò),特別是Internet的迅猛發(fā)展,越來(lái)越多的資料被數(shù)據(jù)化,全球信息存儲(chǔ)量每年急劇增長(zhǎng)。傳統(tǒng)的信息系統(tǒng)概念發(fā)生了巨大的變化,這些變化突出地表現(xiàn)在信息的存儲(chǔ)、傳遞、發(fā)布以及獲取方式所發(fā)生的革命性變革。與此同時(shí),大量數(shù)據(jù)密集型應(yīng)用,如視頻監(jiān)控,廣電行業(yè),數(shù)字圖書館,醫(yī)療視頻圖像處理,海量視頻在線編輯等,對(duì)存儲(chǔ)系統(tǒng)的容量,性能,安全性,可擴(kuò)展性和可用性提出了更高要求。傳統(tǒng)的直接存儲(chǔ)模式漸漸不能滿足需求,信息存儲(chǔ)的需求和應(yīng)用的復(fù)雜性提出了新的存儲(chǔ)模式。
[0003]云存儲(chǔ)是在云計(jì)算概念上延伸和發(fā)展出來(lái)的一個(gè)新的概念,是指通過(guò)集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲(chǔ)設(shè)備通過(guò)應(yīng)用軟件集合起來(lái)協(xié)同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問(wèn)功能的一個(gè)系統(tǒng)。與傳統(tǒng)的存儲(chǔ)設(shè)備相比,云存儲(chǔ)系統(tǒng)不僅僅是一個(gè)硬件,而是一個(gè)網(wǎng)絡(luò)設(shè)備、存儲(chǔ)設(shè)備、服務(wù)器、應(yīng)用軟件、公用訪問(wèn)接口、接入網(wǎng)、和客戶端程序等多個(gè)部分組成的復(fù)雜系統(tǒng)。各部分以存儲(chǔ)設(shè)備為核心,通過(guò)應(yīng)用軟件來(lái)對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問(wèn)服務(wù)。
[0004]云存儲(chǔ)系統(tǒng)是一種典型的分布式系統(tǒng),其中存在多個(gè)控制節(jié)點(diǎn)。因此,需要在多個(gè)控制節(jié)點(diǎn)間選舉一個(gè)主控節(jié)點(diǎn),其他控制節(jié)點(diǎn)作為備份節(jié)點(diǎn)。在系統(tǒng)啟動(dòng)后或者原主控節(jié)點(diǎn)失效后能快速選舉出新的主控節(jié)點(diǎn)?,F(xiàn)有技術(shù)中對(duì)此沒有一個(gè)成熟的解決方案。
【發(fā)明內(nèi)容】
[0005]本申請(qǐng)?zhí)峁┝艘环N云存儲(chǔ)系統(tǒng)中選舉主控節(jié)點(diǎn)的方法及系統(tǒng),能夠在云存儲(chǔ)系統(tǒng)中無(wú)主控節(jié)點(diǎn)時(shí),快速選舉出新的主控節(jié)點(diǎn)。
[0006]本申請(qǐng)?zhí)峁┝艘环N云存儲(chǔ)系統(tǒng)中選舉主控節(jié)點(diǎn)的方法,包括:
[0007]A、在云存儲(chǔ)系統(tǒng)的基礎(chǔ)平臺(tái)維護(hù)各個(gè)控制節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí);
[0008]B、當(dāng)云存儲(chǔ)系統(tǒng)中無(wú)主控節(jié)點(diǎn)時(shí),各個(gè)控制節(jié)點(diǎn)從基礎(chǔ)平臺(tái)上獲取其它控制節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí),根據(jù)所獲取的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)判斷本控制節(jié)點(diǎn)的數(shù)據(jù)是否為最新,若是,將本控制節(jié)點(diǎn)變更為主控節(jié)點(diǎn),并通知其它控制節(jié)點(diǎn)本控制節(jié)點(diǎn)當(dāng)選為主控節(jié)點(diǎn)。
[0009]可選地,步驟A包括:
[0010]主控節(jié)點(diǎn)接收到客戶端和數(shù)據(jù)節(jié)點(diǎn)的請(qǐng)求進(jìn)行相應(yīng)處理,根據(jù)備機(jī)列表將數(shù)據(jù)同步到各個(gè)備機(jī)節(jié)點(diǎn),基礎(chǔ)平臺(tái)相應(yīng)更新每個(gè)主控節(jié)點(diǎn)或備機(jī)節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)。
[0011]可選地,步驟A包括:控制節(jié)點(diǎn)在啟動(dòng)的時(shí)候在基礎(chǔ)平臺(tái)上注冊(cè)本控制節(jié)點(diǎn)的節(jié)點(diǎn)描述信息,所述節(jié)點(diǎn)描述信息中包括數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)。
[0012]可選地,所述節(jié)點(diǎn)描述信息進(jìn)一步包括:節(jié)點(diǎn)標(biāo)識(shí)和主控/備機(jī)節(jié)點(diǎn)標(biāo)識(shí)。
[0013]可選地,該方法進(jìn)一步包括:
[0014]主控節(jié)點(diǎn)在基礎(chǔ)平臺(tái)注冊(cè)回調(diào)接口獲取控制節(jié)點(diǎn)的上線事件,并將新上線的控制節(jié)點(diǎn)添加到備機(jī)列表中。
[0015]可選地,步驟B包括:
[0016]B1、控制節(jié)點(diǎn)通過(guò)基礎(chǔ)平臺(tái)注冊(cè)回調(diào)接口獲取其它控制節(jié)點(diǎn)的節(jié)點(diǎn)描述信息;
[0017]B2、控制節(jié)點(diǎn)根據(jù)所獲取的節(jié)點(diǎn)描述信息判斷是否存在主控節(jié)點(diǎn),若存在,結(jié)束本流程,否則,執(zhí)行步驟B3;
[0018]B3、控制節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)描述信息判斷本控制節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)是否為最新,若是,執(zhí)行步驟B4,否則結(jié)束本流程;
[0019]B4、控制節(jié)點(diǎn)向基礎(chǔ)平臺(tái)發(fā)送請(qǐng)求,將本控制節(jié)點(diǎn)的備機(jī)節(jié)點(diǎn)標(biāo)識(shí)修改為主控節(jié)點(diǎn)標(biāo)識(shí),并向云存儲(chǔ)系統(tǒng)中的其它控制節(jié)點(diǎn)發(fā)送通知,本控制節(jié)點(diǎn)當(dāng)選為主控節(jié)點(diǎn)。
[0020]可選地,步驟B1之前,進(jìn)一步包括:
[0021]控制節(jié)點(diǎn)通過(guò)基礎(chǔ)平臺(tái)注冊(cè)回調(diào)接口檢測(cè)到主控節(jié)點(diǎn)失效事件,則觸發(fā)執(zhí)行所述
B1
[0022]可選地,步驟B4之后進(jìn)一步包括:所述主控節(jié)點(diǎn)將其他控制節(jié)點(diǎn)加入備機(jī)列表。
[0023]本申請(qǐng)實(shí)施例還提供了一種云存儲(chǔ)系統(tǒng),所述云存儲(chǔ)系統(tǒng)包括基礎(chǔ)平臺(tái)以及多個(gè)控制節(jié)點(diǎn),
[0024]所述基礎(chǔ)平臺(tái)用于維護(hù)各個(gè)控制節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí);
[0025]所述控制節(jié)點(diǎn)包括:
[0026]感知1?塊,用于感知存儲(chǔ)系統(tǒng)中是否存在主控節(jié)點(diǎn);
[0027]獲取模塊,用于在感知模塊感知到無(wú)主控節(jié)點(diǎn)時(shí),從基礎(chǔ)平臺(tái)上獲取其它控制節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí);
[0028]判斷模塊,用于根據(jù)所獲取的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)判斷本控制節(jié)點(diǎn)的數(shù)據(jù)是否為最新;
[0029]選舉模塊,用于在所述判斷模塊判斷結(jié)果為是時(shí),將本控制節(jié)點(diǎn)變更為主控節(jié)點(diǎn),并通知其它控制節(jié)點(diǎn)本控制節(jié)點(diǎn)當(dāng)選為主控節(jié)點(diǎn)。
[0030]可選地,所述控制節(jié)點(diǎn)進(jìn)一步包括:
[0031]數(shù)據(jù)同步模塊,用于在本控制節(jié)點(diǎn)為主控節(jié)點(diǎn)時(shí),當(dāng)本控制節(jié)點(diǎn)接收到客戶端和數(shù)據(jù)節(jié)點(diǎn)的請(qǐng)求進(jìn)行相應(yīng)處理后,根據(jù)備機(jī)列表將數(shù)據(jù)同步到各個(gè)備機(jī)節(jié)點(diǎn),并向基礎(chǔ)平臺(tái)發(fā)送數(shù)據(jù)同步通知消息;在本控制節(jié)點(diǎn)為備機(jī)節(jié)點(diǎn)時(shí),接收來(lái)自主控節(jié)點(diǎn)的數(shù)據(jù)并更新本控制節(jié)點(diǎn)的數(shù)據(jù),并向基礎(chǔ)平臺(tái)發(fā)送數(shù)據(jù)同步通知消息;
[0032]所述基礎(chǔ)平臺(tái)進(jìn)一步用于根據(jù)來(lái)自各個(gè)控制節(jié)點(diǎn)的數(shù)據(jù)同步通知消息,更新相應(yīng)控制節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)。
[0033]從以上技術(shù)方案可以看出,在云存儲(chǔ)系統(tǒng)的基礎(chǔ)平臺(tái)維護(hù)各個(gè)控制節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí);當(dāng)云存儲(chǔ)系統(tǒng)中無(wú)主控節(jié)點(diǎn)時(shí),各個(gè)控制節(jié)點(diǎn)從基礎(chǔ)平臺(tái)上獲取其它控制節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí),根據(jù)所獲取的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)判斷本控制節(jié)點(diǎn)的數(shù)據(jù)是否為最新,若是,通知其它控制節(jié)點(diǎn)本控制節(jié)點(diǎn)當(dāng)選為主控節(jié)點(diǎn)。本申請(qǐng)方案能夠在云存儲(chǔ)系統(tǒng)啟動(dòng)時(shí)無(wú)主控節(jié)點(diǎn)或者原主控節(jié)點(diǎn)失效時(shí),迅速選出主控節(jié)點(diǎn),保證云存儲(chǔ)系統(tǒng)正常運(yùn)行。
【附圖說(shuō)明】
[0034]圖1為本申請(qǐng)實(shí)施例提供的云存儲(chǔ)系統(tǒng)中有主控節(jié)點(diǎn)的情況下,新的控制節(jié)點(diǎn)啟動(dòng)時(shí)流程示意圖;
[0035]圖2為本申請(qǐng)實(shí)施例提供的無(wú)主控節(jié)點(diǎn)的情況下,云存儲(chǔ)系統(tǒng)啟動(dòng)時(shí)其中任一個(gè)控制節(jié)點(diǎn)的處理流程示意圖;
[0036]圖3為本申請(qǐng)實(shí)施例提供的云存儲(chǔ)系統(tǒng)中主控節(jié)點(diǎn)失效后,選舉新的主控節(jié)點(diǎn)的處理流程示意圖。
【具體實(shí)施方式】
[0037]本申請(qǐng)?zhí)峁┮环N云存儲(chǔ)系統(tǒng)中選舉主控節(jié)點(diǎn)的方法,能夠快速、有效地從多個(gè)控制節(jié)點(diǎn)中選舉出主控節(jié)點(diǎn)。其基本技術(shù)構(gòu)思包括:在云存儲(chǔ)系統(tǒng)的基礎(chǔ)平臺(tái)維護(hù)各個(gè)控制節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí);當(dāng)云存儲(chǔ)系統(tǒng)中無(wú)主控節(jié)點(diǎn)時(shí),各個(gè)控制節(jié)點(diǎn)從基礎(chǔ)平臺(tái)上獲取其它控制節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí),根據(jù)所獲取的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)判斷本控制節(jié)點(diǎn)的數(shù)據(jù)是否為最新,若是,通知其它控制節(jié)點(diǎn)本控制節(jié)點(diǎn)當(dāng)選為主控節(jié)點(diǎn)。節(jié)點(diǎn)當(dāng)選主控節(jié)點(diǎn)后接收來(lái)自客戶端和數(shù)據(jù)節(jié)點(diǎn)的請(qǐng)求,并將數(shù)據(jù)同步到備機(jī)。
[0038]為使本申請(qǐng)技術(shù)方案的技術(shù)原理、特點(diǎn)以及技術(shù)效果更加清楚,以下結(jié)合具體實(shí)施例對(duì)本申請(qǐng)技術(shù)方案進(jìn)行詳細(xì)闡述。
[0039]圖1示出了本申請(qǐng)實(shí)施例提供的云存儲(chǔ)系統(tǒng)中有主控節(jié)點(diǎn)的情況下,新的控制節(jié)點(diǎn)啟動(dòng)時(shí)的處理流程,包括如下步驟:
[0040]步驟101:控制節(jié)點(diǎn)在啟動(dòng)時(shí),在基礎(chǔ)平臺(tái)上注冊(cè)本控制節(jié)點(diǎn)的節(jié)點(diǎn)描述信息。
[0041]所述節(jié)點(diǎn)描述信息至少需要包括節(jié)點(diǎn)標(biāo)識(shí)、主控/備機(jī)節(jié)點(diǎn)標(biāo)識(shí)、數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)Ο
[0042]其中,節(jié)點(diǎn)標(biāo)識(shí)用于區(qū)分各個(gè)控制節(jié)點(diǎn),每個(gè)控制節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)在云存儲(chǔ)系統(tǒng)中都是唯一的。主控/備機(jī)節(jié)點(diǎn)標(biāo)識(shí)用于表明該控制節(jié)點(diǎn)是主控節(jié)點(diǎn)還是備機(jī)節(jié)點(diǎn),控制節(jié)點(diǎn)在啟動(dòng)時(shí)默認(rèn)為備機(jī)節(jié)點(diǎn)。數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)用于表明本控制節(jié)點(diǎn)的數(shù)據(jù)新舊程度,數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)的具體形式可以是本主控節(jié)點(diǎn)最后一次數(shù)據(jù)更新的時(shí)間。
[0043]此外,節(jié)點(diǎn)描述信息還包括IP地址、節(jié)點(diǎn)狀態(tài)信息(內(nèi)存、CPU)等必要的信息。
[0044]步驟102:主控節(jié)點(diǎn)在基礎(chǔ)平臺(tái)注冊(cè)回調(diào)接口獲取控制節(jié)點(diǎn)的上線事件,并將該控制節(jié)點(diǎn)添加到備機(jī)列表中。
[0045]同時(shí),新啟動(dòng)的控制節(jié)點(diǎn)也會(huì)通過(guò)基礎(chǔ)平臺(tái)注冊(cè)回調(diào)接口獲取其它控制節(jié)點(diǎn)的節(jié)點(diǎn)描述信息。并根據(jù)所述節(jié)點(diǎn)描述信息判斷是否存在主控節(jié)點(diǎn)。
[0046]步驟103:主控節(jié)點(diǎn)接收到客戶端和數(shù)據(jù)節(jié)點(diǎn)的請(qǐng)求進(jìn)行相應(yīng)處理,根據(jù)備機(jī)列表將數(shù)據(jù)同步到各個(gè)備機(jī)節(jié)點(diǎn),基礎(chǔ)平臺(tái)相應(yīng)更新每個(gè)主控節(jié)點(diǎn)或備機(jī)節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)。
[0047]圖2示出了本申請(qǐng)實(shí)施例提供的無(wú)主控節(jié)點(diǎn)的情況下,云存儲(chǔ)系統(tǒng)啟動(dòng)時(shí)其中任一個(gè)控制節(jié)點(diǎn)的處理流程,包括如下步驟:
[0048]步驟201:控制節(jié)點(diǎn)在啟動(dòng)的時(shí)候在基礎(chǔ)平臺(tái)上注冊(cè)本控制節(jié)點(diǎn)的節(jié)點(diǎn)描述信息。
[0049]步驟202:控制節(jié)點(diǎn)通過(guò)基礎(chǔ)平臺(tái)注冊(cè)回調(diào)接口獲取其它控制節(jié)點(diǎn)的節(jié)點(diǎn)描述信息。
[0050]步驟203:控制節(jié)點(diǎn)根據(jù)所獲取的節(jié)點(diǎn)描述信息判斷是否存在主控節(jié)點(diǎn),若存在,結(jié)束本流程,否則,執(zhí)行步驟204。
[0051]步驟204:控制節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)描述信息判斷本控制節(jié)點(diǎn)的數(shù)據(jù)更新狀態(tài)標(biāo)識(shí)是否為最新,若是,執(zhí)行步驟205,否則結(jié)束本流程。
[0052]步驟205:控制節(jié)點(diǎn)向基礎(chǔ)平臺(tái)發(fā)送請(qǐng)求,將本控制節(jié)點(diǎn)的備機(jī)節(jié)點(diǎn)標(biāo)識(shí)修改為主控節(jié)點(diǎn)標(biāo)