什麼是RAID? 硬RAID 和軟RAID的區別是什麼?

語言: CN / TW / HK

近年來 NAS越加火爆,但是在使用 NAS時無法避免的一個東西就是 RAID,那麼什麼是 RAID 呢?又有那些坑呢?

什麼是 RAID

RAID 是Redundant Array of Independent Disks的簡寫,意為獨立硬碟冗餘陣列,簡稱磁碟陣列

其基本思想就是把多個相對便宜的硬碟組合起來,成為一個硬碟陣列組,使效能達到甚至超過一個價格昂貴、容量巨大的硬碟。

由於RAID把多個硬碟組合成為一個邏輯扇區,因此對於電腦來說,只會把它當作一個硬碟或邏輯儲存單元。

根據選擇的版本不同,RAID比單顆硬碟有以下一個或多個方面的好處:

  • 增強資料整合度
  • 增強容錯功能
  • 增加處理量或容量

RAID 的版本

RAID 技術最初由加利福尼亞大學伯克利分校(University of California-Berkeley)在1988年提出,經過多年發展已經擁有的眾多的版本,主要分為標準 RAID(RAID 0 ~ RAID 6)、混合 RAID(JBOD、RAID 7、RAID 10/0、RAID 50 等)。
這裡就只對標準 RAID 做一些介紹。

JBOD:嚴格來說JBOD並不是RAID的版本,但是目前也並沒有相應專有的標準
  • 1

在應用上來說,RAID 0 、RAID 1、RAID 5、RAID 6最常見, RAID2、3、4較少實際應用,因為RAID5已經涵蓋了所需的功能,因此RAID2、3、4大多隻在研究領域有實現,RAID4有應用在某些商用機器上,像是NetApp公司設計的NAS系統就是使用RAID4的設計概念。

先上一張比較形象的圖

飲水機

各版本對比表格

對比表格

RAID 0

RAID 0亦稱為帶區集。它將兩個以上的磁碟並聯起來,成為一個大容量的磁碟。在存放資料時,分段後分散儲存在這些磁碟中,因為讀寫時都可以並行處理,所以在所有的級別中,RAID 0的速度是最快的。但是RAID 0既沒有冗餘功能,也不具備容錯能力,如果一個磁碟(物理)損壞,所有資料都會丟失,危險程度與JBOD相當。
RAID 0

RAID 1

兩組以上的N個磁碟相互作映象,在一些多執行緒作業系統中能有很好的讀取速度,理論上讀取速度等於硬碟數量的倍數,另外寫入速度有微小的降低。只要一個磁碟正常即可維持運作,可靠性最高。其原理為在主硬碟上存放資料的同時也在映象硬碟上寫一樣的資料。當主硬碟(物理)損壞時,映象硬碟則代替主硬碟的工作。因為有映象硬碟做資料備份,所以RAID 1的資料安全性在所有的RAID級別上來說是最好的。但無論用多少磁碟做RAID 1,僅算一個磁碟的容量,是所有RAID中磁碟利用率最低的一個級別。
如果用兩個不同大小的磁碟建RAID 1,可用空間為較小的那個磁碟,較大的磁碟多出來的空間也可以分割槽成一個區來使用,不會造成浪費。
RAID 1

RAID 2

這是RAID 0的改良版,以漢明碼(Hamming Code)的方式將資料進行編碼後分區為獨立的位元,並將資料分別寫入硬碟中。因為在資料中加入了錯誤修正碼(ECC,Error Correction Code),所以資料整體的容量會比原始資料大一些,RAID2最少要三臺磁碟驅動器方能運作。
RAID 2

RAID 3

採用Bit-interleaving(資料交錯儲存)技術,它需要通過編碼再將資料位元分割後分別存在硬碟中,而將同位元檢查後單獨存在一個硬碟中,但由於資料內的位元分散在不同的硬碟上,因此就算要讀取一小段資料資料都可能需要所有的硬碟進行工作,所以這種規格比較適於讀取大量資料時使用。

RAID 3

RAID 4

它與RAID 3不同的是它在分割槽時是以區塊為單位分別存在硬碟中,但每次的資料訪問都必須從同位元檢查的那個硬碟中取出對應的同位元資料進行核對,由於過於頻繁的使用,所以對硬碟的損耗可能會提高。(塊交織技術,Block interleaving)
RAID 4

RAID 5

