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