關於磁盤陣列的知識

RAID基礎知識

基本原理

RAID ( Redundant Array of Independent Disks )即獨立磁盤冗餘陣列,通常簡稱爲磁盤陣列。簡單地說, RAID 是由多個獨立的高性能磁盤驅動器組成的磁盤子系統,從而提供比單個磁盤更高的存儲性能和數據冗餘的技術。 RAID 是一類多磁盤管理技術,其向主機環境提供了成本適中、數據可靠性高的高性能存儲。 SNIA 對 RAID 的定義是 :一種磁盤陣列,部分物理存儲空間用來記錄保存在剩餘空間上的用戶數據的冗餘信息。當其中某一個磁盤或訪問路徑發生故障時,冗餘信息可用來重建用戶數據。磁盤條帶化雖然與 RAID 定義不符,通常還是稱爲 RAID (即 RAID0 )。

RAID 的初衷是爲大型服務器提供高端的存儲功能和冗餘的數據安全。在整個系統中, RAID 被看作是由兩個或更多磁盤組成的存儲空間,通過併發地在多個磁盤上讀寫數據來提高存儲系統的 I/O 性能。大多數 RAID 等級具有完備的數據校驗、糾正措施,從而提高系統的容錯性,甚至鏡像方式,大大增強系統的可靠性, Redundant 也由此而來。

RAID 的兩個關鍵目標是提高數據可靠性和 I/O 性能。磁盤陣列中,數據分散在多個磁盤中,然而對於計算機系統來說,就像一個單獨的磁盤。通過把相同數據同時寫入到多塊磁盤(典型地如鏡像),或者將計算的校驗數據寫入陣列中來獲得冗餘能力,當單塊磁盤出現故障時可以保證不會導致數據丟失。有些 RAID 等級允許更多地 磁盤同時發生故障,比如 RAID6 ,可以是兩塊磁盤同時損壞。在這樣的冗餘機制下,可以用新磁盤替換故障磁盤, RAID 會自動根據剩餘磁盤中的數據和校驗數據重建丟失的數據,保證數據一致性和完整性。數據分散保存在 RAID 中的多個不同磁盤上,併發數據讀寫要大大優於單個磁盤,因此可以獲得更高的聚合 I/O 帶寬。當然,磁盤陣列會減少全體磁盤的總可用存儲空間,犧牲空間換取更高的可靠性和性能。比如, RAID1 存儲空間利用率僅有 50% , RAID5 會損失其中一個磁盤的存儲容量,空間利用率爲 (n-1)/n 。

磁盤陣列可以在部分磁盤(單塊或多塊,根據實現而論)損壞的情況下,仍能保證系統不中斷地連續運行。在重建故障磁盤數據至新磁盤的過程中,系統可以繼續正常運行,但是性能方面會有一定程度上的降低。一些磁盤陣列在添加或刪除磁盤時必須停機,而有些則支持熱交換 ( Hot Swapping ),允許不停機下替換磁盤驅動器。這種高端磁盤陣列主要用於要求高可能性的應用系統,系統不能停機或儘可能少的停機時間。一般來說, RAID 不可作爲數據備份的替代方案,它對非磁盤故障等造成的數據丟失無能爲力,比如病毒、人爲破壞、意外刪除等情形。此時的數據丟失是相對操作系統、文件系統、卷管理器或者應用系統來說的,對於 RAID 系統來身,數據都是完好的,沒有發生丟失。所以,數據備份、災 備等數據保護措施是非常必要的,與 RAID 相輔相成,保護數據在不同層次的安全性,防止發生數據丟失。

