RAID級別你選誰
RAID 在市場上的的應用,已經不是新鮮的事兒了,很多人都大略瞭解RAID的基本觀念,以及各個不同RAID LEVEL 的區分。但是在實際應用面,我們發現,有很多使用者對於選擇一個合適的RAID LEVEL,仍然無法很確切的掌握,尤其是對於RAID 0+1 (10),RAID 3,RAID 5之間的選擇取捨,更是舉棋不定。
本文將針對RAID 0+1/10、RAID 3以及RAID 5的工作原理和特性,作一些分析和比較,以列出這些不同RAID階層所適合的應用,希望對各位能有原則性的幫助。
RAID條切“striped”的存取模式
在使用資料條切﹝Data Stripping﹞ 的RAID 系統之中,對成員磁碟驅動器的存取方式,可分為兩種:
並行存取﹝Paralleled Access﹞
獨立存取﹝Independent Access﹞
RAID 2和RAID 3 是採取並行存取模式。
RAID 0、RAID 4、RAID 5及RAID 6則是採用獨立存取模式。
平行存取模式
並行存取模式支援裡,是把所有磁碟驅動器的主軸馬達作精密的控制,使每個磁碟的位置都彼此同步,然後對每一個磁碟驅動器作一個很短的I/O資料傳送,如此一來,從主機來的每一個I/O 指令,都平均分佈到每一個磁碟驅動器。
為了達到並行存取的功能,RAID 中的每一個磁碟驅動器,都必須具備幾乎完全相同的規格:轉速必須一樣;磁頭搜尋速度﹝Access Time﹞必須相同;Buffer 或Cache的容量和存取速度要一致;CPU處理指令的速度要相同;I/O Channel 的速度也要一樣。總而言之,要利用並行存取模式,RAID 中所有的成員磁碟驅動器,應該使用同一廠牌,相同型號的磁碟驅動器。
並行存取的基本工作原理
假設RAID中共有四部相同規格的磁碟驅動器,分別為磁碟驅動器A、B、C和D,我們在把時間軸略分為T0、T1、T2、T3和T4:
T0: RAID控制器將第一筆資料傳送到A的Buffer,磁碟驅動器B、C和D的Buffer都是空的,在等待中
T1: RAID控制器將第二筆資料傳送到B的Buffer,A開始把Buffer中的資料寫入扇區,磁碟驅動器C和D的Buffer都是空的,在等待中
T2: RAID控制器將第三筆資料傳送到C的Buffer,B開始把Buffer中的資料寫入扇區,A已經完成寫入動作,磁碟驅動器D和A的Buffer都是空的,在等待中
T3: RAID控制器將第四筆資料傳送到D的Buffer,C開始把Buffer中的資料寫入扇區,B已經完成寫入動作,磁碟驅動器A和B的Buffer都是空的,在等待中
T4: RAID控制器將第五筆資料傳送到A的Buffer,D開始把Buffer中的資料寫入扇區,C已經完成寫入動作,磁碟驅動器B和C的Buffer都是空的,在等待中
如此一直迴圈,一直到把從主機來的這個I/O 指令處理完畢,RAID控制器才會受處理下一個I/O 指令。重點是在任何一個磁碟驅動器準備好把資料寫入扇區時,該目的扇區必須剛剛好轉到磁頭下。同時RAID控制器每依次傳給一個磁碟驅動器的資料長度,也必須剛剛好,配合磁碟驅動器的轉速,否則一旦發生miss,RAID 效能就大打折扣。
並行存取RAID的最佳應用
並行存取RAID之架構,以其精細的馬達控制和分佈之資料傳輸,將陣列中每一個磁碟驅動器的效能發揮到最大,同時充分利用Storage Bus的頻寬,因此特別適合應用在大型、資料連續的檔案存取應用,例如:
影像、視訊檔案伺服器
資料倉儲系統
多媒體資料庫
電子圖書館
印前或底片輸出檔案伺服器
其它大型且連續性檔案伺服器
由於並行存取RAID架構之特性,RAID 控制器一次只能處理一個I/O要求,無法執行Overlapping 的多工,因此非常不適合應用在I/O次數頻繁、資料隨機存取、每筆資料傳輸量小的環境。同時,因為並行存取無法執行Overlapping 的多工,因此沒有辦法"隱藏"磁碟驅動器搜尋﹝seek﹞的時間,而且在每一個I/O的第一筆資料傳輸,都要等待第一個磁碟驅動器旋轉延遲﹝rotational latency﹞,平均為旋轉半圈的時間,如果使用一萬轉的磁碟驅動器,平均就需要等待50 usec。所以機械延遲時間,是並行存取架構的最大問題。
獨立存取模式
相對於並行存取模式,獨立存取模式並不對成員磁碟驅動器作同步轉動控制,其對每個磁碟驅動器的存取,都是獨立且沒有順序和時間間格的限制,同時每筆傳輸的資料量都比較大。因此,獨立存取模式可以儘量地利用overlapping 多工、Tagged Command Queuing等等高階功能,來"隱藏"上述磁碟驅動器的機械時間延遲﹝Seek 和Rotational Latency﹞。
由於獨立存取模式可以做overlapping 多工,而且可以同時處理來自多個主機不同的I/O Requests,在多主機環境﹝如Clustering﹞,更可發揮最大的效能。
獨立存取RAID的最佳應用
由於獨立存取模式可以同時接受多個I/O Requests,因此特別適合應用在資料存取頻繁、每筆資料量較小的系統。例如:
線上交易系統或電子商務應用
多使用者資料庫
ERM及MRP 系統
小檔案之檔案伺服器
一般常用的RAID階層,分別是RAID 0、RAID1、RAID 3、RAID 4以及RAID 5,再加上二合一型 RAID 0+1﹝或稱RAID 10﹞。我們先把這些RAID級別的優、缺點做個比較:
RAID級別 相對優點 相對缺點
RAID 0 存取速度最快 沒有容錯
RAID 1 完全容錯 成本高
RAID 3 寫入效能最好 沒有多工功能
RAID 4 具備多工及容錯功能 Parity 磁碟驅動器造成效能瓶頸
RAID 5 具備多工及容錯功能 寫入時有overhead
RAID 0+1/RAID 10 速度快、完全容錯 成本高
接下來,我們分別針對RAID 3、RAID 5以及RAID 0+1/RAID 10作深入的討論。
RAID 3特點與應用
RAID 3 是將資料先做XOR 運算,產生Parity Data後,在將資料和Parity Data以並行存取模式寫入成員磁碟驅動器中,因此具備並行存取模式的優點和缺點。進一步來說,RAID 3每一筆資料傳輸,都更新整個Stripe﹝即每一個成員磁碟驅動器相對位置的資料都一起更新﹞,因此不會發生需要把部分磁碟驅動器現有的資料讀出來,與新資料作XOR運算,再寫入的情況發生﹝這個情況在RAID 4和RAID 5會發生,一般稱之為Read、Modify、Write Process,我們姑且譯為為讀、改、寫過程﹞。因此,在所有RAID級別中,RAID 3的寫入效能是最好的。
RAID 3的 Parity Data 一般都是存放在一個專屬的Parity Disk,但是由於每筆資料都更新整個Stripe,因此,RAID 3的 Parity Disk 並不會如RAID 4的 Parity Disk,會造成存取的瓶頸。
RAID 3的並行存取模式,需要RAID 控制器特別功能的支援,才能達到磁碟驅動器同步控制,而且上述寫入效能的優點,以目前的Caching 技術,都可以將之取代,因此一般認為RAID 3的應用,將逐漸淡出市場。
RAID 3 以其優越的寫入效能,特別適合用在大型、連續性檔案寫入為主的應用,例如繪圖、影像、視訊編輯、多媒體、資料倉儲、高速資料擷取等等。
RAID 4特點與應用
RAID 4 是採取獨立存取模式,同時以單一專屬的Parity Disk 來存放Parity Data。RAID 4的每一筆傳輸﹝Strip﹞資料較長,而且可以執行Overlapped I/O,因此其讀取的效能很好。
但是由於使用單一專屬的Parity Disk 來存放Parity Data,因此在寫入時,就會造成很大的瓶頸。因此,RAID 4並沒有被廣泛地應用。
RAID 5特點與應用
RAID 5也是採取獨立存取模式,但是其Parity Data 則是分散寫入到各個成員磁碟驅動器,因此,除了具備Overlapped I/O 多工效能之外,同時也脫離如RAID 4單一專屬Parity Disk的寫入瓶頸。但是,RAI?D 5在座資料寫入時,仍然稍微受到"讀、改、寫過程"的拖累。
由於RAID 5 可以執行Overlapped I/O 多工,因此當RAID 5的成員磁碟驅動器數目越多,其效能也就越高,因為一個磁碟驅動器再一個時間只能執行一個 Thread,所以磁碟驅動器越多,可以Overlapped 的Thread 就越多,當然效能就越高。但是反過來說,磁碟驅動器越多,陣列中可能有磁碟驅動器故障的機率就越高,整個陣列的可靠度,或MTDL (Mean Time to Data Loss) 就會降低。
由於RAID 5將Parity Data 分散存在各個磁碟驅動器,因此很符合XOR技術的特性。例如,當同時有好幾個寫入要求發生時,這些要寫入的資料以及Parity Data 可能都分散在不同的成員磁碟驅動器,因此RAID 控制器可以充分利用Overlapped I/O,同時讓好幾個磁碟驅動器分別作存取工作,如此,陣列的整體效能就會提高很多。
基本上來說,多人多工的環境,存取頻繁,資料量不是很大的應用,都適合選用RAID 5 架構,例如企業檔案伺服器、WEB 伺服器、線上交易系統、電子商務等應用,都是資料量小,存取頻繁的應用。
RAID 0+1﹝RAID 10﹞
RAID 0+1/RAID 10,綜合了RAID 0 和 RAID 1的優點,適合用在速度需求高,又要完全容錯,當然經費也很多的應用。RAID 0和RAID 1的原理很簡單,合起來之後還是很簡單,我們不打算詳細介紹,倒是要談談,RAID 0+1到底應該是RAID 0 over RAID 1,還是RAID 1 over RAID 0,也就是說,是把多個RAID 1 做成RAID 0,還是把多個RAID 0 做成RAID 1?
RAID 0 over RAID 1
假設我們有四臺磁碟驅動器,每兩臺磁碟驅動器先做成RAID 1,再把兩個RAID 1做成RAID 0,這就是RAID 0 over RAID 1:
(RAID 1) A = Drive A1 + Drive A2 (Mirrored)
(RAID 1) B = Drive B1 + Drive B2 (Mirrored)
RAID 0 = (RAID 1) A + (RAID 1) B (Striped)
RAID 1 over RAID 0
假設我們有六臺磁碟驅動器,每兩臺磁碟驅動器先做成RAID 0,再把兩個RAID 0做成RAID 1,這就是RAID 0 over RAID 1:
(RAID 0) A = Drive A1 + Drive A2 (Striped)
(RAID 0) B = Drive B1 + Drive B2 (Striped)
RAID 1 = (RAID 1) A + (RAID 1) B (Mirrored)
在這種架構之下,如果 (RAID 0) A有一臺磁碟驅動器故障,(RAID 0) A就算毀了,當然RAID 1仍然可以正常工作;如果這時 (RAID 0) B也有一臺磁碟驅動器故障,(RAID 0) B也就算毀了,此時RAID 1的兩磁碟驅動器都算故障,整個RAID 1資料就毀了。
因此,RAID 0 OVER RAID 1應該比RAID 1 OVER RAID 0具備比較高的可靠度。所以我們建議,當採用RAID 0+1/RAID 10架構時,要先作RAID 1,再把數個RAID 1做成RAID 0。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/66009/viewspace-812502/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- AI晶片之爭,你選誰?AI晶片
- 五位譯者你選誰?
- HP FC60 RAID級別更改方案AI
- 在Linux中,RAID級別有哪些?LinuxAI
- 在 Linux 下使用 RAID(一):介紹 RAID 的級別和概念LinuxAI
- RAID選項AI
- 《星際爭霸II》AI機器人挑戰頂級職業選手,你Pick誰?AI機器人
- IT優化級別的選擇優化
- Raid1 Raid2 Raid5 Raid6 Raid10如何選擇使用AI
- 別躲在口罩後面不出聲,AI知道你是誰AI
- 詳細解讀:不同RAID級別的優缺點對比AI
- 在Linux中,RAID級別和它們的用途是什麼?LinuxAI
- 程式設計師級別,你到哪一級?程式設計師
- 掃盲:Raid0、Raid1、Raid5及Raid10的區別AI
- 轉載:RAID5和RAID10,哪種RAID更適合你AI
- oracle raid的區別使用OracleAI
- RAID 1+0和RAID 0+1的區別AI
- 選擇旅遊國家;及誰多誰少分析
- 你打算賺誰的錢?
- PostgreSQL鎖等待監控珍藏級SQL-誰堵塞了誰SQL
- 對比復現34個預訓練模型,PyTorch和Keras你選誰?模型PyTorchKeras
- RAID5和RAID10在磁碟讀寫選擇對比AI
- 程式設計師的八種級別,你在哪一級?程式設計師
- 追蹤網賺遊戲:是誰割了你,而你又割了誰?遊戲
- 誰說你只是 "會用"jQuery?jQuery
- 誰動了你的mail(),PHP?AIPHP
- 誰有樹型選單的例子
- 蘋果iPhone XS/MAX與iPhone XR區別對比 三款手機該選誰?蘋果iPhone
- VR進階終極指南:三種級別如何選?VR
- JavaScript誰動了你的程式碼JavaScript
- IntelliJ IDEA 15款 神級超級牛逼外掛推薦(超讚,誰用誰知道)IntelliJIdea
- 人臉識別的「巔峰」之作!甭管整成啥樣,3秒扒出你是誰
- 剖析:Python與Java相比,選誰好?PythonJava
- 修改系統識別raid卡順序AI
- 小米5與樂Max 2區別對比評測 誰是頂級旗艦代表
- 你的遊戲型別選擇早被設計師掌握遊戲型別
- Raid Raid0 Raid1 Raid5 Raid0+1 Raid1+0AI
- VR玩家進階終極指南:三種級別如何選?VR