RAID獨立冗餘磁盤陣列

獨立冗餘磁盤陣列(Redundant Array OF Independent Disks,RAID)開始於20世紀80年代美國加州大學伯克利分校的一個研究項目,當時RAID被稱爲廉價冗餘磁盤陣列(Redundant Array of Inexpensive Disks),簡稱爲」磁盤陣列「。後來RAID中的字母I的單詞被改成Independent,RAID就成了「獨立冗餘磁盤陣列」,但這只是名稱的變化,實質性的內容並無改變。在系統和數據安全方面,RAID技術具備明顯的優點。安全

一、 磁盤管理的基本概念

基本磁盤和基本卷      
基本磁盤和動態磁盤是磁盤管理中最基本的兩種類型。其中,基本磁盤能夠理解爲物理磁盤,即一個物理磁盤在安裝到計算機後,操做系統默認將其設置爲基本磁盤。基本磁盤在使用以前須要劃分紅一個或多個磁盤分區。該分區有如下兩種類型:
主磁盤分區
擴展磁盤分區
一個物理磁盤在具體使用時能夠根據須要劃分紅爲多個磁盤分區,並將這些磁盤分區的相關數據存儲在「分區表」中(「分區表」爲磁盤上的一個存儲區域),分區表被存儲在位於整個磁盤的第一個扇區的主引導記錄(Master Boot Record,MBR)文件內。計算機啓動時,BIOS會先讀取MBR中的信息,並將計算機的控制權交給MBR內的程序,而後由該程序繼續後續的啓動任務。一個MBR磁盤內最多能夠建立4個主磁盤分區,或最多3個主磁盤分區與1個擴展磁盤分區。每個主磁盤分區能夠分配一個驅動器號,通常從C:開始,依此類推。同時,能夠在擴展磁盤分區建立多個邏輯驅動器,邏輯驅動器也分配有驅動器號。     
基本卷:基本磁盤內的每個磁盤分區或邏輯驅動器又稱爲「基本卷」。
動態磁盤和動態卷
動態磁盤和動態卷能夠提供一些基本磁盤不具有的功能。例如,建立可跨越多個磁盤的卷(跨區卷和帶區卷)和建立具備容錯能力的卷(鏡像卷和RAID5卷)。全部動態磁盤上的卷都稱爲「動態卷」。有5種類型的動態卷:簡單卷、跨區卷、帶區卷、鏡像卷和 RAID5卷。服務器

二、RAID的組成

簡單地說,RAID是由多個獨立的高性能磁盤驅動器組成的磁盤子系統。

RAID系統由兩個主要部件組成:RAID控制器和磁盤陣列。RAID控制器是RAID系統的核心,負責數據的交換、緩衝,並管理主機(或網絡)與磁盤陣列之間的數據流。雖然RAID由多個磁盤組成,可是對於主機來講,RAID就像單個大容量的虛擬磁盤驅動器。RAID控制器一般以高速接口技術(如光纖通道、SCSI等)與主機或網絡相鏈接。網絡

三、RAID的內部結構

單通道RAID
    
如圖所示的是一個單通道RAID系統的內部結構,它的RAID控制器擁有一個通道和一個磁盤緩衝,每一個磁盤只有一個端口,RAID控制器經過該端口來尋址陣列中的每一個成員驅動器。在該系統中,RAID控制器將I/O操做分配給各成員磁盤。
多通道RAID
     
根據磁盤接口數量的不一樣,多通道RAID又分爲單磁盤接口RAID和雙磁盤接口RAID。在單磁盤接口RAID系統中,每一個磁盤僅有一個接口,但RAID控制器具備兩個通道,每一個通道分別鏈接不一樣的磁盤陣列。很顯然,若是通道數越多,則每一個RAID控制器所鏈接的磁盤數量將越多,從而存儲系統的容量也越大。目前,在多通道RAID系統中,以雙通道居多,通常最多能夠達到6個通道。                                                                           併發

                    
在雙通道RAID系統中,還有一種結構是每個RAID控制器與每一個成員驅動器都有兩個鏈接接口,控制器能夠經過任何一個通道與任意一個成員磁盤通訊。與前面兩種結構相比,這種結構提升了系統的可靠性。對於RAID控制器來講,若是一個通道出現故障,另外一個通道也可以正常工做。一樣,對於成員驅動器來講,若是一個接口出現故障,另外一個接口也可以正常工做。函數

