官术网_书友最值得收藏!

1.3 磁盤陣列

目前單塊磁盤的容量已經能達到8TB,但這對于現代應用程序來說還遠遠不夠。那么是否必須要制造單盤容量更大的硬盤,為解決這個問題人們發明了RAID(Redundant Arrays of Independent Disks,獨立磁盤冗余陣列)技術。

RAID最初是為了組合小的廉價磁盤來代表大的昂貴磁盤,同時希望磁盤失效時不會對數據的訪問造成損失而開發的一定水平的數據保護技術。它就是一種由多塊廉價磁盤構成的冗余陣列,在操作系統下作為一個獨立的大型存儲設備出現。RAID充分發揮出多塊硬盤的優勢,可以提升硬盤速度,增大容量,提供容錯功能,確保數據的安全性,易于管理,并在任何一塊硬盤出現問題的情況下都可以繼續工作,不會受到損壞硬盤的影響。

RAID簡單的理解就是將多臺硬盤通過RAID控制器(基于軟件和硬件)結合成虛擬單臺大容量的硬盤使用。目前,RAID技術的實現方式大致分為兩種:基于硬件的RAID技術和基于軟件的RAID技術。基于軟件的RAID包含在操作系統中,其RAID功能完全用軟件方式由系統的核心磁盤代碼來實現。基于硬件的RAID是利用硬件RAID適配卡來實現的。RAID適配卡上集成了處理器,能夠獨立于主機對存儲子系統進行控制。因為擁有自己獨立的存儲器和處理器,RAID適配卡可以自己計算奇偶校驗信息并完成文件定位,減少對主機CPU運算時間的占用,提高了數據傳輸速度。由此可見,基于硬件的RAID比基于軟件的RAID在工作性能上要強一些。

根據組成磁盤陣列的磁盤組織架構、數據布局以及相關技術的不同,磁盤陣列可以分為多種級別。

1.RAID0

RAID0是最早出現的RAID模式,即數據分條(Data Stripping)技術。RAID0是組建磁盤陣列中最簡單的一種形式,只需要兩個以上的硬盤即可,成本低,且可以提高整個磁盤的性能和吞吐量。RAID 0沒有提供冗余或錯誤修復能力,但實現成本是最低的。

RAID0最簡單的實現方式就是把N個同樣的硬盤用硬件的形式通過智能磁盤控制器或用操作系統中的磁盤驅動程序以軟件的方式串聯在一起創建一個大的卷集。在使用中計算機數據依次寫入各硬盤中,它的最大優點就是可以成倍地提高硬盤的容量。最大的缺點在于任何一個硬盤出現故障,整個系統將會受到破壞,可靠性僅為單獨一個硬盤的1/N。為了解決這一問題,便出現了RAID0的另一種模式,即在N個硬盤上選擇合理的帶區來創建帶區集,其原理就是將原先順序寫入的數據分散到所有的N個硬盤中同時進行讀寫,這樣對N個硬盤的并行操作使得同一時間內磁盤讀寫的速度較串聯讀寫模式提升了N倍。

雖然RAID0可以提供更多的空間和更好的性能,但是整個系統是非常不可靠的,如果出現故障,無法進行任何補救。所以,RAID0一般只是在那些對數據安全性要求不高的情況下才被人們使用。

2.RAID1

RAID1是利用鏡像技術來實現存儲數據容錯的陣列技術,又稱為磁盤鏡像,它對存放的數據完全冗余,通過簡單地將一個盤上的數據鏡像到另一個盤上來實現數據冗余,當數據寫在某一個硬盤上時,它會同時被寫到相應的鏡像盤上,在不影響性能的情況下最大限度地保證了系統的可靠性和可修復性。RAID1中的數據盤與鏡像盤沒有主從關系,它們可以相互鏡像或恢復。這種方法雖然簡單,但實現成本卻要比RAID0貴一倍。在這種模式下,任何一個硬盤出現故障都不會影響到整個陣列的正常工作,因為它還有一個鏡像盤可以工作,甚至在一半數量以上的硬盤出現問題時系統都可以正常工作。

RAID1主要是通過二次讀寫實現磁盤鏡像,因此磁盤控制器的負載也相當大,尤其是在需要頻繁寫入數據的環境中。為了避免出現性能瓶頸,使用多個磁盤控制器就顯得很有必要。

3.RAID2

