通過本篇您可以了解到:今天的RAID" title="RAID">RAID系統(tǒng),較上世紀80年代設定各RAID級別時,已經發(fā)生了天翻地覆地改變。同時還會了解為什么諸如寬條帶化" title="寬條帶化">寬條帶化、存儲虛擬化" title="虛擬化">虛擬化技術和糾刪編碼" title="糾刪編碼">糾刪編碼會逐漸改變RAID的最初設定。
可能沒有哪種技術像RAID那樣和企業(yè)級存儲行業(yè)緊密相關。這是因為將諸多物理磁盤驅動器組合成一個單獨的虛擬驅動器可以大大改善性能和可靠性。在2011年的RAID系統(tǒng)已與傳統(tǒng)的磁盤配置大相徑庭,或稱為RAID級別,該名稱出現(xiàn)在1988年的一份具有奠基意義的文件里“一個獨立磁盤冗余陣列,Redundant Arrays of Independent Disks ,簡稱RAID。”
過時的RAID概念
在當時的背景下,1988年文件中將RAID作為解決“常被掛起的I/O沖突”問題。那時表現(xiàn)不佳而且昂貴的硬盤驅動器成為了影響處理器和內存性能的瓶頸。RAID被設計用以將廉價的PC硬盤驅動器作為那時大型機中獨立、大容量而昂貴的硬盤的替代品。直至今日,5種RAID級別中的2種依舊應用廣泛:數(shù)據(jù)鏡像RAID 1,以及將數(shù)據(jù)和奇偶校驗碼分布在不同磁盤上的RAID 5。不過,RAID 3和RAID 4也有具體的使用。其使用某一塊磁盤存放校驗碼,而將數(shù)據(jù)分布存放在不同的磁盤上。
所有這5種最初的RAID級別都有一些共同點。他們都是將數(shù)據(jù)硬盤驅動器封裝成一體,使用其全部容量;各驅動器組之間完全獨立,也不靈活;并且所用的算法非常簡單,占用相當少的計算資源。這些都是上世紀90年代時非常合理的設計決定,不過時至今日,處理器運算能力和存儲容量成倍增長。處理器運算能力的增長方面我們可以看到:單獨的與或運算曾經是一項挑戰(zhàn),而今天控制器可以實時地處理里德.索羅門碼(一種糾錯碼)。硬盤驅動器的性能的發(fā)展遠落后于其在容量方面的發(fā)展;在之前二十年中,每MB的吞吐量和每MB的IOPS都下降了超過一千倍。
這一核心問題是RAID數(shù)據(jù)保護方式的系統(tǒng)之后要去解決的:現(xiàn)代系統(tǒng)的要求已經和RAID最初設計時的初衷大相徑庭。今天的企業(yè)級存儲系統(tǒng)完全不是一個使用100塊小型驅動器和簡單控制器的大型機系統(tǒng),其具備驚人的處理能力,可同時滿足成百客戶端對SAN或NAS網絡的訪問。死板的硬盤驅動器設定在現(xiàn)代數(shù)據(jù)中心中并無多大意義。
RAID的下一步發(fā)展:寬條帶化、存儲虛擬化技術和糾刪編碼
存儲生產商們已經快速地修正改善RAID級別,來滿足其客戶的需要。寬條帶化、存儲虛擬化技術和糾刪編碼等技術正逐漸改變著RAID的最初設定。然而,很多這方面的工作沒有被正式宣布,對客戶保持透明,并保留原有的相關術語。
EMC、HP和其它的一些廠商完全摒棄了上世紀90年代中整個磁盤的理念,在分布在諸多驅動器之間的容量分割區(qū)里設定RAID 1和RAID5。本世紀諸如3PAR和Compellent等公司更進一步,其寬條帶化技術在每個硬盤驅動器中都只存放很少的數(shù)據(jù)。且將數(shù)據(jù)分散在各不同的驅動器之間提高了平均性能,而且這樣在發(fā)生故障時,降低了重構RAID所需的時間。雖然許多陣列仍依賴嚴格的磁盤組的定義,不過很多高端設備已經將數(shù)據(jù)更廣泛地分布。
和服務器虛擬化類似,存儲虛擬化打破了物理和邏輯系統(tǒng)的嚴格聯(lián)接。虛擬化的陣列將磁盤和文件系統(tǒng)提供給主機端,而不考慮后端特定磁盤組。這使得數(shù)據(jù)可以在各RAID組、硬盤驅動器、閃存存儲、甚至各陣列之間靈活地移動。在較低的層面,傳統(tǒng)意義上的RAID依舊被使用著,不過存儲虛擬化克服了其不靈活的布局以及性能上的限制。
正如我在八月份的一篇技巧中提到的,糾刪編碼遠不像典型的RAID系統(tǒng)中使用的簡單的奇偶校驗那樣,而是一種全新的數(shù)據(jù)保護函數(shù)。雖然經常被看作是“雙奇偶校驗”,絕大部分的RAID 6部署其實是采用了里德.索羅門碼,較之于基本的奇偶校驗更具優(yōu)勢。這樣的系統(tǒng)可以不僅恢復丟失的數(shù)據(jù),而且可以檢測數(shù)據(jù)的不一致性。一些系統(tǒng)將數(shù)據(jù)分布在各驅動器之間、各存儲節(jié)點之間、甚至各地之間以獲取更高級別的可靠性。雖然這些計算方式在上世紀80年代就已經被廣泛了解,但計算能力的不足使得其難以利用在存儲陣列上。
后RAID時代
今天企業(yè)級存儲系統(tǒng)更希望將這些現(xiàn)代化的數(shù)據(jù)保護技術應用在其傳統(tǒng)RAID級別里,而且至少會使用到一定的虛擬化技術。數(shù)據(jù)存儲購買者往往會面對諸多新技術概念而變得難以進行評估。因此有必要拋棄過時的RAID經驗主義而關注現(xiàn)實工作中系統(tǒng)所需的性能和可管理性。以往要獲取高性能的唯一途徑就是將數(shù)據(jù)條帶化(或稱為RAID 0)和RAID 1結合,形成RAID 0+1或稱RAID 10系統(tǒng)。而在現(xiàn)代系統(tǒng)中則可配置DRAM和閃存,無需用RAID 1犧牲50%的存儲容量,寬條帶化和自動分級即可以提供更高的性能。相類似的,數(shù)據(jù)庫管理員也因為傳統(tǒng)部署上性能的局限而不愿意采用RAID 5。但今天的系統(tǒng)已經可以克服這些問題,提供較基本的鏡像更高的性能,以滿足數(shù)據(jù)庫管理員的要求。
各種新的技術使得RAID技術更為普及,但并不是說所有的RAID系統(tǒng)都是一樣的。陣列中處理器的運算能力和緩存的容量可以在布置硬盤驅動器外提供更多性能。硬盤驅動器日益增大的容量可以使得小型陣列作為大型系統(tǒng)的不錯的替代品,當然性能上會差一些。簡而言之,沒有人能假定一個系統(tǒng)的實際性能。
對存儲采購者而言,最佳的策略是檢測實際工作環(huán)境中存儲設備的性能而非根據(jù)RAID級別進行推算。他們可以向供應商索取各種參考信息,并檢驗這樣的一個系統(tǒng)是否能支撐其應用。RAID并非已經淘汰,不過企業(yè)級存儲中的關鍵問題已經遠遠超過了RAID。