亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于糾刪碼技術(shù)改進(jìn)的云存儲系統(tǒng)及實現(xiàn)方法

文檔序號:6543676閱讀:244來源:國知局
一種基于糾刪碼技術(shù)改進(jìn)的云存儲系統(tǒng)及實現(xiàn)方法
【專利摘要】本發(fā)明公開了一種基于糾刪碼技術(shù)改進(jìn)的云存儲系統(tǒng)及實現(xiàn)方法,涉及分布式文件系統(tǒng),該方法包括建立元數(shù)據(jù)管理節(jié)點、數(shù)據(jù)存儲節(jié)點、修復(fù)管理節(jié)點、工作管理節(jié)點、客戶端節(jié)點,根據(jù)糾刪碼技術(shù),通過該元數(shù)據(jù)管理節(jié)點、該數(shù)據(jù)存儲節(jié)點和該客戶端節(jié)點進(jìn)行數(shù)據(jù)的存儲和讀取,其中通過該修復(fù)管理節(jié)點和該工作管理節(jié)點修復(fù)采用糾刪碼技術(shù)后丟失或損壞的數(shù)據(jù)塊。本發(fā)明通過將糾刪碼的修復(fù)過程與云儲存系統(tǒng)文件管理節(jié)點相互分離,減輕修復(fù)過程元數(shù)據(jù)管理節(jié)點的負(fù)擔(dān),保證修復(fù)過程中系統(tǒng)的穩(wěn)定性,高可靠性和高可用性。
【專利說明】一種基于糾刪碼技術(shù)改進(jìn)的云存儲系統(tǒng)及實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明創(chuàng)造屬于分布式文件系統(tǒng),特別是為了保證分布式文件系統(tǒng)的高可靠性、聞可用性以及聞容錯性。
【背景技術(shù)】
[0002]近年來,隨著數(shù)據(jù)呈現(xiàn)爆炸式的增長趨勢,高性能計算、醫(yī)學(xué)影像、石油和天然氣勘探、數(shù)字媒體和社交網(wǎng)絡(luò)等大量數(shù)據(jù)密集型應(yīng)用導(dǎo)致數(shù)據(jù)的井噴,據(jù)研究顯示,2020年數(shù)字宇宙將達(dá)到35.2ZB,比2009年的0.8ZB猛增44倍,而如何保證系統(tǒng)在盡可能低的空間開銷情況下,保證存儲數(shù)據(jù)的高可靠性、高穩(wěn)定性和高可用性。
[0003]在傳統(tǒng)的云存儲系統(tǒng)中,采用復(fù)制的策略提高分布式文件系統(tǒng)的可靠性,在一定程度上能夠保證系統(tǒng)的可靠性,但隨著數(shù)據(jù)的爆炸式增長,采用單一的復(fù)制策略,不但可能造成很大的空間開銷,同時也可能造成副本全部丟失所帶來的不可恢復(fù)性文件丟失,從而對系統(tǒng)的可靠性帶來一定的風(fēng)險性。糾刪碼(Erasure Code)作為一種前向糾錯技術(shù)分布式存儲系統(tǒng)利用它作為一種冗余機制來保證分布式存儲系統(tǒng)數(shù)據(jù)的高可靠性、高可用性和高容錯性。其基本思想是:如圖1所示,將要存儲在系統(tǒng)中的文件分割成k塊,然后對其編碼得到的η個數(shù)據(jù)塊并進(jìn)行分布存儲,則只需存在k個可用的數(shù)據(jù)塊,就可以重構(gòu)出原始文件。
[0004]在云存儲系統(tǒng)中采用糾刪碼技術(shù)對文件進(jìn)行保存,在一定程度上降低系統(tǒng)的空間開銷,但同時由于文件修復(fù)帶來的巨大的網(wǎng)絡(luò)開銷可能導(dǎo)致整個系統(tǒng)的網(wǎng)絡(luò)或者部分節(jié)點的網(wǎng)絡(luò)擁塞而無法提供服務(wù),影響系統(tǒng)的性能。同時對于存儲和傳輸?shù)腎O讀寫的開銷也會加大,這可能會降低系統(tǒng)吞吐量。考慮到以上問題,為了將糾刪碼的修復(fù)過程與云存儲系統(tǒng)文件管理節(jié)點相互分離,減輕修復(fù)過程元數(shù)據(jù)管理節(jié)點的負(fù)擔(dān),保證修復(fù)過程中系統(tǒng)的穩(wěn)定性,本發(fā)明提出一種改進(jìn)的云儲存系統(tǒng)新架構(gòu)。
[0005]發(fā)明專利“云存儲系統(tǒng)及其元數(shù)據(jù)寫入方法、元數(shù)據(jù)讀取方法”公開了一種云存儲系統(tǒng)及其元數(shù)據(jù)寫入方法、元數(shù)據(jù)讀取方法。包括:元數(shù)據(jù)服務(wù)器集群、視圖管理模塊和客戶端??蛻舳讼蛴脩籼峁┰L問云存儲系統(tǒng)的接口并解析用戶要訪問的元數(shù)據(jù)服務(wù)器的視圖位置;視圖管理模塊存儲全部元數(shù)據(jù)視圖信息,根據(jù)全部元數(shù)據(jù)視圖信息構(gòu)建各元數(shù)據(jù)服務(wù)器之間的邏輯關(guān)聯(lián)關(guān)系,并向每個元數(shù)據(jù)服務(wù)器分發(fā)與元數(shù)據(jù)服務(wù)器自身相關(guān)聯(lián)的元數(shù)據(jù)視圖信息;各元數(shù)據(jù)服務(wù)器存儲由視圖管理模塊分發(fā)的元數(shù)據(jù)視圖信息,并確定的元數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)訪問地址信息;元數(shù)據(jù)服務(wù)器分層部署,最底層的元數(shù)據(jù)服務(wù)器還存儲元數(shù)據(jù)內(nèi)容和元數(shù)據(jù)視圖信息并根據(jù)用戶請求將自身存儲的元數(shù)據(jù)信息提供給用戶。該發(fā)明專利能減小帶寬消耗。但是該發(fā)明專利只說明了元數(shù)據(jù)的讀取方法,并沒有涉及到數(shù)據(jù)塊損壞或丟失后的恢復(fù)方法。
[0006]發(fā)明專利“一種云存儲系統(tǒng)及實現(xiàn)方法”公開了一種云存儲系統(tǒng)及其實現(xiàn)方法,涉及計算機以及網(wǎng)絡(luò)信息【技術(shù)領(lǐng)域】。該發(fā)明公開的云存儲系統(tǒng),包括:所述訪問特征數(shù)據(jù)庫,記錄所述云存儲系統(tǒng)內(nèi)各文件被訪問的次數(shù);所述訪問特征分析與副本調(diào)度模塊,接收客戶端對云存儲系統(tǒng)內(nèi)文件發(fā)起的訪問請求,從所述訪問特征數(shù)據(jù)庫中查詢所接收到的訪問請求所要訪問的文件被訪問的次數(shù),若所查詢到的文件被訪問的次數(shù)滿足設(shè)定條件,則向所述數(shù)據(jù)副本模塊發(fā)起數(shù)據(jù)副本創(chuàng)建指令;所述數(shù)據(jù)副本模塊,接收所述數(shù)據(jù)副本創(chuàng)建指令,根據(jù)該數(shù)據(jù)副本創(chuàng)建指令為所接收到的訪問請求所要訪問的文件創(chuàng)建數(shù)據(jù)副本。該發(fā)明實施例在一定程度上提高了云存儲系統(tǒng)的可用性,改善了云存儲系統(tǒng)的可靠性。但是該發(fā)明所采用的數(shù)據(jù)備份方式仍然是傳統(tǒng)的復(fù)制策略,這種策略在隨著需要儲存的數(shù)據(jù)量爆炸式增長過程中,將帶來很大存儲空間的浪費,不利于綠色資源調(diào)度和綠色數(shù)據(jù)中心的發(fā)展。而本發(fā)明是基于糾刪碼編碼技術(shù)架構(gòu)的云存儲系統(tǒng),采用糾刪碼編碼技術(shù)取代傳統(tǒng)的副本復(fù)制備份策略,不但可以降低副本備份所帶來的巨大空間開銷,同時提高數(shù)據(jù)存儲的可靠性。

