2015.02.10 09:00

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

ADVERTISEMENT

不論是什麼原因而購買了  NAS  這項產品,大部分的使用者都很難逃過「該選哪種  RAID  模式」這一關。心懷「聽說選  RAID 0  比較快可是很危險?」、「為什麼  RAID 1  會讓可用空間減半?」、「相傳  RAID 5 在重建時很容易崩解?」等困惑嗎?讓我們來一解你心中對 RAID 疑惑。……

RAID 為 Redundant Array of Independent Disks(獨立硬碟冗餘陣列、容錯式磁碟陣列)的縮寫,主要就是藉由 1 群實體硬碟的不同組合方式,達到更高的效能或是資料安全性。RAID 在電腦上已經行之有年,翻翻主機板的使用說明書,不難找到晶片組支援 RAID 的資訊,只不過一般使用者很少啟用這項功能,消費性機殼產品設計也不容易讓使用者替換掉損壞的硬碟。

直到近幾年 NAS 這項產品的需求大開,存取效能也逐漸拉到 50~60MB/s 以上,加上傳統機械硬碟逐漸受到 SSD 的夾擊,硬碟廠商需要另外開拓市場,於是乎和 NAS 幾乎形影不離的 RAID,才又得到大家關愛的眼神。

因為 NAS 的主要工作就是儲存資料,而 NAS 中常見的資料儲存媒體即為硬碟,硬碟儲存空間該如何分配又會產生不同的效能和安全性,因此當使用者新建立 1 台 NAS 系統時,一定會遇到設定精靈詢問想用何種 RAID 方式。當然現在廠商設計都很不錯,能夠根據使用者放入的硬碟數量自動選擇 RAID 模式,不過除了下一步、下一步的無腦點選外,身為人還是要有點自我意識,了解何種 RAID 模式才是最適合自己的使用情境。

ADVERTISEMENT

RAID 0:

  • 優點:使用 n 顆硬碟,即可擁有將近 n 倍的讀寫效能。
  • 缺點:資料安全性較低,同組陣列中任一硬碟發生問題就會造成資料遺失。
  • 硬碟數量:最少 2 個。

RAID 0 講求效能的極大化,使用者設定數顆實體硬碟在磁碟陣列中,欲寫入、讀取此硬碟陣列的資料,就會分成數份同時寫入、讀取。理論上來說,RAID 0 磁碟陣列中有幾顆實體硬碟,讀取、寫入效能就呈現倍數成長。若是磁碟陣列中的硬碟存取效能不一,則以最低效能硬碟的存取能力作為基準估算。

因為將資料拆分寫入硬碟的策略,使得 RAID 0 能夠使用到所有硬碟加總起來的容量。如果是在各個實體硬碟容量不同的情況,則能夠依照最小容量的那顆硬碟為標準建立 RAID 0,其它較大容量硬碟的多餘空間,則依磁碟陣列控制器的不同,而有不同的結果;較低階的控制器可能無法使用這部分的空間,高階的控制器則可做另外的規劃,例如做為單一的儲存空間使用或是組合成其它的 RAID 組態。

此外最近採用 PCIe 為連接介面的消費型 SSD,也經常使用 RAID 0 作為內部儲存空間的組合方式,因為 SSD 內部的快閃記憶體控制器原本就擁有較多層、較複雜的糾錯演算法,加上快閃記憶體和傳統硬碟的每儲存單位售價還是存在著一定距離,採用其它 RAID 模式會讓售價提升不少,以至於產生這樣的結果。

ADVERTISEMENT


▲RAID 0。

RAID 1:

  • 優點:安全性依照陣列裡的實體硬碟數量倍數成長。
  • 缺點:空間利用率是所有 RAID 中最沒有效率的。
  • 硬碟數量:最少 2 個。

在 RAID 0 追求效能極端的彼岸,存在著強調資料安全性的 RAID 1,RAID 1 的資料儲存方式恰好與 RAID 0 相反,欲寫入硬碟的資料被複製成與硬碟相同數量的份數,分別寫入陣列中的各顆硬碟。如此一來每個硬碟內都擁有著同份資料的不同拷貝,只要陣列中的其中 1 顆硬碟還可使用,資料就不會遺失,可忍受 n-1 顆硬碟同時損毀(n 為陣列中實體硬碟的個數)。

