專利名稱:一種分布式文件系統(tǒng)中的副本管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及云計(jì)算云存儲(chǔ)領(lǐng)域,具體涉及一種分布式文件系統(tǒng)中的副本管理方法。
背景技術(shù):
云存儲(chǔ)是在云計(jì)算(cloud computing)基礎(chǔ)上延伸和發(fā)展出來的一個(gè)新概念,是指通過集群應(yīng)用、網(wǎng)絡(luò)技術(shù)和分布式文件系統(tǒng)等技術(shù),將網(wǎng)絡(luò)中大量不同類型的存儲(chǔ)設(shè)備進(jìn)行整合利用,形成統(tǒng)一的存儲(chǔ)池對(duì)外提供存儲(chǔ)服務(wù)。分布式文件系統(tǒng)作為云存儲(chǔ)的核心組成部分在近幾年中有了長足的發(fā)展。在分布式文件系統(tǒng)中,在多副本冗余的情況下進(jìn)行副本更新可能會(huì)導(dǎo)致主節(jié)點(diǎn)和塊節(jié)點(diǎn)副本間的數(shù)據(jù)不一致。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是如何在分布式文件系統(tǒng)中維護(hù)副本的一致性。為了解決上述問題,本發(fā)明提供了一種分布式文件系統(tǒng)中的副本管理方法,包括
在塊節(jié)點(diǎn)向主節(jié)點(diǎn)重新注冊(cè)時(shí),根據(jù)塊節(jié)點(diǎn)上副本的狀態(tài)重新設(shè)置主節(jié)點(diǎn)上相應(yīng)副本的狀態(tài);若塊節(jié)點(diǎn)上的副本受損,則將主節(jié)點(diǎn)上相應(yīng)副本設(shè)置為錯(cuò)誤狀態(tài);若塊節(jié)點(diǎn)上的副本將要移除,則將主節(jié)點(diǎn)上相應(yīng)副本設(shè)置為即將移除正確狀態(tài);若塊節(jié)點(diǎn)上的副本正常, 則將主節(jié)點(diǎn)上相應(yīng)副本設(shè)置為正確狀態(tài)。進(jìn)一步地,所述的方法還包括
新建副本時(shí)將該副本設(shè)置為忙狀態(tài),如果新建成功則將該副本轉(zhuǎn)換為正確狀態(tài),新建失敗則將該副本轉(zhuǎn)換為錯(cuò)誤狀態(tài)。進(jìn)一步地,所述的方法還包括
更新正確狀態(tài)的副本時(shí),將該副本轉(zhuǎn)換為忙狀態(tài);更新成功則將該副本轉(zhuǎn)換為正確狀態(tài),更新失敗則將該副本轉(zhuǎn)換為錯(cuò)誤狀態(tài);
更新即將移除正確狀態(tài)的副本時(shí),將該副本轉(zhuǎn)換為即將移除忙狀態(tài);更新成功則將該副本轉(zhuǎn)換為即將移除正確狀態(tài),更新失敗則該將副本轉(zhuǎn)換為錯(cuò)誤狀態(tài)。進(jìn)一步地,所述的方法還包括
主節(jié)點(diǎn)周期性檢測(cè)各副本的狀態(tài),將處于錯(cuò)誤狀態(tài)的副本設(shè)置為刪除狀態(tài);對(duì)處于正確狀態(tài)或即將移除正確狀態(tài)的副本,若該副本對(duì)應(yīng)的文件節(jié)點(diǎn)已經(jīng)刪除,則將該副本設(shè)置為刪除狀態(tài)。進(jìn)一步地,所述的方法還包括
在主節(jié)點(diǎn)周期性檢測(cè)時(shí),對(duì)處于刪除狀態(tài)的副本,向塊節(jié)點(diǎn)發(fā)出刪除該副本的命令;若塊節(jié)點(diǎn)刪除該副本成功,則釋放掉該副本的數(shù)據(jù)結(jié)構(gòu);若塊節(jié)點(diǎn)刪除該副本失敗,則保持該副本為刪除狀態(tài)不變。
進(jìn)一步地,所述的方法還包括
在主節(jié)點(diǎn)周期性檢測(cè)時(shí),比較正確狀態(tài)的副本數(shù)和預(yù)期要求副本數(shù)goal,如果正確狀態(tài)的副本數(shù)大于goal,則將多余的正確狀態(tài)的副本設(shè)置為刪除狀態(tài)。進(jìn)一步地,如果正確狀態(tài)的副本數(shù)小于goal,則新建相應(yīng)數(shù)量的副本;新建副本時(shí),以正確狀態(tài)的副本為源進(jìn)行復(fù)制,若不存在正確狀態(tài)的副本則以即將移除正確狀態(tài)的副本為源進(jìn)行復(fù)制。進(jìn)一步地,所述的方法還包括
在主節(jié)點(diǎn)周期性檢測(cè)時(shí),判斷處于正確狀態(tài)和即將刪除正確狀態(tài)的副本數(shù)之和是否大于預(yù)期要求副本數(shù)goal,如果是則將多余的即將刪除正確狀態(tài)的副本設(shè)置為刪除狀態(tài)。本發(fā)明的技術(shù)方案根據(jù)分布式文件系統(tǒng)的實(shí)際操作對(duì)相關(guān)副本進(jìn)行狀態(tài)標(biāo)記,維護(hù)副本一致性;本發(fā)明的優(yōu)化方案定義了錯(cuò)誤狀態(tài)、刪除狀態(tài)、忙狀態(tài)、正確狀態(tài)、即將移除忙狀態(tài)、即將移除正確狀態(tài)六種副本狀態(tài),并定期檢查這些副本,完成副本狀態(tài)的轉(zhuǎn)換,從而達(dá)到周期性維護(hù)副本一致性的目的,而且使分布式文件系統(tǒng)具有較好的自我容錯(cuò)能力; 本發(fā)明的又一優(yōu)化方案通過自動(dòng)完成副本的拷貝、恢復(fù)、刪除工作,來保證合法副本數(shù)等于預(yù)期設(shè)置。
圖I是實(shí)施例一中副本各狀態(tài)及其轉(zhuǎn)換示意圖。
具體實(shí)施例方式下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行更詳細(xì)的說明。需要說明的是,如果不沖突,本發(fā)明實(shí)施例以及實(shí)施例中的各個(gè)特征可以相互結(jié)合,均在本發(fā)明的保護(hù)范圍之內(nèi)。實(shí)施例一,一種分布式文件系統(tǒng)中的副本管理方法,包括
在塊節(jié)點(diǎn)向主節(jié)點(diǎn)重新注冊(cè)(比如重啟了塊節(jié)點(diǎn))時(shí),根據(jù)塊節(jié)點(diǎn)上副本(即塊文件)的狀態(tài)重新設(shè)置主節(jié)點(diǎn)上相應(yīng)副本的狀態(tài);若塊節(jié)點(diǎn)上的副本受損(比如塊節(jié)點(diǎn)上塊文件被意外刪除),則將主節(jié)點(diǎn)上相應(yīng)副本設(shè)置為錯(cuò)誤狀態(tài);若塊節(jié)點(diǎn)上的副本將要移除(比如要將塊節(jié)點(diǎn)從分布式文件系統(tǒng)中移除,此時(shí)會(huì)將其上的塊文件標(biāo)定為移除狀態(tài)),則將主節(jié)點(diǎn)上相應(yīng)副本設(shè)置為即將移除正確狀態(tài);若塊節(jié)點(diǎn)上的副本正常,則將主節(jié)點(diǎn)上相應(yīng)副本設(shè)置為正確狀態(tài)。如果主節(jié)點(diǎn)上副本當(dāng)前狀態(tài)就和要設(shè)置的一致(比如塊節(jié)點(diǎn)上的副本正常,而主節(jié)點(diǎn)上相應(yīng)副本當(dāng)前狀態(tài)就是正確狀態(tài)),則保持原來狀態(tài)即可。即將移除正確狀態(tài)表示該副本數(shù)據(jù)是正確的,但它所在的塊節(jié)點(diǎn)將要從分布式文件系統(tǒng)中移除。本實(shí)施例中,所述方法還可以包括
主節(jié)點(diǎn)周期性檢測(cè)各副本的狀態(tài),將處于錯(cuò)誤狀態(tài)的副本設(shè)置為刪除狀態(tài),表示該副本即將被刪除。 本實(shí)施例中,所述方法還可以包括
在主節(jié)點(diǎn)周期性檢測(cè)時(shí),對(duì)處于正確狀態(tài)或即將移除正確狀態(tài)的副本,若該副本對(duì)應(yīng)的文件節(jié)點(diǎn)已經(jīng)刪除,則將該副本設(shè)置為刪除狀態(tài),表示該副本即將被刪除。本實(shí)施例中,所述方法還可以包括
在主節(jié)點(diǎn)周期性檢測(cè)時(shí),對(duì)處于刪除狀態(tài)的副本,向塊節(jié)點(diǎn)發(fā)出刪除該副本的命令;若塊節(jié)點(diǎn)刪除該副本成功,則釋放掉該副本的數(shù)據(jù)結(jié)構(gòu);若塊節(jié)點(diǎn)刪除該副本失敗,則保持該副本為刪除狀態(tài)不變。本實(shí)施例中,所述方法還可以包括
在主節(jié)點(diǎn)周期性檢測(cè)時(shí),比較正確狀態(tài)的副本數(shù)和預(yù)期要求副本數(shù)goal (goal是會(huì)變化的,比如客戶端重新設(shè)置了 goal),如果正確狀態(tài)的副本數(shù)大于goal,則將多余的正確狀態(tài)的副本設(shè)置為刪除狀態(tài)(假設(shè)正確狀態(tài)的副本數(shù)為8,goal為5,則將3個(gè)正確狀態(tài)的副本設(shè)置為刪除狀態(tài))。本實(shí)施例中,在主節(jié)點(diǎn)周期性檢測(cè)時(shí),如果正確狀態(tài)的副本數(shù)小于goal,則可以新建相應(yīng)數(shù)量的副本(假設(shè)正確狀態(tài)的副本數(shù)為6,goal為15,則新建9個(gè)副本);新建副本時(shí), 以正確狀態(tài)的副本為源進(jìn)行復(fù)制,若不存在正確狀態(tài)的副本則以即將移除正確狀態(tài)的副本為源進(jìn)行復(fù)制。如果不新建的話,也可以將即將刪除正確狀態(tài)的副本數(shù)也考慮進(jìn)來,判斷處于正確狀態(tài)和即將刪除正確狀態(tài)的副本數(shù)之和是否能達(dá)到goal,如果仍然不夠再進(jìn)行新建。本實(shí)施例中,所述方法還可以包括
在主節(jié)點(diǎn)周期性檢測(cè)時(shí),判斷處于正確狀態(tài)和即將刪除正確狀態(tài)的副本數(shù)之和是否大于預(yù)期要求副本數(shù)goal,如果是則將多余的即將刪除正確狀態(tài)的副本設(shè)置為刪除狀態(tài)。否則,副本狀態(tài)保持不變。如果刪除全部即將刪除正確狀態(tài)的副本后,正確狀態(tài)的副本數(shù)還是大于預(yù)期要求副本數(shù),則按照上文進(jìn)行處理。如果處于正確狀態(tài)和即將刪除正確狀態(tài)的副本數(shù)之和小于預(yù)期要求副本數(shù)goal,則按照上文的方法新建副本。如果先已經(jīng)按照上文使正確狀態(tài)的副本數(shù)等于預(yù)期要求副本數(shù)goal,則只要將所有即將刪除正確狀態(tài)的副本數(shù)設(shè)置為刪除狀態(tài)即可。本實(shí)施例中,所述方法還可以包括
新建副本(比如客戶端用戶進(jìn)行文件追加操作)時(shí)將該副本設(shè)置為忙狀態(tài),如果新建成功(客戶端向塊節(jié)點(diǎn)寫操作成功)則將該副本轉(zhuǎn)換為正確狀態(tài),新建失敗(客戶端向塊節(jié)點(diǎn)寫操作失敗)則將該副本轉(zhuǎn)換為錯(cuò)誤狀態(tài)。本實(shí)施例中,所述方法還可以包括
更新正確狀態(tài)的副本(比如客戶端用戶進(jìn)行文件更新操作)時(shí),將該副本轉(zhuǎn)換為忙狀態(tài);更新成功(客戶端向塊節(jié)點(diǎn)寫操作成功)則將該副本轉(zhuǎn)換為正確狀態(tài),更新失敗(客戶端向塊節(jié)點(diǎn)寫操作失敗)則將該副本轉(zhuǎn)換為錯(cuò)誤狀態(tài);
更新即將移除正確狀態(tài)的副本時(shí),將該副本轉(zhuǎn)換為即將移除忙狀態(tài);更新成功(客戶端向塊節(jié)點(diǎn)寫操作成功)則將該副本轉(zhuǎn)換為即將移除正確狀態(tài),更新失敗(客戶端向塊節(jié)點(diǎn)寫操作失敗)則該將副本轉(zhuǎn)換為錯(cuò)誤狀態(tài)。本實(shí)施例如圖I所示,副本狀態(tài)可以定義為以下六種狀態(tài)INVALID,DEL, BUSY, VALID, TDBUSY, TDVALID,即錯(cuò)誤狀態(tài)、刪除狀態(tài)、忙狀態(tài)、正確狀態(tài)、即將移除忙狀態(tài)、即將移除正確狀態(tài),這些狀態(tài)可以都記錄在主節(jié)點(diǎn)的副本數(shù)據(jù)結(jié)構(gòu)中,根據(jù)上文中所述的客戶端文件寫操作及塊節(jié)點(diǎn)當(dāng)前狀況來進(jìn)行狀態(tài)的轉(zhuǎn)換。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種分布式文件系統(tǒng)中的副本管理方法,包括在塊節(jié)點(diǎn)向主節(jié)點(diǎn)重新注冊(cè)時(shí),根據(jù)塊節(jié)點(diǎn)上副本的狀態(tài)重新設(shè)置主節(jié)點(diǎn)上相應(yīng)副本的狀態(tài);若塊節(jié)點(diǎn)上的副本受損,則將主節(jié)點(diǎn)上相應(yīng)副本設(shè)置為錯(cuò)誤狀態(tài);若塊節(jié)點(diǎn)上的副本將要移除,則將主節(jié)點(diǎn)上相應(yīng)副本設(shè)置為即將移除正確狀態(tài);若塊節(jié)點(diǎn)上的副本正常, 則將主節(jié)點(diǎn)上相應(yīng)副本設(shè)置為正確狀態(tài)。
2.如權(quán)利要求I所述的方法,其特征在于,還包括新建副本時(shí)將該副本設(shè)置為忙狀態(tài),如果新建成功則將該副本轉(zhuǎn)換為正確狀態(tài),新建失敗則將該副本轉(zhuǎn)換為錯(cuò)誤狀態(tài)。
3.如權(quán)利要求I所述的方法,其特征在于,還包括更新正確狀態(tài)的副本時(shí),將該副本轉(zhuǎn)換為忙狀態(tài);更新成功則將該副本轉(zhuǎn)換為正確狀態(tài),更新失敗則將該副本轉(zhuǎn)換為錯(cuò)誤狀態(tài);更新即將移除正確狀態(tài)的副本時(shí),將該副本轉(zhuǎn)換為即將移除忙狀態(tài);更新成功則將該副本轉(zhuǎn)換為即將移除正確狀態(tài),更新失敗則該將副本轉(zhuǎn)換為錯(cuò)誤狀態(tài)。
4.如權(quán)利要求I到3中任一項(xiàng)所述的方法,其特征在于,還包括主節(jié)點(diǎn)周期性檢測(cè)各副本的狀態(tài),將處于錯(cuò)誤狀態(tài)的副本設(shè)置為刪除狀態(tài);對(duì)處于正確狀態(tài)或即將移除正確狀態(tài)的副本,若該副本對(duì)應(yīng)的文件節(jié)點(diǎn)已經(jīng)刪除,則將該副本設(shè)置為刪除狀態(tài)。
5.如權(quán)利要求4所述的方法,其特征在于,還包括在主節(jié)點(diǎn)周期性檢測(cè)時(shí),對(duì)處于刪除狀態(tài)的副本,向塊節(jié)點(diǎn)發(fā)出刪除該副本的命令;若塊節(jié)點(diǎn)刪除該副本成功,則釋放掉該副本的數(shù)據(jù)結(jié)構(gòu);若塊節(jié)點(diǎn)刪除該副本失敗,則保持該副本為刪除狀態(tài)不變。
6.如權(quán)利要求4所述的方法,其特征在于,還包括在主節(jié)點(diǎn)周期性檢測(cè)時(shí),比較正確狀態(tài)的副本數(shù)和預(yù)期要求副本數(shù)goal,如果正確狀態(tài)的副本數(shù)大于goal,則將多余的正確狀態(tài)的副本設(shè)置為刪除狀態(tài)。
7.如權(quán)利要求6所述的方法,其特征在于如果正確狀態(tài)的副本數(shù)小于goal,則新建相應(yīng)數(shù)量的副本;新建副本時(shí),以正確狀態(tài)的副本為源進(jìn)行復(fù)制,若不存在正確狀態(tài)的副本則以即將移除正確狀態(tài)的副本為源進(jìn)行復(fù)制。
8.如權(quán)利要求4所述的方法,其特征在于,還包括在主節(jié)點(diǎn)周期性檢測(cè)時(shí),判斷處于正確狀態(tài)和即將刪除正確狀態(tài)的副本數(shù)之和是否大于預(yù)期要求副本數(shù)goal,如果是則將多余的即將刪除正確狀態(tài)的副本設(shè)置為刪除狀態(tài)。
全文摘要
本發(fā)明公開了一種分布式文件系統(tǒng)中的副本管理方法,包括在塊節(jié)點(diǎn)向主節(jié)點(diǎn)重新注冊(cè)時(shí),根據(jù)塊節(jié)點(diǎn)上副本的狀態(tài)重新設(shè)置主節(jié)點(diǎn)上相應(yīng)副本的狀態(tài);若塊節(jié)點(diǎn)上的副本受損,則將主節(jié)點(diǎn)上相應(yīng)副本設(shè)置為錯(cuò)誤狀態(tài);若塊節(jié)點(diǎn)上的副本將要移除,則將主節(jié)點(diǎn)上相應(yīng)副本設(shè)置為即將移除正確狀態(tài);若塊節(jié)點(diǎn)上的副本正常,則將主節(jié)點(diǎn)上相應(yīng)副本設(shè)置為正確狀態(tài)。本發(fā)明能在分布式文件系統(tǒng)中維護(hù)副本的一致性。
文檔編號(hào)G06F17/30GK102609454SQ20121000816
公開日2012年7月25日 申請(qǐng)日期2012年1月12日 優(yōu)先權(quán)日2012年1月12日
發(fā)明者張明富, 顏秉珩 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司