一、RAID 磁盤陣列概念
??磁盤陣列(Redundant Arrays of Independent Drives,RAID),有“獨立磁盤構成的具有冗余能力的陣列”之意。
??磁盤陣列是由很多塊獨立的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數(shù)據(jù)所產生加成效果提升整個磁盤系統(tǒng)效能。利用這項技術,將數(shù)據(jù)切割成許多區(qū)段,分別存放在各個硬盤上。
??磁盤陣列還能利用同位檢查(Parity Check)的觀念,在數(shù)組中任意一個硬盤故障時,仍可讀出數(shù)據(jù),在數(shù)據(jù)重構時,將數(shù)據(jù)經(jīng)計算后重新置入新硬盤中。
二、RAID技術主要有以下三個基本功能:
??(1)通過對磁盤上的數(shù)據(jù)進行條帶化,實現(xiàn)對數(shù)據(jù)成塊存取,減少磁盤的機械尋道時間,提高了數(shù)據(jù)存取速度。
??(2)通過對一個陣列中的幾塊磁盤同時讀取,減少了磁盤的機械尋道時間,提高數(shù)據(jù)存取速度。
??(3)通過鏡像或者存儲奇偶校驗信息的方式,實現(xiàn)了對數(shù)據(jù)的冗余保護。
三、RAID級別
??RAID分為6個級別,不同的級別應滿足應用程序的需求。
??(1)RAID 0

??RAID 0是最早出現(xiàn)的RAID模式,即Data Stripping數(shù)據(jù)分條技術。RAID 0是組建磁盤陣列中最簡單的一種形式,只需要2塊以上的硬盤即可,成本低,可以提高整個磁盤的性能和吞吐量。RAID 0沒有提供冗余或錯誤修復能力,但實現(xiàn)成本是最低的。
??RAID 0實現(xiàn)方式就是把N塊同樣的硬盤用硬件的形式通過智能磁盤控制器或用操作系統(tǒng)中的磁盤驅動程序以軟件的方式串聯(lián)在一起創(chuàng)建一個大的卷集。其讀寫性能均得到較好的提升,如使用了三塊100GB的硬盤組建成RAID 0模式,那么磁盤容量就會是300GB;而速度方面,各單獨一塊硬盤的速度完全相同。最大的缺點在于RAID 0沒有容錯能力,任何一塊硬盤出現(xiàn)故障,整個系統(tǒng)將會受到破壞,可靠性僅為單獨一塊硬盤的1/N。
??(2)RAID 1

??RAID 1稱為磁盤鏡像,原理是把一個磁盤的數(shù)據(jù)鏡像到另一個磁盤上,也就是說數(shù)據(jù)在寫入一塊磁盤的同時,會在另一塊閑置的磁盤上生成鏡像文件,在不影響性能情況下最大限度的保證系統(tǒng)的可靠性和可修復性上,只要系統(tǒng)中任何一對鏡像盤中至少有一塊磁盤可以使用,甚至可以在一半數(shù)量的硬盤出現(xiàn)問題時系統(tǒng)都可以正常運行,當一塊硬盤失效時,系統(tǒng)會忽略該硬盤,轉而使用剩余的鏡像盤讀寫數(shù)據(jù),具備很好的磁盤冗余能力;
??雖然RAID 有很好的冗余能力,但是磁盤的使用率僅為50%,企業(yè)的成本需要增加,以4塊100GB容量的硬盤為例,可利用的磁盤空間僅為200GB;并且,當硬盤出現(xiàn)故障后,需要及時的更換損壞的硬盤,否則剩余的鏡像盤也很容易出現(xiàn)問題,導致整個系統(tǒng)崩潰,更換新硬盤后,原有數(shù)據(jù)需要較長的時間才能同步鏡像,同步時,外界對數(shù)據(jù)的訪問不會受到影響,但此時整個系統(tǒng)的性能會有所下降
??RAID 1主要是通過二次讀寫實現(xiàn)磁盤鏡像,所以磁盤控制器的負載也相當大,尤其是在需要頻繁寫入數(shù)據(jù)的環(huán)境中。
??(3)RAID 5

RAID 5(分布式奇偶校驗的獨立磁盤結構)
??從它的示意圖上可以看到,它的奇偶校驗碼存在于所有磁盤上,其中的p0代表第0帶區(qū)的奇偶校驗值,其它的意思也相同。RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。因為奇偶校驗碼在不同的磁盤上,所以提高了可靠性。但是它對數(shù)據(jù)傳輸?shù)牟⑿行越鉀Q不好,而且控制器的設計也相當困難。RAID 3 與RAID 5相比,重要的區(qū)別在于RAID 3每進行一次數(shù)據(jù)傳輸,需涉及到所有的陣列盤。而對于RAID 5來說,大部分數(shù)據(jù)傳輸只對一塊磁盤操作,可進行并行操作。在RAID 5中有“寫損失”,即每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的數(shù)據(jù)及奇偶信息,兩次寫新的數(shù)據(jù)及奇偶信息。
??(4)RAID 6

