1. 程式人生 > >RAID磁盤陣列的原理

RAID磁盤陣列的原理

raid

RAID磁盤陣列的原理


RAID概念

RAID(Redundant Array of Independent Disks,獨立磁盤冗余陣列)可以提供較普通磁盤更高的速度、安全性,所以服務器在安裝時都會選擇創建RAID。

RAID的創建有兩種方式:軟RAID(通過操作系統軟件來實現)和硬RAID(使用硬件陣列卡);在企業中用的最多的是:raid1、raid10和raid5。不過隨著雲的高速發展,供應商一般可以把硬件問題解決掉。


RAID幾種常見的類型



註釋:

n:是磁盤個數 默認最好不要超過16個 硬盤大小最好都一樣

RAID類型說 明 最低磁盤個數空間利用率各自的優缺點
RAID0數據條帶化2+100%讀寫速度快,不容錯
(比如兩塊盤分別大小為1T,兩塊盤都做raid0,讀寫速度是最快的,而且可以使用100%的磁盤空間,但是如果一塊盤壞掉了數據是無法還原回來的。)
RAID1數據鏡像化250%讀寫速度一般,容錯 (比如兩塊盤分別大小為1T,兩塊盤都做raid1,讀寫速度肯定沒有raid0讀寫快,使用率也沒有raid0好,優點就是可以容錯,相當於一塊盤壞掉了還可以把原來的數據恢復回來,但是只有1T的存儲空間。)
RAID5帶奇偶校驗的條帶集3+(n-1)/n讀寫速度快,容錯,允許壞一塊盤
RAID6帶奇偶校驗的條帶集,雙校驗4+(n-2)/n讀寫快,容錯,允許壞兩塊盤
RAID10RAID1的安全+RAID0的高速4 50%讀寫速度快,容錯
RAID50RAID5的安全+RAID0的高速6(n-2)/n讀寫速度快,容錯
RAID60RAID5的安全+RAID0的高速8(n-4)/n讀寫速度快,容錯


RAID出現的原因

RAID基本思想:把好幾塊便宜的硬盤通過一定組合方式把它組合起來,成為一個新的硬盤陣列組,從而使它能夠達到高性能硬盤的要求


RAID有三個關鍵技術:

鏡像:提供了數據的安全性;

條帶(塊大小也可以說是條帶的粒度),它的存在的就是為了提高I/O,提供了數據並發性

數據的校驗:提供了數據的安全



容量 ————————》 性能 --------》 可靠性 ——————————》 RAID




企業級RAID 0, 1,5,10的工作原理




2.1 RAID-0

條帶 (strping),也是我們最早出現的RAID模式

需磁盤數量:2塊以上(大小最好相同)

是組建磁盤陣列中最簡單的一種形式,只需要2塊以上的硬盤即可.


特點:

成本低,可以提高整個磁盤的性能和吞吐量。

RAID 0沒有提供冗余或錯誤修復能力,速度快.

任何一個磁盤的損壞將損壞全部數據;磁盤利用率為100%。



RAID0工作原理



註釋:

A:代表20G文件 B:代表20G文件C:代表20G文件 D:代表20G文件


寫入數據:



用戶導入服務器100G大小的文件等,將50G數據寫入到第一塊硬盤上面,同時在把另外50G的數據寫到另一塊硬盤上,這100G文件又分成A,B,C,D 將A 寫入第一塊硬盤上,將B寫到第二塊硬盤上,將C寫到第一塊硬盤上,將D寫到第二塊硬盤上,這個就是數據的條帶,並行傳輸到硬盤上


讀取數據:

將上傳上去的100G文件復制到別的服務器上,讀取的時候也是先從第一塊讀取數據A,然後再從第二塊硬盤上讀取B,然後再從第一塊硬盤讀取C數據,然後再從第二塊硬盤讀取數據D,但是如果有一塊硬盤有損壞會導致數據不全。




RAID-1

mirroring(鏡像卷)

需要磁盤兩塊以上

原理:是把一個磁盤的數據鏡像到另一個磁盤上,也就是說數據在寫入一塊磁盤的同時,會在另一塊閑置的磁盤上生成鏡像文件,(同步)

RAID 1 mirroring(鏡像卷),至少需要兩塊硬盤,raid大小等於兩個raid分區中最小的容量(最好將分區大小分為一樣),數據有冗余,在存儲時同時寫入兩塊硬盤,實現了數據備份;

