亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種集群文件系統(tǒng)中文件冗余存儲(chǔ)方法

文檔序號:6354720閱讀:338來源:國知局
專利名稱:一種集群文件系統(tǒng)中文件冗余存儲(chǔ)方法
技術(shù)領(lǐng)域
本發(fā)明涉及共享存儲(chǔ)系統(tǒng)的數(shù)據(jù)的安全保障機(jī)制,特別涉及集群系統(tǒng)中文件的冗 余存儲(chǔ)方法。
背景技術(shù)
在以數(shù)據(jù)為中心的信息時(shí)代,如何妥善有效地保護(hù)數(shù)據(jù)是存儲(chǔ)系統(tǒng)的核心問題之 一。人們可以忍受計(jì)算機(jī)異常宕機(jī)、所有應(yīng)用程序重新啟動(dòng)甚至硬件損壞,但是他們要求信 息永遠(yuǎn)不會(huì)丟失。存儲(chǔ)系統(tǒng)最重要的任務(wù)是不論發(fā)生什么故障,都要保證存儲(chǔ)的信息不能 丟失,并且盡力不間斷地提供高質(zhì)量的數(shù)據(jù)服務(wù)。數(shù)據(jù)信息的毀壞和丟失不但影響到企業(yè) 的業(yè)務(wù)連續(xù)性,甚至極大地威脅到一個(gè)機(jī)構(gòu)的生存。為了保證存儲(chǔ)在磁盤中的數(shù)據(jù)的安全性,本領(lǐng)域的技術(shù)人員提出了獨(dú)立冗余磁 盤陣列(RAID)技術(shù),該技術(shù)將多個(gè)磁盤組合成一個(gè)磁盤陣列,并在各個(gè)磁盤中存儲(chǔ)其它 磁盤的冗余信息,使得當(dāng)陣列中的某個(gè)磁盤發(fā)生故障后,可以根據(jù)陣列中其它磁盤所存 儲(chǔ)的冗余信息恢復(fù)故障磁盤上的數(shù)據(jù)。RAID根據(jù)實(shí)現(xiàn)原理可分為不同的級別,分別用 RAID0-RAID7表示。不同級別的RAID系統(tǒng)的工作模式存在較大的差異,比較有代表性的是 采用鏡像方式的RAIDl和采用冗余校驗(yàn)方式的RAID5。在網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中同樣可以采用類似上述的RAID的技術(shù),多個(gè)存儲(chǔ)節(jié)點(diǎn)組成一 個(gè)網(wǎng)絡(luò)RAID系統(tǒng)。但如果采用類似RAIDl的鏡像方式,盡管讀寫性能高,但是空間利用率 只有50%,整個(gè)系統(tǒng)的性價(jià)比反而較低。如果采用類似RAID5的冗余校驗(yàn)方式,增加了空間 利用率,但是寫性能尤其是小寫性能較低。如何為高性能、大容量的基于網(wǎng)絡(luò)存儲(chǔ)的集群文件系統(tǒng),提供高效的數(shù)據(jù)高可靠 和高可用保障機(jī)制,即保持優(yōu)良的性能并且減少冗余空間的損耗,這個(gè)問題已經(jīng)成為一個(gè) 研究熱點(diǎn)。目前集群存儲(chǔ)廠商Panasas公司的并行文件系統(tǒng)PanFS實(shí)現(xiàn)了文件級冗余存儲(chǔ) 機(jī)制,小文件使用類似RAIDl的鏡像方式存放,而大文件采用類似RAID5的冗余校驗(yàn)方式存 放,但PanFS依然無法解決上述傳統(tǒng)鏡像和冗余校驗(yàn)技術(shù)所不能解決的問題。

