一、什么是RAID
RAID:Redundant Arrays of Inexpensive(Independent)Disks,廉價(獨立)的冗余磁盤陣列。1988年由加利福尼亞大學伯克利分校提出。使用多個相對便宜的磁盤通過某種方式組合成一個“陣列”,來提供更好的性能、冗余,或兩者同時提供。
性能提高:
磁盤并行讀寫,可提高I/O能力。
穩定性提高:
磁盤冗余來實現。
RAID實現的方式:
外接式磁盤陣列:通過擴展卡提供適配能力。
內接式磁盤陣列:主板集成RAID控制器。安裝OS前在BIOS里配置
軟件RAID:通過OS實現。
RAID有級別之分,不同的級別僅代表磁盤組織工作的方式不同,并未有優劣之分。
常用的RAID級別有:
RAID-0:條帶卷
RAID-1:鏡像卷
RAID-5:單磁盤分布式奇偶校驗
RAID-6:雙磁盤雙分布式奇偶校驗
RAID-10:RAID-1嵌套在RAID-0中使用
RAID-01:RAID-0嵌套在RAID-1中使用
二、RAID級別詳解
RAID-0:條帶化
存儲時,把數據條帶化,并切成塊(chunk),分散存入磁盤陣列下的不同磁盤中。
圖示RAID-0可以看出,數據在條帶化后被分隔存儲,讀取時再分別從不同的磁盤中讀取數據進行組合。這樣就能實現并行讀寫,大大提升I/o能力。但沒有磁盤備份數據,所以無容錯性,任何一塊磁盤損壞,都會導致數據損壞,從而使業務中止。
總結:RAID-0
1、讀寫能力明顯提升;
2、實際可用空間:N*min(S1,S2…) (N為組成磁盤陣列的磁盤數。下同。)
3、無容錯能力;
4、磁盤陣列最小使用磁盤數:2。
RAID-1:鏡像卷
存儲時,每塊磁盤設備中都存儲了完整的數據塊。由于數據被存儲了兩次,所以寫性能是有所下降的,但讀取時可以分散讀取,所有讀性能是有提升的。兩塊磁盤中存儲的數據完全相同,這就意味當有一塊設備壞掉的時候,另一塊設備是完全不受影響的,業務也就不會終止。
總結:RAID-1
1、 讀性能提升、寫性能略有下降;
2、 實際可用空間:1*min(S1,S2…);
3、 有容錯能力;
4、 最少磁盤數:2。
RAID-5:單磁盤分布式奇偶校驗
其實,還存在一種RAID-4的排列方式,類似于RAID-0,只是額外多了一塊硬盤用來存儲數據的校驗為。并且數據的讀寫也不是簡單的分散存儲以及合并讀取了。而是通過把兩塊(chunk)數據進行異或運算得到一個校驗位,把校驗位一并存儲到第三塊磁盤中。當其中一塊數據盤損壞時,就可以通過把校驗位與另一塊數據盤的數據異或運算,得到缺失的數據。
但人們發現把校驗位集中存放在同一個設備上,導致該設備的讀寫負擔過重,該磁盤經常損壞,所以在RAID-4的基礎上設計了RAID-5。AID-5不再區分數據盤和校驗盤,而是把校驗位循環分散存儲到各個磁盤上。RAID-5如圖所示(x代表校驗位。),校驗位也可以左對齊排列。這樣一來便分散了校驗盤的負擔。
總結:RAID-5
1、 同樣實現數據的分散并行存儲,提高了讀、寫性能
2、 存在校驗位,有容錯能力,但只允許一塊磁盤損壞。
3、 實際可用空間:校驗位占用了一個磁盤,所以 (N-1)*min(S1,S2…)
4、 最少磁盤數:3。
RARD-6:雙磁盤分布式奇偶校驗
RAID-6類似與RAID-5的工作方式,在RAID-5的基礎上再添一塊校驗位硬盤,即存在兩個校驗位。大家都知道,一個方程組中,兩個方程式可以求出兩個未知數,同樣的兩個校驗位也可以算出兩個缺失的數據。因此,RAID-6最大可以允許兩塊磁盤損壞。
總結:RAID-6
1、 讀、寫性能提升
2、 有容錯能力:最多允許壞兩塊磁盤
3、 可用空間:(N-2)*min(S1,S2…)
4、 最少磁盤數:4。
RAID-10:RAID-1嵌套在RAID-0中使用
如圖:可以看出,從底層往上,先用四個磁盤,兩兩一組做成RAID-1鏡像組,把兩組RAID-1做成RAID-0條帶卷。這樣簡單的組合便可以把RAID-1和RAID-0的優勢組合起來利用。
總結:RAID-10
1、 讀、寫性能提升
2、 有容錯能力:每組鏡像最多只能壞一塊
3、 實際空用空間:N*min(S1,S2…)/2
4、 最少磁盤數:4。
RAID-01 :RAID-0嵌套在RAID-1中使用
與RAID-10原理相似,只是順序顛倒,先組成RAID-0,再把RAID-0組成RAID-1。
個人認為其實RAID-01較RAID-10來說更有優勢,RAID-10只允許每個條帶組中最多有一個磁盤損壞,而RAID-01還可以允許其中一整個鏡像組損壞。
總結:RAID-01
1、 讀、寫性能提升
2、 有容錯能力:可以允許整個鏡像組的磁盤全數損壞;
3、 實際空用空間:N*min(S1,S2…)/2
4、 最少磁盤數:4。
三、注意:
RAID磁盤陣列不同于備份,只是為日常業務的高效穩定運行提供了更多的保障機制,并不能替代備份。因為所有的冗余磁盤在讀寫時都是同步進行的,一個文件改了就全改了,刪了也就全刪了。所以,RAID并不能替代日常的備份工作。
原創文章,作者:Hulk,如若轉載,請注明出處:http://www.www58058.com/58833