??RAID6全稱為Independent Data Disks with two Independent Distributed Darity Schemes(帶有兩個獨立分布式校驗方案的獨立數(shù)據(jù)磁盤)
??RAID 6技術是在RAID 5基礎上,為了進一步加強數(shù)據(jù)保護而設計的一種RAID方式,實際上是一種擴展RAID 5等級。與RAID 5的不同之處于除了每個硬盤上都有同級數(shù)據(jù)XOR校驗區(qū)外,還有一個針對每個數(shù)據(jù)塊的XOR校驗區(qū),RAID 6 是在RAID-5基礎上把校驗信息由一位增加到兩位的RAID級別。
??RAID6的優(yōu)點是快速的讀取性能,更高的容錯能力;而它的缺點是很慢的寫入速度,RAID控制器在設計上更加復雜,成本更高。
??(5)RAID 10/RAID 01


??RAID 10是先鏡射再分區(qū)數(shù)據(jù),再將所有硬盤分為兩組,視為是RAID 0的最低組合,然后將這兩組各自視為RAID 1運作。
??RAID 01則是跟RAID 10的程序相反,是先分區(qū)再將數(shù)據(jù)鏡射到兩組硬盤。它將所有的硬盤分為兩組,變成RAID 1的最低組合,而將兩組硬盤各自視為RAID 0運作。
??當RAID 10有一個硬盤受損,其余硬盤會繼續(xù)運作。RAID 01只要有一個硬盤受損,同組RAID 0的所有硬盤都會停止運作,只剩下其他組的硬盤運作,可靠性較低。如果以六個硬盤建RAID 01,鏡射再用三個建RAID 0,那么壞一個硬盤便會有三個硬盤脫機。因此,RAID 10遠較RAID 01常用,零售主板絕大部份支持RAID 0/1/5/10,但不支持RAID 01。
??最后說說為什么RAID10比RAID 01好且靠譜:
??RAID0+1是先做兩個RAID0,然后再做RAID1,因此RAID0+1允許壞多個盤,但只能在壞在同一個RAID0中,不允許兩個RAID0都有壞盤。
??RAID1+0是先做RAID1,然后再做RAID0,因此RAID1+0允許壞多個盤,只要不是一對磁盤壞就可以啦。
??因此說RAID1+0比RAID0+1安全得多,因為在同一對磁盤中,兩塊磁盤都壞掉的概率很低。
??RAID 0和RAID 1分別用于增強存儲性能(RAID 0 條帶)和數(shù)據(jù)安全性(RAID 1 鏡像),而RAID 0+1和RAID 10兼顧了RAID 0和RAID 1的優(yōu)點,它在提供RAID 1一樣的數(shù)據(jù)安全保證的同時,也提供了與RAID 0近似的存儲性能。雖然RAID 0+1和RAID 10基本原理相近,都是RAID0和RAID1的結合,不過還是有些區(qū)別。
??在MySQL數(shù)據(jù)庫中,通常我們選用RAID 10。
??RAID 10是一個RAID 1與RAID 0的組合體,它是利用奇偶校驗實現(xiàn)條帶集鏡像,所以它繼承了RAID 0的快速和RAID 1的安全。我們知道,RAID 1在這里就是一個冗余的備份陣列,而RAID 0則負責數(shù)據(jù)的讀寫陣列。它的優(yōu)點是同時擁有RAID 0的超凡速度和RAID 1的數(shù)據(jù)高可靠性,但是CPU占用率同樣也更高,而且磁盤的利用率比較低。由于利用了RAID 0極高的讀寫效率和RAID 1較高的數(shù)據(jù)保護、恢復能力,使RAID 10成為了一種性價比較高的等級,目前幾乎所有的RAID控制卡都支持這一等級。但是,RAID 10對存儲容量的利用率和RAID 1一樣低,只有50%。因此,RAID10即高可靠性與高效磁盤結構它是一個帶區(qū)結構加一個鏡象結構,可以達到既高效又高速的目的,RAID 10能提供比RAID 5更好的性能。這種新結構的可擴充性不好,這種解決方案被廣泛應用,使用此方案比較昂貴
AID特性匯總
