專利名稱:一種分布式文件系統(tǒng)及其數(shù)據(jù)塊一致性管理的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)應(yīng)用領(lǐng)域的大容量存儲(chǔ)分布式文件系統(tǒng)及其管 理方法,具體涉及的是一種大規(guī)模分布式數(shù)據(jù)處理的文件系統(tǒng)及其冗余備 份數(shù)據(jù)塊一致性校驗(yàn)和備份管理的方法。
背景技術(shù):
現(xiàn)有"R術(shù)中,大規(guī)^莫分布式數(shù)據(jù)處理的文件系統(tǒng)中,為了保證數(shù)據(jù)處 理的高效和元數(shù)據(jù)的集中管理, 一般都設(shè)計(jì)成一個(gè)元數(shù)據(jù)的集中管理服務(wù)器(如文件定位寄存服務(wù)器,F(xiàn)LR, File Location register),和其他若干 個(gè)數(shù)據(jù)文件存放服務(wù)器(如文件訪問服務(wù)器,F(xiàn)AS, File Access Service) 的架構(gòu)。用戶訪問數(shù)據(jù)時(shí)都要先通過文件訪問客戶端(FAC, File Access Client) 向FLR詢問數(shù)據(jù)的具體存放位置,然后由FAC再向具體的FAS發(fā)起讀寫 數(shù)據(jù)請(qǐng)求。FAS管理凄t據(jù)文件的方式是將文件數(shù)據(jù)劃分為一個(gè)一個(gè)的數(shù)據(jù) 塊(CHUNK),每個(gè)文件由若干個(gè)數(shù)據(jù)塊組成。數(shù)據(jù)塊和文件的對(duì)應(yīng)方式 由統(tǒng)一標(biāo)識(shí)符FILEID來標(biāo)識(shí), 一個(gè)文件具有一個(gè)不同的FILEID,每個(gè)數(shù) 據(jù)塊CHUNK的標(biāo)識(shí)CHUNKID是FILEID + CHUNK編號(hào)標(biāo)識(shí)。文件的所 有CHUNK分布信息由FLR統(tǒng)一放入數(shù)據(jù)庫中管理。在大容量的集群系統(tǒng)中,通常數(shù)據(jù)塊是冗余備份的,也就是說對(duì)應(yīng)數(shù) 據(jù)塊存在在多個(gè)FAS上。但現(xiàn)有技術(shù)中這樣備份的兩個(gè)數(shù)據(jù)塊很難保證一 致性,這是一個(gè)比較嚴(yán)重的問題,其主要出現(xiàn)在如下情況中在寫操作的 過程中,如何保證同時(shí)在兩個(gè)FAS上寫出對(duì)應(yīng)份數(shù)據(jù);如果有一個(gè)FAS出現(xiàn)異?;蛘邠p壞的情況下,該FAS上的數(shù)據(jù)如何能重構(gòu)得到;如果在寫的 過程中,F(xiàn)LR出現(xiàn)異常,如何保證FLR記錄和FAS的一致性。由于涉及到海量的數(shù)據(jù)塊,現(xiàn)有技術(shù)不可能對(duì)數(shù)據(jù)塊采用MD5等常規(guī) 校驗(yàn)方法,因?yàn)檫@會(huì)嚴(yán)重影響處理的性能。因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種分布式文件系統(tǒng)及其數(shù)據(jù)塊一致性管理的 方法,為解決上述現(xiàn)有技術(shù)的問題,實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的數(shù)據(jù)塊進(jìn)行校驗(yàn)以 及必要時(shí)的重構(gòu)。本發(fā)明的技術(shù)方案包括一種分布式文件系統(tǒng)中l(wèi)t據(jù)塊一致性管理的方法,其包括以下步驟A、 在生成每一數(shù)據(jù)塊時(shí),由文件定位寄存服務(wù)器生成其對(duì)應(yīng)的計(jì)數(shù) 器值,同時(shí)存放在文件訪問服務(wù)器和文件定位寄存服務(wù)器上;B、 在對(duì)該數(shù)據(jù)塊寫數(shù)據(jù)時(shí),文件訪問客戶端同時(shí)向主、備文件訪問服 務(wù)器寫數(shù)據(jù),如果都寫數(shù)據(jù)成功,則不對(duì)計(jì)數(shù)器值進(jìn)行修改;否則,對(duì)寫 數(shù)據(jù)正常的文件訪問服務(wù)器中的數(shù)據(jù)塊計(jì)數(shù)器值按預(yù)定步長(zhǎng)進(jìn)行增加;C、 所述文件定位寄存服務(wù)器根據(jù)主、備文件訪問服務(wù)器上報(bào)的對(duì)應(yīng)數(shù) 據(jù)塊計(jì)數(shù)器值,以最大計(jì)數(shù)器值之?dāng)?shù)據(jù)塊為正常和有效,對(duì)異常之?dāng)?shù)據(jù)塊 進(jìn)行重構(gòu)。所述的方法,其中,所述步驟B還包括Bl、在更改數(shù)據(jù)塊數(shù)據(jù)時(shí),所述文件定位寄存服務(wù)器給所述文件訪問 客戶端返回該數(shù)據(jù)塊所在的主、備文件訪問服務(wù)器信息,所述文件訪問客 戶端向所述主、備文件訪問服務(wù)器發(fā)起修改數(shù)據(jù)操作;B2、如果主、備文件訪問服務(wù)器更改數(shù)據(jù)成功,則不發(fā)起該數(shù)據(jù)塊計(jì) 數(shù)器值的修改;否則,對(duì)正常更改數(shù)據(jù)的數(shù)據(jù)塊所在文件訪問服務(wù)器的計(jì)數(shù)器值進(jìn)行按預(yù)定步長(zhǎng)增加,同時(shí)按預(yù)定步長(zhǎng)增加所述文件定位寄存服務(wù) 器上的對(duì)應(yīng)數(shù)據(jù)塊的計(jì)^t器值。所述的方法,其中,所述步驟B2中對(duì)數(shù)據(jù)塊計(jì)數(shù)器值的增加之預(yù)定步 長(zhǎng)為每次加1。所述的方法,其中,所述步驟C還包括所述文件定位寄存服務(wù)器在 啟動(dòng)時(shí)刻和以一定的時(shí)間間隔向所述文件訪問服務(wù)器發(fā)起數(shù)據(jù)塊校驗(yàn)請(qǐng) 求。所述的方法,其中,所述數(shù)據(jù)塊校驗(yàn)過程還包括Dl、所述文件訪問服務(wù)器把本地的所有數(shù)據(jù)塊標(biāo)識(shí)上報(bào)給文件定位寄 存服務(wù)器,所述文件定位寄存服務(wù)器將先收到的數(shù)據(jù)塊標(biāo)識(shí)組成HASH表, 后續(xù)收到的數(shù)據(jù)塊標(biāo)識(shí)在該HASH表中查找,查找成功,表示是一對(duì)主、 備數(shù)據(jù)塊;D2、記錄下所有對(duì)數(shù)據(jù)塊標(biāo)識(shí),所述文件定位寄存服務(wù)器校驗(yàn)每個(gè)數(shù) 據(jù)塊標(biāo)識(shí)。所述的方法,其中,所述步驟D1中所述文件定位寄存服務(wù)器將每個(gè) 主、備文件訪問服務(wù)器作為一組,將整個(gè)集群數(shù)據(jù)塊分成若干組。 所述的方法,其中,所述步驟D2還包括D21、檢查該數(shù)據(jù)塊在所述文件定位寄存服務(wù)器中是否有記錄;如果 沒有則直接刪除;否則,轉(zhuǎn)入步驟D22;D22、比較所述文件定位寄存服務(wù)器數(shù)據(jù)庫中和各個(gè)文件訪問服務(wù)器 的對(duì)應(yīng)數(shù)據(jù)塊之計(jì)數(shù)器值,以最大值之?dāng)?shù)據(jù)塊為有效。所述的方法,其中,所述步驟D22還包括D23、如果所述文件定位寄存服務(wù)器上的數(shù)據(jù)塊計(jì)數(shù)器值最大,則在 所述文件定位寄存服務(wù)器數(shù)據(jù)庫中刪除該數(shù)據(jù)塊的記錄。 所述的方法,其中,所述步驟D22還包括D241、如果有文件訪問服務(wù)器上具有最大的數(shù)據(jù)塊之計(jì)數(shù)器值,則由 所述文件定位寄存服務(wù)器對(duì)計(jì)數(shù)器值小的數(shù)據(jù)塊所在的其他文件訪問服務(wù) 器發(fā)起數(shù)據(jù)塊重構(gòu)請(qǐng)求,從有效數(shù)據(jù)塊復(fù)制到異常的數(shù)據(jù)塊上;D242、數(shù)據(jù)拷貝完成后,修改各個(gè)文件訪問服務(wù)器上對(duì)應(yīng)數(shù)據(jù)塊的計(jì) 數(shù)器值同最大值一致。所述的方法,其中,所述步驟D22還包括D25、如果所述文件定位寄存服務(wù)器上的數(shù)據(jù)塊之計(jì)數(shù)器值比所述文 件訪問服務(wù)器上的小,則同步修改該文件定位寄存服務(wù)器數(shù)據(jù)庫中的該對(duì) 應(yīng)數(shù)據(jù)塊之計(jì)數(shù)器值。一種所述方法的分布式文件系統(tǒng),包括通過網(wǎng)絡(luò)連接的一文件訪問服 務(wù)器、至少一文件定位寄存服務(wù)器;所述文件訪問服務(wù)器對(duì)應(yīng)連接一數(shù)據(jù) 庫;用戶通過一文件訪問客戶端向所述文件訪問服務(wù)器及所述文件定位寄 存服務(wù)器進(jìn)行寫數(shù)據(jù)請(qǐng)求;其中,所述文件訪問服務(wù)器至少設(shè)置有主、備 文件訪問服務(wù)器;并且所述文件訪問客戶端用于向所述主、備文件訪問服務(wù)器的對(duì)應(yīng)數(shù)據(jù)塊 寫數(shù)據(jù),并對(duì)寫數(shù)據(jù)正常的文件服務(wù)器之?dāng)?shù)據(jù)塊計(jì)數(shù)器值按預(yù)定步長(zhǎng)增加;所述文件定位寄存服務(wù)器用于生成數(shù)據(jù)塊對(duì)應(yīng)的計(jì)數(shù)器值,并根據(jù)主、 備文件訪問服務(wù)器上報(bào)的對(duì)應(yīng)數(shù)據(jù)塊計(jì)數(shù)器值,控制對(duì)異常之?dāng)?shù)據(jù)塊進(jìn)行 重構(gòu)。本發(fā)明所提供的一種分布式文件系統(tǒng)及其數(shù)據(jù)塊一致性管理的方法, 由于采用了數(shù)據(jù)塊計(jì)數(shù)器的方式,對(duì)每個(gè)數(shù)據(jù)塊記錄其是否異常和需要重 構(gòu),在海量集群系統(tǒng)中,可以筒單高效地管理冗余備份的數(shù)據(jù)塊,保持其 之間的一致性,并且可以重構(gòu)異常的備份數(shù)據(jù)塊,其實(shí)現(xiàn)簡(jiǎn)單準(zhǔn)確。
圖1是本發(fā)明方法及時(shí)寫或更改數(shù)據(jù)時(shí)數(shù)據(jù)塊計(jì)數(shù)器的修改流程示意圖;器FAS上報(bào)數(shù)據(jù)塊CHUNK的流程圖;圖3是本發(fā)明方法的文件定位寄存服務(wù)器FLR具體校驗(yàn)方法流程示意圖;圖4為本發(fā)明分布式文件系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合附圖,將對(duì)本發(fā)明的各較佳實(shí)施例進(jìn)行更為詳細(xì)的說明。 本發(fā)明分布式文件系統(tǒng)及其數(shù)據(jù)塊一致性管理的方法,提出了數(shù)據(jù)塊 計(jì)數(shù)器即CHUNK計(jì)數(shù)器的概念,針對(duì)每個(gè)數(shù)據(jù)塊CHUNK都給予一個(gè)計(jì) 數(shù)器,表示該數(shù)據(jù)塊修改的次數(shù)。每次修改CHUNK都將計(jì)數(shù)器增加,這 樣如果主備數(shù)據(jù)塊CHUNK的計(jì)數(shù)器不一致,則表示有無效數(shù)據(jù)塊CHUNK 存在,可相應(yīng)對(duì)異常的數(shù)據(jù)塊進(jìn)行重構(gòu)。本發(fā)明方法很好地解決了主備數(shù)據(jù)塊CHUNK的管理工作,其主要的 實(shí)現(xiàn)內(nèi)容包括在生成數(shù)據(jù)塊CHUNK時(shí),都由文件定位寄存服務(wù)器FLR統(tǒng)一生成, 第一次創(chuàng)建的數(shù)據(jù)塊其CHUNK計(jì)數(shù)器值為1。該值同時(shí)存放于文件訪問服 務(wù)器FAS上和文件定位寄存服務(wù)器FLR上。在用戶發(fā)起寫CHUNK數(shù)據(jù)的過程中,如圖l所示,F(xiàn)AC同時(shí)寫兩份 數(shù)據(jù)給主、備FAS,如果主、備FAS寫數(shù)據(jù)都是成功的,則不發(fā)起CHUNK 計(jì)數(shù)器的修改流程。如果寫的過程中,發(fā)現(xiàn)某個(gè)FAS出現(xiàn)寫異常,則向正 常的FAS發(fā)起計(jì)數(shù)器修改流程,修改該正常數(shù)據(jù)塊的當(dāng)前CHUNK計(jì)數(shù)器, 這樣對(duì)應(yīng)數(shù)據(jù)塊主、備FAS的CHUNK計(jì)數(shù)器就出現(xiàn)了不一致的情況,并 且正常的數(shù)據(jù)塊CHUNK計(jì)數(shù)器計(jì)數(shù)值要高。后期可以通過簡(jiǎn)單的校驗(yàn)確 定出異常的數(shù)據(jù)塊,并在異常FAS上重構(gòu)該數(shù)據(jù)塊。在用戶發(fā)起更改文件內(nèi)容時(shí),F(xiàn)LR會(huì)給FAC返回對(duì)應(yīng)數(shù)據(jù)塊CHUNK 所在兩個(gè)FAS的信息,F(xiàn)AC直接向兩個(gè)FAS發(fā)起修改數(shù)據(jù)的操作。如果主、 備FAS寫數(shù)據(jù)都是成功的,則不發(fā)起CHUNK計(jì)數(shù)器修改流程。如果寫的 過程中,發(fā)現(xiàn)某個(gè)FAS出現(xiàn)異常,則向正常的FAS發(fā)起CHUNK計(jì)數(shù)器修 改流程,修改FAS上對(duì)應(yīng)的CHUNK計(jì)數(shù)器值按預(yù)定步長(zhǎng)進(jìn)行增加,同時(shí) 增加FLR上的該CHUNK計(jì)數(shù)器值,這樣主、備FAS的對(duì)應(yīng)數(shù)據(jù)塊的 CHUNK計(jì)數(shù)器就不一致了。通過比較計(jì)數(shù)器值,后期可以通過簡(jiǎn)單校驗(yàn)確 定異常的數(shù)據(jù)塊,并在異常FAS上重構(gòu)該數(shù)據(jù)塊。經(jīng)過上述處理過程,可以保證如果出現(xiàn)異常時(shí),則主、備FAS上 CHUNK計(jì)數(shù)器值肯定不一致。FLR會(huì)在啟動(dòng)時(shí)刻和以一定的時(shí)間間隔向 FAS發(fā)起CHUNK校驗(yàn)請(qǐng)求流程。根據(jù)主、備FAS上報(bào)的CHUNK計(jì)數(shù)器 值,以最大計(jì)數(shù)器值為準(zhǔn),即可確定哪個(gè)FAS上的數(shù)據(jù)塊是正常有效的。 這樣對(duì)異常FAS上的數(shù)據(jù)塊就可以重新構(gòu)造。以下舉具體實(shí)例說明本發(fā)明分布式文件系統(tǒng)中數(shù)據(jù)塊一致性管理的方法定義數(shù)據(jù)塊CHUNK的標(biāo)識(shí)為FILEID(四字節(jié)無符號(hào)整型)+CHUNK 編號(hào)(2字節(jié)無符號(hào)整型)+計(jì)數(shù)器(四字節(jié)無符號(hào)整型);在FLR側(cè)會(huì)有 數(shù)據(jù)庫記錄每個(gè)CHUNK標(biāo)識(shí),其中包括了該數(shù)據(jù)塊的CHUNK計(jì)數(shù)器值 和其所在FAS位置信息;在FAS側(cè)管理每個(gè)數(shù)據(jù)塊,并且記錄其CHUNK 計(jì)數(shù)器值。如圖1所示,在用戶發(fā)起寫流程時(shí),首先由FAC向FLR申請(qǐng)分配具有 備份關(guān)系的所有FAS。分配成功后,F(xiàn)LR會(huì)記入本地?cái)?shù)據(jù)庫,對(duì)數(shù)據(jù)塊的 CHUNK計(jì)數(shù)器值初始值設(shè)為1。然后由FAC直接向兩個(gè)FAS發(fā)起數(shù)據(jù)寫入請(qǐng)求。在FAC寫數(shù)據(jù)的過 程中,會(huì)不停的上報(bào)各個(gè)FAS寫的狀態(tài)。上報(bào)的狀態(tài)信息包括當(dāng)前寫的 CHUNK標(biāo)識(shí),每個(gè)FAS寫狀態(tài)。FLR收到上報(bào)狀態(tài)后,比較兩個(gè)FAS的寫狀態(tài),如果兩個(gè)FAS寫狀態(tài) 都是正常則不處理;如果兩個(gè)FAS都不正常,則直接增加FLR側(cè)CHUNK 計(jì)數(shù)器值;如果發(fā)現(xiàn)某時(shí)刻其中一個(gè)FAS寫異常,而另一個(gè)FAS寫正常, 則FLR會(huì)向正常的FAS發(fā)起CHUNK計(jì)數(shù)器修改請(qǐng)求。所述正常FAS收 到請(qǐng)求后,增加本地?cái)?shù)據(jù)塊對(duì)應(yīng)的CHUNK計(jì)數(shù)器值,返回修改成功給FLR。 FLR收到修改成功后,將本地?cái)?shù)據(jù)庫中的值修改為同正常FAS的該數(shù)據(jù)塊 CHUNK計(jì)數(shù)器值一致,而異常FAS上出錯(cuò)數(shù)據(jù)塊的CHUNK計(jì)數(shù)器值將 得不到修改。當(dāng)用戶發(fā)起改寫時(shí),基本同上述處理過程,所不同的是新寫數(shù)據(jù)時(shí), FLR返回的是新的數(shù)據(jù)塊CHUNK所在的FAS信息,或已經(jīng)存有CHUNK 數(shù)據(jù)的FAS信息。FLR會(huì)在啟動(dòng)時(shí)刻和以 一定的時(shí)間間隔向FAS發(fā)起CHUNK校驗(yàn)請(qǐng)求 流程,如圖2所示,其校驗(yàn)方法是FLR將每個(gè)主、備FAS作為一組,整 個(gè)集群數(shù)據(jù)塊會(huì)分成若干組,例如N組。對(duì)每一組,分別向每個(gè)成員發(fā)起 校驗(yàn)請(qǐng)求,收到請(qǐng)求的FAS,會(huì)把本地的所有數(shù)據(jù)塊CHUNK標(biāo)識(shí)上報(bào)給 FLR, FLR會(huì)將第一個(gè)收到的CHUNK標(biāo)識(shí)信息組成一個(gè)HASH表,后續(xù) 收到CHUNK標(biāo)識(shí)會(huì)先在HASH表中查找,查找成功,表示是一對(duì)主、備 數(shù)據(jù)塊。如果查找不到則有可能是主、備不全;同時(shí)記錄下所有對(duì)數(shù)據(jù)塊 CHUNK標(biāo)識(shí)信息, 一組成員校驗(yàn)成功后,F(xiàn)LR會(huì)校驗(yàn)每個(gè)CHUNK標(biāo)識(shí) 信息,其校驗(yàn)過程如圖3所示,包括第一步、檢查該數(shù)據(jù)塊CHUNK在FLR中是否有記錄;如果沒有記錄 則直接刪除,如果有記錄則通過檢查;第二步、計(jì)算FLR數(shù)據(jù)庫和各個(gè)FAS的CHUNK計(jì)數(shù)器值,比較哪個(gè) 值最大,以CHUNK計(jì)數(shù)器值大的數(shù)據(jù)塊為有效和正常的。第三步、校驗(yàn)CHUNK計(jì)數(shù)器值,其具體過程包括如果FLR上的CHUNK計(jì)數(shù)器值最大,說明當(dāng)前所有FAS上的該 CHUNK數(shù)據(jù)都是不可靠的,需要在FLR數(shù)據(jù)庫中刪除該CHUNK記錄。如果有FAS具有最大的CHUNK計(jì)數(shù)器值,則對(duì)CHUNK計(jì)數(shù)器值小 的數(shù)據(jù)塊所在的所有FAS, FLR會(huì)發(fā)起數(shù)據(jù)塊重構(gòu)請(qǐng)求,即告訴計(jì)數(shù)器值 最大的FAS,其上面的某個(gè)數(shù)據(jù)塊需要從本地復(fù)制到異常的FAS上。拷貝 完成后,立即修改各個(gè)FAS上對(duì)應(yīng)數(shù)據(jù)塊的CHUNK計(jì)數(shù)器值同最大值一 致。如果FLR上的CHUNK計(jì)數(shù)器值比FAS的小,則需要同步修改該FLR 數(shù)據(jù)庫中的該CHUNK計(jì)數(shù)器值。本發(fā)明分布式文件系統(tǒng)的結(jié)構(gòu)如圖4所示,其包括通過網(wǎng)絡(luò)連接如以 太網(wǎng)連接的一文件訪問服務(wù)器401,每一文件訪問服務(wù)器401還連接一對(duì)應(yīng) 的數(shù)據(jù)庫411;至少一文件定位寄存服務(wù)器402,用于產(chǎn)生針對(duì)文件訪問服 務(wù)器401的寫數(shù)據(jù)操作中的數(shù)據(jù)塊對(duì)應(yīng)計(jì)數(shù)器值;用戶可通過一文件訪問 客戶端403向?qū)?yīng)的所述文件訪問服務(wù)器401及所述文件定位寄存服務(wù)器 402進(jìn)行數(shù)據(jù)訪問請(qǐng)求;所述文件訪問服務(wù)器401至少設(shè)置有主、備文件訪 問服務(wù)器,而所述文件訪問客戶端403用于向所述主、備文件訪問服務(wù)器 的對(duì)應(yīng)數(shù)據(jù)塊寫數(shù)據(jù),并對(duì)寫數(shù)據(jù)正常的文件服務(wù)器之?dāng)?shù)據(jù)塊計(jì)數(shù)器值按 預(yù)定步長(zhǎng)增加;所述文件定位寄存服務(wù)器402可用于根據(jù)主、備文件訪問 服務(wù)器上報(bào)的對(duì)應(yīng)數(shù)據(jù)塊計(jì)數(shù)器值是否一致,判斷數(shù)據(jù)塊的異常與否,控 制對(duì)異常之?dāng)?shù)據(jù)塊進(jìn)行重構(gòu)。本發(fā)明分布式文件系統(tǒng)及其數(shù)據(jù)塊一致性管理的方法,在海量集群系 統(tǒng)中可以簡(jiǎn)單高效地管理冗余備份的數(shù)據(jù)塊,保持其一致性,并且可以重 構(gòu)異常的備份數(shù)據(jù)塊。其主要表現(xiàn)在1、在用戶及時(shí)存儲(chǔ)(追加寫或改寫)數(shù)據(jù)的過程中,如果發(fā)現(xiàn)主、備 FAS其中的一方有異常,可以先增加正常FAS上數(shù)據(jù)塊的CHUNK計(jì)數(shù)器 值,保持異常FAS上數(shù)據(jù)塊CHUNK計(jì)數(shù)器值沒有增加;在后續(xù)FLR進(jìn)行定時(shí)校驗(yàn)時(shí),會(huì)根據(jù)上述CHUNK計(jì)數(shù)器值的校驗(yàn),將CHUNK計(jì)數(shù)器值 低的FAS上的數(shù)據(jù)塊刪除,同時(shí)從正常FAS上的數(shù)據(jù)塊重構(gòu)該異常FAS 上的對(duì)應(yīng)數(shù)據(jù)塊。2、本發(fā)明方法以CHUNK計(jì)數(shù)器值高的數(shù)據(jù)塊為正常和有效的數(shù)據(jù) 塊,如果FLR記錄的最高,則說明各個(gè)FAS上的數(shù)據(jù)塊都不可靠;如果某 個(gè)FAS上記錄的最高,則需要將該數(shù)據(jù)塊重構(gòu)到值低的FAS中,同時(shí)要修 改FLR中的記錄。由此可知,本發(fā)明所述分布式文件系統(tǒng)及其數(shù)據(jù)塊一致性管理的方法 其實(shí)現(xiàn)簡(jiǎn)單準(zhǔn)確,校驗(yàn)計(jì)算快捷,可適用于海量的數(shù)據(jù)塊處理。應(yīng)當(dāng)理解的是,上述針對(duì)本發(fā)明較佳實(shí)施例的描述較為具體,并不能 因此而理解為對(duì)本發(fā)明專利保護(hù)范圍的限制,本發(fā)明的專利保護(hù)范圍應(yīng)以 所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1、一種分布式文件系統(tǒng)中數(shù)據(jù)塊一致性管理的方法,其包括以下步驟A、在生成每一數(shù)據(jù)塊時(shí),由文件定位寄存服務(wù)器生成其對(duì)應(yīng)的計(jì)數(shù)器值,同時(shí)存放在文件訪問服務(wù)器和文件定位寄存服務(wù)器上;B、在對(duì)該數(shù)據(jù)塊寫數(shù)據(jù)時(shí),文件訪問客戶端同時(shí)向主、備文件訪問服務(wù)器寫數(shù)據(jù),如果都寫數(shù)據(jù)成功,則不對(duì)計(jì)數(shù)器值進(jìn)行修改;否則,對(duì)寫數(shù)據(jù)正常的文件訪問服務(wù)器中的數(shù)據(jù)塊計(jì)數(shù)器值按預(yù)定步長(zhǎng)進(jìn)行增加;C、所述文件定位寄存服務(wù)器根據(jù)主、備文件訪問服務(wù)器上報(bào)的對(duì)應(yīng)數(shù)據(jù)塊計(jì)數(shù)器值,以最大計(jì)數(shù)器值之?dāng)?shù)據(jù)塊為正常和有效,對(duì)異常之?dāng)?shù)據(jù)塊進(jìn)行重構(gòu)。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B還包括 Bl、在更改數(shù)據(jù)塊數(shù)據(jù)時(shí),所述文件定位寄存服務(wù)器給所述文件訪問客戶端返回該數(shù)據(jù)塊所在的主、備文件訪問服務(wù)器信息,所述文件訪問客 戶端向所述主、備文件訪問服務(wù)器發(fā)起修改數(shù)據(jù)操作;B2、如果主、備文件訪問服務(wù)器更改數(shù)據(jù)成功,則不發(fā)起該數(shù)據(jù)塊計(jì) 數(shù)器值的修改;否則,對(duì)正常更改數(shù)據(jù)的數(shù)據(jù)塊所在文件訪問服務(wù)器的計(jì) 數(shù)器值進(jìn)行按預(yù)定步長(zhǎng)增加,同時(shí)按預(yù)定步長(zhǎng)增加所述文件定位寄存服務(wù) 器上的對(duì)應(yīng)數(shù)據(jù)塊的計(jì)數(shù)器值。.
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟B2中對(duì)數(shù) 據(jù)塊計(jì)數(shù)器值的增加之預(yù)定步長(zhǎng)為每次加1。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟C還包括 所述文件定位寄存月l務(wù)器在啟動(dòng)時(shí)刻和以 一定的時(shí)間間隔向所述文件訪問服務(wù)器發(fā)起數(shù)據(jù)塊校驗(yàn)請(qǐng)求。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述數(shù)據(jù)塊校驗(yàn)過程 還包括Dl、所述文件訪問服務(wù)器把本地的所有數(shù)據(jù)塊標(biāo)識(shí)上報(bào)給文件定位寄 存服務(wù)器,所述文件定位寄存服務(wù)器將先收到的數(shù)據(jù)塊標(biāo)識(shí)組成HASH表, 后續(xù)收到的數(shù)據(jù)塊標(biāo)識(shí)在該HASH表中查找,查找成功,表示是一對(duì)主、 備數(shù)據(jù)塊;D2、記錄下所有對(duì)數(shù)據(jù)塊標(biāo)識(shí),所述文件定位寄存服務(wù)器校驗(yàn)每個(gè)數(shù) 據(jù)塊標(biāo)識(shí)。
6、 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟Dl中所述 文件定位寄存服務(wù)器將每個(gè)主、備文件訪問服務(wù)器作為一組,將整個(gè)集群 數(shù)據(jù)塊分成若干組。
7、 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟D2還包括 D21、檢查該數(shù)據(jù)塊在所述文件定位寄存服務(wù)器中是否有記錄;如果沒有則直接刪除;否則,轉(zhuǎn)入步驟D22;D22、比較所述文件定位寄存服務(wù)器數(shù)據(jù)庫中和各個(gè)文件訪問服務(wù)器的 對(duì)應(yīng)數(shù)據(jù)塊之計(jì)數(shù)器值,以最大值之?dāng)?shù)據(jù)塊為有效。
8、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟D22還包括 D23、如果所述文件定位寄存服務(wù)器上的數(shù)據(jù)塊計(jì)數(shù)器值最大,則在所述文件定位寄存服務(wù)器數(shù)據(jù)庫中刪除該數(shù)據(jù)塊的記錄。
9、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟D22還包括 D241、如果有文件訪問服務(wù)器上具有最大的數(shù)據(jù)塊之計(jì)數(shù)器值,則由所述文件定位寄存服務(wù)器對(duì)計(jì)數(shù)器值小的數(shù)據(jù)塊所在的其他文件訪問服務(wù)器發(fā)起數(shù)據(jù)塊重構(gòu)請(qǐng)求,從有效數(shù)據(jù)塊復(fù)制到異常的數(shù)據(jù)塊上;D242、數(shù)據(jù)拷貝完成后,修改各個(gè)文件訪問服務(wù)器上對(duì)應(yīng)數(shù)據(jù)塊的計(jì) 數(shù)器值同最大值一致。
10、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟D22還包括 D25、如果所述文件定位寄存服務(wù)器上的數(shù)據(jù)塊之計(jì)數(shù)器值比所述文件訪問服務(wù)器上的小,則同步修改該文件定位寄存服務(wù)器數(shù)據(jù)庫中的該對(duì)應(yīng) 數(shù)據(jù)塊之計(jì)數(shù)器值。
11、 一種如權(quán)利要求1所述方法的分布式文件系統(tǒng),包括通過網(wǎng)絡(luò)連 接的一文件訪問服務(wù)器、至少一文件定位寄存服務(wù)器;所述文件訪問服務(wù) 器對(duì)應(yīng)連接一數(shù)據(jù)庫;用戶通過一文件訪問客戶端向所述文件訪問服務(wù)器 及所述文件定位寄存J良務(wù)器進(jìn)行寫數(shù)據(jù)請(qǐng)求;其特征在于,所述文件訪問 服務(wù)器至少設(shè)置有主、備文件訪問服務(wù)器;并且所述文件訪問客戶端用于向所述主、備文件訪問服務(wù)器的對(duì)應(yīng)數(shù)據(jù)塊 寫數(shù)據(jù),并對(duì)寫數(shù)據(jù)正常的文件服務(wù)器之?dāng)?shù)據(jù)塊計(jì)數(shù)器值按預(yù)定步長(zhǎng)增加;所述文件定位寄存服務(wù)器用于生成數(shù)據(jù)塊對(duì)應(yīng)的計(jì)數(shù)器值,并根據(jù)主、 備文件訪問服務(wù)器上報(bào)的對(duì)應(yīng)數(shù)據(jù)塊計(jì)數(shù)器值,控制對(duì)異常之?dāng)?shù)據(jù)塊進(jìn)行 重構(gòu)。
全文摘要
本發(fā)明公開了一種分布式文件系統(tǒng)及其數(shù)據(jù)塊一致性管理的方法,其方法包括由文件定位寄存服務(wù)器生成數(shù)據(jù)塊對(duì)應(yīng)的計(jì)數(shù)器值,同時(shí)存放在文件訪問服務(wù)器和文件定位寄存服務(wù)器上;在對(duì)該數(shù)據(jù)塊寫數(shù)據(jù)時(shí),文件訪問客戶端同時(shí)向主、備文件訪問服務(wù)器寫數(shù)據(jù),對(duì)寫數(shù)據(jù)正常的文件訪問服務(wù)器中的數(shù)據(jù)塊計(jì)數(shù)器值進(jìn)行修改;所述文件定位寄存服務(wù)器根據(jù)主、備文件訪問服務(wù)器上報(bào)的對(duì)應(yīng)數(shù)據(jù)塊計(jì)數(shù)器值,以最大計(jì)數(shù)器值之?dāng)?shù)據(jù)塊為正常和有效。本發(fā)明系統(tǒng)及其方法由于采用了數(shù)據(jù)塊計(jì)數(shù)器的方式,對(duì)每個(gè)數(shù)據(jù)塊記錄其是否異常和需要重構(gòu),在海量集群系統(tǒng)中,可以簡(jiǎn)單高效地管理冗余備份的數(shù)據(jù)塊,保持其之間的一致性,并且實(shí)現(xiàn)重構(gòu)異常的備份數(shù)據(jù)塊簡(jiǎn)單準(zhǔn)確。
文檔編號(hào)G06F17/30GK101334797SQ20081014229
公開日2008年12月31日 申請(qǐng)日期2008年8月4日 優(yōu)先權(quán)日2008年8月4日
發(fā)明者杜守富, 王瑞豐, 劍 程 申請(qǐng)人:中興通訊股份有限公司