您好,歡迎來到易龍商務網!
發(fā)布時間:2021-07-31 21:10  
【廣告】





什么是Raid
RAID稱為廉價磁盤冗余陣列。RAID 的基本原理是把多個便宜的小磁盤組合到一起,成為一個磁盤組,使性能達到或超過一個容量巨大、價格昂貴的磁盤。
目前 RAID技術大致分為兩種:基于硬件的RAID技術和基于軟件的RAID技術。其中在Linux下通過自帶的軟件就能實現RAID功能,這樣便可省去購買昂貴的硬件 RAID 控制器和附件就能極大地增強磁盤的 IO 性能和可靠性。由于是用軟件去實現的RAID功能,所以它配置靈活、管理方便。同時使用軟件RAID,還可以實現將幾個物理磁盤合并成一個更大的虛擬設備,從而達到性能改進和數據冗余的目的。當然基于硬件的RAID解決方案比基于軟件RAID技術在使用性能和服務性能上稍勝一籌,具體表現在檢測和修復多位錯誤的能力、錯誤磁盤自動檢測和陣列重建等方面。
磁盤陣列 RAID 技術
概述
冗余磁盤陣列技術(Redundant Array of Inexpensive Disks,簡稱RAID技術)是一種數據的虛擬存儲技術,其結合了多個物理磁盤驅動器件在一個邏輯磁盤內用以實現比單個磁盤更高的存儲性能。其在1987 年由加州大學伯克利分校的David Patterson, Garth A. Gibson 和 Randy Katz共同提出。起初的研制目的是為了組合小的廉價磁盤來代替大的昂貴磁盤,以降低大批量數據存儲的費用,同時也希望采用冗余信息的方式,使得磁盤失效時不會使數據受損,從而開發(fā)出一定水平的數據保護技術。如下圖所示,當 RAID 組中的某一磁盤損壞時,服務器可以通過對其它磁盤的冗余操作,達到對數據的冗余保護功能。
RAID 技術利用多個硬盤的組合提高存儲的效率和容錯能力,其主要由兩部分組成,即控制器和磁盤陣列??刂破饕罁涌趨f(xié)議對磁盤陣列中的磁盤進行讀寫操作和管理數據。控制器通常由專用的 CPU 構成,能夠完成大量的計算任務。磁盤陣列是由多個磁盤構成,其讀寫操作由控制器控制,多個磁盤通過控制器虛擬化成為一個磁盤。
從實現角度來說, RAID 主要分為軟 RAID、硬 RAID 以及軟硬混合 RAID 三種。軟 RAID 所有功能均由操作系統(tǒng)和 CPU 來完成,沒有獨立的 RAID 控制 / 處理芯片和 I/O 處理芯片,效率自然很低。硬 RAID 配備了專門的 RAID 控制 / 處理芯片和 I/O 處理芯片以及陣列緩沖,不占用 CPU 資源,但成本很高。軟硬混合 RAID 具備 RAID 控制 / 處理芯片,但缺乏 I/O 處理芯片,需要 CPU 和驅動程序來完成,性能和成本 在軟 RAID 和硬 RAID 之間。
磁盤陣列 RAID 技術基本原理
RAID 技術可以將一個硬盤上的任務分散或copy到多個(少則兩個)磁盤上,借此來提高了性能或建立數據冗余以防驅動器發(fā)生故障??梢酝ㄟ^設定設備的 RAID 模式來決定設備以何種方式處理數據。RAID 配置可讓多個硬盤驅動器以不同的方式(例如使用條帶技術或鏡像技術)組合成單一的運行單元。
RAID 的兩個關鍵目標是提高數據可靠性和 I/O 性能。磁盤陣列中,數據分散在多個磁盤中,然而對于計算機系統(tǒng)來說,就像一個單獨的磁盤。通過把相同數據同時寫入到多塊磁盤(典型地如鏡像),或者將計算的校驗數據寫入陣列中來獲得冗余能力,當單塊磁盤出現故障時可以保證不會導致數據丟失。有些 RAID 等級允許更多地 磁盤同時發(fā)生故障。在這樣的冗余機制下,可以用新磁盤替換故障磁盤, RAID 會自動根據剩余磁盤中的數據和校驗數據重建丟失的數據,保證數據一致性和完整性。數據分散保存在 RAID 中的多個不同磁盤上,并發(fā)數據讀寫要大大優(yōu)于單個磁盤,因此可以獲得更高的聚合 I/O 帶寬。當然,磁盤陣列會減少全體磁盤的總可用存儲空間,犧牲空間換取更高的可靠性和性能。比如, RAID1 存儲空間利用率僅有 50% , RAID5 會損失其中一個磁盤的存儲容量,空間利用率為 (n-1)/n 。
RAID的操作步驟
標準的RAID寫操作,需包括以下幾個步驟:
?。?)以校驗盤中讀取數據
(2)以目標數據盤中讀取數據
?。?)以舊校驗數據,新數據及已存在數據,生成新的校驗數據
?。?)將新校驗數據寫入校驗盤
?。?)將新數據寫入目標數據盤
當主機將一個待寫入陣列RAID組中的數據發(fā)送到陣列時,陣列控制器將該數據保存在緩存中并立即報告主機該數據的寫入工作已完成。該數據寫入到陣列硬盤的工作由陣列控制器完成,該數據可繼續(xù)存放在Cache中直到Cache滿,而且要為新數據騰出空間而必須刷新時或陣列需停機時,控制器會及時將該數據從Cache寫入陣列硬盤中。
這種緩存回寫技術使得主機不必等待RAID校驗計算過程的完成,即可處理下一個讀寫任務,這樣,主機的讀寫效率大為增加。當主機命令將一個數據寫入硬盤,則陣列控制器將該數據寫入緩存上面的位置,只有新數據才會被控制器按Write-Back Cache的方式之后寫入硬盤。