RAID 中主要有三個關鍵概念和技術:鏡像( Mirroring )、數據條帶( Data Stripping )和數據校驗( Data parity )。鏡像,將數據複製到多個磁盤,一方面可以提高可靠性,另一方面可併發從兩個或多個副本讀取數據來提高讀性能。顯而易見,鏡像的寫性能要稍低, 確保數據正確地寫到多個磁盤需要更多的時間消耗。數據條帶,將數據分片保存在多個不同的磁盤,多個數據分片共同組成一個完整數據副本,這與鏡像的多個副本是不同的,它通常用於性能考慮。數據條帶具有更高的併發粒度,當訪問數據時,可以同時對位於不同磁盤上數據進行讀寫操作, 從而獲得非常可觀的 I/O 性能提升 。數據校驗,利用冗餘數據進行數據錯誤檢測和修復,冗餘數據通常採用海明碼、異或操作等算法來計算獲得。利用校驗功能,可以很大程度上提高磁盤陣列的可靠性、魯棒性和容錯能力。不過,數據校驗需要從多處讀取數據並進行計算和對比,會影響系統性能。 不同等級的 RAID 採用一個或多個以上的三種技術,來獲得不同的數據可靠性、可用性和 I/O 性能。至於設計何種 RAID (甚至新的等級或類型)或採用何種模式的 RAID ,需要在深入理解系統需求的前提下進行合理選擇,綜合評估可靠性、性能和成本來進行折中的選擇。

RAID 思想從提出後就廣泛被業界所接納,存儲工業界投入了大量的時間和財力來研究和開發相關產品。而且,隨着處理器、內存、計算機接口等技術的不斷髮展, RAID 不斷地發展和革新,在計算機存儲領域得到了廣泛的應用,從高端系統逐漸延伸到普通的中低端系統。 RAID 技術如此流行,源於其具有顯著的特徵和優勢,基本可以滿足大部分的數據存儲需求。

總體說來, RAID 主要優勢有如下幾點:(1) 大容量  這是 RAID 的一個顯然優勢,它擴大了磁盤的容量,由多個磁盤組成的 RAID 系統具有海量的存儲空間。現在單個磁盤的容量就可以到 1TB 以上,這樣 RAID 的存儲容量就可以達到 PB 級,大多數的存儲需求都可以滿足。一般來說, RAID 可用容量要小於所有成員磁盤的總容量。不同等級的 RAID 算法需要一定的冗餘開銷,具體容量開銷與採用算法相關。如果已知 RAID 算法和容量,可以計算出 RAID 的可用容量。通常, RAID 容量利用率在 50% ~ 90% 之間。(2) 高性能   RAID 的高性能受益於數據條帶化技術。單個磁盤的 I/O 性能受到接口、帶寬等計算機技術的限制,性能往往很有 限,容易成爲系統性能的瓶頸。通過數據條帶化, RAID 將數據 I/O 分散到各個成員磁盤上,從而獲得比單個磁盤成倍增長的聚合 I/O 性能。(3) 可靠性  可用性和可靠性是 RAID 的另一個重要特徵。從理論上講,由多個磁盤組成的 RAID 系統在可靠性方面應該比單個磁盤要差。這裏有個隱含假定:單個磁盤故障將導致整個 RAID 不可用。 RAID 採用鏡像和數據校驗等數據冗餘技術,打破了這個假定。 鏡像是最爲原始的冗餘技術,把某組磁盤驅動器上的數據完全複製到另一組磁盤驅動器上,保證總有數據副本可用。 比起鏡像 50% 的冗餘開銷 ,數據校驗要小很多,它利用校驗冗餘信息對數據進行校驗和糾錯。 RAID 冗餘技術大幅提升數據可用性和可靠性,保證了若干磁盤出錯時,不 會導致數據的丟失,不影響系統的連續運行。(4) 可管理性  實際上, RAID 是一種虛擬化技術,它對多個物理磁盤驅動器虛擬成一個大容量的邏輯驅動器。對於外部主機系統來說, RAID 是一個單一的、快速可靠的大容量磁盤驅動器。這樣,用戶就可以在這個虛擬驅動器上來組織和存儲應用系統數據。 從用戶應用角度看,可使存儲系統簡單易用,管理也很便利。 由於 RAID 內部完成了大量的存儲管理工作,管理員只需要管理單個虛擬驅動器,可以節省大量的管理工作。 RAID 可以動態增減磁盤驅動器,可自動進行數據校驗和數據重建,這些都可以 大大簡化管理工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章