你將學到的:RAID 6正在迅速成為現(xiàn)代存儲系統(tǒng)的一個標準部件,幾乎每個大中型陣列都增加了這個功能。我們來告訴你為什么RAID 6中的擦除碼使得當今的高容量磁盤可以被使用,而且使其不用擔心無法恢復讀錯誤引起數(shù)據(jù)丟失。
數(shù)據(jù)存儲行業(yè)依靠一些基本的技術已經(jīng)超過30年了,而這里面最重要的就是獨立磁盤冗余陣列(RAID)的概念。然而傳統(tǒng)RAID所依托的數(shù)學原理正在被替換,以應對磁盤容量的增加和更高靈活性的需求。這就意味著,從RAID 6到云存儲的先進的存儲系統(tǒng),都在使用擦除碼而不是傳統(tǒng)的校驗碼。
很多早期的RAID系統(tǒng)只是簡單地在兩個獨立的磁盤驅動器之間鏡像數(shù)據(jù)。這被稱作RAID 1系統(tǒng),它容易實現(xiàn),不需要高級的計算并可能很簡單地加速讀性能。
不過,在容量方面RAID 1就不是很有效率了。結果就是類似RAID 5的基于校驗的方案流行了起來。這些系統(tǒng)對數(shù)據(jù)做簡單的奇偶計算,提供跨多個磁盤驅動器的冗余而沒有RAID 1那么大的開銷。雖然進行一個簡單的奇偶校驗計算引入了開銷并減慢了寫操作,不過這通過使用專門的硬件和DRAM緩存可以很容易地克服。
一個有關RAID的常見誤解是它能夠保證數(shù)據(jù)的完整性。盡管RAID可以保證數(shù)據(jù)在一個磁盤失效時恢復,但鏡像和校驗不能檢測到更小的不可恢復讀錯誤。物理硬盤驅動器通過一系列的機制來提高讀寫操作的可靠性。其中一個最重要的就是常見的可以檢測到單個比特錯誤而強制磁盤重試讀數(shù)據(jù)的循環(huán)冗余校驗(CRC)。
廠家們預計傳統(tǒng)硬盤是很可靠的,在大約12TB的讀取中只會有一個比特的錯誤。這在磁盤驅動器的容量還在以MB或者GB計算的時候是令人放心的,但是今天的上TB驅動器使得不可恢復讀錯誤(URE)的可能性高到不能接受的程度。
擦除碼可以增加可靠性
這就是我們需要擦除碼和RAID 6的原因。很久以前,數(shù)學家開發(fā)了在數(shù)據(jù)流中發(fā)現(xiàn)錯誤的算法,有些算法甚至能夠在發(fā)現(xiàn)一個或者多個錯誤的時候恢復原始數(shù)據(jù)。這些計算對早期的RAID控制器來說太過復雜了,但是今天的微處理器技術使得它們不再高不可攀。很多這樣的高級數(shù)據(jù)保護系統(tǒng)基于一類叫做擦除碼的算法。
擦除碼工作原理
擦除碼算法聽起來復雜,其實很容易理解。設想你的電話號碼是123-4567.由于數(shù)字是線性的會很好記。也由于它是線性的一組數(shù)字,你可以告訴別人從1開始逐個撥數(shù)字直到7.這使得他們在撥錯數(shù)字的時候可以很容易地發(fā)現(xiàn)。
擦除碼建立了一個數(shù)學方程來描述一組數(shù)字,以保證可以檢查準確性并在一個數(shù)字丟失的時候可以恢復。這也稱作多項式插值,或者過采樣,這是擦除碼背后的關鍵概念,盡管其中用的算法比我們的電話號碼的例子要復雜,但基本的想法是一樣的。
在數(shù)據(jù)存儲中使用擦除碼的時候,我們可以額外存儲幾個比特,從而使得一個存儲系統(tǒng)比傳統(tǒng)的校驗方案更可靠。當然,RAID 6不是一個標準的技術,實際上多數(shù)的實現(xiàn)都采用了標準的RAID 5校驗比特,和額外的Reed-Solomon碼來提高可靠性。這個結合使得一個RAID 6的陣列可以抵御多個磁盤同時失效,或者發(fā)生一個無法恢復的讀錯誤。 由于這種能力,RAID 6比RAID 5更加可靠。更重要的是,RAID 6陣列允許使用今天的高容量磁盤,而不用擔心一個無法恢復的讀錯誤引起數(shù)據(jù)丟失。
類似擦除碼的技術還被用來使藍光碟片更能抵御劃傷,并使得DSL和WiMax數(shù)據(jù)傳輸更可靠。擦除碼也被用于很多的對象和云存儲系統(tǒng)中,把數(shù)據(jù)分散存儲在多個地點。擦除碼能夠在不可靠的數(shù)據(jù)源中恢復數(shù)據(jù)的能力使得他在很多現(xiàn)代的系統(tǒng)中極具價值。
RAID 6成為現(xiàn)代存儲系統(tǒng)的標準部件
隨著磁盤驅動器的增長,RAID 6正變得越來越重要。隨著希捷在最近發(fā)布3TB硬盤驅動器,我們現(xiàn)在已經(jīng)到了一個典型的4或5塊磁盤的RAID 5組會在它的生命周期中遇到一次不可恢復讀錯誤的時候。由于RAID 5不能從這樣的錯誤中恢復,對于使用這么大容量的磁盤的RAID組,RAID 6已經(jīng)成為必須采用的了。而仍在使用RAID 5的系統(tǒng)應該包括高級的技術,例如寫時校驗和數(shù)據(jù)擦洗( data scrubbing )來降低數(shù)據(jù)丟失的風險。
可喜的是,普通的用戶不用擔心讀錯誤和數(shù)據(jù)丟失的黯淡前景。存儲廠家在最近幾年里一直在增加提高一致性的功能,而幾乎所有企業(yè)的數(shù)據(jù)都有備份、復制或者快照技術來保護。RAID 6也正在迅速成為現(xiàn)代存儲系統(tǒng)的標準部件,幾乎所有大中型陣列都增加了這個功能。處理器技術的進步使得RAID 6可能會及時延伸到所有的領域來避免災難的發(fā)生。