位置:數據恢復的知識與技巧 - RAID介紹
RAID介紹
獨立磁盤冗余陣列(RAID, Redundant Array of Independent Disks)簡稱磁盤陣列,其基本思想就是把多個相對便宜的硬盤組合起來,成為一個磁盤陣列組,使性能達到甚至超過一個價格昂貴、容量巨大的硬盤。根據選擇的RAID版本不同,RAID比單個硬盤有以下一些好處比如:增強數據整合度,增強容錯功能,增加處理量或容量。另外,磁盤陣列組對于計算機來說,看起來就像一個單獨的硬盤或邏輯存儲單元。
簡單來說,RAID把多個硬盤組合成為一個“物理硬盤”,因此,操作系統只會把它當作一個硬盤。RAID常被用在服務器計算機上,并且常使用完全相同的硬盤作為組合。由于硬盤價格的不斷下降與RAID功能更加有效地與主板整合,它也成為了玩家的一個選擇,特別是需要大容量儲存空間的工作,如:視訊與音頻制作,數據吞吐量比較大的用戶。
最初的RAID分成了不同的等級,每種等級都有其理論上的優缺點,不同的等級在兩個目標間取得平衡,分別是增加數據可靠性以及增加輸入/輸出效能。這些年來,出現了對于RAID觀念不同的應用。
基本RAID分類
JBOD
RAID 0
RAID 1
RAID 2
RAID 3
RAID 4
RAID 5
RAID 6
RAID 7
RAID 10/01
RAID 50
RAID 53
下面,我們對各種RAID分類做簡單介紹:
JBOD
JBOD(Just a Bunch Of Disks)在某些分類上,JBOD并不算是RAID的等級。只是將多個磁盤空間合并成一個大的邏輯磁盤,不具備錯誤冗余機制。數據的存放機制是由第一顆磁盤開始依序往后存放,即操作系統看到的是一個大磁盤(由許多小磁盤組成)。但如果磁盤損毀,則該個硬盤上的所有數據將無法救回。若第一顆硬盤損壞,通常無法作救援(因大部分文件系統將文件表存在磁盤前端,即第一顆),失去文件表即失去一切數據。
容量 = 所有磁盤加起來的容量。
如:180GB = 40GB + 80GB + 60GB
RAID 0
將多個磁盤合并成一個大的磁盤,不具有冗余,并行I/O,速度最快。RAID 0亦稱為帶區卷。它是將多個磁盤并列起來,成為一個大磁盤。在存放數據時,其將數據按磁盤的個數來進行分段,然后同時將這些數據寫進這些盤中。所以,在所有的級別中,RAID 0的速度是最快的。但是RAID 0沒有冗余功能,如果一個磁盤(物理)損壞,則所有的數據都會丟失。
理論上越多的磁盤效能就等于[單一磁盤效能]×[磁盤數],但實際上受限于總線I/O瓶頸及其它因素的影響,RAID 效能會隨邊際遞減,也就是說,假設一個磁盤的效能是50MB/秒,兩個磁盤的RAID 0效能約96MB/秒,三個磁盤的RAID 0也許是130MB/秒而不是150MB/秒。所以,兩個磁盤的RAID 0最能明顯感受到效能的提升。
容量 = 2 × 其中最小容量硬盤(S1, S2) 如:80GB = 2 × (40GB, 80GB)
但如果是以軟件方式來實作RAID,則磁盤的空間則不見得受限于此(例如Linux Software RAID、Microsoft LDM動態磁盤),透過軟件實作可以經由不同的組合而善用所有的磁盤空間。
容量 = 所有磁盤空間的容量
RAID 1
兩組以上的N個磁盤相互作鏡像,在一些多線程操作系統中能有很好的讀取速度,另外寫入速度有微小的降低。除非擁有相同數據的主磁盤與鏡像同時損壞,否則只要一個磁盤正常即可維持運作,可靠性最高。RAID 1就是鏡像。其原理為在主硬盤上存放數據的同時也在鏡像硬盤上寫一樣的數據。當主硬盤(物理)損壞時,鏡像硬盤則代替主硬盤的工作。因為有鏡像硬盤做數據備份,如果是軟故障的丟失,它就無能為力了,只能抵御物理損壞,所以RAID 1的數據安全性在所有的RAID級別上來說是最好的。但無論用多少磁盤做RAID 1,僅算一個磁盤的容量,是所有RAID上磁盤利用率最低的一個級別。
容量 = 其中最小容量硬盤(S1, S2) 如:40GB = (500GB, 40GB)
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高,存儲成本相對較便宜。
容量 = (N - 1)× 其中最小容量硬盤(S1, S2, S3,……,Sn)
如:160GB = (3 - 1) × (80GB, 80GB, 120GB)
RAID 6
與RAID 5相比,RAID 6增加了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不同的算法,數據的可靠性非常高,即使兩塊磁盤同時失效也不會影響數據的使用。但RAID 6需要分配給奇偶校驗信息更大的磁盤空間,相對于RAID 5有更大的“寫損失”,因此“寫性能”非常差。較差的性能和復雜的實作方式使得RAID 6很少得到實際應用。
同一數組中最多容許兩個磁盤損壞。更換新磁盤后,數據將會重新算出并寫入新的磁盤中。依照設計理論,RAID 6必須具備四個以上的磁盤才能生效。
RAID 7
RAID 7并非公開的RAID標準,而是Storage Computer Corporation的專利硬體產品名稱,RAID 7是以RAID 3及RAID 4為基礎所開發,但是經過強化以解決原來的一些限制。另外,在實作中使用大量的快取記憶體以及用以實現異步陣列管理的專用即時處理器,使得RAID 7可以同時處理大量的IO要求,所以效能甚至超越了許多其他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
RAID50也被稱為鏡象陣列條帶,由至少六塊硬盤組成,像RAID0一樣,數據被分割成條帶,在同一時間內向多塊磁盤寫入;像RAID5一樣,也是以數據的校驗位來保證數據的安全,且校驗條帶均勻分布在各個磁盤上。其目的在于提高RAID5的讀寫性能。
RAID 53
它擁有一個鏡射條帶數組,硬盤里其中一個條帶就是一個是由3組以上的RAID 5組成RAID 3硬盤數組。
RAID2、3、4較少實際應用,因為RAID5已經涵蓋了所需的功能,因此RAID2、3、4大多只在研究領域有實作,而實際應用上則以RAID5或RAID6為主。
應用
RAID2、3、4較少實際應用,因為RAID5已經涵蓋了所需的功能,因此RAID2、3、4大多只在研究領域有實作,而實際應用上則以RAID5或RAID6為主。