海量存儲機群系統(tǒng)中提高系統(tǒng)MTTF的設(shè)計和分析
摘 要:當(dāng)今,機群系統(tǒng)被廣泛地應(yīng)用于海量存儲系統(tǒng)。對數(shù)據(jù)有高可靠性要求的應(yīng)用,如何提高系統(tǒng)MTTF是人們研究的主要問題。本文提出了一個新的動態(tài)備份策略,并行數(shù)據(jù)備份策略,通過詳細的理論分析,指出該策略可顯著地提高系統(tǒng)MTTF;還通過仿真實驗,驗證了其效果。
關(guān)鍵詞:海量存儲;機群系統(tǒng);平均故障前時間
1 引言
在過去幾年里,機群系統(tǒng)被廣泛地應(yīng)用于海量存儲系統(tǒng),比如,著名的Google文件系統(tǒng)就包含上千個基于linux的計算機。這樣做的好處有三個。第一,由于每個節(jié)點都是大批量生產(chǎn)的,整個系統(tǒng)的價格可以很低。第二,通過增減節(jié)點,系統(tǒng)可以簡單地進行擴展。第三,通過在互相獨立的節(jié)點上備份數(shù)據(jù),可以顯著地提高系統(tǒng)中數(shù)據(jù)的可靠性。
對存儲系統(tǒng)來說,系統(tǒng)的平均故障前時間(MTTF)是指系統(tǒng)中出現(xiàn)某個數(shù)據(jù)因所有的備份都丟失,而導(dǎo)致該數(shù)據(jù)無法挽回地丟失所需的平均時間。對于有較高數(shù)據(jù)可靠性要求的系統(tǒng),系統(tǒng)的MTTF是衡量系統(tǒng)性能的一個重要指標。提高系統(tǒng)MTTF的一個方法就是 提高數(shù)據(jù)的備份數(shù)。備份數(shù)的選擇需要綜合考慮,因為選擇過低的備份數(shù),系統(tǒng)的MTTF不能滿足要求;而選擇過高的備份數(shù),系統(tǒng)的存儲資源就被浪費,特別是當(dāng)系統(tǒng)中包含大量數(shù)據(jù)的時候。另一個方面,考慮到機群系統(tǒng)中節(jié)點會不斷失效,因此還必須對備份數(shù)因節(jié)點失效而降低的數(shù)據(jù)進行動態(tài)備份,以提高系統(tǒng)MTTF。本文提出了一個新的動態(tài)備份策略,并行數(shù)據(jù)備份策略,理論分析了其性能,并進行了仿真實驗。
2系統(tǒng)結(jié)構(gòu)和動態(tài)備份策略
整個系統(tǒng)的構(gòu)成情況如下。機群系統(tǒng)包含n個節(jié)點。系統(tǒng)中的所有對象狀態(tài)以狀態(tài)塊為單元進行組織。系統(tǒng)中存儲的互不相同的狀態(tài)塊總數(shù)正比與節(jié)點總數(shù)。每個狀態(tài)塊有m個備份。同一個狀態(tài)塊的備份不能在一個節(jié)點上,以保證可靠性;一個節(jié)點可以同時存儲許多個狀態(tài)塊的備份。每個正常節(jié)點都會失效。
在出現(xiàn)一個節(jié)點失效后,系統(tǒng)的動態(tài)備份策略為:1)為失效節(jié)點上的每個狀態(tài)塊,選擇一對源節(jié)點和目標節(jié)點,源節(jié)點包含該狀態(tài)塊,目標節(jié)點不包含;2)讓這些狀態(tài)塊,同時在各對應(yīng)源節(jié)點和目標節(jié)點之間開始轉(zhuǎn)移,直至轉(zhuǎn)移完畢。其中,各狀態(tài)塊的源節(jié)點和目標節(jié)點的選擇應(yīng)盡可能互不重合,以使盡可能多的狀態(tài)塊轉(zhuǎn)移可并發(fā)進行。另外,這個備份策略也意味著每個狀態(tài)塊的備份可存儲于任一節(jié)點上。下面,通過建立數(shù)學(xué)模型,理論估計該動態(tài)備份策略下的系統(tǒng)MTTF。
3理論分析
考慮用Markov過程來描述這個模型。為此,做如下假設(shè)。節(jié)點的失效速率服從指數(shù)分布,均值為l。由于系統(tǒng)中節(jié)點數(shù)目巨大,所以在一個節(jié)點失效后,其上的狀態(tài)塊完全可以找到互不重復(fù)的源節(jié)點和目標節(jié)點,狀態(tài)塊轉(zhuǎn)移可以并發(fā)進行,可設(shè)轉(zhuǎn)移速率服從指數(shù)分布,均值為lb。另外,考慮到系統(tǒng)中的節(jié)點數(shù)目巨大,可以認為系統(tǒng)在出現(xiàn)某狀態(tài)塊無法挽回丟失時,系統(tǒng)中正常工作的節(jié)點數(shù)依然維持在較高水平,與起始時的節(jié)點數(shù)n在同一個數(shù)量級。因此,可近似認為系統(tǒng)中節(jié)點數(shù)始終為n。于是,取有幾個失效節(jié)點上的狀態(tài)塊正在進行轉(zhuǎn)移為研究對象,可得狀態(tài)轉(zhuǎn)移圖如圖1。其中,m為每個狀態(tài)塊的原備份數(shù);ai表示當(dāng)一個有n個節(jié)點的系統(tǒng)中有(i-1)個失效節(jié)點上的狀態(tài)塊正在進行轉(zhuǎn)移時無狀態(tài)塊丟失,而再失效一個節(jié)點發(fā)生一狀態(tài)塊丟失的概率;狀態(tài)i'(i>=m)表示系統(tǒng)中出現(xiàn)某狀態(tài)塊無法挽回地丟失。
圖1 系統(tǒng)的狀態(tài)轉(zhuǎn)移過程
因此,目標就化為系統(tǒng)進入狀態(tài)i'的均值時間。這個系統(tǒng)可以近似看成一個狀態(tài)數(shù)為無窮的一維生滅過程。要求解進入狀態(tài)i'的瞬態(tài)概率,將涉及解一個含無窮多等式的微分方程組,這是很復(fù)雜的。但根據(jù)以往求一維生滅過程的穩(wěn)態(tài)解的經(jīng)驗知道, 。因此,如果ln-1/mn很小,那隨著n的增加,Pn將急速下降。于是,當(dāng)n增加到一定值時,可以忽略其后的狀態(tài)。對一個典型的含1000個節(jié)點的機群系統(tǒng),若節(jié)點的MTTF為一天,則系統(tǒng)中出現(xiàn)某節(jié)點失效的速率約為0.011/秒;而一個狀態(tài)塊的平均轉(zhuǎn)移時間可以在10秒鐘左右,即,轉(zhuǎn)移速率為0.1/秒;這兩個速率之比約為0.1。因此,可以忽略系統(tǒng)中n>=m的狀態(tài),而把系統(tǒng)進入狀態(tài)m'的均值時間作為系統(tǒng)的MTTF。
評論