簡介 廉價磁碟冗餘陣列 (Redundant Arrays of Inexpensive Disks) 或
獨立磁碟冗餘陣列 (RAID,redundant array of independent disks)是把相同的
數據存儲 在多個硬碟的不同的地方的方法。通過把數據放在多個硬碟上,輸入輸出操作能以平衡的方式交疊,改良性能。因為多個硬碟增加了
平均故障間隔時間 (
MTBF ),儲存
冗餘數據 也增加了容錯。
由
加利福尼亞大學伯克利分校 (University of California-
Berkeley )在1988年,發表的文章:“A Case for Redundant Arrays of Inexpensive Disks”。文章中,談到了RAID這個辭彙,而且定義了RAID的5層級。
伯克利大學 研究目的是反映當時CPU快速的性能。
CPU 效能每年大約成長30~50%,而硬磁機只能成長約7%。研究小組希望能找出一種新的技術,在短期內,立即提升效能來平衡計算機的
運算能力 。在當時,柏克萊研究小組的主要研究目的是效能與成本。
另外,研究小組也設計出容錯(
fault -tolerance),邏輯
數據備份 (logical data redundancy),而產生了RAID理論。研究初期,便宜(Inexpensive)的磁碟也是主要的重點,但後來發現,大量便宜磁碟組合併不能適用於現實的
生產環境 ,後來Inexpensive被改為independent,許多獨立的磁碟組。
功能 磁碟陣列具有提高計算機讀寫數據的速度、實現對數據的冗餘保護及保證數據存儲可靠性的功能。
(1)通過對磁碟上的數據進行條帶化,實現對數據成塊存取,減少磁碟的機械
尋道時間 ,提高了數據
存取速度 。
(2)通過對一個陣列中的幾塊磁碟同時讀取,減少了磁碟的機械尋道時間,提高數據存取速度。
(3)通過鏡像或者存儲
奇偶校驗 信息的方式,實現了對數據的冗餘保護。
分類 磁碟陣列其樣式有三種,一是外接式
磁碟陣列櫃 、二是內接式磁碟
陣列卡 ,三是利用軟體來仿真。
外接式
磁碟陣列櫃 最常被使用大型伺服器上,具可熱交換(Hot Swap)的特性,不過這類產品的價格都很貴。
內接式磁碟陣列卡,因為價格便宜,但需要較高的安裝技術,適合技術人員使用操作。硬體陣列能夠提供線上擴容、動態修改陣列級別、自動
數據恢復 、
驅動器 漫遊、超高速緩衝等功能。它能提供性能、
數據保護 、可靠性、
可用性 和可管理性的解決方案。
陣列卡 專用的
處理單元 來進行操作。
利用軟體仿真的方式,是指通過
網路作業系統 自身提供的磁碟管理功能將連線的普通
SCSI卡 上的多塊硬碟配置成邏輯盤,組成陣列。軟體陣列可以提供
數據冗餘 功能,但是磁碟
子系統 的性能會有所降低,有的降低幅度還比較大,達30%左右。因此會拖累機器的速度,不適合大數據流量的伺服器。
原理 磁碟陣列作為
獨立系統 在主機外直連或通過網路與主機相連。磁碟陣列有多個連線埠可以被不同主機或不同連線埠連線。一個主機連線陣列的不同連線埠可提升
傳輸速度 。
和當時
PC 用單磁碟內部集成快取一樣,在磁碟陣列內部為加快與主機互動速度,都帶有一定量的緩衝存儲器。主機與磁碟陣列的快取互動,快取與具體的磁碟互動數據。
在套用中,有部分常用的數據是需要經常讀取的,磁碟陣列根據內部的算法,查找出這些經常讀取的數據,存儲在快取中,加快主機讀取這些數據的速度,而對於其他快取中沒有的數據,主機要讀取,則由陣列從磁碟上直接讀取傳輸給主機。對於主機寫入的數據,
只寫 在快取中,主機可以立即完成寫操作。然後由快取再慢慢寫入磁碟。
優缺點 優點 提高
傳輸速率 。RAID通過在多個磁碟上同時存儲和讀取數據來大幅提高存儲系統的數據
吞吐量 (Throughput)。在RAID中,可以讓很多磁碟
驅動器 同時傳輸數據,而這些磁碟驅動器在邏輯上又是一個磁碟驅動器,所以使用RAID可以達到單個磁碟驅動器幾倍、幾十倍甚至上百倍的速率。這也是RAID最初想要解決的問題。因為當時CPU的速度增長很快,而
磁碟驅動器 的
數據傳輸速率 無法大幅提高,所以需要有一種方案解決二者之間的矛盾。RAID最後成功了。
通過
數據校驗 提供容錯功能。普通磁碟驅動器無法提供容錯功能,如果不包括寫在磁碟上的
CRC (循環冗餘校驗)碼的話。RAID容錯是建立在每個
磁碟驅動器 的
硬體容錯 功能之上的,所以它提供更高的安全性。在很多RAID模式中都有較為完備的相互校驗/恢復的措施,甚至是直接相互的
鏡像備份 ,從而大大提高了RAID系統的容錯度,提高了系統的穩定冗餘性。
缺點 RAID0沒有
冗餘功能 ,如果一個磁碟(物理)損壞,則所有的
數據都 無法使用。
RAID1磁碟的利用率最高只能達到50%(使用兩塊盤的情況下),是所有RAID級別中最低的。
RAID0+1以理解為是RAID 0和RAID 1的折中方案。RAID 0+1可以為系統提供數據安全保障,但保障程度要比 Mirror低而磁碟空間利用率要比Mirror高。
RAID級別 RAID JBOD RAID
JBOD 的意思是Just a Bunch Of Disks,是將多塊硬碟串聯起來組成一個大的
存儲設備 ,從某種意義上說這種類型不被算作RAID,在
維基百科 里JBOD同時也被歸入非RAID架構。RAID JBOD將所有的磁碟串聯成一個單一的,容量是使用的磁碟的總和的存儲設備供作業系統使用。比如使用3塊容量是80GB的磁碟,建立的RAID JBOD設備的容量就是240GB,再比如使用3塊容量分別是60GB,80GB,100GB的磁碟,建立的RAID JBOD設備容量是240GB,這裡要注意的是RAID JBOD可以使用成員設備中的
所有空間 ,無論各設備尺寸是否相同。這一點也是RAID JBOD與其他RAID類型的最大不同。
RAID JBOD示意圖
因為是各設備串聯,RAID JBOD的訪問速度跟單個設備相同,也沒有任何形式的校驗,因此任意一塊磁碟出現故障,都會破壞整個RAID,可靠性是單一設備的1/N。
隨著磁碟陣列(RAID)技術的不斷發展,磁碟陣列技術已經擁有多個基本的技術級別,大致可分為 RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6等,每個級別的磁碟陣列技術有著不同的技術原理。
RAID 0 RAID 0 將N塊硬碟上選擇合理的帶區來創建帶區集。其原理是將類似於顯示器
隔行掃描 ,將
數據分割 成不同條帶(Stripe)分散寫入到所有的硬碟中同時進行讀寫。多塊硬碟的
並行操作 使同
一時間 內磁碟讀寫的速度提升N倍。
RAID 0示意圖
在創建帶區集時,合理的選擇帶區的大小非常重要。如果帶區過大,可能一塊磁碟上的帶區空間就可以滿足大部分的
I/O操作 ,使數據的讀寫仍然只局限在少數的一、兩塊硬碟上,不能充分的發揮出並行操作的優勢。另一方面,如果帶區過小,任何
I/O指令 都可能引發大量的讀寫操作,占用過多的控制器
匯流排頻寬 。因此,在創建帶區集時,應當根據實際套用的需要,慎重地選擇帶區的大小。
帶區集雖然可以把數據均勻的分配到所有的磁碟上進行讀寫。但如果把所有的硬碟都連線到一個控制器上的話,可能會帶來潛在的危害。這是因為當頻繁進行讀寫操作時,很容易使控制器或匯流排的負荷超載。為了避免出現上述問題,建議用戶可以使用多個磁碟控制器。最好
解決方法 還是為每一塊硬碟都配備一個專門的磁碟控制器。
雖然RAID 0可以提供更多的空間和更好的性能,但是整個系統是非常不可靠的,如果出現故障,無法進行任何補救。所以,RAID 0一般只是在那些對
數據安全性 要求不高的情況下才被人們使用。
RAID 1 RAID 1 稱為
磁碟鏡像 ,原理是把一個磁碟的數據鏡像到另一個磁碟上,也就是說數據在寫入一塊磁碟的同時,會在另一塊閒置的磁碟上生成
鏡像檔案 ,在不影響性能情況下最大限度的保證
系統的可靠性 和可修復性上,只要系統中任何一對
鏡像盤 中至少有一塊磁碟可以使用,甚至可以在一半數量的硬碟出現問題時系統都可以正常運行,當一塊硬碟失效時,系統會忽略該硬碟,轉而使用剩餘的鏡像盤讀寫數據,具備很好的磁碟冗餘能力。雖然這樣對數據來講絕對安全,但是成本也會明顯增加,磁碟
利用率 為50%,以四塊80GB容量的硬碟來講,可利用的
磁碟空間 僅為160GB。另外,出現
硬碟故障 的RAID系統不再可靠,應當及時的更換損壞的硬碟,否則剩餘的鏡像盤也出現問題,那么整個系統就會崩潰。更換新盤後原有數據會需要很長時間同步鏡像,外界對數據的訪問不會受到影響,只是這時整個系統的性能有所下降。因此,RAID 1多用在保存關鍵性的重要數據的場合。
RAID 1示意圖
RAID 1主要是通過二次讀寫實現磁碟鏡像,所以磁碟控制器的負載也相當大,尤其是在需要頻繁寫入數據的環境中。為了避免出現
性能瓶頸 ,使用多個磁碟控制器就顯得很有必要。
RAID0+1 從
RAID 0+1 名稱上便可以看出是RAID0與
RAID1 的結合體。在單獨使用RAID 1也會出現類似單獨使用RAID 0那樣的問題,即在同一時間內只能向一塊磁碟寫入數據,不能充分利用所有的資源。為了解決這一問題,可以在磁碟鏡像中建立帶區集。因為這種配置方式綜合了帶區集和鏡像的優勢,所以被稱為RAID 0+1。把RAID0和RAID1技術結合起來,數據除分布在多個盤上外,每個盤都有其物理鏡像盤,提供全冗餘能力,允許一個以下磁碟故障,而不影響
數據可用性 ,並具有快速讀/寫能力。
RAID0+1 要在磁碟鏡像中建立帶區集至少4個硬碟。
RAID0+1示意圖
MegaRAID、Nytro和Syncro都是
LSI 針對RAID而推出的解決方案,並且一直在創造更新。
LSI MegaRAID的主要定位是保護數據,通過高性能、高可靠的
RAID控制器 功能,為數據提供高級別的保護。LSI MegaRAID在業界有口皆碑。
LSI Nytro的主要定位是數據加速,它充分利用當今備受追捧的快閃記憶體技術,極大地提高數據I/O速度。LSI Nytro包括三個系列:LSI Nytro WarpDrive
加速卡 、LSI Nytro XD 套用加速
存儲解決方案 和LSI Nytro MegaRAID 套用加速卡。Nytro MegaRAID主要用於
DAS 環境,Nytro WarpDrive加速卡主要用於
SAN 和
NAS 環境,Nytro XD解決方案由Nytro WarpDrive加速卡和Nytro XD 智慧型
高速快取 軟體兩部分構成。
LSI通過MegaRAID提供基本的可靠性保障;通過Nytro實現加速;通過Syncro突破容量瓶頸,讓價格低廉的存儲解決方案可以大規模擴展,並且進一步提高可靠性。
RAID2 RAID2 :帶
海明碼 校驗。從概念上講,
RAID 2 同
RAID 3 類似,兩者都是將數據條塊化分布於不同的硬碟上, 條塊單位為位或位元組。然而RAID 2 使用一定的編碼技術來提供錯誤檢查及恢復。這種編碼技術需要多個磁碟存放檢查及恢覆信息,使得RAID 2技術實施更複雜。因此,在
商業環境 中很少使用。左邊的各個磁碟上是數據的各
個位 ,由一個數據不同的
位運算 得到的
海明校驗碼 可以保存另一組磁碟上。由於海明碼的特點,它可以在數據發生錯誤的情況下將錯誤校正,以保證輸出的正確。它的
數據傳送速率 相當高,如果希望達到比較理想的速度,那最好提高保存校驗碼ECC碼的硬碟,對於控制器的設計來說,它又比
RAID3 ,4或5要簡單。沒有免費的午餐,這裡也一樣,要利用海明碼,必須要付出數據冗餘的代價。輸出數據的速率與驅動器組中速度最慢的相等。
RAID3 RAID3(帶
奇偶校驗碼 的並行傳送)。這種
校驗碼 與RAID2不同,只能查錯不能糾錯。它訪問數據時一次處理一個帶區,這樣可以提高讀取和寫入速度。校驗碼在寫入數據時產生並保存在另一個磁碟上。需要實現時用戶必須要有三個以上的驅動器,寫入速率與讀出速率都很高,因為
校驗位 比較少,因此計算時間相對而言比較少。用軟體實現RAID控制將是十分困難的,控制器的實現也不是很容易。它主要用於圖形(包括動畫)等要求
吞吐率 比較高的場合。不同於RAID 2,RAID 3使用單塊磁碟存放奇偶校驗信息。如果一塊磁碟失效,奇偶盤及其他數據盤可以重新產生數據。如果奇偶盤失效,則不影響數據使用。RAID 3對於大量的
連續數據 可提供很好的
傳輸率 ,但對於隨機數據,奇偶盤會成為寫操作的瓶頸。
RAID 3示意圖
RAID4 RAID4(帶奇偶校驗碼的獨立磁碟結構)。RAID4和RAID3很像,不同的是,它對數據的訪問是按
數據塊 進行的,也就是按磁碟進行的,每次是一個盤。這么看RAID3是一次一橫條,而RAID4一次一豎條。它的特點和RAID3也挺像,不過在失敗恢復時,它的難度可要比RAID3大得多了,控制器的設計難度也要大許多,而且訪問數據的效率不怎么好。
RAID5 RAID5(分散式奇偶校驗的獨立磁碟結構)。從它的
示意圖 上可以看到,它的
奇偶校驗碼 存在於所有磁碟上,其中的p0代表第0帶區的奇偶校驗值,其它的意思也相同。RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。因為奇偶校驗碼在不同的磁碟上,所以提高了可靠性。但是它對
數據傳輸 的
並行性 解決不好,而且控制器的設計也相當困難。RAID 3 與
RAID 5 相比,重要的區別在於RAID 3每進行一次數據傳輸,需涉及到所有的陣列盤。而對於RAID 5來說,大部分數據傳輸只對一塊磁碟操作,可進行並行操作。在RAID 5中有“寫損失”,即每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。
RAID 5
RAID6 RAID6 是帶兩種分布存儲的奇偶校驗碼獨立磁碟結構
。 它是對RAID5的擴展,主要是用於要求數據絕對不能出錯的場合。當然了,由於引入了第二種奇偶校驗值,所以需要N+2個磁碟,同時對控制器的設計變得十分複雜,寫入速度也不好,用於計算奇偶校驗值和驗證數據正確性所花費的時間比較多,造成了不必須的負載。
RAID7 RAID7(最佳化的高速
數據傳送 磁碟結構)。RAID7所有的I/O傳送均是同步進行的,可以分別控制,這樣提高了系統的並行性,提高系統訪問數據的速度;每個磁碟都帶有
高速緩衝存儲器 ,
實時作業系統 可以使用任何實時操作晶片,達到不同
實時系統 的需要。允許使用
SNMP協定 進行管理和監視,可以對校驗區指定獨立的傳送信道以提高效率。可以連線多台主機,因為加入
高速緩衝存儲器 ,當
多用戶 訪問系統時,訪問時間幾乎接近於0。由於採用
並行結構 ,因此數據訪問效率大大提高。需要注意的是它引入了一個高速緩衝存儲器,這有利有弊,因為一旦系統斷電,在高速緩衝存儲器內的數據就會全部丟失,因此需要和
UPS 一起工作。當然了,這么快的東西,價格也非常昂貴。
RAID10 RAID10 (
高可靠性 與高效磁碟結構)。這種結構無非是一個帶區結構加一個鏡像結構,因為兩種結構各有優缺點,因此可以相互補充,達到既高效又高速的目的。大家可以結合兩種結構的優點和缺點來理解這種新結構。這種新結構的價格高,
可擴充性 不好。主要用於
數據容量 不大,但要求速度和
差錯控制 的資料庫中。
RAID53 RAID53 (高效數據傳送磁碟結構)。越到後面的結構就是對前面結構的一種重複和再利用,這種結構就是RAID3和帶區結構的統一,因此它速度比較快,也有容錯功能。但價格十分高,不易於實現。這是因為所有的數據必須經過帶區和按位存儲兩種方法,在考慮到效率的情況下,要求這些磁碟同步真是不容易。
RAID 5E RAID 5E是在RAID 5級別基礎上的改進,與RAID 5類似,數據的校驗信息
均勻分布 在各硬碟上,但是,在每個硬碟上都保留了一部分未使用的空間,這部分空間沒有進行條帶化,最多允許兩塊物理硬碟出現故障。看起來,RAID 5E和RAID 5加一塊
熱備盤 好像差不多,其實由於RAID 5E是把數據分布在所有的硬碟上,性能會比RAID5 加一塊熱備盤要好。當一塊硬碟出現故障時,有故障硬碟上的數據會被壓縮到其它硬碟上未使用的空間,邏輯盤保持RAID 5級別。
RAID 5EE 與RAID 5E相比,RAID 5EE的數據分布更有效率,每個硬碟的一部分空間被用作分布的熱備盤,它們是陣列的一部分,當陣列中一個物理硬碟出現故障時,數據重建的速度會更快。
實現方法 軟體RAID 使用基於主機的軟體提供RAID功能,是在作業系統級上實現的,與硬體RAID相比,
軟體RAID 具有成本低廉和簡單直觀的優點。但是,軟體RAID有以下不足。
(1)性能:軟體RAID會影響系統整體性能。這是因為軟體RAID需要CPU來執行RAID計算。
(3)
兼容性 :軟體RAID與
主機作業系統 綁定,因此,需要對軟體RAID或作業系統升級進行兼容性驗證,只有當RAID軟體和作業系統兼容時,才能對其進行升級,這會降低數據處理環境的靈活性。
硬體RAID 包括基於主機的硬體RAID和基於陣列的硬體RAID。基於主機的硬體RAID通常是將專用RAID控制器安裝在主機上,並且所有
磁碟驅動器 都與主機相連,有的製造商還將RAID控制器集成到主機板上。但是基於主機的硬體RAID控制器在包含大量主機的數據中心環境下卻不是高效的解決方案。而基於陣列的硬體RAID是使用外部硬體RAID控制器,它充當主機與磁碟之間的接口,將存儲卷呈現給主機,主機將這些卷作為物理驅動器進行管理。硬體RAID控制器具有如下主要特點:
(1)管理與控制磁碟聚合;
(3)在磁碟出故障時重新生成數據。
RAID技術的套用 1、DAS--direct access storage device
直接訪問存儲設備 DAS以伺服器為中心,傳統的網路存儲設備都是將RAID硬碟陣列
直接連線 到
網路系統 的伺服器上,這種形式的網路存儲結構稱為DAS( Direct Attached Storage)。
2、NAS--Network Attached Storage網路附加存儲設備
NAS以數據為中心,NAS是 Network Attached Storage的簡稱,中文稱為直接聯網存儲在NAS存儲結構中,存儲系統不再通過
I/O匯流排 附屬於某個特定的伺服器或
客戶機 ,而是直接通過
網路接口 與網路直接相連,由用戶通過網路訪問。
3、SAN--Storage Area Networks存儲區域網
SAN以網路為中心,SAN是一種類似於普通區域網路的高速
存儲網路 。SAN提供了一種與現有
LAN 連線的簡易方法,允許企業獨立地增加它們的
存儲容量 ,並使網路性能不至於受到數據訪問的影響。這種獨立的專有
網路存儲 方式使得SAN具有不少優勢:可擴展性高;存儲硬體功能的發揮不受LAN的影響;易管理;
集中式管理 軟體使得遠程管理和
無人值守 得以實現;
容錯能力 強。
SAN主要用於
存儲量 大的工作環境,如醫院大型
PACS 等,但由於
需求量 不大成本高而影響了SAN的市場。
磁碟陣列維護 加強磁碟陣列的日常管理與維護,是保證磁碟陣列正常、高效工作的重要手段。作為一名存儲的管理人員,
日常維護 中應該關注以下:
①設定熱備源盤
將一隻硬碟設定為熱備源盤,會造成一定的浪費,但從安全形度考慮是值得的。大容量的磁碟陣列使用RAID5,但有一個硬碟的冗餘。如果一個硬碟損壞,整個陣列的安全會處於一種
臨界狀態 ,此時任何一個硬碟的一點點閃失都會造成災難性的後果,使數據全部丟失。設定有熱備源盤,當硬碟發生故障時,系統會自動用熱備源盤去替換故障盤並重建陣列,隨後數據又會處於完全保護之中。
應該經常對特別重要的數據進行備份,這樣就不至於將“雞蛋放在一個籃子裡”,即使是安全性較高的磁碟陣列也不會絕對安全。
③建立巡視檢查制度
磁碟陣列還能夠工作,並不表示沒有發生故障。當磁碟陣列發生故障時,磁碟陣列存儲系統的數據讀寫通常是正常的。這正是磁碟陣列的一種安全性措施,但往往又讓管理人員產生一種錯覺,以為磁碟陣列沒有故障發生。對磁碟陣列定時的
巡視檢查 ,既可以發現已經發生的故障,還可以了解設備的
工作狀態 ,起到防患於未然的作用。
固態硬碟RAID技術 目前,針對固態硬碟的RAID陣列技術主要有三類,其中
固態硬碟 和
機械硬碟 組合搭建的混合式RAID陣列實現了兩者特性的互補。隨著固態硬碟的性價比不斷提高,推進了固態硬碟與固態硬碟組合形成的RAID陣列以及固態硬碟的
快閃記憶體晶片 與晶片組合形成的純固態硬碟RAID陣列的研發進程。由於目前固態硬碟價格高於機械硬碟,固態硬碟與機械硬碟構成的混合式RAID陣列與其他純固態硬碟RAID陣列相比,在
成本控制 方面有較大的優勢。但在性能與可靠性方面,多個固態硬碟構成的RAID陣列要優於固態硬碟與機械硬碟構成的混合式RAID陣列,而目前大多數固態硬碟廠商都採用固態硬碟內部的晶片級RAID陣列來進一步提升性能,降低功耗。
對嵌入式RAID陣列技術的iRAID,這種結構的初步研究結果表明,RAID系統將不再是一群獨立的驅動器,未來將可能只有一個單一的
高密度 磁碟。這將使這些
存儲系統 的磁碟陣列,如
雲存儲系統 ,在性能、
功率消耗 、體積方面有更大的改善,成本進一步降低,同時也更容易維護。由此,嵌入式RAID技術將會成為固態硬碟RAID陣列技術的主要研究方向之一,具有廣闊的套用前景,涉及教育、娛樂、國防等多個
套用領域 ,特別是在航空、軍事等工作環境複雜程度高、
數據安全 級別要求高的領域,將會有大的作為。另外,因目前評估固態硬碟RAID的可靠性方面的研究較少,需要儘快完善針對RAID可靠性的
評價體系 及方法,由此可靠性
分析研究 也將成為固態硬碟RAID陣列技術的研究重點之一。
除此之外,下面兩方面也會在固態硬碟RAID陣列
技術研究 中受到關注。
1、
大數據存儲 結構與
搜尋引擎 研究。數據存儲系統是確定
數據挖掘 性能和成本的核心。新型的大數據存儲架構可整合分散式以及嵌入式搜尋引擎內的每一個存儲驅動器,突破數據
吞吐量 和數據訪問存儲系統的限制,提升大數據存儲接口的頻寬。
2、快速重建機制研究。固態硬碟的RAID結構採用相應的重建機制,將加快從統計錯誤到恢複數據等整個重建的進程,同時有助於降低重建過程
中數據 丟失的風險。重建機制對於一個完善的固態硬碟RAID結構來說是不可或缺的,需要根據其RAID陣列特點進行開發並最佳化處理。