【發(fā)明內(nèi)容】

[0007]針對上述云儲存系統(tǒng)的架構(gòu)以及糾刪碼原理的介紹,本發(fā)明在原生的云儲存系統(tǒng)架構(gòu)中加入修復(fù)管理節(jié)點,該節(jié)點主要負(fù)責(zé)采用糾刪碼技術(shù)對丟失或損壞的數(shù)據(jù)塊進(jìn)行修復(fù),將修復(fù)管理節(jié)點與元數(shù)據(jù)管理節(jié)點相互分離,從而減輕元數(shù)據(jù)管理節(jié)點在修復(fù)過程中的負(fù)載,保證系統(tǒng)的高可靠性、高可用性和高穩(wěn)定性。同時在此架構(gòu)的基礎(chǔ)上對采用糾刪碼算法處理的數(shù)據(jù)塊進(jìn)一步增加采用基于異或運算的數(shù)據(jù)信息塊,在單點發(fā)生故障時,能夠快速及時的恢復(fù)丟失或損壞的數(shù)據(jù)塊。
[0008]具體地講,本發(fā)明公開了一種基于糾刪碼技術(shù)改進(jìn)的云存儲實現(xiàn)方法,其特征在于,包括建立元數(shù)據(jù)管理節(jié)點、數(shù)據(jù)存儲節(jié)點、修復(fù)管理節(jié)點、工作管理節(jié)點、客戶端節(jié)點,根據(jù)糾刪碼技術(shù),通過該元數(shù)據(jù)管理節(jié)點、該數(shù)據(jù)存儲節(jié)點和該客戶端節(jié)點進(jìn)行數(shù)據(jù)的存儲和讀取,其中通過該修復(fù)管理節(jié)點和該工作管理節(jié)點修復(fù)采用糾刪碼技術(shù)后丟失或損壞的數(shù)據(jù)塊。
[0009]所述的基于糾刪碼技術(shù)改進(jìn)的云存儲實現(xiàn)方法,還包括生成異或數(shù)據(jù)塊,具體步驟如下:
[0010]該修復(fù)管理節(jié)點向該元數(shù)據(jù)管理節(jié)點發(fā)送讀取數(shù)據(jù)塊信息表和用戶的可靠性等級請求;該修復(fù)管理節(jié)點根據(jù)該數(shù)據(jù)塊信息表和該用戶的可靠性等級,向該工作管理節(jié)點提交生成異或信息塊任務(wù);該工作管理節(jié)點根據(jù)該數(shù)據(jù)塊信息表和該用戶可靠性等級向該數(shù)據(jù)存儲節(jié)點提交生成異或信息塊任務(wù);該數(shù)據(jù)存儲節(jié)點生成異或信息塊并將該異或信息塊的位置信息返回給該修復(fù)管理節(jié)點;該修復(fù)管理節(jié)點生成異或信息塊表,同時通知該元數(shù)據(jù)管理節(jié)點該異或信息塊已生成。
[0011]所述的基于糾刪碼技術(shù)改進(jìn)的云存儲實現(xiàn)方法,還包括:
[0012]該修復(fù)管理節(jié)點周期性掃描數(shù)據(jù)塊的狀態(tài),當(dāng)發(fā)現(xiàn)異常時,讀取用戶可靠性等級,并向該工作管理節(jié)點提交修復(fù)數(shù)據(jù)塊任務(wù),該工作管理節(jié)點將該修復(fù)數(shù)據(jù)塊任務(wù)發(fā)送到該數(shù)據(jù)存儲節(jié)點,該數(shù)據(jù)存儲節(jié)點讀取本地數(shù)據(jù)塊信息表并啟動修復(fù)進(jìn)程,并向該修復(fù)管理節(jié)點發(fā)送修復(fù)后數(shù)據(jù)塊所在節(jié)點的位置信息,該修復(fù)管理節(jié)點向該元數(shù)據(jù)管理節(jié)點發(fā)送元數(shù)據(jù)表更新信息,該元數(shù)據(jù)管理節(jié)點根據(jù)該元數(shù)據(jù)表更新信息更新元數(shù)據(jù)表。
[0013]所述的基于糾刪碼技術(shù)改進(jìn)的云存儲實現(xiàn)方法,還包括:
[0014]根據(jù)修復(fù)后數(shù)據(jù)塊所在節(jié)點的位置信息與該修復(fù)管理節(jié)點保存的數(shù)據(jù)塊信息表比對,如果是異或信息表更新,將更新信息更新到異或信息塊表;若是元數(shù)據(jù)表信息表更新,將更新信息更新到元數(shù)據(jù)表。
[0015]本發(fā)明還公開了一種基于糾刪碼技術(shù)改進(jìn)的云存儲系統(tǒng),其特征在于,包括元數(shù)據(jù)管理節(jié)點、數(shù)據(jù)存儲節(jié)點、修復(fù)管理節(jié)點、工作管理節(jié)點、客戶端節(jié)點,根據(jù)糾刪碼技術(shù),通過該元數(shù)據(jù)管理節(jié)點、該數(shù)據(jù)存儲節(jié)點和該客戶端節(jié)點進(jìn)行數(shù)據(jù)的存儲和讀取,其中通過該修復(fù)管理節(jié)點和該工作管理節(jié)點修復(fù)采用糾刪碼技術(shù)后丟失或損壞的數(shù)據(jù)塊。
[0016]所述的基于糾刪碼技術(shù)改進(jìn)的云存儲系統(tǒng),還包括生成異或數(shù)據(jù)塊:該修復(fù)管理節(jié)點用于向該元數(shù)據(jù)管理節(jié)點發(fā)送讀取數(shù)據(jù)塊信息表和用戶的可靠性等級請求;該修復(fù)管理節(jié)點根據(jù)該數(shù)據(jù)塊信息表和該用戶的可靠性等級,向該工作管理節(jié)點提交生成異或信息塊任務(wù);該工作管理節(jié)點根據(jù)該數(shù)據(jù)塊信息表和該用戶可靠性等級向該數(shù)據(jù)存儲節(jié)點提交生成異或信息塊任務(wù);該數(shù)據(jù)存儲節(jié)點生成異或信息塊并將該異或信息塊的位置信息返回給該修復(fù)管理節(jié)點;該 修復(fù)管理節(jié)點生成異或信息塊表,同時通知該元數(shù)據(jù)管理節(jié)點該異或信息塊已生成。
[0017]所述的基于糾刪碼技術(shù)改進(jìn)的云存儲系統(tǒng),還包括:
[0018]該修復(fù)管理節(jié)點周期性掃描數(shù)據(jù)塊的狀態(tài),當(dāng)發(fā)現(xiàn)異常時,讀取用戶可靠性等級,并向該工作管理節(jié)點提交修復(fù)數(shù)據(jù)塊任務(wù),該工作管理節(jié)點將該修復(fù)數(shù)據(jù)塊任務(wù)發(fā)送到該數(shù)據(jù)存儲節(jié)點,該數(shù)據(jù)存儲節(jié)點讀取本地數(shù)據(jù)塊信息表并啟動修復(fù)進(jìn)程,并向該修復(fù)管理節(jié)點發(fā)送修復(fù)后數(shù)據(jù)塊所在節(jié)點的位置信息,該修復(fù)管理節(jié)點向該元數(shù)據(jù)管理節(jié)點發(fā)送元數(shù)據(jù)表更新信息,該元數(shù)據(jù)管理節(jié)點根據(jù)該元數(shù)據(jù)表更新信息更新元數(shù)據(jù)表。
[0019]所述的基于糾刪碼技術(shù)改進(jìn)的云存儲系統(tǒng),還包括:根據(jù)修復(fù)后數(shù)據(jù)塊所在節(jié)點的位置信息與該修復(fù)管理節(jié)點保存的數(shù)據(jù)塊信息表比對,如果是異或信息表更新,將更新信息更新到異或信息塊表;若是元數(shù)據(jù)信息表更新,將更新信息更新到元數(shù)據(jù)表。
[0020]目前的云儲存系統(tǒng)中的數(shù)據(jù)是靠復(fù)制策略來保證冗余的。采用復(fù)制策略占用和浪費了大量的存儲空間,在集群規(guī)模較小的時候可能還不是非常明顯,但是對于大規(guī)模集群就比較顯著了。如果按照當(dāng)前IGB存儲空間的成本是I Y來算,若數(shù)據(jù)的規(guī)模是5TB,那么兩備份(IOT)和三備份(15T)的成本差距是5000 ¥ ;而如果數(shù)據(jù)規(guī)模到了 5PB的話,兩備份和三備份的成本差距就有5,000,000 Y。本發(fā)明能夠有效減少成本,提高系統(tǒng)運行效率,特別具有推廣和應(yīng)用的價值。
【專利附圖】

