在計算機術語中,RAID(Redundant Array of Independent Disks,獨立磁盘冗余陣列;在台灣稱為:磁盘陣列)的基本思想就是把多個相對便宜的硬碟組合起來,成為一個磁盘陣列組, 使性能達到甚至超過一個價格昂貴、容量巨大的硬碟。根據選擇的版本不同,RAID比單顆硬碟有以下一個或多個方面的好處:增強資料整合度,增強容錯功能,增加處裡量或容量。另外,磁盘陣列組對於計算機來說, 看起來就像一個單獨的硬碟或邏輯存儲單元。分為RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-10, RAID-50。

簡單來說,RAID把多個硬碟組合成為一個邏輯磁區,因此,作業系統只會把它當作一個硬碟。RAID常被用在伺服器計算機上,並且常使用完全相同的硬碟作為組合。由於硬碟價格的不斷下降與RAID功能更加有效地與主機板整合,它也成為了玩家的一個選擇,特別是需要大容量儲存空間的工作,如:視訊與音訊製作。

最初的RAID分成了不同的等級,每種等級都有其理論上的優缺點。這些年來,出現了對於RAID觀念不同的應用。



基本RAID分類

JBOD

<Just a Bunch Of Disks>在某些分類上,JBOD並不算是RAID的等級。只是將多個磁盘空間合併成一個大的邏輯磁盘,不具有錯誤冗余機制。資料的存放機制是由第一顆磁盘開始依序往後存放,即作業系統看到的是一個大磁盘(由許多小磁盘組成)。但如果磁盘損毀,則該顆硬碟上的所有資料將無法救回。若第一顆硬碟損壞,通常無法作救援(因大部分檔案系統將檔案表存在磁盘前端,即第一顆),失去檔案表即失去一切資料。

\begin{align}Size & = sum  of  all  disk\end{align}

 RAID 0

将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中。 所以,在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失。

理論上越多的磁盤效能就等於[單一磁盤效能]x[磁盤數],但實際上受限於匯流排I/O瓶頸及其它因素的影響,RAID 效能會隨邊際遞減,也就是說,假設一個磁盤的效能是50MB/秒,兩個磁盤的RAID 0效能約96MB/秒,三個磁盤的RAID 0也許是130MB/秒而不是150MB/秒。所以,兩個磁盤的RAID 0最能明顯感受到效能的提升。

\begin{align}Size & = 2 \times \min \left(S_1, S_2\right)\end{align}

但如果是以軟體方式來實作RAID,則磁盘的空間則不見得受限於此(例如Linux Software RAID),透過軟體實作可以經由不同的組合而善用所有的磁盘空間。

\begin{align}Size & = sum  of  all  disk\end{align}

RAID 1

两组以上的N個磁盘相互作镜像,速度没有提高,但是允许N-1個磁盘损坏,可靠性最高。RAID 1就是镜像。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但無論用多少磁盤做RAID 1,僅算一個磁盤的容量, 是所有RAID上磁盘利用率最低的一個级别。

\begin{align}Size & = \min \left(S_1, S_2\right)\end{align}

RAID 2

这是RAID 0的改良版,以汉明码en:Hamming Code)的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比原始数据大一些,RAID2最少要三台磁盘機方能運作

RAID 3

采用Bit-interleaving(数据交错存储)技术,它需要通过编码再将数据位元分割后分别存在硬盘中,而将同位元检查后单独存在一个硬盘中,但由于数据内的位元分散在不同的硬盘上,因此就算要读取一小段数据资料都可能需要所有的硬盘进行工作,所以这种规格比较适于读取大量数据时使用

RAID 4

 它与RAID 3不同的是它在分割时是以区块为单位分别存在硬盘中,但每次的数据存取都必须从同位元检查的那个硬盘中取出对应的同位元数据进行核对,由于过于频繁的使用,所以对硬盘的损耗可能会提高 (Block interleaving)

RAID 5

RAID Level 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分割)技术。RAID 5 至少需要三顆硬碟, RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低廉。

\begin{align}Size & = {(2 \times N) \over 3} \times \min \left(S_1, S_2, \dots, S_N\right) \\<br />
& =  {(2 \times N) \over 3} \times S_{min}\end{align}

RAID 6

同一陣列中容許兩個硬碟同時失效(或是當一個失效後還來不及更換便有第二個失效)後.更換新硬碟時再由另兩個正常硬碟將備份的資料建立在新的硬碟中.所以至少必須具備四或四個以上硬碟才能生效.

 應用

在實際的應用上,RAID2~4並不存在,因為RAID5已經涵蓋了所需的功能。因此RAID2~4目前只有在研究領域有實作,而在實際應用上則以RAID5或RAID6為主。



RAID 一般分類成 Software RAID 與 Hardware RAID 說明如下:
Software RAID

Software RAID 是由作業系統來提供 RAID 功能,此舉會耗用較多 CPU 運算資源來作動,所以要運行軟體模擬 RAID 最好是雙 CPU 以上且高時脈等級主機,不然當遇到大量運算時,整體效能會大打折扣。
溫馨提示:Linux 上 Software RAID 技術已是相當成熟,使用裝置 /dev/md0、/dev/md1、/dev/md2 依此類推,MD 是 Mutiple Device 之意。
Hardware RAID

Hardware RAID 由專屬 RAID 運算晶片,晶片位於介面卡或直接嵌入在主機板上,這時候作業系統只需要驅動 RAID 晶片即可,如此一來把 RAID 任務分工給 RAID 晶片,CPU 也較為輕鬆,管理上會比較簡便。
溫馨提示:Hardware RAID 廠商通常會提供監控 RAID 狀態工具,若是遇到磁碟有故障情形時,主機會閃爍故障燈號或是發出嗶嗶聲。

Hardware RAID 以往應用在 SCSI 硬碟較多、使用 ATA/IDE 硬碟較少,近年來因為 SATA 硬碟價格低、容量大、效能還不差,廠商紛紛出產使用 SATA 硬碟的磁碟陣列卡,購買需考量到價格、效能、功能、連接磁碟數量外,還有是否支援您所使用的作業系統。
Note:中、小企業所使用到磁碟陣列卡通常會提供驅動程式支援 Windows、Linux 與 Mac OS X(FreeBSD 核心)
ATA(SATA) RAID / BIOS RAID / Fake RAID

這類型 RAID 介於 Software RAID 與 Hardware RAID 之間,算是半個 Hardware RAID,通常由主機板晶片來「幫忙」RAID 運算,因此有 Fake RAID(假 RAID)之稱。

要啟動這個 RAID 功能,要先在 BIOS 畫面設定以後,再使作業系統能夠正確辨識裝置即可。因為這款 RAID 要在 BIOS 內開啟,所以亦有人稱之為 BIOS RAID。

Felix 發表在 痞客邦 PIXNET 留言(0) 人氣()