四、 RAID技術的特色       

能夠把RAID理解成一種使用磁盤驅動器的方法,它將一組磁盤驅動器用某種邏輯方式聯繫起來,做爲邏輯上的一個磁盤驅動器來使用。通常狀況下,採用RAID技術組成的邏輯磁盤驅動器的容量要小於各個磁盤驅動器容量的總和。
早先,RAID通常是在SCSI磁盤驅動器上實現的,由於IDE磁盤驅動器的性能發揮受限於IDE接口的技術特性(IDE只能接兩個磁盤驅動器)。IDE通道最多隻能接4個磁盤驅動器,在同一時刻只能有一個磁盤驅動器能夠傳輸數據。通常狀況下,IDE通道上通常還需鏈接光驅,光驅引發的延遲會嚴重影響系統速度。SCSI適配器能夠保證每一個SCSI通道隨時保持暢通,在同一時刻每一個SCSI磁盤驅動器都能自由地向主機傳送數據,不會出現像IDE磁盤驅動器爭用設備通道的現象。       
RAID一方面具備成本低、功耗小、傳輸速率高的特色,可讓不少磁盤驅動器同時傳輸數據,而這些磁盤驅動器在邏輯上又是一個磁盤驅動器,達到單個的磁盤驅動器幾倍、幾十倍甚至上百倍的速率。另外一方面,RAID能夠利用普通磁盤驅動器實現容錯功能,對服務器的系統安全起到保護做用,這種安全保護是很是廉價的,很適合中小型局域網用戶使用。                                                                                                                                                     性能

五、RAID0

        
根據系統所提供的磁盤I/O性能和數據存儲安全性的不一樣,目前廣泛使用的RAID可分爲RAID0、RAID一、RAID0+一、RAID3和RAID5幾個級別。RAID0也稱之爲「帶區集」,它是一種無冗餘、無校驗的磁盤陣列。能夠從多個硬盤中各取一個相同容量的磁盤空間,組成一個獨立的集合,並賦予一個驅動器代號,這個具備同一代號的硬盤空間集合稱爲帶區集。
當寫入數據時,數據先被分割成大小爲64KB的數據塊,而後並行存儲到帶區集中的每一個磁盤中,系統讀取磁盤數據時,將同時從各個磁盤併發讀取數據塊,經自動整合後造成一個完整的數據。
RAID0的最大優點是經過快速讀取,提升了磁盤I/O系統的性能。但當帶區集中的任何一個硬盤或分區損壞時,將形成全部數據的丟失。RAID0通常用在對數據安全要求不高,但對速度要求很高的環境中,如小型局域網服務器。操作系統

六、 RAID1

        
RAID1即一般所講的磁盤鏡像,因此也稱之爲「鏡像磁盤陣列」。它是在一個硬盤控制卡上安裝兩塊硬盤。其中一個設置爲主盤(Master),另外一個設置爲鏡像盤或從(Slaver)。系統寫入數據時,會分別存入兩個硬盤中,兩個硬盤中保存有徹底相同的數據。一旦一個硬盤損壞,另外一個硬盤會繼續工做。RAID1具備很好的容錯能力,可是當硬盤控制卡受損時,數據將沒法讀取。爲了克服一個硬盤控制卡管理兩個硬盤時存在的安全問題,可將兩個硬盤分別安裝在不一樣的硬盤控制卡上,若是一塊硬盤控制卡受損時,另外一塊硬盤控制卡還會繼續工做,提升系統的容錯能力,將這種組合方式又叫作磁盤雙工。RAID具備最高的安全性,但只有一半的磁盤空間被用來存儲數據。主要用於對數據安全性要求高,並且要求可以快速恢復被損壞數據的場合。目前,RAID1在一些中小型的局域網服務器上最常使用。設計

七、RAID0+1

        
RAID0+1是RAID0和RAID1技術結合的產物。在單獨使用RAID1在同一時間內只能向一塊磁盤寫入數據,不能充分利用全部的磁盤資源。爲了解決這一問題,咱們能夠在磁盤鏡像中創建帶區集,以擴大磁盤的利用率。raid01,條帶加鏡像,結合了raid0和raid1的兩種功能,要求兩組不能同時都出錯。                                                                   3d

