RAID 概述

 

原創地址:http://www.cnblogs.com/jfzhu/p/3999283.htmlhtml

轉載請註明出處數據庫

 

獨立硬盤冗餘陣列RAID, Redundant Array of Independent Disks),舊稱廉價磁盤冗餘陣列Redundant Array of Inexpensive Disks),簡稱硬盤陣列。其基本思想就是把多個相對便宜的硬盤組合起來,成爲一個硬盤陣列組,使性能達到甚至超過一個價格昂貴、容量巨大的硬盤。RAID把多個硬盤組合成爲一個邏輯扇區,所以,操做系統只會把它看成一個硬盤。RAID常被用在服務器電腦上,而且常使用徹底相同的硬盤做爲組合。緩存

 

(一)RAID級別安全

常見的有如下幾種服務器

RAID 0 – Disk Striping多線程

RAID 1 – Disk Mirroringsvg

RAID 5 – Disk Striping with Parity性能

 

 

(1)RAID 0spa

它將兩個以上的磁盤串聯起來,成爲一個大容量的磁盤。它能夠合併的硬盤數量是2-32個硬盤,合併後的硬盤容量即爲每一個硬盤容量的總和。舉個例子,有四塊硬盤,每一個硬盤容量都是250GB,那麼Disk Striping Array的容量就爲1TB。操作系統

它在向磁盤存放數據時,將數據分段(以位或字節爲單位)後分散存儲在這些磁盤中。好比要保存一個Excel文檔,這個文檔的bit 1被寫到磁盤1中,bit 2被寫到磁盤2中,bit 3被寫到磁盤3中,bit 4被寫到磁盤4中,而後bit 5又被寫到bit 1中,這樣循環下去,只到整個文檔都被寫完。由於讀寫時均可以並行處理,因此在全部的級別中,RAID 0的速度是最快的。可是RAID 0既沒有冗餘功能,也不具有容錯能力,若是一個磁盤(物理)損壞,全部數據都會丟失,危險程度很高。

 

Picture1

 

325px-RAID_0_svg

 

Volume = Sum(S1, S2, S3,…)

 

優勢:硬盤利用率高,讀寫速度快

缺點:沒有冗餘功能

 

(2) RAID 1

Disk Mirroring 的意思是多塊硬盤互爲鏡像,其原理爲在主硬盤上存放數據的同時也在鏡像硬盤上寫同樣的數據,當主硬盤(物理)損壞時,鏡像硬盤則代替主硬盤的工做。由於有鏡像硬盤作數據備份,因此RAID 1的數據安全性在全部的RAID級別上來講是最好的,可靠性最高。RAID 1支持熱插拔,若是有一塊硬盤壞掉,能夠把它直接拔下來,而後熱插上一塊新硬盤,新硬盤會把另外一塊硬盤內容拷貝過來。在一些多線程操做系統中能有很好的讀取速度,理論上讀取速度等於硬盤數量的倍數,但寫入速度有微小的下降。另外不管用多少磁盤作RAID 1,僅算一個磁盤的容量,是全部RAID中磁盤利用率最低的一個級別。

 

 

Picture2

 

325px-RAID_1_svg

 

Volume = min(S1, S2, S3…)

 

優勢:冗餘功能

缺點:硬盤寫速度下降,硬盤利用率低

 

(3) RAID 5

RAID 5能夠理解爲是RAID 0和RAID 1的折衷方案,它兼顧了儲存性能、數據安全和存儲成本。RAID 5須要至少3塊硬盤,它不是對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,而且奇偶校驗信息和相對應的數據分別存儲於不一樣的磁盤上。當RAID 5的一個磁盤數據發生損壞後,能夠利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。

RAID 5能夠爲系統提供數據安全保障,但保障程度要比鏡像低而磁盤空間利用率要比鏡像高。RAID 5具備和RAID 0相近似的數據讀取速度,只是由於多了一個奇偶校驗信息,寫入數據的速度相對單獨寫入一塊硬盤的速度略慢,若使用「回寫高速緩存」可讓性能改善很多。同時因爲多個數據對應一個奇偶校驗信息,RAID 5的磁盤空間利用率要比RAID 1高,存儲成本相對較便宜。

 

