关于RAID (2)

{ Posted on 星期六, 六月 27, 2009 by Kaiser.XKw }

一般用途:可能的應用層面

雖然RAID 0是最快的模式,但同時也是最危險的一種。比方說,如果您用4台硬碟組成RAID 0的陣列,可以將資料傳輸率拉到每秒100 MB的門檻以上,不過容錯率卻會趨近於零。要知道硬碟也是機械設備,經過使用後它也會老化或故障,所以機械零件所導致的損壞只是時間問題罷了。但就算只發生了電路上的小錯誤,或製造上的小缺失,也都可能造成大災難。

因此RAID 0對長期保存資料來講並非是個好選擇,而主要應用在暫存資料用的磁碟,像是檔案或是資料庫伺服器等。如果系統本身需要隨時備份,那RAID 1是最佳選擇。如果您有可以熱插拔的設備,您可以在電腦運作中交換硬碟,來將資料備份到不同電腦上容量相同的不同硬碟。接著把硬碟接回電腦,RAID 1模式將會再次啟動,繼續保持資料備份的同步性。

RAID 1純粹只是即時鏡射(mirror)硬碟的資料(特定情況下,也可能鏡射任何RAID陣列),所以許多人會有誤解,以為這個模式無法對效能有所改善。雖然寫入動作的確和只有一顆硬碟時沒有兩樣,但是讀取資料時理論上是可以達到和RAID 0相同的速度的。這只是理論上的計算,因為這種情況是以資料同時從所有陣列內磁碟機上讀取來計算的,但實際上資料讀取的動作,沒有辦法像RAID 0這樣分散的很確實。這部份控制器會以特殊方式來處理分散讀取的動作。

如果您著重在最大限度的資料安全性,以及最低限度的資料救援花費時間(像是簡易伺服器等),那RAID 1就有用了。大多數RAID控制器都能夠在硬碟經過交換後,自動進行獨立的資料回復動作。但只有在您的硬碟安裝在可熱插拔的硬碟櫃中,才能夠即時進行回復。

RAID 3的普及率已經越來越低,因為RAID 5不但提供更多優點,缺點也要來的少。在RAID 3模式中,其中一台硬碟用來存放同位元檢查值。它最大的優點在於能夠把資料分散到各硬碟上,在大幅提升資料傳輸率的同時,也可以防止單顆硬碟損壞。不過由於同位元檢查值只寫入一台硬碟,所以寫入效能也大幅下降。

RAID 3通常應用在存放大多數靜態資料,或是需要RAID 1以上的效能,但同時也要兼顧資料安全的伺服器上。這也是讓寫入性能的影響不那麼大的簡單方式。

RAID 5幾乎佔了目前高階伺服器的大多數。如果您使用4~7顆硬碟,而且硬碟容量夠大,能容許較大的分割區,那這種模式的效能就顯得十分出色。和RAID 3不同的是,它的同位元檢查值也一樣分散在各硬碟上,這對效能會產生正面的影響。這也讓RAID 5模式在各種應用上都能提供十分高的效能。

逼近極限:巢狀RAID陣列

如果您覺得以上陣列所提供的傳輸率還不夠高,您可以組合各種RAID模式。這種架構稱作巢狀RAID陣列(Nested RAID,或多重RAID陣列),不過您應該很少有機會接觸它。這也是當然的,因為傳統的RAID陣列已經夠快了。

就我們所知,IDE市場中並沒有支援巢狀RAID陣列的產品(RAID 10模式例外)。至於SCSI產品方面,如果您想架設一個規格超級豪華的巢狀RAID陣列,最好先準備幾百到幾千美元買張RAID卡吧。

RAID 0+1模式

最常見的巢狀RAID陣列應該是0+1模式。這個模式需要最少4台硬碟,而且數目必須要是偶數。用其中半數硬碟設定出磁碟組(RAID 0),再把另外半數硬碟用來鏡射(RAID 1)這些硬碟。這樣一來,效能和單用一顆硬碟比起來,讀取速度可以快上4倍,寫入效能也會是原本的2倍。

RAID 50(5+0)模式

覺得幾顆硬碟組成的RAID 5陣列速度還不夠快嗎?那不妨建立一個包含兩個架構相同RAID 5陣列的磁碟組吧。雖然這樣一來資料安全性已經消失(在此陣列本身算是一台硬碟),但理論上效能還能再增加一倍。實際上您要考慮到的,將會是PCI界面與網路頻寬的限制,而不是硬碟陣列的速度。

在巢狀RAID陣列(或多重RAID陣列)中,命名是個重要的因素。雖然RAID 0+1的磁碟組只用在下層,鏡射只用在上層,但RAID 10則剛好相反。不過因為RAID 10並不實用,所以這裡誤用名稱也顯得沒那麼重要。

巢狀RAID與安全性:不是1就是0

雖然大多數人應該不會有機會接觸到這麼大型的磁碟陣列,不過我們還是再多提一下RAID的注意事項吧。

雖然將多重RAID陣列組合起來,是有效且穩定的方式,但要保有完整的資料安全性,必須每個陣列本身都具有安全性的保證。像以RAID 0陣列組成的RAID 5陣列就不安全,因為RAID 0當中只要有硬碟故障,那資料仍舊無法救回。

RAID模式一覽:安全性與效能分析

RAID模式一覽:安全性與效能分析

RAID模式硬碟數量資料安全性可利用性實際容量傳輸效能架設成本
01+略差極差100%極佳極低
12良好良好50%尚可偏低
33+尚可良好(x-1)/ x尚可中等
53+尚可良好(x-1)/ x良好中等
0+14、6、8…良好良好50%良好中等

成功的關鍵:區塊大小

在RAID陣列中,區塊大小(block size)基本上也會影響資料分割的大小(RAID 1例外)。區塊大小與浪費空間等因素,也會反映在RAID設定上:比方說區塊大小是64 KB,那每次至少就要用掉64 KB,就算區塊裡只存了一個2 KB的文字檔也一樣用掉64 KB的空間。所以平均檔案越小,區塊大小也應該設小一點。

區塊大小也是影響效能的重要因素,它決定資料分散到2台或更多硬碟時的最小單位。假設區塊大小仍舊是64 KB,比64 KB小的檔案就只會寫到其中一台硬碟,這對RAID陣列來說,效能其實和只有一顆硬碟時完全一樣。

相對的一個150 KB的檔案就會分散到3台硬碟上(如果有3台以上的話),分成64+64+22 KB來存。這樣一來控制器就會同時從3台硬碟上讀取資料,也能夠大幅減少讀取時間。

No Response to "关于RAID (2)"