組建 NAS 磁碟腦袋不再卡卡,RAID 模式全方位分析

ADVERTISEMENT

RAID 6:

  • 優點:容錯硬碟數量比 RAID 5 多 1 顆。
  • 缺點:運算量比 RAID 5 大、空間利用率比 RAID 5 低。
  • 硬碟數量:至少 4 個。

在 RAID 5 的基礎上,額外再加入 1 組奇偶校驗碼,就形成了 RAID 6 磁碟陣列;也就是說,RAID 6 內部有 2 套並行使用的演算法,用以產生奇偶校驗碼。這 2 組演算法是不同的,除原先 RAID 5 使用的 XOR 之外,另 1 套演算法就交由廠商自行選擇。RAID 6 由於多出 1 組奇偶校驗碼需要儲存的關係,所以磁碟陣列中只有 n-2 顆實體硬碟用以儲存真正的資料。

RAID 6 的效能、安全性、空間利用率都可用 RAID 5 的方式來推估,在處理器足以負擔 2 套演算法的情況下,存取效能約是單顆硬碟的 n-2 倍;安全性則是可同時容忍 2 顆硬碟損毀,空間利用率則是比 RAID 5 少了 1 顆硬碟(邏輯上須 2 顆實體硬碟的空間擺放奇偶校驗碼)。

組建 NAS 磁碟腦袋不再卡卡,RAID 模式全方位分析
▲RAID 6。

RAID 2、3、4 到哪去了?

筆者以跳過 RAID 2、RAID 3、RAID 4 的方式敘述 RAID 0、RAID 1、RAID 5、RAID 6,主要的原因是這幾種 RAID 方式並不常用。RAID 2 是 RAID 0 的改良版,將資料經由 1 種稱之為「漢明碼」的演算法計算後放入硬碟中(以 bit 為單位分割),經過漢明碼編碼的資料會略微增大,但換來了偵測與校正錯誤的功能。RAID 3 則是以 byte 為單位分割資料後儲存,同時改換奇偶校驗碼;RAID 4 同 RAID 3,但將資料以 block 為單位進行分割。

缺點在於 RAID 2 以 bit 為單位分割資料,加上漢明碼編碼後的影響,最少需要 7 顆實體硬碟才能夠建立(4 顆存放實體資料,3 顆存放校驗資料),架設門檻十分的高,空間利用率也不佳。RAID 3、4 最少需要 3 顆硬碟才可使用,皆可容忍 1 顆硬碟損毀;RAID 3 以 byte 為單位分割、RAID 4 換成以 block 為單位,但是奇偶校驗碼均固定儲存在 1 顆實體硬碟上,而非如 RAID 5 交錯的儲存在各顆硬碟,這使得無論讀取哪個部分的資料,都會存取到儲存奇偶校驗碼的那顆硬碟,導致單顆硬碟負荷過重,容易提早往生。

效能上 RAID 3 的隨機存取不佳,RAID 4 則是隨機寫入不佳,綜合以上原因,在現今的磁碟陣列中相當少(幾乎可以說是沒有)見到 RAID 2、3、4 的建立方式。

組建 NAS 磁碟腦袋不再卡卡,RAID 模式全方位分析
▲RAID 4。

組建 NAS 磁碟腦袋不再卡卡,RAID 模式全方位分析
▲各種RAID的比較表。(假設硬碟容量相等、額外的校驗運算不為效能瓶頸)

JBOD 與混合使用

除以上介紹的 RAID 之外,讀者還可見到 JBOD 這個縮寫或是比 RAID 6 還要大的數字。首先來說明 JBOD 的意義,JBOD 為 ”Just a Bunch Of Disks” 的縮寫,意思就是「一堆硬碟」,指的是 RAID 磁碟陣列以外的所有組態。

實作上 JBOD 有 2 種方式,第一種與我們直接將硬碟安裝在電腦中相同,各顆實體各自管理自己的容量,當然也可進行磁碟區分割。第二種則是能夠將不同實體硬碟的空間串在一起,例如 2 顆 1TB 硬碟串成 1 個 2TB 的空間運用,如此能夠放入大於 1TB 的單一檔案。由於 JBOD 可以指上述 2 種情況的其中 1 種,實際進行設定前建議仔細閱讀,硬碟控制器∕RAID 擴充卡廠商的說明。