發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的缺陷,為高性能、大容量的基于網(wǎng)絡(luò)存儲(chǔ) 的集群文件系統(tǒng),提供高效的數(shù)據(jù)高可靠和高可用保障機(jī)制,在保持優(yōu)良的性能的同時(shí)減 少冗余空間的損耗。本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的本發(fā)明提供了一種集群文件系統(tǒng)中文件冗余存儲(chǔ)方法,其中,在所述文件系統(tǒng)中, 文件以數(shù)據(jù)片的方式存放在網(wǎng)絡(luò)存儲(chǔ)節(jié)點(diǎn),包括以下存儲(chǔ)狀態(tài)狀態(tài)1,數(shù)據(jù)片以鏡像方式 存放;狀態(tài)2,數(shù)據(jù)片以冗余校驗(yàn)方式存放;所述方法包括以下步驟讀取處于狀態(tài)1的文件的各數(shù)據(jù)片;進(jìn)行冗余計(jì)算,生成冗余校驗(yàn)片;
將冗余校驗(yàn)片寫入文件;釋放文件各鏡像數(shù)據(jù)片的存儲(chǔ)空間;修改狀態(tài)1為狀態(tài)2。根據(jù)本發(fā)明優(yōu)選實(shí)施例的集群文件系統(tǒng)中的文件冗余存儲(chǔ)方法,存儲(chǔ)狀態(tài)2所采 用的冗余校驗(yàn)方式是奇偶校驗(yàn)。根據(jù)本發(fā)明優(yōu)選實(shí)施例的集群文件系統(tǒng)中的文件冗余存儲(chǔ)方法,所述方法的步驟 是由文件系統(tǒng)中作為客戶端的應(yīng)用服務(wù)器執(zhí)行的。根據(jù)本發(fā)明優(yōu)選實(shí)施例的集群文件系統(tǒng)中的文件冗余存儲(chǔ)方法,文件的存儲(chǔ)狀態(tài) 還包括狀態(tài)3,其中原版本數(shù)據(jù)片以冗余校驗(yàn)方式存放,寫更新所生成的新版本數(shù)據(jù)片以鏡 像方式存放;所述方法還包括以下步驟保持被寫更新的處于狀態(tài)2的原版本數(shù)據(jù)片不變,生成新版本數(shù)據(jù)片;將新版本數(shù)據(jù)片寫入相應(yīng)的存儲(chǔ)節(jié)點(diǎn),同時(shí)做鏡像備份到另一存儲(chǔ)節(jié)點(diǎn);修改狀態(tài)2為狀態(tài)3。根據(jù)本發(fā)明優(yōu)選實(shí)施例的集群文件系統(tǒng)中的文件冗余存儲(chǔ)方法,還包括以下寫更 新步驟對以鏡像方式存放的數(shù)據(jù)片,同時(shí)修改存放在兩個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)片及其鏡像;對以冗余校驗(yàn)方式存放的數(shù)據(jù)片,保持以冗余校驗(yàn)方式存放的原版本數(shù)據(jù)片不 變,生成新版本數(shù)據(jù)片;將新版本數(shù)據(jù)片寫入相應(yīng)的存儲(chǔ)節(jié)點(diǎn),同時(shí)做鏡像備份到另一存儲(chǔ) 節(jié)點(diǎn)。根據(jù)本發(fā)明優(yōu)選實(shí)施例的集群文件系統(tǒng)中的文件冗余存儲(chǔ)方法,還包括以下步 驟依次遍歷處于狀態(tài)3的文件的鏡像數(shù)據(jù)片,遇到空洞,將原版本數(shù)據(jù)片填充寫入 新版本數(shù)據(jù)片和鏡像數(shù)據(jù)片;將原版本數(shù)據(jù)片替換為新版本數(shù)據(jù)片;釋放新版本數(shù)據(jù)片和冗余校驗(yàn)數(shù)據(jù)片的存儲(chǔ)空間;修改狀態(tài)3為1。根據(jù)本發(fā)明優(yōu)選實(shí)施例的集群文件系統(tǒng)中的文件冗余存儲(chǔ)方法,還包括數(shù)據(jù)片出 錯(cuò)時(shí)的恢復(fù)步驟狀態(tài)1時(shí),用對應(yīng)節(jié)點(diǎn)上的數(shù)據(jù)片鏡像恢復(fù)出錯(cuò)數(shù)據(jù)片;狀態(tài)2時(shí),進(jìn)行冗余計(jì)算恢復(fù)出錯(cuò)的數(shù)據(jù)片;狀態(tài)3時(shí),如果出錯(cuò)的是原版本數(shù)據(jù)片,則進(jìn)行冗余計(jì)算恢復(fù)出錯(cuò)數(shù)據(jù)片;如果出 錯(cuò)的是新版本數(shù)據(jù)片或者其鏡像數(shù)據(jù)片,則用對應(yīng)節(jié)點(diǎn)上的數(shù)據(jù)片鏡像恢復(fù)出錯(cuò)數(shù)據(jù)片。與現(xiàn)有技術(shù)相比,根據(jù)本發(fā)明具體實(shí)施例提供的集群文件系統(tǒng)中的文件冗余存儲(chǔ) 方法,數(shù)據(jù)可以在不同存儲(chǔ)狀態(tài)中動(dòng)態(tài)切換。對于客戶端的寫操作,數(shù)據(jù)以鏡像方式進(jìn)行寫 更新,對于客戶端的寫請求不必考慮如何進(jìn)行冗余計(jì)算及冗余更新問題,新寫的數(shù)據(jù)塊鏡 像到冗余存儲(chǔ)管理設(shè)備上。避免了冗余校驗(yàn)方式中小寫更新導(dǎo)致的寫性能低下問題,寫性 能相比現(xiàn)有冗余校驗(yàn)方式得到大幅度提高。同時(shí),非寫活躍性質(zhì)的數(shù)據(jù)在系統(tǒng)存儲(chǔ)資源緊 張時(shí),可以轉(zhuǎn)化為冗余校驗(yàn)方式存儲(chǔ),在保證數(shù)據(jù)可靠性和可用性的前提下,減少了冗余空間占用,提高空間利用率。另外當(dāng)存儲(chǔ)節(jié)點(diǎn)出現(xiàn)故障時(shí)可以用鏡像方式和冗余校驗(yàn)結(jié)合的 方式來減少計(jì)算量,改善數(shù)據(jù)恢復(fù)的效率,保障了數(shù)據(jù)的可靠性和可用性。