【附圖說明】
[0021]圖1為糾刪碼編碼與解碼;
[0022]圖2為基于糾刪碼改進(jìn)的云儲存系統(tǒng)文件系統(tǒng)架構(gòu);
[0023]圖3為基于糾刪碼改進(jìn)的云儲存系統(tǒng)系統(tǒng)數(shù)據(jù)寫入過程;
[0024]圖4為基于糾刪碼改進(jìn)的云儲存系統(tǒng)系統(tǒng)數(shù)據(jù)讀取過程;
[0025]圖5為基于糾刪碼改進(jìn)的云儲存系統(tǒng)系統(tǒng)異或信息塊生成過程;
[0026]圖6為基于糾刪碼改進(jìn)的云儲存系統(tǒng)系統(tǒng)損壞或丟失的數(shù)據(jù)塊修復(fù)過程;
[0027]其中,附圖標(biāo)記為:
[0028]I為客戶端節(jié)點;
[0029]11為z?存儲系統(tǒng)客戶端;[0030]12為分布式文件系統(tǒng)對象實例;
[0031]13為數(shù)據(jù)輸入流;
[0032]131為分布式文件系統(tǒng)輸入流;
[0033]132為輸入流轉(zhuǎn)化器;
[0034]133為RS譯碼器;
[0035]14為數(shù)據(jù)輸出流;
[0036]141為分布式文件系統(tǒng)輸出流;
[0037]142為數(shù)據(jù)流轉(zhuǎn)化器;
[0038]143為RS編碼器;
[0039]2為元數(shù)據(jù)管理節(jié)點;
[0040]3為修復(fù)管理節(jié)點;
[0041]4為工作管理節(jié)點;
[0042]5為數(shù)據(jù)存儲節(jié)點。
【具體實施方式】
[0043]本發(fā)明針對云存儲系統(tǒng)中文件備份策略進(jìn)行改進(jìn),進(jìn)一步降低由于冗余備份所帶來的空間占用開銷,同時保證系統(tǒng)的可靠性、可用性和容錯性。下面結(jié)合附圖和【具體實施方式】,對本發(fā)明的文件上傳和數(shù)據(jù)塊恢復(fù)過程做進(jìn)一步的說明。
[0044]如圖2所示,基于糾刪碼技術(shù)改進(jìn)的云儲存系統(tǒng)架構(gòu)中包含的節(jié)點和功能:
[0045]元數(shù)據(jù)管理節(jié)點2。元數(shù)據(jù)管理節(jié)點2是云儲存系統(tǒng)中原始數(shù)據(jù)的管理者,它負(fù)責(zé)管理文件系統(tǒng)的命名空間,維護文件系統(tǒng)的文件樹及所有的文件和目錄的元數(shù)據(jù)。同時,元數(shù)據(jù)管理節(jié)點2中還保存了每個文件與分布式存儲下每個數(shù)據(jù)塊與其所在的數(shù)據(jù)儲存節(jié)點5的映射關(guān)系,這些信息將被用于其他功能組件查找所需文件資源的數(shù)據(jù)存儲服務(wù)器使用。
[0046]數(shù)據(jù)儲存節(jié)點5。數(shù)據(jù)儲存節(jié)點5是云存儲系統(tǒng)文件系統(tǒng)中保存數(shù)據(jù)的節(jié)點。分布式的云存儲系統(tǒng)中的文件通常被分割為多個數(shù)據(jù)塊,通過編碼后分發(fā)到不同的數(shù)據(jù)儲存節(jié)點5中。數(shù)據(jù)儲存節(jié)點5定期向元數(shù)據(jù)管理節(jié)點2報告其存儲的所有數(shù)據(jù)塊列表和健康狀態(tài),以備使用者通過直接訪問數(shù)據(jù)儲存節(jié)點5獲得相應(yīng)的數(shù)據(jù)。
[0047]修復(fù)管理節(jié)點3。在云存儲系統(tǒng)中使用糾刪碼技術(shù)重構(gòu)和異或處理的信息塊儲存后,由于修復(fù)損壞或丟失的數(shù)據(jù)塊的過程中會頻繁與元數(shù)據(jù)管理節(jié)點2通信,為了減輕元數(shù)據(jù)管理節(jié)點2的負(fù)擔(dān),將修復(fù)過程與管理節(jié)點進(jìn)行隔離,由單獨一個修復(fù)管理節(jié)點3完成損壞或丟失的數(shù)據(jù)塊恢復(fù),保證數(shù)據(jù)塊的完整性和一致性。
[0048]客戶端節(jié)點I??蛻舳斯?jié)點I是云存儲文件系統(tǒng)的使用者,它通過調(diào)用云存儲系統(tǒng)提供的API對系統(tǒng)的文件進(jìn)行讀寫操作。在進(jìn)行讀寫操作時,客戶端節(jié)點I需要首先從元數(shù)據(jù)管理節(jié)點2獲得文件存儲的元數(shù)據(jù)信息,然后從元數(shù)據(jù)信息中解析出再與請求讀寫文件所屬的若干個數(shù)據(jù)儲存節(jié)點5信息,最后與多個數(shù)據(jù)存儲節(jié)點5通信進(jìn)行數(shù)據(jù)讀寫操作。
[0049]如圖3所示,基于糾刪碼改進(jìn)的云儲存系統(tǒng)的客戶端節(jié)點I向文件系統(tǒng)創(chuàng)建一個文件,并將數(shù)據(jù)寫入到云存儲文件系統(tǒng)中的過程是:
[0050]客戶端節(jié)點I生成分布式文件系統(tǒng)對象實例12,并創(chuàng)建一個文件。[0051]分布式文件系統(tǒng)對象實例12通過遠(yuǎn)程過程調(diào)用模塊RPC向元數(shù)據(jù)管理節(jié)點2發(fā)出創(chuàng)建文件的請求。元數(shù)據(jù)管理節(jié)點2在確認(rèn)請求創(chuàng)建的文件在云存儲中沒有出現(xiàn)重復(fù)并且符合命名規(guī)則,同時云存儲系統(tǒng)客戶端11對于云存儲具有寫入權(quán)限后,在命名空間中創(chuàng)建此文件的對應(yīng)記錄。在此過程中如果出現(xiàn)異常,元數(shù)據(jù)管理節(jié)點將向云存儲客戶端11返回IO異常并進(jìn)行IO異常和回退處理。
[0052]分布式文件系統(tǒng)對象實例12在獲得元數(shù)據(jù)管理節(jié)點2返回的創(chuàng)建成功和分配的存儲節(jié)點分布信息(包含存儲節(jié)點的IP地址、可用的存儲地址等)后,生成一個數(shù)據(jù)輸出流14返回給云存儲系統(tǒng)客戶端11。數(shù)據(jù)輸出流包含一個分布式文件系統(tǒng)輸出流141,負(fù)責(zé)后續(xù)的文件內(nèi)容寫入處理。
[0053]云存儲系統(tǒng)客戶端11向數(shù)據(jù)輸出流14發(fā)送需要寫入文件的數(shù)據(jù)。分布式文件系統(tǒng)輸出流141在收到待寫入的數(shù)據(jù)后會將數(shù)據(jù)拆分后放入數(shù)據(jù)隊列。
[0054]RS編碼器143負(fù)責(zé)從數(shù)據(jù)隊列中不斷取出數(shù)據(jù)塊進(jìn)行Reed Solomon編碼(里所編碼),通過數(shù)據(jù)流轉(zhuǎn)化器142和分布式文件系統(tǒng)輸出流141將編碼后的數(shù)據(jù)塊和原始數(shù)據(jù)塊依據(jù)之前獲取的分配存儲節(jié)點分布信息(包含存儲節(jié)點的IP地址、可用的存儲地址等)寫入到若干個對應(yīng)的數(shù)據(jù)儲存節(jié)點5中客戶端節(jié)點I從元數(shù)據(jù)管理節(jié)點2獲取分配的數(shù)據(jù)存儲節(jié)點5的列表及在數(shù)據(jù)存儲節(jié)點5上的存儲位置信息,之后云存儲系統(tǒng)客戶端11根據(jù)上述信息將創(chuàng)建的文件分解成與數(shù)據(jù)存儲節(jié)點5數(shù)量對應(yīng)的若干段,然后將對應(yīng)的段發(fā)送給對應(yīng)的數(shù)據(jù)存儲節(jié)點5中,然后每個數(shù)據(jù)存儲節(jié)點5返回給數(shù)據(jù)輸出流14,經(jīng)匯總后再向元數(shù)據(jù)管理節(jié)點2上傳文件寫入結(jié)果,之后(以下內(nèi)容屬于數(shù)據(jù)云存儲系統(tǒng)的內(nèi)部處理流程)每個數(shù)據(jù)存儲節(jié)點5將保存的數(shù)據(jù)塊進(jìn)行RS編碼,然后將編碼后的數(shù)據(jù)塊發(fā)送到其他同樣保存此文件的數(shù)據(jù)存儲節(jié)點5中,最后數(shù)據(jù)存儲節(jié)點5將原始文件信息、數(shù)據(jù)存儲節(jié)點5保存的數(shù)據(jù)塊、里所編碼塊保存節(jié)點、數(shù)據(jù)完整校驗碼等信息向元數(shù)據(jù)管理節(jié)點2進(jìn)行上傳。
[0055]每個數(shù)據(jù)儲存節(jié)點5完成寫入后,會向數(shù)據(jù)流轉(zhuǎn)化器142和分布式文件系統(tǒng)輸出流141返回保存情況以完成數(shù)據(jù)塊寫入操作,之后數(shù)據(jù)流轉(zhuǎn)化器142和分布式文件系統(tǒng)輸出流141將完整的文件寫入情況上傳給元數(shù)據(jù)管理節(jié)點2完成數(shù)據(jù)塊寫入處理。
[0056]當(dāng)云存儲系統(tǒng)客戶端11完成所有數(shù)據(jù)寫入后,將調(diào)用數(shù)據(jù)輸入流結(jié)束本次文件寫入操作。
[0057]如圖4所示,基于糾刪碼改進(jìn)的云儲存系統(tǒng)中的客戶端節(jié)點I從文件系統(tǒng)中讀取數(shù)據(jù)的過程:
[0058]云存儲系統(tǒng)客戶端11生成分布式文件系統(tǒng)對象實例12,并打開一個文件。
[0059]分布式文件系統(tǒng)對象實例12通過RPC向元數(shù)據(jù)管理節(jié)點2發(fā)出文件打開請求,以獲得文件相關(guān)的數(shù)據(jù)塊位置信息。元數(shù)據(jù)管理節(jié)點2將包含此文件相關(guān)數(shù)據(jù)塊所在的數(shù)據(jù)儲存節(jié)點5地址及節(jié)點中存儲位置信息,經(jīng)過與云存儲系統(tǒng)客戶端11相關(guān)的距離進(jìn)行排序后,返回給分布式文件系統(tǒng)對象實例12。
[0060]分布式文件系統(tǒng)對象實例12在獲得數(shù)據(jù)塊相關(guān)的信息后,生成一個數(shù)據(jù)輸入流13返回給分布式文件系統(tǒng)對象實例12。數(shù)據(jù)輸入流13包含一個分布式文件系統(tǒng)輸入流132,負(fù)責(zé)存儲數(shù)據(jù)塊信息及數(shù)據(jù)儲存節(jié)點地址信息。
[0061]數(shù)據(jù)輸入流13中的分布式文件系統(tǒng)輸入流131選擇與云存儲系統(tǒng)客戶端11距離最近的恢復(fù)文件所需要數(shù)目的數(shù)據(jù)塊。通過輸入流轉(zhuǎn)化器132輸入,隨之輸入RS譯碼器133進(jìn)行RS解碼處理,直到所需要的數(shù)據(jù)塊讀取完成,云存儲系統(tǒng)客戶端11通過元數(shù)據(jù)管理節(jié)點2從數(shù)據(jù)存儲節(jié)點5中獲取用來保存源文件的數(shù)據(jù)塊的信息及該源文件在數(shù)據(jù)存儲節(jié)點5上的位置信息,云存儲系統(tǒng)客戶端11根據(jù)以上信息分別與數(shù)據(jù)存儲節(jié)點5進(jìn)行通信,獲取文件內(nèi)容。
[0062]當(dāng)云存儲系統(tǒng)客戶端11讀取完所有數(shù)據(jù)后,將調(diào)用數(shù)據(jù)輸入流13結(jié)束本次文件讀取操作。
[0063]如圖5所示,基于糾刪碼改進(jìn)的云儲存系統(tǒng)中生成異或數(shù)據(jù)塊的過程:
[0064]在元數(shù)據(jù)管理節(jié)點2收到所有數(shù)據(jù)儲存節(jié)點5數(shù)據(jù)塊寫入成功后,通過RPC向修復(fù)管理節(jié)點3發(fā)送數(shù)據(jù)塊分發(fā)成功信號。
[0065]修復(fù)管理節(jié)點3接收到元數(shù)據(jù)管理節(jié)點2發(fā)送的信號,向元數(shù)據(jù)管理節(jié)點2發(fā)送讀取數(shù)據(jù)塊信息表和用戶的可靠性等級請求。
[0066]修復(fù)管理節(jié)點3接收到元數(shù)據(jù)管理節(jié)點2發(fā)送來的數(shù)據(jù)塊信息表和用戶的可靠性等級信息,向工作管理節(jié)點4提交生成異或信息塊任務(wù)。
[0067]工作管理節(jié)點4接收到修復(fù)管理節(jié)點3發(fā)送的任務(wù)請求,根據(jù)數(shù)據(jù)塊信息表和用戶可靠性等級向數(shù)據(jù)存儲節(jié)點5下發(fā)任務(wù)。
[0068]數(shù)據(jù)存儲節(jié)點5完成任務(wù)將生成的異或信息塊所存儲的位置信息返回給修復(fù)管理節(jié)點3。
[0069]修復(fù)管理節(jié)點3接收到數(shù)據(jù)存儲節(jié)點5發(fā)來的任務(wù)完成信息,統(tǒng)計生成異或信息塊表,同時向元數(shù)據(jù)管理節(jié)點2發(fā)送異或信息塊生成完成。
[0070]異或信息塊是通過兩個或者四個數(shù)據(jù)塊逐位進(jìn)行異或計算后獲得對的數(shù)據(jù)塊,在異或恢復(fù)之前,首先要對其他數(shù)據(jù)塊和異或數(shù)據(jù)塊的校驗碼進(jìn)行驗證,查看是否正確,然后這幾個數(shù)據(jù)塊進(jìn)行異或恢復(fù)處理。
[0071]異或信息塊針對的是用戶可靠性等級很高的用戶,本發(fā)明為這些用戶提供了兩套數(shù)據(jù)恢復(fù)方案:糾刪碼恢復(fù)(恢復(fù)計算量大,時間較慢,容錯度高)、異或信息塊恢復(fù)(計算量小,恢復(fù)時間快,容錯度較低)。
[0072]如圖6所示,基于糾刪碼改進(jìn)的云儲存系統(tǒng)中數(shù)據(jù)塊損壞或丟失的修復(fù)的過程:
[0073]修復(fù)管理節(jié)點3周期性的掃描各個數(shù)據(jù)存儲節(jié)點5中數(shù)據(jù)塊的健康狀態(tài)。
[0074]當(dāng)修復(fù)管理節(jié)點3掃描中發(fā)現(xiàn)其中的數(shù)據(jù)塊出現(xiàn)異常時,修復(fù)管理節(jié)點3會從元數(shù)據(jù)管理節(jié)點2中讀取用戶可靠性的等級,向工作管理節(jié)點4下發(fā)修復(fù)數(shù)據(jù)塊的任務(wù)。
[0075]工作管理節(jié)點4接收到來自修復(fù)管理節(jié)點3的任務(wù)后,向數(shù)據(jù)存儲節(jié)點5下發(fā)修復(fù)數(shù)據(jù)塊任務(wù)。
[0076]數(shù)據(jù)存儲節(jié)點5讀取本地保存的數(shù)據(jù)塊信息表,啟動修復(fù)進(jìn)程。完成數(shù)據(jù)塊的修復(fù)后向修復(fù)管理節(jié)點3發(fā)送修復(fù)后數(shù)據(jù)塊所在節(jié)點的位置信息。
[0077]修復(fù)管理節(jié)點3接受到新的修復(fù)的數(shù)據(jù)塊位置信息與自己所保存的數(shù)據(jù)塊信息表比對。如果是異或信息表更新,將相應(yīng)的更新信息更新到異或信息塊表;若是元數(shù)據(jù)表信息表更新,將相應(yīng)的更新信息更新到元數(shù)據(jù)表,同時發(fā)送更新元數(shù)據(jù)表發(fā)送給元數(shù)據(jù)管理節(jié)點2。
[0078]元數(shù)據(jù)管理節(jié)點2接收到修復(fù)管理節(jié)點3發(fā)送的元數(shù)據(jù)表更新信息,將接收到的元數(shù)據(jù)表更新到保存的元數(shù)據(jù)表。
【權(quán)利要求】
1.一種基于糾刪碼技術(shù)改進(jìn)的云存儲實現(xiàn)方法,其特征在于,包括建立元數(shù)據(jù)管理節(jié)點、數(shù)據(jù)存儲節(jié)點、修復(fù)管理節(jié)點、工作管理節(jié)點、客戶端節(jié)點,根據(jù)糾刪碼技術(shù),通過該元數(shù)據(jù)管理節(jié)點、該數(shù)據(jù)存儲節(jié)點和該客戶端節(jié)點進(jìn)行數(shù)據(jù)的存儲和讀取,其中通過該修復(fù)管理節(jié)點和該工作管理節(jié)點修復(fù)采用糾刪碼技術(shù)后丟失或損壞的數(shù)據(jù)塊。
2.如權(quán)利要求1所述的基于糾刪碼技術(shù)改進(jìn)的云存儲實現(xiàn)方法,其特征在于,還包括生成異或數(shù)據(jù)塊,具體步驟如下: 該修復(fù)管理節(jié)點向該元數(shù)據(jù)管理節(jié)點發(fā)送讀取數(shù)據(jù)塊信息表和用戶的可靠性等級請求;該修復(fù)管理節(jié)點根據(jù)該數(shù)據(jù)塊信息表和該用戶的可靠性等級,向該工作管理節(jié)點提交生成異或信息塊任務(wù);該工作管理節(jié)點根據(jù)該數(shù)據(jù)塊信息表和該用戶可靠性等級向該數(shù)據(jù)存儲節(jié)點提交生成異或信息塊任務(wù);該數(shù)據(jù)存儲節(jié)點生成異或信息塊并將該異或信息塊的位置信息返回給該修復(fù)管理節(jié)點;該修復(fù)管理節(jié)點生成異或信息塊表,同時通知該元數(shù)據(jù)管理節(jié)點該異或信息塊已生成。
3.如權(quán)利要求1所述的基于糾刪碼技術(shù)改進(jìn)的云存儲實現(xiàn)方法,其特征在于,還包括: 該修復(fù)管理節(jié)點周期性掃描數(shù)據(jù)塊的狀態(tài),當(dāng)發(fā)現(xiàn)異常時,讀取用戶可靠性等級,并向該工作管理節(jié)點提交修復(fù)數(shù)據(jù)塊任務(wù),該工作管理節(jié)點將該修復(fù)數(shù)據(jù)塊任務(wù)發(fā)送到該數(shù)據(jù)存儲節(jié)點,該數(shù)據(jù)存儲節(jié)點讀取本地數(shù)據(jù)塊信息表并啟動修復(fù)進(jìn)程,并向該修復(fù)管理節(jié)點發(fā)送修復(fù)后數(shù)據(jù)塊所在節(jié) 點的位置信息,該修復(fù)管理節(jié)點向該元數(shù)據(jù)管理節(jié)點發(fā)送元數(shù)據(jù)表更新信息,該元數(shù)據(jù)管理節(jié)點根據(jù)該元數(shù)據(jù)表更新信息更新元數(shù)據(jù)表。
4.如權(quán)利要求1或3所述的基于糾刪碼技術(shù)改進(jìn)的云存儲實現(xiàn)方法,其特征在于,還包括: 根據(jù)修復(fù)后數(shù)據(jù)塊所在節(jié)點的位置信息與該修復(fù)管理節(jié)點保存的數(shù)據(jù)塊信息表比對,如果是異或信息表更新,將更新信息更新到異或信息塊表;若是元數(shù)據(jù)表信息表更新,將更新信息更新到元數(shù)據(jù)表。
5.一種基于糾刪碼技術(shù)改進(jìn)的云存儲系統(tǒng),其特征在于,包括元數(shù)據(jù)管理節(jié)點、數(shù)據(jù)存儲節(jié)點、修復(fù)管理節(jié)點、工作管理節(jié)點、客戶端節(jié)點,根據(jù)糾刪碼技術(shù),通過該元數(shù)據(jù)管理節(jié)點、該數(shù)據(jù)存儲節(jié)點和該客戶端節(jié)點進(jìn)行數(shù)據(jù)的存儲和讀取,其中通過該修復(fù)管理節(jié)點和該工作管理節(jié)點修復(fù)采用糾刪碼技術(shù)后丟失或損壞的數(shù)據(jù)塊。
6.如權(quán)利要求5所述的基于糾刪碼技術(shù)改進(jìn)的云存儲系統(tǒng),其特征在于,還包括生成異或數(shù)據(jù)塊:該修復(fù)管理節(jié)點用于向該元數(shù)據(jù)管理節(jié)點發(fā)送讀取數(shù)據(jù)塊信息表和用戶的可靠性等級請求;該修復(fù)管理節(jié)點根據(jù)該數(shù)據(jù)塊信息表和該用戶的可靠性等級,向該工作管理節(jié)點提交生成異或信息塊任務(wù);該工作管理節(jié)點根據(jù)該數(shù)據(jù)塊信息表和該用戶可靠性等級向該數(shù)據(jù)存儲節(jié)點提交生成異或信息塊任務(wù);該數(shù)據(jù)存儲節(jié)點生成異或信息塊并將該異或信息塊的位置信息返回給該修復(fù)管理節(jié)點;該修復(fù)管理節(jié)點生成異或信息塊表,同時通知該元數(shù)據(jù)管理節(jié)點該異或信息塊已生成。
7.如權(quán)利要求5所述的基于糾刪碼技術(shù)改進(jìn)的云存儲系統(tǒng),其特征在于,還包括: 該修復(fù)管理節(jié)點周期性掃描數(shù)據(jù)塊的狀態(tài),當(dāng)發(fā)現(xiàn)異常時,讀取用戶可靠性等級,并向該工作管理節(jié)點提交修復(fù)數(shù)據(jù)塊任務(wù),該工作管理節(jié)點將該修復(fù)數(shù)據(jù)塊任務(wù)發(fā)送到該數(shù)據(jù)存儲節(jié)點,該數(shù)據(jù)存儲節(jié)點讀取本地數(shù)據(jù)塊信息表并啟動修復(fù)進(jìn)程,并向該修復(fù)管理節(jié)點發(fā)送修復(fù)后數(shù)據(jù)塊所在節(jié)點的位置信息,該修復(fù)管理節(jié)點向該元數(shù)據(jù)管理節(jié)點發(fā)送元數(shù)據(jù)表更新信息,該元數(shù)據(jù)管理節(jié)點根據(jù)該元數(shù)據(jù)表更新信息更新元數(shù)據(jù)表。
8.如權(quán)利要求5或7所述的基于糾刪碼技術(shù)改進(jìn)的云存儲系統(tǒng),其特征在于,還包括:根據(jù)修復(fù)后數(shù)據(jù)塊所在節(jié)點的位置信息與該修復(fù)管理節(jié)點保存的數(shù)據(jù)塊信息表比對,如果是異或信息表更新,將更新信息更新到異或信息塊表;若是元數(shù)據(jù)信息表更新,將更新信息更新 到元數(shù)據(jù)表。
【文檔編號】G06F17/30GK103944981SQ201410148335
【公開日】2014年7月23日 申請日期:2014年4月14日 優(yōu)先權(quán)日:2014年4月14日
【發(fā)明者】劉曉東, 孫毓忠 申請人:中國科學(xué)院計算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1