1. 程式人生 > >【運維理論】RAID級別簡介

【運維理論】RAID級別簡介

獨立硬碟冗餘陣列(RAID, Redundant Array of Independent Disks),舊稱廉價磁碟冗餘陣列(RAID, Redundant Array of Inexpensive Disks),簡稱硬碟陣列。由伯克利大學一位教授提出,其基本思想就是把多個相對便宜的硬碟組合起來,成為一個硬碟陣列組,使效能達到甚至超過一個價格昂貴、容量巨大的硬碟。根據選擇的版本不同,RAID比單顆硬碟有以下一個或多個方面的好處:增強資料整合度,增強容錯功能,增加處理量或容量。但也有可能降低安全性、降低效能等多種缺點。另外,磁碟陣列對於計算機來說,看起來就像一個單獨的硬碟或邏輯儲存單元。根據不同的RAID級別,基礎RAID級別可以分為RAID-0,RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-7(儲存計算機公司獨有技術),JBOD。根據基礎RAID級別,可以進行進一步組合,實現使用者自己想要的方案。

簡而言之,RAID就是針對硬碟提供一種虛擬化方案,將多個物理硬碟組合成一個邏輯硬碟,作業系統只會把這個邏輯硬碟當作“一個硬碟”。RAID常被用在伺服器計算機上,並且使用完全相同的硬碟作為組合。由於硬碟價格的不斷下降(機械硬碟,基於TLC和QLC的固態硬碟)並且RAID功能更多的整合到主機板上,因而電腦組裝愛好者也熱衷於給自己的資料儲存模組加入RAID技術。

加入RAID技術主要是為了增加以下一項或多項功能:

1.增加資料可靠性

2.增加儲存器讀寫效能

3.增加容量

以下依次介紹部分主流RAID基本級別。

一、RAID0 又稱Strip,條帶化模式

原理:資料交付給RAID控制單元,切割成若干條帶,並行寫入陣列

得失:理論上最高可提升讀寫速度為原來N倍,儲存容量擴充為單塊硬碟N倍,N為陣列內硬碟個數,資料安全性降低為原來的1/N,陣列內任意一塊硬碟故障,整個陣列崩潰!而且從實際情況來看,由於本身切割資料也需要耗費計算資源,所以實際讀寫提升將略小於理論值,並且會隨著硬碟個數增加而提升越來越少。

應用情況:適用於對讀寫要求高,成本控制嚴格,安全性要求不高的場合,單獨RAID0筆者本人原來組準系統的時候用過,主要是為了提升跑分好看。一般都是採用其他組合的方案。

原理圖示:

二、RAID-1 又稱Mirror,映象模式

原理:資料交付給RAID控制單元,對陣列內所有磁碟寫入相同資料。讀取時,與RAID0相仿,可以同時從陣列中所有可用硬碟內讀取所需資料。

得失:理論上資料安全性提升N倍,寫能力不受影響,讀取資料能力提升為原來N倍(效能基準與單塊硬碟比較,N為硬碟個數)。實際情況中,資料安全性提升比率更大(要映象陣列中所有盤壞才會定義為崩潰,所以崩潰機率是相乘,會成倍減小),讀取資料能力提升不足N倍(受控制器影響,和控制策略演算法影響),寫能力微弱下降(控制單元損耗)

應用情況:適用於對資料安全性要求高,讀多寫極少的情況,故也不適合單獨拿來大規模應用。

原理圖示:

三、RAID3 帶專用校驗盤的資料條帶

原理:資料交付給RAID控制單元,控制單元將向陣列中一塊固定的磁碟寫入校驗資訊,同時將資料資訊寫入其餘磁碟。校驗資訊為異或值(Xor),如果任意一塊硬碟發生錯誤,那麼都可以通過其餘磁碟資訊異或後重建。

得失:當整個陣列健康時,能夠提供接近RAID0的效能(倍數要排除掉校驗盤),同時提供一定的容災能力(允許一塊硬碟故障)。但一旦出現壞盤進入降級模式,每一次讀寫壞區塊的資訊都要通過計算其餘盤的內容,效能會大大下降

應用情況:由於RAID5能夠更好的代替RAID3,所以基本上RAID3應用不多。

原理圖示:

四、RAID5 分散校驗盤的資料條帶

原理:校驗資料分佈在陣列中的所有磁碟上,而沒有采用專門的校驗磁碟。對於資料和校驗資料,它們的寫操作可以同時發生在完全不同的磁碟上。

得失:讀取速度接近RAID0(倍數要排除掉校驗盤),同時提供一定的容災能力(允許一塊硬碟故障)。但RAID5還提供良好的擴充套件性,磁碟數量增加,能提供更高的容量和更快的速度。當然,對替換盤重建資料時,效能依然會受到較大影響。RAID5 兼顧儲存效能、資料安全和儲存成本等各方面因素,它可以理解為 RAID0 和 RAID1 的折中方案,是目前綜合性能最佳的資料保護解決方案。 

應用情況:RAID5 基本上可以滿足大部分的儲存應用需求,資料中心大多采用它作為應用資料的保護方案。但實際的應用中,也通常不單使用RAID5,而是有其他多種的組合方案。

原理圖示:

當然,還有其他的諸如RAID2,RAID4,RAID6及7等非主流基本陣列模式,這種陣列模式一般商用產品都是不支援的,僅供理論瞭解,這裡也貼一篇很好的博文,供大家參考。

五、RAID的常見基礎組合,raid10和raid01

原理:RAID10又稱RAID1+0,是先將買來的硬碟分成兩組,做映象,再對每組硬碟做條帶化。而RAID01則恰恰相反,是先將買來的硬碟分成兩組,做條帶化,再對每組硬碟做映象。

得失:在對每個子組保持基本RAID等級的特性下,RAID10比RAID01有更好的容錯能力,能夠允許多個子RAID1都有壞盤,只要不是一個RAID1組中硬碟全部壞掉就OK。然而RAID01只能允許在其中一個RAID0組中有壞盤。成組至少四塊硬碟,由於都有RAID1,所以磁碟利用率50%

應用情況:鑑於RAID10和01都至少四塊硬碟,並且磁碟利用率在完全健康下都一致,基於RAID10資料更強的容災能力,因而主流的磁碟陣列產品都只支援RAID10。

原理圖示:

還有其他更多的組合,但都不常用。讀者可以在我之前貼出的那個連結裡去查閱,那篇文章很詳細。

看完我這篇文章,應付一般面試都是沒有問題的了。而且列舉的陣列模式都是常用/支援商業化的,所以大家也可以靈活利用這些常用陣列,提升自己的硬碟效能和資料安全性。

Intel的SRT技術也可以看成是RAID的一種,只不過是Intel獨有,這裡就不放在這裡介紹拉,有機會的話,我自己也會寫一篇部落格。

感謝觀看。