在廠商支援的情況下,使用者甚至可以將 2 種以上的 RAID 組態放在同 1 組磁碟陣列內,也就是有時可以看到的雙位數 RAID 01、10、50、60……等。建立的方式也很好理解,首先利用前位數字的 RAID 方式建立陣列,接著再將後方數字所代表的陣列建立其上。譬如 RAID 10 就是先建立 2 組 RAID 1,接著這 2 組 RAID 1 再組合成 RAID 0;RAID 50 就是先建立 2 組 RAID 5,接著再組合成 1 組 RAID 0。

除了支援度很少的 RAID 2、3、4 之外,一般來說無論是軟體或硬體式 RAID 都支援 RAID 0、RAID 1、RAID 5、RAID 6 或混合使用(實際情況依照連接埠的多寡而有所差異),實務上的做法則比較傾向於 RAID 10、50、60,而非 RAID 01、05、06。舉例來說,RAID 50 和 RAID 05 最少所需實體硬碟均為 6 顆,前者先行建立 2 組 RAID 5 後再組合成 RAID 0,因此各組 RAID 5 之中皆容許有 1 顆(共 2 顆)硬碟損毀失效,上層的 RAID 0 均能夠正常運作;若是先行建立 RAID 0 再組合成 RAID 5,最多僅能容忍 1 顆損毀或是同一組RAID 0內的硬碟均損毀,這其中的因果關係可以請讀者稍微思考一下。

組建 NAS 磁碟腦袋不再卡卡,RAID 模式全方位分析
▲RAID 50。

預備空間 spare

部分較為高階的產品,除了指定硬碟作為 RAID 使用之外,還可指定硬碟作為 spare 之用。spare 的意思就是多餘、備用的意思,被指定為 spare 角色的硬碟平常接上但不使用,一旦 RAID 陣列其中的硬碟發生問題,spare 硬碟就會立刻替換原本那顆損壞硬碟的功能。

因為硬碟損壞的當下很有可能沒有資訊人員能夠立刻處理,為了避免在資訊人員替換掉損毀硬碟之前,磁碟陣列內部的硬碟損毀數量超過 RAID 容許個數,才會有 spare 硬碟的這種作法。

選擇適合的 RAID 模式

了解 RAID 各種模式之後,最終還是要回到問題的起點「我該使用哪種模式?」。RAID 0 和 RAID 1 最少都需要 2 顆硬碟,RAID 0 是效能和儲存空間的最大化,不注重安全性,因此比較適合放一些消失不見也沒關係的檔案,例如快取、或是整理檔案時的暫存空間,RAID 1 則是安全性最大化,適合放一些重要的資料。

在 4bay 規格的 NAS 產品中,RAID 5、RAID 6、RAID 10則是可以放在一起探討,以安全性來排序由高至低為 RAID 6>RAID 10>RAID 5,空間利用率則是 RAID 5>RAID 6=RAID 10。此外還必須加入處理效能去探討,如果處理效能不高,那麼使用 RAID 10 能夠獲得比 RAID 6、RAID 5 還要高的存取速度(因為不用運算校驗碼)。

延伸閱讀:

超過 2TB 的硬碟怎麼分割?

動手組裝多碟 RAID 外接盒(上):外接盒應用全面解析

動手組裝多碟 RAID 外接盒(中):9款平實價位 U3S6 介面 RAID 外接盒

動手組裝多碟 RAID 外接盒(下):效能先決 9 大外接盒傳輸見真章

HDD 新藍海,4 大 NAS 硬碟評測

使用 Facebook 留言

司馬雲
1.  司馬雲 (發表於 2015年2月10日 09:48)
為什麼我怎麼算,raid50跟05最多都能容許4顆硬碟壞掉?
而最少是3顆
raid50是(data1 data2 xor) (data1 data2 xor)
所以在最極端的情況下,可以容許data1、data2跟xor各死一顆,再加上剩下的任意一顆,所以有4顆
raid05則是(data1 data1) (data2 data2) (xor xor)
這也是一樣,data1、data2跟xor各死一顆,再加上剩下的任意一顆
請問這樣的推論有錯嗎?
小明
2.  小明 (發表於 2015年2月10日 10:42)
raid05是(data1 data2) (data3 data4) (xor1 xor2)呦