RAID Level 5是一種儲存效能、資料安全和儲存成本兼顧的儲存解決方案。它使用的是Disk Striping(硬碟分割槽)技術。RAID 5至少需要三塊硬碟,RAID 5不是對儲存的資料進行備份,而是把資料和相對應的奇偶校驗資訊儲存到組成RAID5的各個磁碟上,並且奇偶校驗資訊和相對應的資料分別儲存於不同的磁碟上。當RAID5的一個磁碟資料發生損壞後,可以利用剩下的資料和相應的奇偶校驗資訊去恢復被損壞的資料。RAID 5可以理解為是RAID 0和RAID 1的折衷方案。RAID 5可以為系統提供資料安全保障,但保障程度要比映象低而磁碟空間利用率要比映象高。RAID 5具有和RAID 0相近似的資料讀取速度,只是因為多了一個奇偶校驗資訊,寫入資料的速度相對單獨寫入一塊硬碟的速度略慢,若使用“回寫快取”可以讓效能改善不少。同時由於多個數據對應一個奇偶校驗資訊,RAID 5的磁碟空間利用率要比RAID 1高,儲存成本相對較便宜。

RAID 5

RAID 6

與RAID 5相比,RAID 6增加第二個獨立的奇偶校驗資訊塊。兩個獨立的奇偶系統使用不同的演算法,資料的可靠性非常高,任意兩塊磁碟同時失效時不會影響資料完整性。RAID 6需要分配給奇偶校驗資訊更大的磁碟空間和額外的校驗計算,相對於RAID 5有更大的IO操作量和計算量,其“寫效能”強烈取決於具體的實現方案,因此RAID6通常不會通過軟體方式來實現,而更可能通過硬體/韌體方式實現。

同一陣列中最多容許兩個磁碟損壞。更換新磁碟後,資料將會重新算出並寫入新的磁碟中。依照設計理論,RAID 6必須具備四個以上的磁碟才能生效。

可使用的容量為硬碟總數減去2的差,乘以最小容量,同理,資料保護區域容量則為最小容量乘以2。

RAID 6在硬體磁碟陣列卡的功能中,也是最常見的磁碟陣列檔次
RAID 6

硬 RAID 全軟 RAID 半軟 RAID

根據事先方式不同,RAID 分為軟體磁碟陣列(軟RAID)硬體磁碟陣列(硬 RAID) 以及 硬體輔助磁碟陣列(半軟、半硬)三種類型。

硬體磁碟陣列(Hardware RAID)

簡單來說就是全部通過用硬體來實現RAID功能的就是硬RAID,比如:各種RAID卡,還有主機板整合能夠做的RAID都是硬RAID。
所以硬 RAID 就是用專門的RAID控制器(RAID 卡)將硬碟和電腦連線起來,RAID控制器負責將所有的RAID成員磁碟配置成一個虛擬的RAID磁碟卷。對於作業系統而言,他只能識別到由RAID控制器配置後的虛擬磁碟,而無法識別到組成RAID的各個成員盤

硬RAID全面具備了自己的RAID控制/處理與I/O處理晶片,甚至還有陣列緩衝(Array Buffer),對CPU的佔用率以及整體效能中最有優勢。

軟體磁碟陣列(Software RAID)

反而言之,通過用作業系統來完成RAID功能的就是軟RAID,比如:在Linux作業系統下,用3塊硬碟做RAID5。
也就是不使用RAID控制器(業界稱其為RAID 協處理器―RAID Co-Processor )與I/O晶片,直接通過軟體層實現的RAID,所有功能都是作業系統(OS)與CPU來完成,可想而知這是效率最低的一種RAID
與硬RAID不同的是,軟RAID的各個成員盤對於作業系統來說是可見的,但作業系統並不把各個成員盤呈現給使用者,而只是把通過軟體層配置好的虛擬RAID卷呈現給使用者,使使用者可以像使用一個普通磁碟一樣使用RAID卷。

硬體輔助磁碟陣列(Hardware-Assisted RAID)

與硬 RAID 和 全軟 RAID 相比,半軟 RAID需要一張RAID卡,以及廠商所提供的驅動程式。
但是半軟半硬RAID 缺乏自己的I/O 處理晶片,所以這方面的工作仍要由CPU 與驅動程式來完成。而且,半軟半硬RAID 所採用的RAID 控制/處理晶片的能力一般都比較弱,不能支援高的RAID 等級。
這款RAID較易遷移到其他電腦。