效能部分則分為寫入和讀取 2 種不同狀況,寫入時因為須將資料複製多份寫入各顆硬碟,寫入效能與單顆硬碟差不多;讀取時則能夠同時從各顆硬碟同時讀取資料的不同部分,所以能夠和 RAID 0 相提並論,約是單顆硬碟讀取效能乘上陣列中的硬碟個數,不過也有以單顆硬碟讀取的設計。

ADVERTISEMENT

陣列可使用容量是 RAID 1 最大的缺點,由於各實體硬碟中的資料幾乎是以鏡像的方式儲存,因此無論陣列中放入了多少顆硬碟,可用容量都是以最小的那顆硬碟為主;同 RAID 0,如果陣列中有著硬碟容量不一的情形,大硬碟的剩餘容量能否可利用端看控制器的設計,之後的 RAID 模式也是如此,將不再贅述。


▲RAID 1。

RAID 5:

  • 優點:兼顧空間利用率與安全性。
  • 缺點:需要額外的運算資源,僅能忍受 1 個硬碟損毀。
  • 硬碟數量:至少 3 個。

RAID 5 使用了和 RAID 0、RAID 1 較為不同的策略,相較 RAID 0 將資料拆分以及 RAID 1 的資料複製,RAID 5 則是將資料運算過後的糾錯檢查碼儲存起來,使用奇偶校驗碼、也就是 XOR 運算。詳細實作方式為,將資料分成 n-1 份(n 為磁碟陣列中的實體硬碟個數),分開寫入至各顆硬碟中。剩餘的那個空間,就會將分成 n-1 份的資料進行 XOR 運算後寫入;需注意的是資料與校驗碼是以交錯的方式放在各顆硬碟上,而不是有顆硬碟專門儲存校驗碼。

ADVERTISEMENT

由於 RAID 5 多了 XOR 運算,所以效能的評估比較複雜,如果運算效能相當充足,存取效能可以接近於採用 n-1 顆硬碟的 RAID 0;如果 XOR 運算效能不足,則存取效能將會無限下探。加強效能的方式,以軟體∕韌體、驅動程式方式搭建的磁碟陣列來說,就是加強處理器的運算效能,如果是硬體獨立運算方式的 RAID 擴充卡∕擴充晶片,就是依照晶片上的 XOR 運算引擎為主。

此外還可開啟「寫入快取」的功能,先將資料寫入快取記憶體(電腦的系統記憶體、陣列卡上的 DRAM 模組等)中,之後再慢慢運算寫入硬碟中,在作業系統端來看就是已經寫入硬碟了。但是資料先行寫入斷電後就會消失的 DRAM,所以開啟寫入快取有著一層風險,萬一資料尚未完整寫入硬碟時斷電,則資料就會損毀。因此在部分硬體式的 RAID 擴充卡,還會有額外的電池模組可安裝,就是為了在意外斷電的情況下還能盡量保留 DRAM 內的資料,或者是直接寫入 RAID 卡上的非揮發性快閃記憶體之中。

還有個原因能夠影響 RAID 5 的存取效能,就是磁碟陣列中的實體硬碟數量,因為硬碟數量越多,每組奇偶校驗碼所對應的資料量就越多,運算過程就更為複雜。

安全性部分則是能夠容許任何 1 顆實體硬碟損毀,無論磁碟陣列中有著多少顆硬碟都是如此。因此 RAID 5 磁碟陣列中要放入多少顆實體硬碟,可以依照偏向安全性、效能、空間利用率來抉擇。假設各顆硬碟故障率都相同,越多顆硬碟,安全性越低(陣列中硬碟出錯機率升高)、效能越低(需要運算量增大)、空間利用率越高(奇偶校驗碼所需容量提攤至更多硬碟上);越少顆硬碟,安全性越高、效能越高、空間利用率越低。


▲RAID 5,注意校驗資訊是以交錯的方式分散在不同實體硬碟中。

 

(下一頁還有:RAID 6 與骨灰 RAID 模式介紹)

ADVERTISEMENT