專利名稱:大規(guī)模高可靠的歸檔存儲系統(tǒng)構(gòu)建方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域存儲系統(tǒng)的構(gòu)建方法,具體地說是一種基于計(jì)
算機(jī)集群系統(tǒng)的,大規(guī)模高可靠的歸檔數(shù)據(jù)存儲系統(tǒng)的構(gòu)建方法。
背景技術(shù):
大規(guī)模歸檔數(shù)據(jù)存儲應(yīng)用涉及網(wǎng)絡(luò)安全管理、網(wǎng)絡(luò)搜索、通信、金融、科學(xué)實(shí) 驗(yàn)等諸多領(lǐng)域。例如,在網(wǎng)絡(luò)安全應(yīng)用中,對網(wǎng)絡(luò)通信的報文頭信息進(jìn)行實(shí)時存儲、查 詢和分析是常見的網(wǎng)絡(luò)安全管理手段,該類數(shù)據(jù)具有典型的寫一次讀多次的歸檔特性, 且由于其持續(xù)產(chǎn)生,生成速度快( 一個普通的Gbit的網(wǎng)絡(luò)連接產(chǎn)生的報文數(shù)可達(dá)每秒10 萬,其數(shù)據(jù)速度達(dá)幾十MB每秒),所以形成的系統(tǒng)規(guī)模較大。類似的應(yīng)用還有在網(wǎng)絡(luò) 搜索引擎,需要依據(jù)用戶個人信息如以往搜索的習(xí)慣和關(guān)注點(diǎn)等,為其提供更符合其喜 好的搜索結(jié)果;在電信行業(yè)中,日常電話通信過程會產(chǎn)生大量的通話詳細(xì)信息,如通信 雙方的電話號碼,通話開始時間和結(jié)束時間,通話雙方的地點(diǎn)等。這類信息被廣泛用于 用戶個人事后查詢,運(yùn)營商分析消費(fèi)模式或發(fā)現(xiàn)盜打行為,以及公共安全部門偵查等用 途。 出于以上原因,設(shè)計(jì)大規(guī)模歸檔存儲系統(tǒng)成為本領(lǐng)域技術(shù)人員極為關(guān)注的問 題。在大規(guī)模歸檔數(shù)據(jù)存儲系統(tǒng)中, 一方面由于規(guī)模龐大,導(dǎo)致存儲節(jié)點(diǎn)數(shù)目大,從而 系統(tǒng)故障率較高。例如,當(dāng)單個磁盤的可用性是99.999% (年故障時間5分鐘)時,由 1000個、100個、10個該磁盤串聯(lián)組成的系統(tǒng)的可用性分別為99% (年故障時間88小 時),99.9% (年故障時間8.8小時),99.99% (年故障時間0.88小時)。另一方面由于磁 盤容量和帶寬增長速度的失配,導(dǎo)致數(shù)據(jù)恢復(fù)速度相對下降,所以數(shù)據(jù)可靠性成為設(shè)計(jì) 該類系統(tǒng)的一個關(guān)鍵問題。 當(dāng)前構(gòu)建大規(guī)模歸檔存儲系統(tǒng)的方法主要包括兩種。 一是采用基于冗余磁盤 陣列RAID或存儲區(qū)域網(wǎng)絡(luò)SAN等昂貴的存儲設(shè)備來保證可靠性,該方法一方面成本 較高,另一方面當(dāng)系統(tǒng)規(guī)模較大時,即使故障率較低,但一旦出現(xiàn)故障,恢復(fù)時間也較 長,因此這種方法目前用得較少。二是采用存儲節(jié)點(diǎn)集群,同時為每個文件存儲多個副 本,所有副本對等或隨機(jī)分布存儲于集群中。當(dāng)采用對等存儲時,降低了故障率,但不 能降低故障恢復(fù)時間,因?yàn)槲募荒艽袑Φ然謴?fù),其恢復(fù)時間可能較長;當(dāng)采用隨機(jī) 存儲時,可以有效提高故障恢復(fù)時間,但需要設(shè)計(jì)合理的系統(tǒng)參數(shù),平衡故障率和恢復(fù) 時間,以優(yōu)化系統(tǒng)數(shù)據(jù)可靠性,當(dāng)前對此類存儲模式優(yōu)化研究尚不充分。因此,如何在 系統(tǒng)規(guī)模和文件副本數(shù)目一定的條件下,優(yōu)化設(shè)計(jì)系統(tǒng)參數(shù),提高系統(tǒng)可靠性,是采用 存儲節(jié)點(diǎn)集群構(gòu)建大規(guī)模歸檔存儲系統(tǒng)必須解決的重要問題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是基于歸檔數(shù)據(jù)的特點(diǎn),提供一種大規(guī)模歸檔存儲系 統(tǒng)構(gòu)建方法,提高歸檔存儲系統(tǒng)的可靠性。
4
本發(fā)明的技術(shù)方案是 首先采用文件多副本的分布式存儲及并行恢復(fù)方法對大規(guī)模歸檔文件進(jìn)行存儲 及恢復(fù),然后依據(jù)文件的故障恢復(fù)過程建立Markov可靠性模型,求解該模型后獲得使系 統(tǒng)可靠性優(yōu)化的系統(tǒng)參數(shù)值,最后利用這些參數(shù)值構(gòu)建存儲系統(tǒng)。
具體技術(shù)方案是 第一步,采用文件多副本的分布式存儲及并行恢復(fù)方法對大規(guī)模歸檔文件進(jìn)行 存儲及恢復(fù) 步驟l)構(gòu)建由多個存儲節(jié)點(diǎn)組成的存儲集群,每個存儲節(jié)點(diǎn)是包含磁盤,處理 器,內(nèi)存和網(wǎng)絡(luò)接口的計(jì)算機(jī),存儲節(jié)點(diǎn)之間通過以太網(wǎng)互聯(lián)。存儲節(jié)點(diǎn)依次編號為o, 1, 2,…,N-l, N為存儲節(jié)點(diǎn)的總數(shù)目。待存儲的文件數(shù)目為p個,每個文件有K個 副本,p和K均為正整數(shù)。 步驟2)將p*K個副本隨機(jī)均勻地分布于N個存儲節(jié)點(diǎn)上,存儲節(jié)點(diǎn)編號使用 [1, N]上均勻分布的隨機(jī)函數(shù)g二random(), 1紹《N,同時保證K個副本應(yīng)分別存儲在K 個不同的存儲節(jié)點(diǎn)上; 步驟3)當(dāng)存儲集群中多個存儲節(jié)點(diǎn)出現(xiàn)故障時,多個存儲節(jié)點(diǎn)按照故障恢復(fù)方 法進(jìn)行并發(fā)恢復(fù)。故障恢復(fù)方法是當(dāng)存儲集群中某個存儲節(jié)點(diǎn)出現(xiàn)故障時,針對該故 障節(jié)點(diǎn)上的某個文件j,從存儲集群中包含j的副本的除故障節(jié)點(diǎn)外的K-l個完好節(jié)點(diǎn)中 選擇一個作為源節(jié)點(diǎn),選擇除源節(jié)點(diǎn)和故障節(jié)點(diǎn)外的某個正常節(jié)點(diǎn)作為臨時目標(biāo)節(jié)點(diǎn), 將副本從源節(jié)點(diǎn)拷貝到臨時目標(biāo)節(jié)點(diǎn)上。采用這種方法可將該故障節(jié)點(diǎn)上的所有文件存 儲到一組臨時目標(biāo)節(jié)點(diǎn)上,從而保持這組文件的副本數(shù)目不變。 步驟4)替換節(jié)點(diǎn)當(dāng)故障節(jié)點(diǎn)修復(fù)或被新節(jié)點(diǎn)替換后,將臨時目標(biāo)節(jié)點(diǎn)上的副
本拷貝到該修復(fù)或替換后的新節(jié)點(diǎn)上,之后刪除臨時目標(biāo)節(jié)點(diǎn)上的副本。第二步,設(shè)計(jì)連續(xù)時間的Markov模型來描述大規(guī)模歸檔存儲系統(tǒng)的故障恢復(fù)過
程 影響系統(tǒng)可靠性的因素主要包括下列系統(tǒng)參數(shù)存儲系統(tǒng)中每個文件的副本數(shù) K,存儲節(jié)點(diǎn)的磁盤的故障率A,數(shù)據(jù)總存儲量S,系統(tǒng)存儲節(jié)點(diǎn)總數(shù)N,單個節(jié)點(diǎn)上存 儲的文件個數(shù)m,網(wǎng)絡(luò)總帶寬B,單個節(jié)點(diǎn)IO帶寬b。其中前三個參數(shù)對可靠性的影響 是獨(dú)立且單調(diào)的,即K越大,或A越小,或S越小,系統(tǒng)可靠性越高;而剩余四個參數(shù) 卻互斥地影響系統(tǒng)的脆弱性(多久出現(xiàn)故障)和可恢復(fù)性(多久恢復(fù)故障),為獲得這四個 參數(shù)最優(yōu)值需要設(shè)計(jì)精確的可靠性模型進(jìn)行分析。 由于大規(guī)模歸檔存儲系統(tǒng)具有以下特性,所以采用連續(xù)時間的Markov模型來描 述故障恢復(fù)過程1)由于磁盤故障和修復(fù)一般服從指數(shù)分布,因此故障發(fā)生和修復(fù)過程 都服從指數(shù)分布;2)因?yàn)闅w檔數(shù)據(jù)不再更新,因此歸檔數(shù)據(jù)的恢復(fù)開銷僅包含物理文件 的拷貝開銷,不存在普通多副本數(shù)據(jù)的一致性維護(hù)開銷;3)通過分割和合并文件,可以 使得系統(tǒng)中存儲的每個文件的大小相當(dāng)。 描述數(shù)據(jù)的故障和恢復(fù)過程的Markov模型是一個狀態(tài)機(jī) 大規(guī)模歸檔存儲系統(tǒng)中每個文件的狀態(tài)定義為(h, i),其中h是某文件保留在原 始存儲節(jié)點(diǎn)上的副本的數(shù)目,i表示臨時恢復(fù)存儲到某些存儲節(jié)點(diǎn)上,等待重新存儲到新 替換到大規(guī)模歸檔存儲系統(tǒng)中的存儲節(jié)點(diǎn)上的副本的數(shù)目。大規(guī)模歸檔存儲系統(tǒng)處于初始狀態(tài)時,所有文件的副本都存儲在其初始放置的存儲節(jié)點(diǎn)上,用(K, O)來表示。系統(tǒng) 處于終止?fàn)顟B(tài)時,系統(tǒng)中的某個文件到達(dá)(O, O)狀態(tài),此時表示該文件在系統(tǒng)中不存在 一個副本,即系統(tǒng)中的數(shù)據(jù)丟失了,到達(dá)不可用狀態(tài),即終止?fàn)顟B(tài)。MTTDL。定義為從 初始狀態(tài)(K, O)到終止?fàn)顟B(tài)(O, O)的平均時間。
按下述6種情況進(jìn)行狀態(tài)轉(zhuǎn)移 l)當(dāng)h二K且i二O時為初始狀態(tài),只能轉(zhuǎn)移到狀態(tài)(K-1, 0),轉(zhuǎn)移條件是系統(tǒng) 中出現(xiàn)一個故障節(jié)點(diǎn),該文件位于初始分布的節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到K-1,位于臨 時節(jié)點(diǎn)的副本數(shù)目仍然為0。狀態(tài)(K, O)到狀態(tài)(K-l, 0)的轉(zhuǎn)移速度是l^入。
2)當(dāng)h二0且i二0時為終止?fàn)顟B(tài),到達(dá)該狀態(tài)表明系統(tǒng)出現(xiàn)數(shù)據(jù)丟失,處于不 可修復(fù)狀態(tài),故不能再轉(zhuǎn)移到其它狀態(tài)。 3)當(dāng)1《h《K-l且i = 0時為邊緣狀態(tài)I,在該狀態(tài)下,只能轉(zhuǎn)移到下述兩種狀 態(tài) 狀態(tài)(h-l, 0):當(dāng)系統(tǒng)中出現(xiàn)新的故障節(jié)點(diǎn)時,該文件位于初始分布的節(jié)點(diǎn)的 副本數(shù)目減少一個達(dá)到h-l,位于臨時節(jié)點(diǎn)的副本數(shù)目保持不變?yōu)镺。狀態(tài)(h, O)到狀態(tài) (h-l, O)的轉(zhuǎn)移速度是M入。 狀態(tài)(h, 1):當(dāng)文件的副本恢復(fù)到臨時目標(biāo)節(jié)點(diǎn)時,該文件位于臨時目標(biāo)節(jié)點(diǎn) 的副本數(shù)目增加一個達(dá)到l,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(h, O)到狀 態(tài)(h, l)的轉(zhuǎn)移速度是y, P是單個文件副本在一對節(jié)點(diǎn)中恢復(fù)的速度。
4)當(dāng)1《i《K且h二0時為邊緣狀態(tài)I1,在該狀態(tài)下,只能轉(zhuǎn)移到下述兩種狀態(tài)
狀態(tài)(O, i+l):當(dāng)文件的副本恢復(fù)到臨時目標(biāo)節(jié)點(diǎn)時,該文件位于臨時目標(biāo)節(jié) 點(diǎn)的副本數(shù)目增加一個達(dá)到i+l,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(O, i)到 狀態(tài)(O, i+l)的轉(zhuǎn)移速度是P 。
狀態(tài)(O, i-l):當(dāng)存儲文件副本的臨時目標(biāo)節(jié)點(diǎn)出現(xiàn)故障時,該文件位于臨時目 標(biāo)節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到i-l,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(o, i)到狀態(tài)(0, i+l)的轉(zhuǎn)移速度是P入。 5)當(dāng)h+i二K,且l《h《K-l, 1《i《K-l,為邊緣狀態(tài)III,在該狀態(tài)下,只能轉(zhuǎn)移 到下述兩種狀態(tài) 狀態(tài)(h+l, i-l):當(dāng)存儲集群中故障節(jié)點(diǎn)被新節(jié)點(diǎn)替換成功時,該文件位于i個 臨時節(jié)點(diǎn)的i個副本中(每個副本分別位于一個節(jié)點(diǎn))的一個轉(zhuǎn)移到了新替換節(jié)點(diǎn)上,位 于初始分布節(jié)點(diǎn)(副本最初分布的節(jié)點(diǎn))的副本數(shù)增加一個達(dá)到h+l ,位于i個臨時節(jié)點(diǎn)上 的副本數(shù)減少一個達(dá)到i-l。狀態(tài)(h, i)到狀態(tài)(h+l, i-l)的轉(zhuǎn)移速度是i ,V是單個 文件拷貝轉(zhuǎn)移的速度。
狀態(tài)(h, i-l):當(dāng)存儲文件副本的臨時目標(biāo)節(jié)點(diǎn)出現(xiàn)故障時,該文件位于臨時目 標(biāo)節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到i-l,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(h, i)到狀態(tài)(h, i+l)的轉(zhuǎn)移速度是P入。 6)當(dāng)h+i〈K,且l《h《K-2, 1《i《K-2,為內(nèi)部狀態(tài),在該狀態(tài)下,只能轉(zhuǎn)移到下 述三種狀態(tài) 狀態(tài)(h-l, i):當(dāng)系統(tǒng)中出現(xiàn)新的故障節(jié)點(diǎn)時,該文件位于初始分布的節(jié)點(diǎn)的副 本數(shù)目減少一個達(dá)到h-l,位于臨時節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(h, i)到狀態(tài)(h-l,
6i)的轉(zhuǎn)移速度是入。 狀態(tài)(h, i+l):當(dāng)文件的副本恢復(fù)到臨時目標(biāo)節(jié)點(diǎn)時,該文件位于臨時目標(biāo)節(jié) 點(diǎn)的副本數(shù)目增加一個達(dá)到i+l,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(h, i)到 狀態(tài)(h, i+1)的轉(zhuǎn)移速度是P 。
狀態(tài)(h, i-l):當(dāng)存儲文件副本的臨時目標(biāo)節(jié)點(diǎn)出現(xiàn)故障時,該文件位于臨時目 標(biāo)節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到i-l,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(h, i)到狀態(tài)(h, i+1)的轉(zhuǎn)移速度是P入。第三步,依據(jù)Markov模型獲得大規(guī)模歸檔存儲系統(tǒng)優(yōu)化參數(shù),這些參數(shù)包括系 統(tǒng)存儲節(jié)點(diǎn)總數(shù)N、網(wǎng)絡(luò)總帶寬B、單個節(jié)點(diǎn)上存儲的文件個數(shù)m和單個節(jié)點(diǎn)IO帶寬b, 方法是 3.1按照系統(tǒng)存儲容量需求得到系統(tǒng)存儲規(guī)模S,依據(jù)可靠性要求確定文件副本 數(shù)K。 3.2選定基本存儲設(shè)備(如磁盤)的型號后,獲得存儲設(shè)備或節(jié)點(diǎn)的故障率A和 節(jié)點(diǎn)的帶寬b。 3.3依據(jù)Markov模型計(jì)算節(jié)點(diǎn)總數(shù)N、網(wǎng)絡(luò)總帶寬B、單個節(jié)點(diǎn)上存儲文件的數(shù) 目m的最優(yōu)值 3.3.1選取^=1^*「365"1,1^為正整數(shù)。從IO性能角度考慮,N越大意味著IO 性能越高,所以在很多情況下需要N大于『365"1 。但在性能許可的情況下,N収「365/義,
是最優(yōu)值。 3.3.2選取m^B/b。
對較大規(guī)模的系統(tǒng)而言,B/b可能是一個較小的值,在實(shí)際
系統(tǒng)中可能被超出。
一個替代的方案是將一組對象(文件)打包成一個組,每組看作一個
大的對象按照均勻隨機(jī)函數(shù)進(jìn)行分布存儲,然后通過保持組的數(shù)目接近B/b來達(dá)到可靠性
最優(yōu)。此時,不論多少對象都可以存儲在系統(tǒng)中(組中的對象可以持續(xù)追加)。 3.4通過公式SXK/N確定單個存儲節(jié)點(diǎn)的存儲容量。 3.5通過B及b值,確定交換機(jī)和核心路由器的型號和數(shù)目。 第四步,依據(jù)獲得的優(yōu)化參數(shù),構(gòu)建存儲系統(tǒng) 依據(jù)獲得的系統(tǒng)優(yōu)化參數(shù)節(jié)點(diǎn)總數(shù)N、網(wǎng)絡(luò)總帶寬B、單個節(jié)點(diǎn)上存儲文件的數(shù) 目m和節(jié)點(diǎn)的帶寬b,通過SXK/N來確定單個節(jié)點(diǎn)存儲容量,通過b確定節(jié)點(diǎn)帶寬,通 過B和N確定交換機(jī)和核心路由器的型號和數(shù)目,通過m確定單個節(jié)點(diǎn)上存儲文件的數(shù) 目。依據(jù)上述方法確定的參數(shù),將N個存儲節(jié)點(diǎn)組成局域網(wǎng),每個節(jié)點(diǎn)上的數(shù)目不超過 m,從而構(gòu)成海量歸檔存儲系統(tǒng)。 與現(xiàn)有技術(shù)相比,采用本發(fā)明可達(dá)到以下技術(shù)效果 l.數(shù)據(jù)的可靠性更高。本發(fā)明采用了數(shù)據(jù)隨機(jī)分布存儲,且并行分布恢復(fù)的方 法,該方法較傳統(tǒng)的對等物理恢復(fù)有顯著改善。同時,由于通過設(shè)計(jì)和求解連續(xù)時間的 Markov模型,獲得了有利于數(shù)據(jù)可靠性的系統(tǒng)優(yōu)化參數(shù),使得存儲系統(tǒng)中的數(shù)據(jù)可靠性 更高。研究表明,其恢復(fù)性能最大可達(dá)到已有的對等恢復(fù)模式的n倍(n為參與恢復(fù)的節(jié) 點(diǎn)的對數(shù)),數(shù)據(jù)可靠性可提高一個數(shù)量級。 2.構(gòu)建的存儲系統(tǒng)體系結(jié)構(gòu)具有易擴(kuò)展、性價比高等特點(diǎn)。存儲節(jié)點(diǎn)集群因其 天然的松耦合特性,具有良好的可擴(kuò)展性。同時由于該集群可以采用普通便宜的硬件存儲設(shè)備,能降低整體成本,相對于RAID, SAN等需要專用設(shè)備的存儲模式具有更高的性 價比。 3.模型更簡單,因?yàn)槟P秃雎粤斯收瞎?jié)點(diǎn)的替換對系統(tǒng)恢復(fù)性能影響。可以忽
略的原因是對象副本的恢復(fù)是在故障節(jié)點(diǎn)替換之前完成的,所以故障節(jié)點(diǎn)替換的速度不
會直接影響恢復(fù)速度,而僅僅影響文件副本從臨時節(jié)點(diǎn)拷貝到替換節(jié)點(diǎn)的速度。 4.設(shè)計(jì)和構(gòu)建高可靠歸檔存儲系統(tǒng)的難度降低。這主要是可靠性模型設(shè)計(jì)良
好,求解難度降低獲得的。本模型的狀態(tài)空間是0(K2),而其它模型的往往是O(NK)或
更大。因?yàn)镹))K,而在一個大規(guī)模的存儲系統(tǒng)中N往往接近甚至大于1000,求解如
此龐大的狀態(tài)轉(zhuǎn)換矩陣是十分復(fù)雜的。
圖1是本發(fā)明的總流程圖。 圖2是本發(fā)明第一步多副本(K = 3)的分布存儲和并發(fā)恢復(fù)的示意圖。
圖3是本發(fā)明第二步文件故障和恢復(fù)過程的Markov模型圖。
具體實(shí)施例方式圖1是本發(fā)明的總流程圖。 l.采用文件多副本的分布式存儲及并行恢復(fù)方法對大規(guī)模歸檔文件進(jìn)行存儲及 恢復(fù)。 2.設(shè)計(jì)連續(xù)時間的Markov模型來描述大規(guī)模歸檔存儲系統(tǒng)的故障恢復(fù)過程。 3.依據(jù)Markov模型獲得存儲系統(tǒng)優(yōu)化參數(shù)。 4.依據(jù)存儲系統(tǒng)優(yōu)化參數(shù)構(gòu)建大規(guī)模歸檔存儲系統(tǒng)。 圖2是本發(fā)明第一步包含三副本的文件隨機(jī)分布于多個節(jié)點(diǎn)的示意圖。圖2中 共有N(N二9)個節(jié)點(diǎn),組成一個存儲集群。n(n = 9)個文件(編號0-8的方塊,每個文 件有K二 3個副本)隨機(jī)均勻分布于N個節(jié)點(diǎn)中,節(jié)點(diǎn)之間互相獨(dú)立。這種存儲模式至 少有如下兩個優(yōu)點(diǎn)。首先,由于這種集群結(jié)構(gòu)中的節(jié)點(diǎn)是松耦合的,所以具有良好的擴(kuò) 展性,同時由于節(jié)點(diǎn)之間的連接不需要專用的通信設(shè)施,只需要通用的百兆或千兆網(wǎng)即 可,所以具有較高的性價比。其次,當(dāng)某個或某些節(jié)點(diǎn)出現(xiàn)故障時,數(shù)據(jù)恢復(fù)可以不受 單個節(jié)點(diǎn)帶寬的限制,實(shí)現(xiàn)并發(fā)恢復(fù),從而最大化恢復(fù)速度。例如,當(dāng)NodeO出現(xiàn)故障 進(jìn)行恢復(fù)時,文件l, 0, 6分別由Node2-> Nodel, Node3-> Node4, Node7-> Node6 三對節(jié)點(diǎn)并行恢復(fù)。參與恢復(fù)的并發(fā)節(jié)點(diǎn)對的數(shù)目是K二3,恢復(fù)帶寬最多可達(dá)單個節(jié)點(diǎn) 帶寬的K二3倍。如果采用傳統(tǒng)的串行恢復(fù),最多只能達(dá)到單個節(jié)點(diǎn)帶寬。當(dāng)系統(tǒng)規(guī)模 更大時,只要網(wǎng)絡(luò)帶寬允許,當(dāng)節(jié)點(diǎn)數(shù)和每個節(jié)點(diǎn)上文件數(shù)目更多時,其并發(fā)恢復(fù)度(參 與恢復(fù)的并發(fā)節(jié)點(diǎn)對的數(shù)目)在理想情況下可達(dá)到N/2,恢復(fù)帶寬達(dá)到MN/2。
圖3是本發(fā)明第二步文件故障和恢復(fù)過程的Markov模型圖,其中系統(tǒng)的文件副 本數(shù)目是K,文件的初始狀態(tài)是(K, 0),終止?fàn)顟B(tài)是(O, 0)。中間狀態(tài)的變遷過程分為 下述6種情況 l)當(dāng)h二K且i二O時為初始狀態(tài),只能轉(zhuǎn)移到狀態(tài)(K-1, 0),轉(zhuǎn)移條件是系統(tǒng) 中出現(xiàn)一個故障節(jié)點(diǎn),該文件位于初始分布的節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到K-1,位于臨時節(jié)點(diǎn)的副本數(shù)目仍然為0。狀態(tài)(K, 0)到狀態(tài)(K-l, 0)的轉(zhuǎn)移速度是K* A , A是存 儲節(jié)點(diǎn)的故障率。 2)當(dāng)h二0且i二0時為終止?fàn)顟B(tài),到達(dá)該狀態(tài)表明系統(tǒng)出現(xiàn)數(shù)據(jù)丟失,處于不 可修復(fù)狀態(tài),故不能再轉(zhuǎn)移到其它狀態(tài)。 3)當(dāng)l《h《K-l且i = 0時為邊緣狀態(tài)I,在該狀態(tài)下,只能轉(zhuǎn)移到下述兩種狀 態(tài) 狀態(tài)(h-l, 0):當(dāng)系統(tǒng)中出現(xiàn)新的故障節(jié)點(diǎn)時,該文件位于初始分布的節(jié)點(diǎn)的 副本數(shù)目減少一個達(dá)到h-l,位于臨時節(jié)點(diǎn)的副本數(shù)目保持不變?yōu)镺。狀態(tài)(h, O)到狀態(tài) (h-l, O)的轉(zhuǎn)移速度是MA, A是存儲節(jié)點(diǎn)的故障率。
狀態(tài)(h, 1):當(dāng)文件的副本恢復(fù)到臨時目標(biāo)節(jié)點(diǎn)時,該文件位于臨時目標(biāo)節(jié)點(diǎn)
的副本數(shù)目增加一個達(dá)到l,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(h, O)到狀
態(tài)(h, l)的轉(zhuǎn)移速度是P,P是單個文件副本在一對節(jié)點(diǎn)中恢復(fù)的速度。
4)當(dāng)KiSK且h二O時為邊緣狀態(tài)II,在該狀態(tài)下,只能轉(zhuǎn)移到下述兩種狀態(tài) 狀態(tài)(O, i+l):當(dāng)文件的副本恢復(fù)到臨時目標(biāo)節(jié)點(diǎn)時,該文件位于臨時目標(biāo)節(jié)
點(diǎn)的副本數(shù)目增加一個達(dá)到i+l,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(O, i)到
狀態(tài)(O, i+1)的轉(zhuǎn)移速度是P , P是單個文件副本在一對節(jié)點(diǎn)中恢復(fù)的速度。
狀態(tài)(O, i-l):當(dāng)存儲文件副本的臨時目標(biāo)節(jié)點(diǎn)出現(xiàn)故障時,該文件位于臨時目
標(biāo)節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到i-l,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(o,
i)到狀態(tài)(O, i+l)的轉(zhuǎn)移速度是P入,A是存儲節(jié)點(diǎn)的故障率。 5)當(dāng)h+i二K,且l《h《K-l, 1《i《K-l,為邊緣狀態(tài)III,在該狀態(tài)下,只能轉(zhuǎn)移 到下述兩種狀態(tài) 狀態(tài)(h+l, i-l):當(dāng)存儲集群中故障節(jié)點(diǎn)被新節(jié)點(diǎn)替換成功時,該文件位于i個 臨時節(jié)點(diǎn)的i個副本中(每個副本分別位于一個節(jié)點(diǎn))的一個轉(zhuǎn)移到了新替換節(jié)點(diǎn)上,位 于初始分布節(jié)點(diǎn)(副本最初分布的節(jié)點(diǎn))的副本數(shù)增加一個達(dá)到h+l ,位于i個臨時節(jié)點(diǎn)上 的副本數(shù)減少一個達(dá)到i-l。狀態(tài)(h, i)到狀態(tài)(h+l, i-l)的轉(zhuǎn)移速度是i ,V是單個 文件拷貝轉(zhuǎn)移的速度。
狀態(tài)(h, i-l):當(dāng)存儲文件副本的臨時目標(biāo)節(jié)點(diǎn)出現(xiàn)故障時,該文件位于臨時目 標(biāo)節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到i-l,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(h, i)到狀態(tài)(h, i+l)的轉(zhuǎn)移速度是P入,A是存儲節(jié)點(diǎn)的故障率。 6)當(dāng)h+i〈K,且l《h《K-2, 1《i《K-2,為內(nèi)部狀態(tài),在該狀態(tài)下,只能轉(zhuǎn)移到下 述三種狀態(tài) 狀態(tài)(h-l, i):當(dāng)系統(tǒng)中出現(xiàn)新的故障節(jié)點(diǎn)時,該文件位于初始分布的節(jié)點(diǎn)的副 本數(shù)目減少一個達(dá)到h-l,位于臨時節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(h, i)到狀態(tài)(h-l, i)的轉(zhuǎn)移速度是M A ,A是存儲節(jié)點(diǎn)的故障率。
狀態(tài)(h, i+l):當(dāng)文件的副本恢復(fù)到臨時目標(biāo)節(jié)點(diǎn)時,該文件位于臨時目標(biāo)節(jié) 點(diǎn)的副本數(shù)目增加一個達(dá)到i+l,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(h, i)到 狀態(tài)(h, i+l)的轉(zhuǎn)移速度是P ,P是單個文件副本在一對節(jié)點(diǎn)中恢復(fù)的速度。
狀態(tài)(h, i-l):當(dāng)存儲文件副本的臨時目標(biāo)節(jié)點(diǎn)出現(xiàn)故障時,該文件位于臨時目 標(biāo)節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到i-l,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變。狀態(tài)(h,i)到狀態(tài)(h, i+l)的轉(zhuǎn)移速度是P入,A是存儲節(jié)點(diǎn)的故障率:
權(quán)利要求
一種大規(guī)模高可靠的歸檔存儲系統(tǒng)構(gòu)建方法,其特征在于包括以下步驟第一步,采用文件多副本的分布式存儲及并行恢復(fù)方法對大規(guī)模歸檔文件進(jìn)行存儲及恢復(fù)步驟1)構(gòu)建由多個存儲節(jié)點(diǎn)組成的存儲集群,每個存儲節(jié)點(diǎn)是包含磁盤,處理器,內(nèi)存和網(wǎng)絡(luò)接口的計(jì)算機(jī),存儲節(jié)點(diǎn)之間通過以太網(wǎng)互聯(lián);存儲節(jié)點(diǎn)依次編號為0,1,2,...,N-1,N為存儲節(jié)點(diǎn)的總數(shù)目,待存儲的文件數(shù)目為p個,每個文件有K個副本,p和K均為正整數(shù);步驟2)將p*K個副本隨機(jī)均勻地分布于N個存儲節(jié)點(diǎn)上,存儲節(jié)點(diǎn)編號使用[1,N]上均勻分布的隨機(jī)函數(shù)g=random(),1≤g≤N,同時保證K個副本分別存儲在K個不同的存儲節(jié)點(diǎn)上;步驟3)當(dāng)存儲集群中多個存儲節(jié)點(diǎn)出現(xiàn)故障時,多個存儲節(jié)點(diǎn)按照故障恢復(fù)方法進(jìn)行并發(fā)恢復(fù)當(dāng)存儲集群中某個存儲節(jié)點(diǎn)出現(xiàn)故障時,針對該故障節(jié)點(diǎn)上的某個文件j,從存儲集群中包含j的副本的除故障節(jié)點(diǎn)外的K-1個完好節(jié)點(diǎn)中選擇一個作為源節(jié)點(diǎn),選擇除源節(jié)點(diǎn)和故障節(jié)點(diǎn)外的某個正常節(jié)點(diǎn)作為臨時目標(biāo)節(jié)點(diǎn),將副本從源節(jié)點(diǎn)拷貝到臨時目標(biāo)節(jié)點(diǎn)上;步驟4)替換節(jié)點(diǎn)當(dāng)故障節(jié)點(diǎn)修復(fù)或被新節(jié)點(diǎn)替換后,將臨時目標(biāo)節(jié)點(diǎn)上的副本拷貝到該修復(fù)或替換后的新節(jié)點(diǎn)上,之后刪除臨時目標(biāo)節(jié)點(diǎn)上的副本;第二步,設(shè)計(jì)連續(xù)時間的Markov模型來描述大規(guī)模歸檔存儲系統(tǒng)的故障恢復(fù)過程,Markov模型是一個狀態(tài)機(jī)大規(guī)模歸檔存儲系統(tǒng)中每個文件的狀態(tài)定義為(h,i),其中h是某文件保留在原始存儲節(jié)點(diǎn)上的副本的數(shù)目,i表示臨時恢復(fù)存儲到某些存儲節(jié)點(diǎn)上,等待重新存儲到新替換到大規(guī)模歸檔存儲系統(tǒng)中的存儲節(jié)點(diǎn)上的副本的數(shù)目;狀態(tài)轉(zhuǎn)移方法是1)當(dāng)h=K且i=0時為初始狀態(tài),只能轉(zhuǎn)移到狀態(tài)(K-1,0),轉(zhuǎn)移條件是系統(tǒng)中出現(xiàn)一個故障節(jié)點(diǎn),該文件位于初始分布的節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到K-1,位于臨時節(jié)點(diǎn)的副本數(shù)目仍然為0,K是存儲系統(tǒng)中每個文件的副本數(shù),狀態(tài)(K,0)到狀態(tài)(K-1,0)的轉(zhuǎn)移速度是K*λ,λ是存儲節(jié)點(diǎn)的磁盤的故障率;2)當(dāng)h=0且i=0時為終止?fàn)顟B(tài),到達(dá)該狀態(tài)表明系統(tǒng)出現(xiàn)數(shù)據(jù)丟失,處于不可修復(fù)狀態(tài),不能再轉(zhuǎn)移到其它狀態(tài);3)當(dāng)1≤h≤K-1且i=0時為邊緣狀態(tài)I,在該狀態(tài)下,只能轉(zhuǎn)移到下述兩種狀態(tài)狀態(tài)(h-1,0)當(dāng)系統(tǒng)中出現(xiàn)新的故障節(jié)點(diǎn)時,該文件位于初始分布的節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到h-1,位于臨時節(jié)點(diǎn)的副本數(shù)目保持不變?yōu)?;狀態(tài)(h,0)到狀態(tài)(h-1,0)的轉(zhuǎn)移速度是h*λ;狀態(tài)(h,1)當(dāng)文件的副本恢復(fù)到臨時目標(biāo)節(jié)點(diǎn)時,該文件位于臨時目標(biāo)節(jié)點(diǎn)的副本數(shù)目增加一個達(dá)到1,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變;狀態(tài)(h,0)到狀態(tài)(h,1)的轉(zhuǎn)移速度是μ,μ是單個文件副本在一對節(jié)點(diǎn)中恢復(fù)的速度;4)當(dāng)1≤i≤K且h=0時為邊緣狀態(tài)II,在該狀態(tài)下,只能轉(zhuǎn)移到下述兩種狀態(tài)狀態(tài)(0,i+1)當(dāng)文件的副本恢復(fù)到臨時目標(biāo)節(jié)點(diǎn)時,該文件位于臨時目標(biāo)節(jié)點(diǎn)的副本數(shù)目增加一個達(dá)到i+1,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變,狀態(tài)(0,i)到狀態(tài)(0,i+1)的轉(zhuǎn)移速度是μ;狀態(tài)(0,i-1)當(dāng)存儲文件副本的臨時目標(biāo)節(jié)點(diǎn)出現(xiàn)故障時,該文件位于臨時目標(biāo)節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到i-1,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變,狀態(tài)(0,i)到狀態(tài)(0,i+1)的轉(zhuǎn)移速度是i*λ;5)當(dāng)h+i=K,且1≤h≤K-1,1≤i≤K-1,為邊緣狀態(tài)III,在該狀態(tài)下,只能轉(zhuǎn)移到下述兩種狀態(tài)狀態(tài)(h+1,i-1)當(dāng)存儲集群中故障節(jié)點(diǎn)被新節(jié)點(diǎn)替換成功時,該文件位于i個臨時節(jié)點(diǎn)的i個副本中的一個轉(zhuǎn)移到了新替換節(jié)點(diǎn)上,位于副本最初分布的節(jié)點(diǎn)的副本數(shù)增加一個達(dá)到h+1,位于i個臨時節(jié)點(diǎn)上的副本數(shù)減少一個達(dá)到i-1;狀態(tài)(h,i)到狀態(tài)(h+1,i-1)的轉(zhuǎn)移速度是i*v,v是單個文件拷貝轉(zhuǎn)移的速度;狀態(tài)(h,i-1)當(dāng)存儲文件副本的臨時目標(biāo)節(jié)點(diǎn)出現(xiàn)故障時,該文件位于臨時目標(biāo)節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到i-1,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變;狀態(tài)(h,i)到狀態(tài)(h,i+1)的轉(zhuǎn)移速度是i*λ;6)當(dāng)h+i<K,且1≤h≤K-2,1≤i≤K-2,為內(nèi)部狀態(tài),在該狀態(tài)下,只能轉(zhuǎn)移到下述三種狀態(tài)狀態(tài)(h-1,i)當(dāng)系統(tǒng)中出現(xiàn)新的故障節(jié)點(diǎn)時,該文件位于初始分布的節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到h-1,位于臨時節(jié)點(diǎn)的副本數(shù)目保持不變;狀態(tài)(h,i)到狀態(tài)(h-1,i)的轉(zhuǎn)移速度是h*λ;狀態(tài)(h,i+1)當(dāng)文件的副本恢復(fù)到臨時目標(biāo)節(jié)點(diǎn)時,該文件位于臨時目標(biāo)節(jié)點(diǎn)的副本數(shù)目增加一個達(dá)到i+1,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變;狀態(tài)(h,i)到狀態(tài)(h,i+1)的轉(zhuǎn)移速度是μ;狀態(tài)(h,i-1)當(dāng)存儲文件副本的臨時目標(biāo)節(jié)點(diǎn)出現(xiàn)故障時,該文件位于臨時目標(biāo)節(jié)點(diǎn)的副本數(shù)目減少一個達(dá)到i-1,位于初始分布節(jié)點(diǎn)的副本數(shù)目保持不變;狀態(tài)(h,i)到狀態(tài)(h,i+1)的轉(zhuǎn)移速度是i*λ;第三步,依據(jù)Markov模型獲得大規(guī)模歸檔存儲系統(tǒng)優(yōu)化參數(shù),這些參數(shù)包括系統(tǒng)存儲節(jié)點(diǎn)總數(shù)N、網(wǎng)絡(luò)總帶寬B、單個節(jié)點(diǎn)上存儲的文件個數(shù)m和單個節(jié)點(diǎn)IO帶寬b,方法是3.1按照系統(tǒng)存儲容量需求得到系統(tǒng)存儲規(guī)模S,依據(jù)可靠性要求確定文件副本數(shù)K;3.2選定基本存儲設(shè)備的型號后,獲得存儲設(shè)備或節(jié)點(diǎn)的故障率λ和節(jié)點(diǎn)的帶寬b;3.3依據(jù)Markov模型計(jì)算節(jié)點(diǎn)總數(shù)N、網(wǎng)絡(luò)總帶寬B、單個節(jié)點(diǎn)上存儲文件的數(shù)目m的最優(yōu)值3.3.1選取L為正整數(shù);3.3.2選取m≥B/b;3.4通過公式S×K/N確定單個存儲節(jié)點(diǎn)的存儲容量;3.5通過B及b值,確定交換機(jī)和核心路由器的型號和數(shù)目;第四步,依據(jù)第三步獲得的優(yōu)化參數(shù)構(gòu)建存儲系統(tǒng)通過S×K/N來確定單個節(jié)點(diǎn)存儲容量,通過b確定節(jié)點(diǎn)帶寬,通過B和N確定交換機(jī)和核心路由器的型號和數(shù)目,通過m確定單個節(jié)點(diǎn)上存儲文件的數(shù)目;依據(jù)上述方法確定的參數(shù),將N個存儲節(jié)點(diǎn)組成局域網(wǎng),每個節(jié)點(diǎn)上的數(shù)目不超過m,從而構(gòu)成海量歸檔存儲系統(tǒng)。
全文摘要
本發(fā)明公開了一種大規(guī)模高可靠的歸檔存儲系統(tǒng)構(gòu)建方法,要解決的技術(shù)問題是基于歸檔數(shù)據(jù)的特點(diǎn),提供一種大規(guī)模歸檔存儲系統(tǒng)構(gòu)建方法,提高歸檔存儲系統(tǒng)的可靠性。技術(shù)方案是采用文件多副本的分布式存儲及并行恢復(fù)方法對大規(guī)模歸檔文件進(jìn)行存儲及恢復(fù),設(shè)計(jì)連續(xù)時間的Markov模型來描述大規(guī)模歸檔存儲系統(tǒng)的故障恢復(fù)過程,依據(jù)Markov模型獲得大規(guī)模歸檔存儲系統(tǒng)優(yōu)化參數(shù),最后依據(jù)獲得的優(yōu)化參數(shù)構(gòu)建存儲系統(tǒng)。采用本發(fā)明模型簡單,使得構(gòu)建高可靠歸檔存儲系統(tǒng)的難度降低,提高了歸檔存儲系統(tǒng)的可靠性,且構(gòu)建的存儲系統(tǒng)體系結(jié)構(gòu)易擴(kuò)展、性價比高。
文檔編號H04L29/08GK101692227SQ20091004440
公開日2010年4月7日 申請日期2009年9月25日 優(yōu)先權(quán)日2009年9月25日
發(fā)明者杜凱, 楊樹強(qiáng), 王懷民 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)