以下參照附圖對本發(fā)明實(shí)施例作進(jìn)一步說明,其中圖1為根據(jù)本發(fā)明實(shí)施例的各存儲(chǔ)節(jié)點(diǎn)沒有寫入數(shù)據(jù)的初始狀態(tài)的示意圖;圖2為根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)片以鏡像方式存放的狀態(tài)1的示意圖;圖3為根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)片以冗余校驗(yàn)方式存放的狀態(tài)2的示意圖;圖4為根據(jù)本發(fā)明實(shí)施例的原版本數(shù)據(jù)片以冗余校驗(yàn)方式存放,寫更新所生成的 新版本數(shù)據(jù)片以鏡像方式冗余存放的狀態(tài)3的示意圖;圖5為根據(jù)本發(fā)明實(shí)施例的狀態(tài)1下寫更新數(shù)據(jù)片的示意圖;圖6為根據(jù)本發(fā)明實(shí)施例的狀態(tài)3下新版本數(shù)據(jù)片被再次寫更新后的示意圖;圖7為根據(jù)本發(fā)明實(shí)施例的狀態(tài)3下原版本數(shù)據(jù)片被寫更新的示意圖;圖8為根據(jù)本發(fā)明實(shí)施例的狀態(tài)2下冗余校驗(yàn)片出錯(cuò)的示意圖;圖9為根據(jù)本發(fā)明實(shí)施例的狀態(tài)2下數(shù)據(jù)片出錯(cuò)的示意圖;圖10為根據(jù)本發(fā)明實(shí)施例的狀態(tài)3下冗余校驗(yàn)片出錯(cuò)的示意圖;圖11為根據(jù)本發(fā)明實(shí)施例的狀態(tài)3下原版本數(shù)據(jù)片出錯(cuò)的示意圖;圖12為根據(jù)本發(fā)明實(shí)施例的狀態(tài)3下新版本數(shù)據(jù)片的鏡像出錯(cuò)的示意圖;圖13為根據(jù)本發(fā)明實(shí)施例的狀態(tài)3下原版本數(shù)據(jù)片及其新版本的數(shù)據(jù)片都出錯(cuò) 的示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的,技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖通過具體實(shí) 施例對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明, 并不用于限定本發(fā)明。在本發(fā)明的實(shí)施例中所述文件系統(tǒng)包括作為應(yīng)用服務(wù)器,元數(shù)據(jù)服務(wù)器以及多個(gè) 存儲(chǔ)節(jié)點(diǎn),其中應(yīng)用服務(wù)器作為文件系統(tǒng)的客戶端執(zhí)行文件的讀寫操作。圖1為根據(jù)本發(fā) 明的一個(gè)實(shí)施例的初始狀態(tài),各存儲(chǔ)節(jié)點(diǎn)(SN)沒有寫入數(shù)據(jù)。在本發(fā)明的實(shí)施例中初次保 存文件時(shí),文件以數(shù)據(jù)片的方式分別存放在相應(yīng)網(wǎng)絡(luò)存儲(chǔ)節(jié)點(diǎn),同時(shí)將各存儲(chǔ)節(jié)點(diǎn)數(shù)據(jù)片 作鏡像備份至其余節(jié)點(diǎn),形成鏡像方式冗余存放,提高數(shù)據(jù)可靠性。此時(shí)文件的存儲(chǔ)狀態(tài)稱 為狀態(tài)1,如圖2所示。圖2為根據(jù)本發(fā)明實(shí)施例的狀態(tài)1,數(shù)據(jù)片以鏡像方式存放。在本 實(shí)施例中僅以3個(gè)存儲(chǔ)節(jié)點(diǎn)和3個(gè)鏡像節(jié)點(diǎn)為示例,但在其他實(shí)施例中存儲(chǔ)節(jié)點(diǎn)的數(shù)目不 受限制,可以為任意數(shù)目。在本發(fā)明的實(shí)施例中,所述文件系統(tǒng)中文件的存儲(chǔ)狀態(tài)還包括如圖3所示的狀態(tài) 2,數(shù)據(jù)片以冗余校驗(yàn)方式存放。在本實(shí)施例中冗余校驗(yàn)方式采用的是類似RAID5的奇偶校 驗(yàn),在其他實(shí)施例中冗余校驗(yàn)方式也可以采用如海明碼校驗(yàn)等其他為本領(lǐng)域技術(shù)人員所知 的冗余校驗(yàn)方式。在本發(fā)明的實(shí)施例中,上述的文件存儲(chǔ)狀態(tài)1可以通過以下步驟轉(zhuǎn)換為狀態(tài)2,轉(zhuǎn) 換步驟包括
讀取處于狀態(tài)1的文件的各數(shù)據(jù)片;進(jìn)行冗余計(jì)算,生成冗余校驗(yàn)片;將冗余校驗(yàn)片寫入文件;釋放文件各鏡像數(shù)據(jù)片的存儲(chǔ)空間;修改狀態(tài)1為狀態(tài)2。以上步驟也可以稱為降級操作。當(dāng)大量文件處于狀態(tài)1以鏡像方式保存,文件空 間冗余達(dá)到100%,此時(shí)如果系統(tǒng)剩余存儲(chǔ)資源較為緊張,可以對文件進(jìn)行降級操作,將狀 態(tài)1轉(zhuǎn)化為狀態(tài)2,以冗余校驗(yàn)保存文件,在不降低系統(tǒng)可靠性的基礎(chǔ)上釋放存儲(chǔ)資源,減 少空間占用。在本發(fā)明實(shí)施例中降級操作由文件系統(tǒng)中作為客戶端的應(yīng)用服務(wù)器執(zhí)行,這樣可 以避免產(chǎn)生集中式管理的單個(gè)控制節(jié)點(diǎn)性能瓶頸。此降級操作可以由后臺降級守護(hù)進(jìn)程 (DegradeDeamon)調(diào)用,在資源緊張時(shí)進(jìn)行空間壓縮和資源釋放。在一些實(shí)施例中,降級操 作也可以由存儲(chǔ)管理服務(wù)器執(zhí)行。在另一些實(shí)施例中,降級步驟可以由文件系統(tǒng)中的服務(wù) 器端執(zhí)行。在本發(fā)明實(shí)施例中所述文件系統(tǒng)中文件的存儲(chǔ)狀態(tài)還包括如圖4所示的狀態(tài)3, 其中原版本數(shù)據(jù)片以冗余校驗(yàn)方式存放,寫更新所生成的新版本數(shù)據(jù)片以鏡像方式存放。 當(dāng)對處于狀態(tài)2的文件進(jìn)行寫更新時(shí)文件的存儲(chǔ)狀態(tài)從狀態(tài)2轉(zhuǎn)換到狀態(tài)3,包括以下步 驟保持被寫更新的處于狀態(tài)2的原版本數(shù)據(jù)片不變,生成新版本數(shù)據(jù)片;將新版本數(shù)據(jù)片寫入相應(yīng)的存儲(chǔ)節(jié)點(diǎn),同時(shí)做鏡像備份到另一存儲(chǔ)節(jié)點(diǎn);修改狀態(tài)2為狀態(tài)3。以上步驟也可以統(tǒng)稱為對狀態(tài)2的寫操作。如圖4所示,對處于狀態(tài)2的文件進(jìn) 行寫更新,以寫更新數(shù)據(jù)片Dltl為例,保持原來的舊片段Dltl不變,并生成新片段D11,同時(shí)將 新片段D11的鏡像D11'保存至另一個(gè)存儲(chǔ)節(jié)點(diǎn),實(shí)現(xiàn)鏡像備份,以保證數(shù)據(jù)的可靠性,此時(shí) 文件的存儲(chǔ)狀態(tài)稱為狀態(tài)3。在本發(fā)明的實(shí)施例中對文件進(jìn)行寫更新時(shí)需要根據(jù)數(shù)據(jù)片的不同存放方式執(zhí)行 不同的操作,包括以下步驟對以鏡像方式存放的數(shù)據(jù)片,同時(shí)修改存放在兩個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)片及其鏡像;對以冗余校驗(yàn)方式存放的數(shù)據(jù)片,保持以冗余校驗(yàn)方式存放的原版本數(shù)據(jù)片不 變,生成新版本數(shù)據(jù)片;將新版本數(shù)據(jù)片寫入相應(yīng)的存儲(chǔ)節(jié)點(diǎn),同時(shí)做鏡像備份到另一存儲(chǔ) 節(jié)點(diǎn)。以上步驟可以統(tǒng)稱為寫更新操作。圖5為在本發(fā)明實(shí)施例中的狀態(tài)1下寫更新數(shù) 據(jù)片的示意圖,狀態(tài)1時(shí),數(shù)據(jù)片以鏡像方式存放,對其進(jìn)行寫更新時(shí),需要同時(shí)修改以鏡 像方式保存在兩個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)片及其鏡像,修改可以采用同步模式或異步模式。以寫 更新數(shù)據(jù)片D1為例,更新D1SD12,同時(shí)將另一個(gè)存儲(chǔ)節(jié)點(diǎn)的鏡像D1'更新為D12‘。此時(shí) 數(shù)據(jù)存儲(chǔ)狀態(tài)仍為狀態(tài)1,以上步驟也可以稱為對狀態(tài)1的寫更新操作。對處于狀態(tài)3的文件進(jìn)行寫更新時(shí),要區(qū)分?jǐn)?shù)據(jù)片的存儲(chǔ)方式,原版本數(shù)據(jù)片以 冗余校驗(yàn)方式存放,而寫更新所生成的新版本數(shù)據(jù)片以鏡像方式存放。圖6為根據(jù)本發(fā) 明實(shí)施例的狀態(tài)3下新版本數(shù)據(jù)片被寫更新后的示意圖,其中新版本數(shù)據(jù)片以鏡像方式存放,對圖4所示的處于狀態(tài)3的文件進(jìn)行寫更新,以寫更新D11為例,保持原來的以冗余校驗(yàn) 方式存放的原版本數(shù)據(jù)片D1。不變,更新D11為D12,同時(shí)將D11在另一個(gè)存儲(chǔ)節(jié)點(diǎn)的鏡像D11 ‘ 更新為D12‘,實(shí)現(xiàn)鏡像備份,此時(shí)存儲(chǔ)狀態(tài)也為狀態(tài)3。圖7為根據(jù)本發(fā)明實(shí)施例的狀態(tài)3下原版本數(shù)據(jù)片被寫更新的示意圖;其中原版 本數(shù)據(jù)片以冗余校驗(yàn)方式存放,對如圖6所示處于狀態(tài)3的文件寫更新,以寫更新D3tl為例, 保持原版本數(shù)據(jù)片D3tl不變,并生成新版本數(shù)據(jù)片D31,同時(shí)將新版本數(shù)據(jù)片D31的鏡像D31‘ 保存至另一個(gè)存儲(chǔ)節(jié)點(diǎn),實(shí)現(xiàn)鏡像備份,以保證數(shù)據(jù)的可靠性。此時(shí)存儲(chǔ)狀態(tài)也為狀態(tài)3。讀寫操作在本發(fā)明實(shí)施例中,應(yīng)用服務(wù)器作為客戶端進(jìn)行寫讀操作。客戶端進(jìn)行讀操作,不會(huì)影響文件系統(tǒng)一致性狀態(tài),不會(huì)影響快照的創(chuàng)建和維護(hù), 因此按正常的流程即可,如步驟(1),(2), (3)所示(1)客戶端向服務(wù)端請求文件布局關(guān)系信息layout (即文件邏輯地址到物理地址 映射);(2)服務(wù)端查詢相關(guān)元數(shù)據(jù),返回相對應(yīng)的layout ;(3)客戶端通過返回的layout讀存儲(chǔ)設(shè)備上的數(shù)據(jù)。應(yīng)用服務(wù)器作為客戶端進(jìn)行寫操作,如步驟⑷,(5),(6)所示(4)客戶端向服務(wù)端請求layout信息;(5)服務(wù)端查詢相關(guān)元數(shù)據(jù),返回對應(yīng)的讀寫layout,并且預(yù)留相應(yīng)的資源??蛻?端根據(jù)返回的layout的進(jìn)行設(shè)備讀寫,根據(jù)只讀layout讀出存儲(chǔ)設(shè)備的內(nèi)容,修改的內(nèi)容 寫入可寫layout對應(yīng)存儲(chǔ)設(shè)備中;(6)客戶端向layout提交相應(yīng)的元數(shù)據(jù)信息,并且把預(yù)留資源信息加入到元數(shù)據(jù) 組織中。對于讀請求,客戶端通過元數(shù)據(jù)服務(wù)器得到資源映射地址后,從存儲(chǔ)節(jié)點(diǎn)直接請 求數(shù)據(jù),性能不受冗余存儲(chǔ)影響;對于寫請求客戶端不必考慮冗余更新問題,只需使用遠(yuǎn)程 鏡像方式將新寫的數(shù)據(jù)塊鏡像到冗余存儲(chǔ)管理設(shè)備上,寫性能相比冗余校驗(yàn)方式得到大幅 度提高。在一些實(shí)施例中客戶端還可采用延遲寫和寫聚合以及緩存等技術(shù)進(jìn)一步優(yōu)化寫操 作的性能。在本發(fā)明的實(shí)施例中文件的存儲(chǔ)狀態(tài)可以通過以下步驟從狀態(tài)3轉(zhuǎn)換到狀態(tài)1 依次遍歷處于狀態(tài)3的文件的鏡像數(shù)據(jù)片,遇到空洞,將原版本數(shù)據(jù)片填充寫入 新版本數(shù)據(jù)片和鏡像數(shù)據(jù)片;將原版本數(shù)據(jù)片替換為新版本數(shù)據(jù)片;釋放新版本數(shù)據(jù)片和冗余校驗(yàn)數(shù)據(jù)片的存儲(chǔ)空間;修改狀態(tài)3為1。以上步驟也可以稱為升級操作。在本實(shí)施例中由應(yīng)用服務(wù)器作為客戶端進(jìn)行如 下操作依次遍歷處于狀態(tài)3的文件的鏡像數(shù)據(jù)片block',遇到空洞,則說明該數(shù)據(jù)片 尚未寫入有效數(shù)據(jù),說明原版本數(shù)據(jù)片Wocktl沒有被修改,自然也沒有生成新版本數(shù)據(jù)片 block,;此時(shí)將原版本數(shù)據(jù)片填充寫入新版本數(shù)據(jù)片Wocki和鏡像數(shù)據(jù)片block';將原版本數(shù)據(jù)片Wocktl替換為新版本數(shù)據(jù)片Wocki,因?yàn)榇藭r(shí)需要將文件所處存 儲(chǔ)狀態(tài)3轉(zhuǎn)化為狀態(tài)1,只保留數(shù)據(jù)片及其鏡像;
將新版數(shù)據(jù)片block”冗余校驗(yàn)數(shù)據(jù)片P的相關(guān)信息進(jìn)行刪除、清空和回收;同時(shí) 修改狀態(tài)3為1 ;依次對處于狀態(tài)3的文件執(zhí)行升級操作就可以完成從狀態(tài)3到狀態(tài)1的轉(zhuǎn)換。在本實(shí)施例中,上述降級操作,對狀態(tài)2的寫操作,寫更新操作以及升級操作都是 由文件系統(tǒng)中作為客戶端的應(yīng)用服務(wù)器執(zhí)行的。在其他一些的實(shí)施例中,上述操作也可以 由存儲(chǔ)管理服務(wù)器或者文件系統(tǒng)中的服務(wù)器執(zhí)行。在本發(fā)明的一些實(shí)施例中為集群文件系統(tǒng)提供了一種文件存儲(chǔ)狀態(tài)動(dòng)態(tài)轉(zhuǎn)換的 方法,其中所述文件系統(tǒng)中的文件包括以下存儲(chǔ)狀態(tài)狀態(tài)1,數(shù)據(jù)片以鏡像方式存放;狀態(tài)2,數(shù)據(jù)片以冗余校驗(yàn)方式存放;狀態(tài)3,原版本數(shù)據(jù)片以冗余校驗(yàn)方式存放,寫更新所生成的新版本數(shù)據(jù)片以鏡像 方式存放;所述的動(dòng)態(tài)轉(zhuǎn)換方法包括以下步驟狀態(tài)1經(jīng)過寫更新操作進(jìn)入狀態(tài)1 ;狀態(tài)1經(jīng)過降級操作進(jìn)入狀態(tài)2 ;狀態(tài)2經(jīng)過對狀態(tài)2的寫操作進(jìn)入狀態(tài)3 ;狀態(tài)3經(jīng)過寫更新操作進(jìn)入狀態(tài)3 ;狀態(tài)3經(jīng)過升級操作進(jìn)入狀態(tài)1。當(dāng)狀態(tài)為1時(shí),降級操作將原本以鏡像方式保存的數(shù)據(jù)片改為以冗余校驗(yàn)方式保 存,轉(zhuǎn)換到狀態(tài)2。此操作通常發(fā)生在系統(tǒng)存儲(chǔ)空間資源緊張時(shí),可壓縮數(shù)據(jù),釋放存儲(chǔ)空 間。狀態(tài)2經(jīng)過對狀態(tài)2的寫操作,轉(zhuǎn)換到狀態(tài)3,在狀態(tài)3保持原有以冗余方式存儲(chǔ) 的數(shù)據(jù)片不變,需要進(jìn)行寫更新操作時(shí)直接生成新版本數(shù)據(jù)片并對其做鏡像保存,這樣所 有的寫更新操作都不必進(jìn)行冗余計(jì)算和冗余更新,從而提高了寫性能。當(dāng)文件的存儲(chǔ)狀態(tài)為3時(shí),如果全部或絕大多數(shù)數(shù)據(jù)片已經(jīng)執(zhí)行了寫更新操作, 則全部或絕大多數(shù)數(shù)據(jù)片Dij都已經(jīng)在另一存儲(chǔ)節(jié)點(diǎn)保存鏡像Di/,事實(shí)上已經(jīng)在以鏡像 方式存放數(shù)據(jù)。此時(shí)可執(zhí)行升級操作。操作完成后,存儲(chǔ)狀態(tài)恢復(fù)至狀態(tài)1。當(dāng)某存儲(chǔ)節(jié)點(diǎn)(SN)由于節(jié)點(diǎn)故障(如電源故障、操作系統(tǒng)出錯(cuò)等)或網(wǎng)絡(luò)故障 (如網(wǎng)絡(luò)連接中斷等)等原因停止服務(wù),造成數(shù)據(jù)丟失后,需要將故障設(shè)備修復(fù)或替換。完 成修復(fù)或替換后,客戶端需要采用恢復(fù)操作恢復(fù)丟失數(shù)據(jù),保證數(shù)據(jù)的可靠性。在本發(fā)明的 實(shí)施例中在數(shù)據(jù)片出錯(cuò)時(shí)采用以下步驟狀態(tài)1時(shí),用對應(yīng)節(jié)點(diǎn)上的數(shù)據(jù)片鏡像恢復(fù)出錯(cuò)數(shù)據(jù)片;狀態(tài)2時(shí),進(jìn)行冗余計(jì)算恢復(fù)出錯(cuò)的數(shù)據(jù)片;狀態(tài)3時(shí),如果出錯(cuò)的是原版本數(shù)據(jù)片,則進(jìn)行冗余計(jì)算恢復(fù)出錯(cuò)數(shù)據(jù)片;如果出 錯(cuò)的是新版本數(shù)據(jù)片或者其鏡像數(shù)據(jù)片,則用對應(yīng)節(jié)點(diǎn)上的數(shù)據(jù)片鏡像恢復(fù)出錯(cuò)數(shù)據(jù)片。上述步驟也可稱為恢復(fù)操作。下面參考附圖8,9,10,11,12,13對恢復(fù)操作進(jìn)行具 體說明。在本發(fā)明實(shí)施例中,文件處于狀態(tài)1時(shí),對小文件而言,可能只有1個(gè)數(shù)據(jù)分片;對 大文件而言,可能有若干數(shù)據(jù)片分布在不同節(jié)點(diǎn),每個(gè)數(shù)據(jù)片都在另一個(gè)節(jié)點(diǎn)存有鏡像備份。當(dāng)文件處于狀態(tài)1時(shí)執(zhí)行恢復(fù)操作只需要將故障節(jié)點(diǎn)的出錯(cuò)數(shù)據(jù)片用對應(yīng)節(jié)點(diǎn)上的鏡 像恢復(fù)即可。在本發(fā)明實(shí)施例中,狀態(tài)2下出錯(cuò)數(shù)據(jù)片分類及恢復(fù)操作如下如圖8所示,狀態(tài)2下,冗余校驗(yàn)片P出錯(cuò)時(shí)的恢復(fù)操作,需要讀取文件的他數(shù)據(jù) 片DpD2和D3,作冗余計(jì)算,生成新冗余校驗(yàn)片P。如圖9所示,狀態(tài)2下,數(shù)據(jù)片D3出錯(cuò)時(shí) 的恢復(fù)操作,需要讀取冗余組內(nèi)其他數(shù)據(jù)片D1A2以及冗余校驗(yàn)片P,作冗余計(jì)算,生成新數(shù) 據(jù)片D3。在本發(fā)明實(shí)施例中,狀態(tài)3下出錯(cuò)數(shù)據(jù)分類及恢復(fù)操作如下圖10所示,狀態(tài)3下,冗余校驗(yàn)片Ptl出錯(cuò)時(shí)的恢復(fù)操作,需要讀取以冗余校驗(yàn)方 式存放的其他原版本數(shù)據(jù)片Dic^Dki和D3tl,作冗余計(jì)算,恢復(fù)冗余校驗(yàn)片Ρ『圖11所示,狀 態(tài)3下,原版本數(shù)據(jù)片D3tl出錯(cuò)時(shí)的恢復(fù)操作,需要讀取其他原版本數(shù)據(jù)片DiciA^l以及冗余 校驗(yàn)片P,作冗余計(jì)算,恢復(fù)數(shù)據(jù)片D3(i。圖12所示,狀態(tài)3下,鏡像數(shù)據(jù)片D11'出錯(cuò)時(shí)的恢 復(fù)操作,通過利用未出錯(cuò)節(jié)點(diǎn)的數(shù)據(jù)片D11,恢復(fù)出錯(cuò)節(jié)點(diǎn)的鏡像數(shù)據(jù)片D11'。圖13所示, 狀態(tài)3下,原版本數(shù)據(jù)片Dltl和新版本數(shù)據(jù)片D11出錯(cuò)時(shí)的恢復(fù)操作,分為兩步首先需要讀 取在未出錯(cuò)節(jié)點(diǎn)上的文件以冗余校驗(yàn)方式存放的其他原版本數(shù)據(jù)片,作冗余計(jì)算,恢復(fù)原 版本數(shù)據(jù)片Dltl ;然后通過在鏡像保存的數(shù)據(jù)片D11',恢復(fù)出錯(cuò)節(jié)點(diǎn)上的數(shù)據(jù)片Dn??梢姰?dāng)存儲(chǔ)節(jié)點(diǎn)出現(xiàn)故障時(shí)采用鏡像和冗余校驗(yàn)結(jié)合的方式也可以減少冗余計(jì) 算量和冗余更新,改善數(shù)據(jù)恢復(fù)的效率。在本發(fā)明實(shí)施例中上述恢復(fù)操作是由在文件系統(tǒng)中作為客戶端的應(yīng)用服務(wù)器執(zhí) 行的。在其他一些的實(shí)施例中,上述操作也可以由存儲(chǔ)管理服務(wù)器或者文件系統(tǒng)中的服務(wù) 器執(zhí)行。在本發(fā)明的一些實(shí)施例中,所述文件系統(tǒng)中的文件的存儲(chǔ)狀態(tài)可以是狀態(tài)1,數(shù) 據(jù)片以RAIDl方式存放;狀態(tài)2,數(shù)據(jù)片以RAID5模式冗余存放;狀態(tài)3,原版本數(shù)據(jù)片以 RAID5模式冗余方式存放,寫更新所生成的新版本數(shù)據(jù)片以RAIDl方式存放。通過上述本發(fā)明的具體實(shí)施例,為基于網(wǎng)絡(luò)存儲(chǔ)的集群文件系統(tǒng),提供高效的高 可靠和高可用保障機(jī)制的方法,利用鏡像和冗余校驗(yàn)結(jié)合的數(shù)據(jù)冗余機(jī)制保證文件系統(tǒng)的 數(shù)據(jù)可靠性和可用性。根據(jù)本發(fā)明實(shí)施例提供的文件冗余存儲(chǔ)方法使數(shù)據(jù)的存儲(chǔ)狀態(tài)進(jìn)行 動(dòng)態(tài)轉(zhuǎn)化對于客戶端的寫操作,數(shù)據(jù)以鏡像方式進(jìn)行寫更新,對于客戶端的寫請求不必考 慮如何進(jìn)行冗余校驗(yàn)方式中的冗余計(jì)算及冗余更新問題,新寫的數(shù)據(jù)塊鏡像到冗余存儲(chǔ)管 理設(shè)備上,避免了如RAID5等冗余校驗(yàn)方式中小寫更新導(dǎo)致的寫性能低下問題,寫性能得 到大幅度提高。同時(shí),非寫活躍性質(zhì)的數(shù)據(jù)在系統(tǒng)存儲(chǔ)資源緊張時(shí),可以轉(zhuǎn)化為冗余校驗(yàn)方 式存儲(chǔ),在保證數(shù)據(jù)可靠性和可用性的前提下,減少了冗余空間占用,提高空間利用率??梢姼鶕?jù)本發(fā)明實(shí)施例的文件冗余存儲(chǔ)方法具備良好的空間利用率,并且能夠有 效減少冗余計(jì)算開銷,提高系統(tǒng)性能。同時(shí)當(dāng)存儲(chǔ)節(jié)點(diǎn)出現(xiàn)故障時(shí)可以用鏡像和冗余校驗(yàn) 結(jié)合的方式來減少計(jì)算量,改善數(shù)據(jù)恢復(fù)的效率,保障了數(shù)據(jù)的可靠性和可用性。雖然本發(fā)明已經(jīng)通過優(yōu)選實(shí)施例進(jìn)行了描述,然而本發(fā)明并非局限于這里所描述 的實(shí)施例,在不脫離本發(fā)明范圍的情況下還包括所作出的各種改變以及變化。
權(quán)利要求
1.一種集群文件系統(tǒng)中文件冗余存儲(chǔ)方法,所述文件系統(tǒng)中文件以數(shù)據(jù)片的方式存放 在網(wǎng)絡(luò)存儲(chǔ)節(jié)點(diǎn),包括以下存儲(chǔ)狀態(tài)狀態(tài)1,數(shù)據(jù)片以鏡像方式存放; 狀態(tài)2,數(shù)據(jù)片以冗余校驗(yàn)方式存放; 所述方法包括以下步驟 讀取處于狀態(tài)1的文件的各數(shù)據(jù)片; 進(jìn)行冗余計(jì)算,生成冗余校驗(yàn)片; 將冗余校驗(yàn)片寫入文件; 釋放文件各鏡像數(shù)據(jù)片的存儲(chǔ)空間; 修改狀態(tài)1為狀態(tài)2。
2.根據(jù)權(quán)利要求1所述的集群文件系統(tǒng)中的文件冗余存儲(chǔ)方法,其特征在于所述冗 余校驗(yàn)方式是奇偶校驗(yàn)。
3.根據(jù)權(quán)利要求1所述的集群文件系統(tǒng)中文件冗余存儲(chǔ)方法,其特征在于所述方法 由文件系統(tǒng)中作為客戶端的應(yīng)用服務(wù)器執(zhí)行。
4.根據(jù)權(quán)利要求1所述的集群文件系統(tǒng)中文件冗余存儲(chǔ)方法,其特征在于所述存儲(chǔ)狀 態(tài)還包括狀態(tài)3,其中原版本數(shù)據(jù)片以冗余校驗(yàn)方式存放,寫更新所生成的新版本數(shù)據(jù)片以 鏡像方式存放;所述方法還包括以下步驟保持被寫更新的處于狀態(tài)2的原版本數(shù)據(jù)片不變,生成新版本數(shù)據(jù)片; 將新版本數(shù)據(jù)片寫入相應(yīng)的存儲(chǔ)節(jié)點(diǎn),同時(shí)做鏡像備份到另一存儲(chǔ)節(jié)點(diǎn); 修改狀態(tài)2為狀態(tài)3。
5.根據(jù)權(quán)利要求4所述的集群文件系統(tǒng)中文件冗余存儲(chǔ)方法,其特征在于還包括以 下寫更新步驟對以鏡像方式存放的數(shù)據(jù)片,同時(shí)修改存放在兩個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)片及其鏡像; 對以冗余校驗(yàn)方式存放的數(shù)據(jù)片,保持以冗余校驗(yàn)方式存放的原版本數(shù)據(jù)片不變,生 成新版本數(shù)據(jù)片;將新版本數(shù)據(jù)片寫入相應(yīng)的存儲(chǔ)節(jié)點(diǎn),同時(shí)做鏡像備份到另一存儲(chǔ)節(jié)點(diǎn)。
6.根據(jù)權(quán)利要求4所述的集群文件系統(tǒng)中文件冗余存儲(chǔ)方法,其特征在于所述方法還 包括以下步驟依次遍歷處于狀態(tài)3的文件的鏡像數(shù)據(jù)片,遇到空洞,將原版本數(shù)據(jù)片填充寫入新版 本數(shù)據(jù)片和鏡像數(shù)據(jù)片;將原版本數(shù)據(jù)片替換為新版本數(shù)據(jù)片; 釋放新版本數(shù)據(jù)片和冗余校驗(yàn)數(shù)據(jù)片的存儲(chǔ)空間; 修改狀態(tài)3為1。
7.根據(jù)權(quán)利要求4、5或6所述的集群文件系統(tǒng)中文件冗余存儲(chǔ)方法,其特征在于還 包括數(shù)據(jù)片出錯(cuò)時(shí)的恢復(fù)步驟狀態(tài)1時(shí),用對應(yīng)節(jié)點(diǎn)上的數(shù)據(jù)片鏡像恢復(fù)出錯(cuò)數(shù)據(jù)片; 狀態(tài)2時(shí),進(jìn)行冗余計(jì)算恢復(fù)出錯(cuò)的數(shù)據(jù)片;狀態(tài)3時(shí),如果出錯(cuò)的是原版本數(shù)據(jù)片,則進(jìn)行冗余計(jì)算恢復(fù)出錯(cuò)數(shù)據(jù)片;如果出錯(cuò)的 是新版本數(shù)據(jù)片或者其鏡像數(shù)據(jù)片,則用對應(yīng)節(jié)點(diǎn)上的數(shù)據(jù)片鏡像恢復(fù)出錯(cuò)數(shù)據(jù)片。
全文摘要
本發(fā)明提供一種集群文件系統(tǒng)中文件冗余存儲(chǔ)方法,在保證數(shù)據(jù)可靠性和可用性的前提下,數(shù)據(jù)可以在不同存儲(chǔ)狀態(tài)中動(dòng)態(tài)切換。在系統(tǒng)存儲(chǔ)資源緊張時(shí),數(shù)據(jù)可以從鏡像方式轉(zhuǎn)化為冗余校驗(yàn)方式存儲(chǔ),減少了冗余空間占用,提高空間利用率。同時(shí)數(shù)據(jù)以鏡像方式進(jìn)行寫更新,對于客戶端的寫請求不必考慮如何進(jìn)行冗余校驗(yàn)方式的冗余計(jì)算及冗余更新問題,新寫的數(shù)據(jù)塊鏡像到冗余存儲(chǔ)管理設(shè)備上,寫性能相比冗余校驗(yàn)方式得到大幅度提高。另外當(dāng)存儲(chǔ)節(jié)點(diǎn)出現(xiàn)故障時(shí)可以用鏡像和冗余校驗(yàn)結(jié)合的方式來進(jìn)行恢復(fù)操作來減少計(jì)算量,并改善數(shù)據(jù)恢復(fù)的效率。
文檔編號G06F11/14GK102110154SQ20111004214
公開日2011年6月29日 申請日期2011年2月21日 優(yōu)先權(quán)日2011年2月21日
發(fā)明者劉振晗 申請人:中國科學(xué)院計(jì)算技術(shù)研究所, 天津中科藍(lán)鯨信息技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1