RAID 卡

RAID卡有多種,除主機板整合能夠做的RAID的硬RAID外,還有各種專門RAID卡。一般分為硬RAID卡和軟RAID卡兩種

  • 通過用硬體來實現RAID功能的就是硬RAID,獨立的RAID卡,主機板整合的RAID晶片都是硬RAID。
  • 通過軟體並使用CPU的RAID卡是指使用CPU來完成RAID的常用計算,軟體RAID佔用CPU資源較高

絕大部分伺服器裝置是硬體RAID

RAID卡上自帶處理器,不需要伺服器的CPU運算。優點是讀寫效能最快,不佔用伺服器資源,可用於任何作業系統,也能在系統斷電後,通過備份電池模組(BBU, Backup Battery Unit)以及非易失性記憶體 (NVRAM)將硬碟讀寫日誌檔(Journal)包含的剩餘讀寫作業先紀錄在記憶體中,等待電力供應撤消後,再由NVRAM取回日誌檔資料,接著再完成讀寫作業,將剩餘讀寫作業安全完成以確保讀寫完整性。備份電池模組通常會配合陣列卡的Write-Back快取模式,藉由此記憶體快取讀寫作業以得到更高的讀寫效能;但是沒有備份電池模組的硬體磁碟陣列卡,切勿使用Write-Back快取模式以免遭遇斷電情形導致讀寫資料流失。此外,因為硬體磁碟陣列卡搭載CPU處理器,所以可以與系統分離出來,對硬碟進行各種作業,還原作業的速度也比軟體磁碟陣列快。缺點是其售價很高,通常只用於RAID 5和RAID 6。

主機板整合RAID與外插RAID卡RAID的區別:

效能

主機板整合的RAID,它的效能以及它的速度是通過主機板的CPU與記憶體來實現的,它會佔有主機板一定的頻寬,會影響整機的效能,而外插RAID卡,它本身由自己的CPU和記憶體,所以它的資料處理大部分都會由自己處理,不會影響主機板上的CPU與記憶體速度,總體看來,外插的RAID卡的RAID要比主機板整合的RAID快得多。

安全性

主機板整合的RAID它的安全性不能夠得到保證,比如:我們用P8SCT主機板做一個SATA RAID,不論你做RAID幾,它是通過更改主機板的BIOS選項做成的,所以一旦主機板損壞、主機板的CMOS電池掉電、無意更改了主機板BIOS的設定都會帶來RAID的丟失,通過主機板做成的RAID,一旦丟失,將會不能恢復,後果是非常嚴重的,而外插的RAID卡做成的RAID就不會因為主機板損壞、主機板的CMOS電池掉電等現象對資料造成影響,所以外插的RAID卡,它的安全性遠遠大於主機板整合的。

優缺點

軟RAID依存於OS,硬RAID獨立於OS。所以硬RAID的效能以及資料安全性肯定更好

優點:

硬 RAID:

  • 對CPU 的佔用率以及整體效能是這三種類型中最優勢的
  • 有硬碟丟失時可以實現重建,如果RAID卡損壞時也可以更換RAID卡

軟 RAID:

  • 成本低,只需要主機板支援即可,不需要任何磁碟陣列卡
  • 實現簡單

半軟 RAID:

  • 效能以及穩定性較軟 RAID 有不少提升
  • 較易遷移到其他電腦

缺點:

硬 RAID:

  • 裝置成本是三種類型中最高的
  • 需要有一定技術知識

軟 RAID:

  • 為耗損較多CPU資源運算RAID,導致發熱等問題,也就不夠穩定
  • 依賴作業系統,而作業系統。。。。
  • 若主機板損壞,可能難以購買同款主機板重建RAID

半軟 RAID:

  • 比上不足比下有餘

 

維基百科:
https://zh.wikipedia.org/wiki/RAID#JBOD

百度百科:
http://baike.baidu.com/view/63423.htm?fromtitle=RAID&fromid=33858&type=syn#viewPageContent

http://baike.baidu.com/link?url=AAbF9DsK-eVY0nGk4BI2h2dDlYUACjlcSqIHB6Ec1Cz05uouNV5CthS9reWnjRaGmMPuFJxze90cjbvUsRhOV_

http://baike.baidu.com/view/95439.htm