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 | 數據鏡像化 | 2 | 50% | 讀寫速度一般,容錯 (比如兩塊盤分別大小爲1T,兩塊盤都做raid1,讀寫速度肯定沒有raid0讀寫快,使用率也沒有raid0好,優點就是可以容錯,相當於一塊盤壞掉了還可以把原來的數據恢復回來,但是隻有1T的存儲空間。) |
RAID5 | 帶奇偶校驗的條帶集 | 3+ | (n-1)/n | 讀寫速度快,容錯,允許壞一塊盤 |
RAID6 | 帶奇偶校驗的條帶集,雙校驗 | 4+ | (n-2)/n | 讀寫快,容錯,允許壞兩塊盤 |
RAID10 | RAID1的安全+RAID0的高速 | 4 | 50% | 讀寫速度快,容錯 |
RAID50 | RAID5的安全+RAID0的高速 | 6 | (n-2)/n | 讀寫速度快,容錯 |
RAID60 | RAID5的安全+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的命令,是一個模式化命令。