帶重復(fù)數(shù)據(jù)刪除的歸檔存儲系統(tǒng)獲得了更好的存儲空間利用率是以降低數(shù)據(jù)可靠性為代價的,這在很多實際應(yīng)用尤其是長期歸檔系統(tǒng)中是不可接受的。因此,在帶重復(fù)數(shù)據(jù)刪除的存儲系統(tǒng)中,尤其在帶重復(fù)數(shù)據(jù)刪除的大規(guī)模歸檔存儲系統(tǒng)中,如何保證數(shù)據(jù)可靠性是一個關(guān)鍵問題。Bhagwat,等人[100]首先注意到了這一問題,并初步定最分析了重復(fù)數(shù)據(jù)刪除給存儲系統(tǒng)可靠性所帶來的后果。
總結(jié)起來,當(dāng)前為帶重復(fù)數(shù)據(jù)刪除的存儲系統(tǒng)提供可靠性主要有以下兩類方法。
1.基干復(fù)制偽可靠性算法保證
Bhagwat等人[100]提出了一種根據(jù)數(shù)據(jù)塊的重要性為其保存若干份副本的方法。這是一種自然、簡單的想法,但它需要占用很大的存儲空間,并且系統(tǒng)通信量也隨著副本份數(shù)的增多而增大,這些特性抉定了其在大規(guī)模存儲系統(tǒng)中的表現(xiàn)會比較低效[45],[112]。而且,Bhagwat的研究并沒有考慮數(shù)據(jù)塊的實際放置方法。Google公司的Googlefilesystem(GFS)[35]也采用了副本的方法來增強(qiáng)系統(tǒng)的可靠性。在GPS中,文件被分成固定大小的塊,每個塊由一個不變的、全局唯一的64位的chunk-handle標(biāo)志。為了提高系統(tǒng)的可靠性,每一個數(shù)據(jù)塊被復(fù)制成若干份存放在不同的服務(wù)器上。默認(rèn)情況下,系統(tǒng)保存三個副本,但用戶可以自己指定副本的數(shù)目。管理器在創(chuàng)建新塊時考慮了數(shù)據(jù)塊的分布,如優(yōu)先放置在空間利用率低的磁盤上,同一份數(shù)據(jù)的副本放在不同的機(jī)器上等。
通過復(fù)制保證系統(tǒng)的可靠性是一種自然、簡單的想法,但它需要占用的存儲空間較大,并且系統(tǒng)通信量也隨著副本份數(shù)的增多而增大,這在一定程度上限制了其在大規(guī)模存儲系統(tǒng)中的使用。
2.基干RAID類系統(tǒng)的可靠性保證
直接使用RAID類(RAID-likesystem)系統(tǒng)作為底層的存儲系統(tǒng),這也是提高系統(tǒng)可靠性的一種常用方法。該方法對上層透明,容易實現(xiàn)和部署。但是傳統(tǒng)RAID系統(tǒng)(RAID1-RAID5)的容錯能力是極其有限的,無法容忍兩塊硬盤同時發(fā)生故障的情況。一旦存儲系統(tǒng)中兩塊硬盤同時損壞,以往的RAID技術(shù)對此就無能為力了,這是對系統(tǒng)容錯性要求很高的歸檔存儲系統(tǒng)所不能容忍的。為了克服這一缺點,RAID6引入了雙垂校驗機(jī)制,通過使用基于Galoisfield算法或有限場的數(shù)學(xué)MDS代碼,在驅(qū)動器上對數(shù)據(jù)進(jìn)行編碼校驗,可以容忍任意兩塊磁盤的錯誤。J.s.plank[113]提出了一種易于轉(zhuǎn)換成系統(tǒng)實現(xiàn)的RAID6編碼。RAID6比RAID5具有更高的容錯性,但也引入了更人的系統(tǒng)開銷,復(fù)雜的校驗計算使其較難擴(kuò)展到大規(guī)模海量存儲架構(gòu)中使用。另外,類RAID系統(tǒng)只能進(jìn)行整盤恢復(fù),數(shù)據(jù)恢復(fù)時延相對較大,磁盤的容量越人,恢復(fù)所需的時間就越長,重建一個lTB的磁盤需要l0一l2h的時間。SuzhenWu等人[114]提出了一種加速RAID恢復(fù)時間的算法。這種算法將所有待恢復(fù)磁盤上的用戶寫請求和部分熱門的讀請求臨時衷定向到其他相對空閑的磁盤上,避免了在進(jìn)行RAID恢復(fù)的同時讀瀉用戶數(shù)據(jù)和恢復(fù)數(shù)據(jù)所造成的磁頭來回跳轉(zhuǎn)問題,平衡了系統(tǒng)負(fù)載,提高了恢復(fù)的性能。但是這種算法需要更多的磁盤空間,而且在集中恢復(fù)一塊整盤時仍然需要相對較長的時間。而恢復(fù)時間越長,數(shù)據(jù)丟失的可能性就越高。因此RAID技術(shù)并不適合在大規(guī)模存儲系統(tǒng)申用于保證高數(shù)據(jù)可靠性[115],需要進(jìn)一步研究更加高效的可靠性保證機(jī)制。
由上述分析可知,設(shè)計一種新的適用于重復(fù)數(shù)據(jù)刪除大規(guī)模存儲系統(tǒng)的方法來保證數(shù)據(jù)可靠性是十分有必要的。
針對帶重復(fù)數(shù)據(jù)刪除的大規(guī)模歸檔存儲系統(tǒng)的數(shù)據(jù)可靠性保證機(jī)制,從而提出R-ADMAD吧,它將去重生胰的變長數(shù)據(jù)塊打包成定長的數(shù)據(jù)塊,然后使用能夠比簡單復(fù)制機(jī)制提供更高的容錯度的ECC編碼來生成新的帶糾錯功能的數(shù)據(jù)塊,再分布到根據(jù)各存儲節(jié)點運行時的狀態(tài)和出錯的概率動態(tài)挑選出的存儲節(jié)點冗余組中。這樣,在部分存儲節(jié)點發(fā)生錯誤時,R-ADMAD就可以在運行時分布式地恢復(fù)出錯的數(shù)據(jù)。
分享到微信 ×
打開微信,點擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁分享至朋友圈。