發新話題

RAID,磁碟陣列,百科全書

RAID,磁碟陣列,百科全書

磁碟陣列(RAID) 什麼是 RAID?
RAID 的基本概念是結合多個小型且便宜的磁碟機成為一個陣列,以達到一個大且昂貴的磁碟機無法做到的效能表現或多餘性的目標。 這個磁碟機的陣列將會以一個單一的邏輯儲存單位或磁碟機呈現在電腦中。

RAID 是用來分散資訊到許多磁碟上的一種方法,使用例如 磁碟機平行儲存(disk striping) (RAID Level 0)、磁碟機映射儲存(disk mirroring) (RAID level 1) 與 具備分布式同位元檢測資料的磁碟機平行儲存(disk striping with parity) (RAID Level 5) 等技術來達到多餘性、較短的延遲時間亦或增加讀取或寫入到磁碟的頻寬,並且強化硬碟毀損時的回復能力。

RAID 的概念是資料可以一致地分散到陣列中的每一個磁碟,如要做到這樣,資料必須先劃分為一致大小的 區塊(chunks) (雖然仍可能使用不同的大小,通常是 32K 或 64K 的大小)。 根據所使用的 RAID 等級,再來將會寫入每一個區塊到陣列中的硬碟。 當資料要被讀取時,過程則相反,這樣將造成多個磁碟機實際上為一個大型磁碟機的假象。

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

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

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

邏輯磁區管理員(LVM)
從 Red Hat Linux 8.0 開始,您便可以使用邏輯磁區管理員(LVM) 來做硬碟空間的分配。
LVM 是一種分配硬碟空間到邏輯磁區的方法,這種方式比分配到分割區較容易做容量的調整。
使用 LVM,硬碟或硬碟組將會被分配到一個或更多的 『實體磁區』,不過一個實體磁區不可以跨越一個以上的磁碟。

除了 /boot 分割區,實體磁區會結合到 『邏輯磁區群組』。 /boot 分割區不可以在邏輯磁區群組中,因為開機管理程式將無法讀取到它。 假如您想要根目錄 / 分割區在邏輯磁區中,您必須另外建立一個 /boot 分割區,使其不屬於磁區群組的一員。

因為一個實體磁區不能跨越一個以上的磁碟,假如您想要邏輯磁區群組跨越一個以上的磁碟,您必須在每一個磁碟上建立一個以上的實體磁區。

圖形1. 邏輯磁區群組

邏輯磁區群組可以分割為幾個 『邏輯磁區』,將會指定它們的掛載點,例如 /home 與 /,以及檔案系統類型,如 ext3。 當『分割區』的容量全滿時,邏輯磁區群組中的剩餘空間可以增加到邏輯磁區以增大分割區的大小。 當系統新增一個硬碟時,可以將它增至邏輯磁區群組中,因此便可以擴展身為邏輯磁區的分割區。

圖形2. 邏輯磁區

以另一個角度來說,假如系統是以 ext3 檔案系統做磁碟分割,且硬碟是分割為所定義大小的分割區。當一個分割區的容量用完時,要擴展該分割區的大小是很困難的,即使將該分割區移動到另一顆硬碟上,原本硬碟上的空間還是得重新分配到另一個分割區,或者先不去動它。

LVM 的支援必須編譯到核心中,Red Hat Linux 9 的預設核心是已編譯好 LVM 支援的。

基本RAID分類
RAID 0
RAID 1
RAID 3
RAID 4
RAID 5
RAID 6
JBOD

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

RAID 0
將多個磁盤合併成一個大的磁盤,不具有冗餘,並行I/O,速度最快。RAID 0亦稱為帶區集。它是將多個磁盤並列起來,成為一個大磁盤。在存放數據時,其將數據按磁盤的個數來進行分段,然後同時將這些數據寫進這些盤中。所以,在所有的級別中,RAID 0的速度是最快的。但是RAID 0沒有冗餘功能,如果一個磁盤(物理)損壞,則所有的數據都會丟失。

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

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

RAID 1
兩組以上的N個磁盤相互作鏡像,速度沒有提高,除非擁有相同數據的主磁盤與鏡像同時損壞,否則最高可壞剩N個磁盤,可靠性最高。RAID 1就是鏡像。其原理為在主硬盤上存放數據的同時也在鏡像硬盤上寫一樣的數據。當主硬盤(物理)損壞時,鏡像硬盤則代替主硬盤的工作。因為有鏡像硬盤做數據備份,所以RAID 1的數據安全性在所有的RAID級別上來說是最好的。但無論用多少磁盤做RAID 1,僅算一個磁盤的容量,是所有RAID上磁盤利用率最低的一個級別。

RAID 2
這是RAID 0的改良版,以漢明碼(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可以為系統提供數據安全保障,但保障程度要比鏡像低而磁盤空間利用率要比鏡像高。RAID 5具有和RAID 0相近似的數據讀取速度,只是多了一個奇偶校驗信息,寫入數據的速度相當的慢,若使用「回寫高速緩存」可以讓效能改善不少。同時由於多個數據對應一個奇偶校驗信息,RAID 5的磁盤空間利用率要比RAID 1高,存儲成本相對較便宜。

RAID 6
與RAID 5相比,RAID 6增加了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不同的算法,數據的可靠性非常高,即使兩塊磁盤同時失效也不會影響數據的使用。但RAID 6需要分配給奇偶校驗信息更大的磁盤空間,相對於RAID 5有更大的「寫損失」,因此「寫性能」非常差。較差的性能和複雜的實施方式使得RAID 6很少得到實際應用。

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

RAID 7
這是一種新的RAID標準,其自身帶有智能化實時操作系統和用於存儲管理的軟件工具,可完全獨立於主機運行,不佔用主機CPU資源。RAID 7可以看作是一種存儲計算機(Storage Computer),它與其他RAID標準有明顯區別。

RAID 10/01
RAID 10/01其實可細分為RAID 1+0或RAID 0+1。

RAID 1+0是先鏡射再分割數據。是將所有硬盤分為兩組,視為是RAID 0的最低組合,然後將這兩組各自視為RAID 1運作。RAID 1+0有著不錯的讀取速度,而且擁有比RAID 0更高的數據保護性。

RAID 0+1則是跟RAID 1+0的程序相反,是先分割再將數據鏡射到兩組硬盤。它將所有的硬盤分為兩組,變成RAID 1的最低組合,而將兩組硬盤各自視為RAID 0運作。RAID 0+1比起RAID 1+0有著更快的讀寫速度,不過也多了一些會讓整個硬盤組停止運轉的機率;因為只要同一組的硬盤全部損毀,RAID 0+1就會停止運作,而RAID 1+0則可以在犧牲RAID 0的優勢下正常運作。

RAID 10巧妙的利用了RAID 0的速度以及RAID 1的保護兩種特性,不過它的缺點是需要的硬盤數較多,因為至少必須擁有四個以上的偶數硬盤才能使用。

RAID 50

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

TOP

好好暸解一下RAID還蠻有用的..謝謝分享

TOP

雖然在課堂上交過,但感謝大大的分享,受益良多

TOP

終於 明白了 謝謝大大

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。