接上篇:重復數據刪除綜述(1):基于相同數據的檢測
重復數據刪除綜述(2):固定和可變長度數據塊
重復數據刪除綜述(3):對系統(tǒng)性能的影響問題
上述這些技術使得共享數據塊的文件之間產生了依賴性,幾個關鍵數據塊的丟失或錯誤可能導致多個文件的丟失和錯誤發(fā)生,因此它同時又會降低存儲系統(tǒng)的可靠性。為此,一些研究者又引入了冗余復制技術和糾刪碼技術等來提高重復數據刪除系統(tǒng)的可靠性。
4.1 冗余復制策略
一些研究者提出通過消除冗余所節(jié)省空間的一部分復制一些塊,策略性地增加冗余來提高系統(tǒng)可靠性。鑒于單純?yōu)樗袛祿黾尤哂嗨鶎е碌拇罅靠臻g消耗,研究者們提出了不同的處理方法:
1)提出根據塊的重要度來決定塊的重復度,它按照基于塊權重的復制方法來增加數據冗余。在該技術中設定即使一個塊只有一個依賴關系,也必須被保護。所以其啟發(fā)式規(guī)則為每個塊保存至少兩個復制。還有的文獻提出的該可靠性技術模型不會影響重復數據刪除技術帶來的存儲空間的節(jié)約,它利用合適的啟發(fā)式規(guī)則和參數變化,占用大約一半的存儲空間,取得了比傳統(tǒng)跨文件壓縮方法更高的可靠性。
2)針對引用數據進行冗余復制,即對實際有用的數據,而非傳統(tǒng)的所有數據。研究發(fā)現(xiàn),引用數據或內容固定的數據占據了日常數據量的大部分,并且增長迅速。而引用數據的特征是存在大量的相似數據,且不能被改變,并且需要保持很長的時間。因此下面經典文獻提出了一個針對引用數據實現(xiàn)的可靠性存儲系統(tǒng)。該系統(tǒng)通過管理數據的唯一塊可靠、高效地存儲大量的相似數據,并允許被選擇的數據被高效刪除。其中系統(tǒng)可靠性的設計是基于塊與塊之間的信息內容來管理數據存儲的。
3)在不同應用或層次上增加冗余數據提高系統(tǒng)的可靠性。RAID是通過引進冗余并以此保證存儲系統(tǒng)的可靠性。OceanStore對持久數據提高全局的連續(xù)訪問,并使用自動復制策略來提高系統(tǒng)可靠性。FARSITE是一個分布式系統(tǒng),它通過復制文件系統(tǒng)的元數據來提供可靠性。
經典文獻
uDuplicate management forreference data
Denehy TE, Hsu WW. IBM Research Report, RJ 10305(A0310-017), IBM Research Division, 2003.
uProviding high reliability in aminimum redundancy archival storage system
Bhagwat D, Pollack K, Long DDE, Schwarz T, MillerEL, Pâris JF. In: Proc. of the 14th Int’l Symp. on Modeling, Analysis, andSimulation of Computer and Telecommunication Systems (MASCOTS 2006). Washington:IEEE Computer Society Press, 2006. 413–421.
4.2 糾刪碼技術
在存儲系統(tǒng)中,單純地通過增加完全副本冗余來提高系統(tǒng)的可靠性并不能保證在錯誤出現(xiàn)時,數據仍具有持久性和可靠性。因此一些研究者提出利用糾刪碼技術對數據做一定的冗余來增加系統(tǒng)的可靠性。糾刪碼技術是指將要存儲的數據切分為k個部分,然后通過編碼算法變換為n(n>k)個部分,其中任意k′(k′≥k)個部分可以用來恢復原始數據。當k’ = k時,稱編碼算法具有最大距離分割性質(maximum distance separable,簡稱MDS).
糾刪碼主要分為4大類:Reed Solomon Codes, Parity Array Codes,Parity-check Codes和LDPC(low density parity check)Codes。其中,Reed Solomon Codes是基于有限域運算的,后三者主要是基于XOR運算。每種糾刪碼(erasure codes)都有其各自的優(yōu)缺點:
1) Reed Solomon碼:
i.MDS碼,具有最優(yōu)的存儲利用率;
ii.容錯能力k′可以為任意數;
iii.數據出度總是大于k′,從而有較高的更新(update)復雜度;
iv.復雜的代數運算。
2) Parity Array碼:主要是通過單元的二維空間幾何分布構成的,適用于RAID系統(tǒng)。
3) Parity-check碼:從奇偶校驗碼發(fā)展而來的多維碼,特點是簡單且完全基于XOR運算,容易實現(xiàn),且更新(update)和解碼(decode)等操作都具有較好的局部性,其缺點是非MDS,主要適合于大規(guī)模存儲系統(tǒng)。
4) LDPC碼:基于Tanner圖發(fā)展起來的一維碼,其構造主要是基于圖論和蒙特卡洛法。其優(yōu)點是可以完全用XOR運算實現(xiàn),并且其存儲利用率接近MDS。其解碼算法主要是采用迭代方法實現(xiàn),可以達到很高的容錯能力,但是容錯能力越高,其構造越不規(guī)則,從而導致不易實現(xiàn)。