一種云存儲服務(wù)中元數(shù)據(jù)服務(wù)節(jié)點的多節(jié)點熱備方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及云存儲技術(shù),尤其涉及一種云存儲服務(wù)中元數(shù)據(jù)服務(wù)節(jié)點的多節(jié)點熱備方法。
【背景技術(shù)】
[0002]隨著信息化程度的不斷提高,全球數(shù)據(jù)日益膨脹。面對當前海量數(shù)據(jù)存儲需求,傳統(tǒng)的存儲系統(tǒng)在容量和性能的擴展上存在瓶頸。云存儲以其擴展性強、性價比高、容錯性好等優(yōu)勢得到了業(yè)界的廣泛認同。云存儲是通過集群應(yīng)用、網(wǎng)格技術(shù)、分布式文件系統(tǒng)等,將網(wǎng)絡(luò)中大量類型各異的存儲設(shè)備整合起來,并對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能的系統(tǒng)。簡單來說,云存儲是對虛擬化存儲資源的管理和使用。云存儲是存儲領(lǐng)域一個新的概念,其目前已成為學術(shù)界和工業(yè)界的一個研宄熱點。
[0003]區(qū)別于傳統(tǒng)的存儲技術(shù),云存儲提供了更好的可擴展性,當需增加存儲能力時,只需添加服務(wù)器即可實現(xiàn),而不需要對存儲系統(tǒng)的結(jié)構(gòu)進行重新設(shè)計;同時隨著存儲能力的增加,云存儲系統(tǒng)的性能不會下降。目前,云存儲的興起正在顛覆傳統(tǒng)的存儲系統(tǒng)架構(gòu),其正以良好的可擴展性、性價比和容錯性等優(yōu)勢得到業(yè)界的廣泛認同。
[0004]為提高云存儲系統(tǒng)的訪問能力,在云存儲服務(wù)端將元數(shù)據(jù)和數(shù)據(jù)分開存儲,其中元數(shù)據(jù)集中存儲在元數(shù)據(jù)服務(wù)節(jié)點,而數(shù)據(jù)按一定大小分塊的組織方式存儲于多個存儲服務(wù)節(jié)點(Chunk),該組織方式提供高效數(shù)據(jù)訪問的基礎(chǔ),同一文件不同數(shù)據(jù)塊可以并發(fā)訪問。由于元數(shù)據(jù)與數(shù)據(jù)分離,實際對于數(shù)據(jù)的讀寫操作不會直接通過元數(shù)據(jù)服務(wù)節(jié)點,這就降低了元數(shù)據(jù)服務(wù)節(jié)點的負載。
[0005]元數(shù)據(jù)服務(wù)節(jié)點存儲著文件大小,存放位置等文件屬性信息。元數(shù)據(jù)服務(wù)節(jié)點對實際存放在存儲服務(wù)節(jié)點中的數(shù)據(jù)起著組織,控制的作用,一旦元數(shù)據(jù)丟失,文件找回十分麻煩,甚至數(shù)據(jù)丟失不能找回。特別是對于一些實時性比較強,數(shù)據(jù)可靠性比較高的領(lǐng)域運用的云存儲系統(tǒng),需要加強元數(shù)據(jù)服務(wù)節(jié)點的容災(zāi)能力。
【發(fā)明內(nèi)容】
[0006]本申請?zhí)峁┝艘环N云存儲服務(wù)中元數(shù)據(jù)服務(wù)節(jié)點的多節(jié)點熱備方法,可以有效防止元數(shù)據(jù)服務(wù)節(jié)點的單點故障,從而提高整個系統(tǒng)的數(shù)據(jù)安全性。
[0007]本申請實施例提供的一種云存儲服務(wù)中元數(shù)據(jù)服務(wù)節(jié)點的多節(jié)點熱備方法,包括:
[0008]A、在云存儲系統(tǒng)中設(shè)置至少3臺元數(shù)據(jù)服務(wù)節(jié)點,從中選出一臺作為主機節(jié)點,其他的作為為備機節(jié)點;
[0009]B、主機節(jié)點提供元數(shù)據(jù)更新服務(wù),并將更新后的元數(shù)據(jù)同步到備機節(jié)點;
[0010]C、當主機節(jié)點發(fā)生故障時,從備機節(jié)點中選舉出一臺作為新的主機節(jié)點。
[0011]較佳地,步驟B包括:
[0012]B1、主機節(jié)點正確處理該數(shù)據(jù)更新請求后,將需要更新的元數(shù)據(jù)保存在第一緩存中;將需要更新的元數(shù)據(jù)包裝成一個個的對象,形成對象列表;將形成的對象列表放入一個待辦理業(yè)務(wù)中,生成一個遠程調(diào)用請求也放入所述待辦理業(yè)務(wù)中,并給所述待辦理業(yè)務(wù)分配一個順序增長的待辦理業(yè)務(wù)標識;所述遠程調(diào)用請求中除了包含數(shù)據(jù)更新請求的所有信息,還包括分配給文件的存儲位置信息;
[0013]B2、當?shù)谝痪彺嬷械脑獢?shù)據(jù)的量超過第一閾值或者經(jīng)過預(yù)定時間后,觸發(fā)主機節(jié)點處理待辦理業(yè)務(wù):將對象列表中的內(nèi)容加入到相對于第一緩存更大的第二緩存中;將遠程調(diào)用請求加入鏈表T-1ink中,并將對象列表中的內(nèi)容加入到相對于第一緩存更大的第二緩存中;更新cur_lsn的值為待辦理業(yè)務(wù)標識;
[0014]B3、主機節(jié)點將T-1ink中的遠程調(diào)用請求以異步的方式廣播到集群中的所有備機節(jié)點;
[0015]B4、當?shù)诙彺嬷械脑獢?shù)據(jù)的量超過第二閾值或者經(jīng)過預(yù)定時間后,將第二緩存中的所有待更新元數(shù)據(jù)以及cur_lsn刷新到本地磁盤。
[0016]較佳地,步驟B3進一步包括:主機節(jié)點將遠程調(diào)用請求以異步方式保存到本地日志文件中。
[0017]較佳地,步驟B4之后進一步包括:
[0018]B5、備機節(jié)點接收到主機節(jié)點廣播過來的遠程調(diào)用請求;
[0019]B6、備機節(jié)點對所述遠程調(diào)用請求進行處理,將處理后生成的需要更新的元數(shù)據(jù)將保存在第三緩存中;將需要更新的元數(shù)據(jù)包裝成一個個的對象,形成對象列表,將形成的對象列表放入一個待辦理業(yè)務(wù)中,生成一個遠程調(diào)用請求也放入所述待辦理業(yè)務(wù)中,并給所述待辦理業(yè)務(wù)分配一個順序增長的待辦理業(yè)務(wù)標識;
[0020]B7、當?shù)谌彺嬷械脑獢?shù)據(jù)的量超過第三閾值或者經(jīng)過預(yù)定時間后,觸發(fā)備機節(jié)點處理待辦理業(yè)務(wù):將對象列表中的內(nèi)容加入到相對于第三緩存更大的第四緩存中;
[0021]B8、當?shù)谒木彺嬷械脑獢?shù)據(jù)的量超過第四閾值或者經(jīng)過預(yù)定時間后,將第四緩存中的所有待更新元數(shù)據(jù)以及cur_lsn刷新到本地磁盤。
[0022]較佳地,步驟B4進一步包括:備機節(jié)點將遠程調(diào)用請求以異步方式寫入到本地日志文件中。
[0023]較佳地,所述備機節(jié)點將遠程調(diào)用請求以異步方式寫入到本地日志文件中包括:備機節(jié)點檢查待辦理業(yè)務(wù)標識是否為備機節(jié)點下的Cur_lsn+1,如果是,備機節(jié)點將遠程調(diào)用請求以異步方式寫入到本地日志文件中,否則備機節(jié)點報錯。
[0024]較佳地,所述步驟A中,將cur_lsn的值最大的元數(shù)據(jù)服務(wù)節(jié)點作為主機節(jié)點,其他的元數(shù)據(jù)服務(wù)節(jié)點作為備機節(jié)點。
[0025]較佳地,步驟A進一步包括:每一個元數(shù)據(jù)服務(wù)節(jié)點分配判斷本地日志文件中是否存在大于本地cur_lSn的遠程調(diào)用請求標識,若是,將本地日志文件中的所有遠程調(diào)用請求標識大于cur_lsn的遠程調(diào)用請求在本機重做一次數(shù)據(jù)同步操作。
[0026]較佳地,該方法進一步包括:主機節(jié)點發(fā)現(xiàn)任一個備機節(jié)點的cur_lsn比自己的最大遠程調(diào)用請求標識小,進行如下操作:將所述備機節(jié)點從異步廣播隊列中剔除,添加到同步隊列中;通過專門的同步線程,將大于備機節(jié)點的cur_lsn的所有請求同步到備機節(jié)占.V,
[0027]較佳地,該方法進一步包括:如果主機節(jié)點發(fā)現(xiàn)本地日志文件中最小的序列號大于備機節(jié)點的cur_lsn+l,那么報錯,將備機節(jié)點中的本地日志文件截斷至主機節(jié)點的序列號的地方,并使該備機節(jié)點退出該服務(wù)進程。
[0028]從以上技術(shù)方案可以看出,主機節(jié)點提供元數(shù)據(jù)更新服務(wù),并將更新后的元數(shù)據(jù)同步到備機節(jié)點。當主機節(jié)點發(fā)生故障時,從備機節(jié)點中選舉出一臺作為新的主機節(jié)點。本申請還提供了數(shù)據(jù)同步異常的處理方法。通過多節(jié)點熱備,可以有效防止元數(shù)據(jù)服務(wù)節(jié)點的單點故障,從而提高整個系統(tǒng)的數(shù)據(jù)安全性。
【附圖說明】
[0029]圖1為本申請實施例提供的一種云存儲服務(wù)中元數(shù)據(jù)服務(wù)節(jié)點的多節(jié)點熱備方法流程示意圖;
[0030]圖2為圖1所示流程中步驟102的具體執(zhí)行過程示意圖。
【具體實施方式】
[0031]本申請技術(shù)方案的設(shè)計思想是:在云存儲系統(tǒng)中設(shè)置至少3臺元數(shù)據(jù)服務(wù)節(jié)點,從中選出一臺作為主機節(jié)點(命名為master節(jié)點),其他的作為為備機節(jié)點(命名為slave節(jié)點)。主機節(jié)點提供元數(shù)據(jù)更新服務(wù),例如創(chuàng)建文件夾,刪除文件夾,修改文件夾名字,創(chuàng)建文件,修改文件,修改文件等服務(wù)(讀取文件夾屬性,讀取文件屬性等操作不涉及數(shù)據(jù)更新)。多節(jié)點熱備就是將更新后的元數(shù)據(jù)同步到備機節(jié)點。當主機節(jié)點發(fā)生故障時,從備機節(jié)點中選舉出一臺