RAID2采用內存系統中常用的糾錯碼——漢明碼進行數據保護。漢明碼是在原有數據中插入若干校驗碼來進行錯誤檢查和糾正的編碼技術,它根據現有的數據編碼各位的值,生成自己的校驗碼,然后再將校驗碼與原來的數據碼合并,轉換成新的數據編碼。

RAID2中也采用數據條帶的方式進行存取,在RAID2中,條帶非常小,用戶數據以位或字節為單位進行條紋化,劃分為若干相互重疊的子集,每個子集的用戶數據計算校驗數據并存放在一個校驗磁盤上。當一個磁盤發生故障時,幾個校驗組的數據會不一致,而丟失數據即為這幾個校驗組共同包含的數據,用其中一個校驗組的剩余數據即可恢復丟失數據。RAID2一般應用于多磁盤易出錯環境中,對于單磁盤而言意義不大。

4.RAID3

RAID3是在RAID2的基礎上發展而來的,關鍵是使用相對簡單的奇偶校驗代替了較為復雜的漢明碼校驗,大大降低了陣列的成本。與RAID2不同的是,無論磁盤陣列數目有多少,RAID3只需要單個冗余校驗盤。在RAID3中,數據分布在不同的較小的條帶上,并且進行并行方式讀寫操作。如果一塊磁盤失效,奇偶盤與其他數據盤可以重新生成數據,如果奇偶盤失效則不影響數據使用。

5.RAID4

RAID4是獨立的數據盤和共享的校驗盤陣列技術,它以數據塊為單位進行存儲空間分配。RAID4使用一個磁盤作為奇偶校驗盤,每次寫操作都需要訪問校驗盤,這時校驗盤也會成為寫操作的瓶頸。

RAID4與RAID3基本相同,不同之處在于RAID4采用粗粒度條紋化,條紋單元較大。由于條紋單元較大,多數較小請求只涉及一個磁盤,磁盤陣列可并行處理多個請求。因此RAID4更適合用于并發度高,而請求相對較小的應用。但對于相對較大的請求,RAID4也可提供較高的數據傳輸率。

6.RAID5

RAID5是目前市場上最常見的RAID產品,它是一種無獨立校驗盤的奇偶校驗硬盤陣列,它具有較高的存儲性能、較強的數據安全性以及實現成本低等特點。它的奇偶校驗碼存在于所有磁盤上,當硬盤出現問題時,可以利用剩下的數據和對應的奇偶校驗信息來恢復磁盤陣列和正常工作。RAID3與RAID5相比,重要的區別在于RAID3每進行一次數據傳輸,需涉及所有的陣列盤。而對于RAID5來說,大部分數據傳輸只對一個磁盤操作,可進行并行操作。在RAID5中有“寫損失”,即每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。

7.RAID6

RAID6的基本思想就是進行兩種不同的奇偶計算,并將校驗數據分開存儲在不同的磁盤上。那么,如果用戶需要N個磁盤的陣列,則總的磁盤數目將是N+2。RAID6在設計時引入兩級冗余的技術,主要是為了保證即使陣列中出現兩個硬盤同時失效,仍然能夠正常工作,并恢復相應的數據。該技術把數據和校驗信息分布到一組硬盤中,當有硬盤失效時,丟失的那部分數據則可以通過剩余硬盤上的數據和校驗信息通過計算而恢復。所以說,RAID6是一種雙重奇偶校驗存取陣列。RAID6的控制器在設計時非常復雜,實現成本極高,目前主要用于數據絕對安全的環境中,不太適合于普及應用。

在實際應用中,選擇相應RAID級別主要依據可用性、存儲性能和實現成本這三個因素,RAID基本級別的一些主要特征如表1-3所示。

表1-3 RAID級別對照表

主站蜘蛛池模板: 池州市| 中卫市| 射洪县| 叙永县| 桐庐县| 邛崃市| 增城市| 平利县| 昌吉市| 合作市| 鄂温| 和顺县| 寻甸| 扶绥县| 定陶县| 广平县| 胶州市| 罗甸县| 浑源县| 儋州市| 山东| 崇阳县| 涪陵区| 宜君县| 乌兰察布市| 上栗县| 凤城市| 客服| 南皮县| 读书| 泸州市| 云林县| 轮台县| 湖南省| 珲春市| 嘉兴市| 库伦旗| 浪卡子县| 佛山市| 黔南| 安达市|