磁盤利用率為50%,即2塊100G的磁盤構成RAID1只能提供100G的可用空間。如下圖




RAID1工作原理:


註釋:


A:代表50G文件 B:代表50G文件


寫入數據:

用戶導入服務器100G大小的文件等,將A,B寫到第一塊硬盤,同時將A,B寫到另一塊硬盤上,進行鏡像操作(備份)


讀取數據:

將上傳上去的100G文件復制到別的服務器上,直接讀取一塊盤的數據即可,而且如果有一塊盤壞掉的話另一塊數據還是可以進行正常讀寫等。




RAID-5


需要三塊或以上硬盤,可以提供熱備盤實現故障的恢復;只損壞一塊,沒有問題。但如果同時損壞兩塊磁盤,則數據將都會損壞。 空間利用率: (n-1)/n 2/3 如下圖所示



RAID 5原理


寫入數據:


100G文件分別寫入3塊硬盤,寫入第一塊硬盤時,會有一個校驗值,然後將A數據寫入第二塊硬盤,將B數據寫入第三塊硬盤,將C數據寫入第一塊硬盤,第二塊硬盤生成校驗值,將數據D寫入第三塊硬盤以此類推。

校驗值的作用可以推算出第三塊盤的數據,不論哪一塊盤,但是如果壞掉兩塊盤那就恢復不了了。



奇偶校驗信息的作用:

當RAID5的一個磁盤數據發生損壞後,利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。

擴展異或運算:


是用相對簡單的異或邏輯運算(相同為0,相異為1)


A值B值Xor結果

000

101

011

110


RAID10

鏡像+條帶

RAID 10是將鏡像和條帶進行兩級組合的RAID級別,第一級是RAID1鏡像對,第二級為RAID 0。RAID10也是一種應用比較廣泛的RAID級別。

RAID 1+0的特點使其特別適用於既有大量數據需要存取,同時又對數據安全性要求嚴格的領域,如銀行、金融、商業超市、倉儲庫房、各種檔案管理等。



一共8塊硬盤做RAID 10


是從下往上看的,最後面試raid1,上面是raid0所以就是raid10


不同的數據分別用字母代替:A,B,C,D,E,F,G,H


技術分享






首先4塊做raid0 後4塊做raid1,用戶寫入數據到服務器上,首先經過4塊raid0,A數據寫到raid0的第一塊硬盤上,B數據寫到raid0的第二塊硬盤上,C數據寫到raid0的第三塊硬盤上,D數據寫到raid0的第四塊硬盤上以此類推

然後將這4塊raid0硬盤和4塊raid1做鏡像(同步)如果其中一塊raid0硬盤壞掉同時做同步的raid1並頂替上即可。

RAID的選擇

技術分享

RAID硬盤失效處理

一般兩種處理方法:熱備和熱插拔

熱備:HotSpare

定義:當冗余的RAID組中某個硬盤失效時,在不幹擾當前RAID系統的正常使用的情況下,用RAID系統中另外一個正常的備用硬盤自動頂替失效硬盤,及時保證RAID系統的冗余性

全局式:備用硬盤為系統中所有的冗余RAID組共享

專用式:備用硬盤為系統中某一組冗余RAID組專用

如下圖所示:是一個全局熱備的示例,該熱備盤由系統中兩個RAID組共享,可自動頂替任何一個RAID中的一個失效硬盤

技術分享

熱插拔:HotSwap

定義:在不影響系統正常運轉的情況下,用正常的物理硬盤替換RAID系統中失效硬盤

關鍵在於熱插拔時電子器件的保護機制

RAID的使用

RAID的實現方式

我們使用RAID,是在裝系統前還是之後?

硬RAID:需要RAID卡,我們的磁盤是接在RAID卡的,由它統一管理和控制。數據也由它來進行分配和維護;它有自己的cpu,處理速度快

技術分享

操作視頻鏈接:鏈接:http://pan.baidu.com/s/1kVPyror 密碼:bd82

軟RAID:通過操作系統實現

管理軟raid工具:mdadm,mdadm是linux下用於創建和管理軟件RAID的命令,是一個模式化命令。


本文出自 “linuxtouch” 博客,請務必保留此出處http://linuxtouch.blog.51cto.com/12429083/1943878

RAID磁盤陣列的原理