Volume = (N - 1) * min(S1, S2, S3…, SN)

Picture3

 

675px-RAID_5_svg

 

優勢:磁盤容量利用率較高 (RAID 0 > RAID 5 > RAID 1)

        硬盤讀速度較快(RAID 0 > RAID 5 > RAID 1)

        冗餘功能

 

(4) RAID 10 / 01

RAID 10是先鏡像再分割資料,再將全部硬盤分爲兩組,視爲是RAID 0的最低組合,而後將這兩組各自視爲RAID 1運做。

RAID 01則是跟RAID 10的程序相反,是先分割再將資料鏡像到兩組硬盤。它將全部的硬盤分爲兩組,變成RAID 1的最低組合,而將兩組硬盤各自視爲RAID 0運做。

當RAID 10有一個硬盤受損,其他硬盤會繼續運做。RAID 01只要有一個硬盤受損,同組RAID 0的全部硬盤都會中止運做,只剩下其餘組的硬盤運做,可靠性較低。若是以六個硬盤建RAID 01,鏡像再用三個建RAID 0,那麼一個硬盤壞便會有三個硬盤離線。所以,RAID 10遠較RAID 01經常使用,零售主機板絕大部份支援RAID 0/1/5/10,但不支援RAID 01。

 

Picture4

 

 

600px-RAID_10_svg            600px-RAID_01_svg

應該說可以與RAID10競爭的只有RAID 5了,二者在不一樣的場景有大量的使用。在安全性上RAID 10要比RAID 5強,當RAID 5有一塊硬盤損壞時,讀性能有很大的降低,由於損壞硬盤中的數據要經過其餘硬盤中的數據和校驗一塊兒才能計算出來,因此在數據庫存儲時通常選擇RAID 10。在磁盤使用率上RAID 5要比RAID 10高不少,因此對安全性要求不是特別高的場合好比文件存儲通常大量使用RAID 5。相反,安全性要求很高,不計成本,小數據量頻繁寫入的系統採用RAID 10的方式比較好。

 

 

(二)Size VS. Volume in RAID

Size >= Volume

RAID對每塊硬盤所能使用的容量取決於容量最小的那塊硬盤。如下圖爲例,三塊硬盤的容量分別爲500GB, 250GB, 100GB, 咱們要作一個RAID 5陣列,那麼每塊硬盤可使用的容量就爲100GB。作出的陣列,Size爲300GB, Volume爲200GB。

 

Picture6

 

 

(三)服務器磁盤陣列損壞時注意不要作的事情

當服務器的RAID的磁盤陣列壞掉時,不要break磁盤陣列,不要將一塊磁盤拔出來,試圖在其餘地方進行數據恢復,由於這樣可能會破壞磁盤陣列數據的完整性。

 

 

(四)實際應用狀況

RAID二、三、4較少實際應用,由於RAID5已經涵蓋了所需的功能,所以RAID二、三、4大多隻在研究領域有實現,而實際應用上則以RAID 5爲主。在數據庫等重要領域通常使用RAID 10,因此在實際生產中要麼選擇RAID5,要麼選擇RAID10,固然也有少許的RAID6存在。除非特定廠商的產品有比較特殊的特定的選擇。雖然RAID技術是一個很偉大的發明,可是除非在大型企業或數據中心中,通常不建議使用RAID。即使使用了RAID技術,作好系統備份與災難恢復的工做也是十分重要的,好比若是RAID Controller壞掉了,可能廠商會次日纔會過來幫你換一個新的,又或者廠商已經倒閉,沒有辦法換一個新的RAID Controller,因此相對來說,可能更爲實惠可靠的方法是對數據作好災備工做。

 

另外參見微軟的文檔 RAID Levels and SQL Server

相關文章
相關標籤/搜索