你寫的看起來應該是raid15
司馬雲
3.  司馬雲 (發表於 2015年2月10日 16:44)
原來是我搞錯raid1了@@
可是我還是想不透為什麼raid05是只能容許一顆硬碟損壞。
raid50為(dataA1 dataB1 xor1) (dataA2 dataB2 xor2)
資料被分為兩組
由於每組可以各壞一顆,所以是多最多兩顆

而raid05為(dataA1 dataB1) (dataA2 dataB2) (xor1 xor2)
資料被分為三組,最多可以壞掉其中一組
所以一樣是最多兩顆啊
小明
4.  小明 (發表於 2015年2月11日 00:48)
我覺得你這邊說的 raid05 沒有錯,是可以容許壞掉其中一組才對~
<( ̄︶ ̄)>

另外 raid50 那邊,應該是可以容許兩組 raid5 各壞一顆才對,寫最多兩顆感覺不是很精準 (因為其中一組 raid5 壞兩顆,raid50 也是整組壞光光)
users
5.  users (發表於 2015年2月16日 21:08)
應該是電腦王的解釋有點問題,當然也可能是目前的技術可以做到也不一定。
就個人所知沒有05、06、15這類模式,所謂01應該也不存在,因為這幾種組合至多是理論或者概念上的成立但是不實際,也就是說沒有0X、2X、3X、4X、X4、X3、X2、X5、X6、X7、X1等模式,只有0、1、5、10、50、60被廠商實作而已。
JBOD不屬於RAID的範疇,應該主要是由第三方磁碟控制晶片廠商們所發展出來的功能罷了。
所以不管是RAID控制器還是NAS附加的RAID功能在設定選擇上目前應該最多就這六種(0、1、5、10、50、60),視產品位階、等級、價格帶和推出的時間會有所不同。
0模式不具RAID意義(強化儲存於磁碟上的資料的存在安全性)只是一種功能,其餘1~6模式才是有意義的,而它們與0模式組合的結果其實是延伸性的應用。
簡單說:
RAID 0至少要兩個磁碟,只要壞任何一個就完蛋。
RAID 1至少要兩個磁碟並且總磁碟數必須為偶數,但能忍受在同一時間壞任何一個。
RAID 5至少要三個磁碟,理論上可以忍受在同一時間壞任何一個。
RAID 6至少要四個磁碟,理論上可以忍受在同一時間壞任何兩個。
RAID 50至少要六個磁碟,理論上可以忍受在同一時間壞任何屬於同一模式5組成中任何一個。
→勉強算可以壞兩個。
RAID 60至少要八個磁碟,理論上可以忍受在同一時間壞任何屬於同一模式6組成中任何兩個。
→勉強算可以壞四個。

大致上就這樣,再解釋下去就沒完沒了了...
囧rz
users
6.  users (發表於 2015年2月16日 22:28)
補充:
模式01、05在純RAID控制器時期(其中高階的獨立控制器產品有具有網路介面的機種可以算是NAS的老祖或前身)有過廠商實作。
並且05很少見因為不實際(比01更不實用),在當時01還算有實用價值。
至於RAID 10其實也不實際,只不過因為NAS的4-bay低檔產品只能以此方案達成儲存安全性以便提升產品價格、位階,稍好一點的產品應當都有模式5可以選用。
RAID 10至少要四個磁碟並且總磁碟數必須為4的倍數,同一時間允許故障的磁碟數不太固定,至少和RAID 1的最基本組合一樣是一個;其實RAID 1的非基本組合(總數兩個磁碟以上)在理論上的同一時間能忍受的磁碟故障數量就已經不太固定了。
簡單講以多數使用者或者實際情況來說若非控制器不提供模式5或者以上(6、50、60)的功能,兩個磁碟以上不會選RAID 1;四個磁碟以上沒人去設定成RAID 10的,因為這兩類組態設定的資料可用容量都最多只有磁碟總數的一半而已。
╮(╯_╰)╭
users
7.  users (發表於 2015年2月16日 22:43)
再補充:
RAID 3在純RAID控制器時期也曾有廠商實作過,因為比0、1、10模式而言有可用容量較大的優點;但在RAID 5被大量實作後就慢慢消失了(可以算是被取代掉)。
(≧▽≦)

發表回應

謹慎發言,尊重彼此。按此展開留言規則