除了raid01,還有一種組合是raid10,鏡像加條帶,一樣結合了raid0和raid1兩種功能,要求任意的一組不能都出錯;                                                                                              code

八、RAID3

        
RAID3是一種帶奇校驗或偶校驗的磁盤陣列。在RAID3中採用數據分割的方式,指定一個驅動器做爲校驗盤,用於存儲奇偶校驗的信息。這就提供了必定程度的容錯功能,並且在數據密集型環境或單一用戶環境中尤爲有益於訪問較長的連續記錄。在RAID3中,任何一個單獨的磁盤驅動器損壞時均可以恢復,而且具備數據讀取速度快的優勢。但它寫數據時要計算校驗位的值以寫入校驗盤,因此寫盤速度有所降低。   

九、RAID5

       
RAID5是一種帶奇隅校驗的帶區集。它是在RAID0的基礎上增長了對寫入數據的安全恢復功能。數據塊分散存放在帶區集的全部硬盤中,同時每一個硬盤都有一個固定區域(約佔所使用硬盤分區的1/3)來存放一個奇隅校驗數據(分佈校驗)。當任何一個硬盤失效時,可利用此奇隅校驗數據推算出故障盤中的數據來,而且這個恢復操做在不停機的狀態下由系統自動完成。RAID5在使整個硬盤的I/O性能獲得明顯改善的同時,還具備很是好的容錯能力,但硬盤空間沒法所有用來保存正常數據。

上文分別介紹了多種RAID方案,在這些方案中(除RAID0),不論什麼時候有磁盤損壞,均可以隨時拔出損壞的磁盤再插入好的磁盤,數據不會受到損壞,失效磁盤上的內容能夠很快被重建和恢復,並且整個過程都由相關的硬件或軟件來完成。
經過上面的介紹,咱們發現:RAID0不具備錯誤校驗功能,因此有人說它不能算是RAID,其實這也是RAID0爲何被稱爲0級RAID的緣由。

十、RAID6     

RAID 6等級是在RAID 5基礎上,爲了進一步增強數據保護而設計的一種RAID方式,其實是一種擴展RAID 5等級。前面所介紹的RAID技術,能夠保證當一塊硬盤出現故障後使數據不被丟失。可是,若是有兩塊或兩塊以上的硬盤出現故障,系統中的全部數據將所有丟失。RAID6經過提供兩級冗餘的方法來保證在系統中同時有兩塊硬盤出現故障時,陣列還可以繼續工做。                                                                                                                                                                                                           目前,RAID6有多種實現方式。其中一種實現方式爲:當對每一個數據執行寫操做時,RAID6作兩個獨立的校驗計算,並把校驗值分別保存在兩個校驗盤上,或相似於RAID5把校驗值分佈到全部的硬盤上。同時,在兩個獨立的校驗計算時,所使用的校驗方式可能不一樣,例如一個可能由XOR函數產生,而另外一個可能使用其餘的操做。假若有兩個硬盤出現故障,那麼經過求解帶有兩個變量的方程,就能夠恢復這兩個硬盤上的數據。這種方程的求解過程能夠由硬件來實現。

十一、RAID2和RAID4    

須要說明的是,在前面的介紹中咱們沒有專門介紹RAID2和RAID4.   

RAID2的設計思想是使用海明碼(Hamming code)實現數據校驗冗餘。海明碼能夠在數據發生錯誤的狀況下自動對錯誤進行校訂,即自動進行糾錯處理。但RAID2的硬盤利用率僅爲4/7,每4個數據盤須要3個額外的校驗盤。因爲後來大部分硬盤都具備糾錯功能,而且RAID2自己的工做速率又慢,因此未進入商業應用。        RAID4是一種獨立訪問RAID的實現,它也一樣使用一個專用的校驗磁盤。與RAID3不一樣的是,RAID4有更多的分塊,使多個I/O請求能同時處理。在讀操做方面,RAID4有很好的性能,但在寫操做方面因爲須要更新校驗盤的相應分塊數據,單一的校驗盤將成爲系統的瓶頸,並且隨着成員磁盤數據的增長,校驗盤所存在的問題將愈來愈爲突出。因爲RAID4的擴展性受到很大的限制,因此使用RAID4技術的產品並很少見。

相關文章
相關標籤/搜索