簡介,功能,分類,原理,優缺點,優點,缺點,RAID級別,RAID 0,RAID 1,RAID0+1,RAID: LSI MegaRAID、Nytro和Syncro,RAID2,RAID3,RAID4,RAID5,RAID6,RAID7,RAID10(高可靠性與高效磁碟結構),RAID53(高效數據傳送磁碟結構),RAID 5E(RAID 5 Enhancement),RAID 5EE,實現方法,軟體RAID,硬體RAID,RAID技術的套用,磁碟陣列維護,固態硬碟RAID技術,
簡介 獨立磁碟冗餘陣列(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,許多獨立的磁碟組。
功能 RAID技術主要有以下三個基本功能:
(1)通過對磁碟上的數據進行條帶化,實現對數據成塊存取,減少磁碟的機械尋道時間,提高了數據存取速度。
(2)通過對一個陣列中的幾塊磁碟同時讀取,減少了磁碟的機械尋道時間,提高數據存取速度。
(3)通過鏡像或者存儲奇偶校驗信息的方式,實現了對數據的冗餘保護。
分類 外接式
磁碟陣列櫃 最常被使用大型
伺服器 上,具可熱交換(Hot Swap)的特性,不過這類產品的價格都很貴。
內接式
磁碟陣列卡 ,因為價格便宜,但需要較高的
安裝技術 ,適合技術人員使用操作。硬體陣列能夠提供線上擴容、動態修改陣列級別、自動數據恢復、
驅動器 漫遊、超高速緩衝等功能。它能提供性能、數據保護、可靠性、可用性和可管理性的解決方案。
陣列卡 專用的處理單元來進行操作。
利用軟體仿真的方式,是指通過
網路作業系統 自身提供的
磁碟管理 功能將連線的普通SCSI卡上的多塊硬碟配置成邏輯盤,組成陣列。軟體陣列可以提供
數據冗餘 功能,但是磁碟子系統的性能會有所降低,有的降低幅度還比較大,達30%左右。因此會拖累機器的速度,不適合
大數據 流量的
伺服器 。
原理 磁碟陣列作為獨立系統在
主機 外直連或通過網路與主機相連。磁碟陣列有多個連線埠可以被不同主機或不同連線埠連線。一個主機連線陣列的不同連線埠可提升傳輸速度。
和當時
PC 用單磁碟內部集成快取一樣,在磁碟陣列內部為加快與主機互動速度,都帶有一定量的緩衝
存儲器 。主機與磁碟陣列的快取互動,快取與具體的磁碟互動數據。
在套用中,有部分常用的數據是需要經常讀取的,磁碟陣列根據內部的算法,查找出這些經常讀取的數據,存儲在
快取 中,加快主機讀取這些數據的速度,而對於其他快取中沒有的數據,主機要讀取,則由陣列從磁碟上直接讀取傳輸給主機。對於
主機 寫入的數據,只寫在快取中,主機可以立即完成寫操作。然後由
快取 再慢慢寫入磁碟。
優缺點 優點 提高傳輸速率。RAID通過在多個
磁碟 上同時存儲和讀取數據來大幅提高
存儲系統 的數據
吞吐量 (Throughput)。在RAID中,可以讓很多磁碟
驅動器 同時傳輸數據,而這些磁碟驅動器在邏輯上又是一個磁碟驅動器,所以使用RAID可以達到單個磁碟驅動器幾倍、幾十倍甚至上百倍的速率。這也是RAID最初想要解決的問題。因為當時CPU的速度增長很快,而
磁碟驅動器 的
數據傳輸速率 無法大幅提高,所以需要有一種方案解決二者之間的矛盾。RAID最後成功了。
通過
數據校驗 提供容錯功能。普通
磁碟驅動器 無法提供容錯功能,如果不包括寫在磁碟上的CRC(循環
冗餘校驗 )碼的話。RAID容錯是建立在每個
磁碟驅動器 的硬體容錯功能之上的,所以它提供更高的安全性。在很多RAID模式中都有較為完備的相互校驗/恢復的措施,甚至是直接相互的
鏡像備份 ,從而大大提高了RAID系統的容錯度,提高了系統的穩定
冗餘 性。
缺點 RAID0 沒有冗餘功能,如果一個磁碟(物理)損壞,則所有的數據都無法使用。
RAID1 磁碟的利用率最高只能達到50%(使用兩塊盤的情況下),是所有RAID級別中最低的。
RAID 0+1以理解為是RAID 0和RAID 1的折中方案。RAID 0+1可以為系統提供數據安全保障,但保障程度要比 Mirror低而磁碟空間利用率要比Mirror高。
RAID級別 RAID 0 RAID 0是最早出現的RAID模式,即Data Stripping數據分條技術。RAID 0是組建磁碟陣列中最簡單的一種形式,只需要2塊以上的硬碟即可,成本低,可以提高整個磁碟的性能和吞吐量。RAID 0沒有提供冗餘或錯誤修復能力,但實現成本是最低的。
RAID 0示意圖 RAID 0最簡單的實現方式就是把N塊同樣的硬碟用硬體的形式通過智慧型磁碟控制器或用作業系統中的磁碟驅動程式以軟體的方式串聯在一起創建一個大的卷集。在使用中電腦數據依次寫入到各塊硬碟中,它的最大優點就是可以整倍的提高硬碟的容量。如使用了三塊80GB的硬碟組建成RAID 0模式,那么磁碟容量就會是240GB。其速度方面,各單獨一塊硬碟的速度完全相同。最大的缺點在於任何一塊硬碟出現故障,整個系統將會受到破壞,可靠性僅為單獨一塊硬碟的1/N。
為了解決這一問題,便出現了RAID 0的另一種模式。即在N塊硬碟上選擇合理的帶區來創建帶區集。其原理就是將原先順序寫入的數據被分散到所有的四塊硬碟中同時進行讀寫。四塊硬碟的並行操作使同一時間內磁碟讀寫的速度提升了4倍。
在創建帶區集時,合理的選擇帶區的大小非常重要。如果帶區過大,可能一塊磁碟上的帶區空間就可以滿足大部分的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示意圖 RAID: LSI MegaRAID、Nytro和Syncro 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 Syncro的定位主要用於數據共享,提高系統的可用性、可擴展性,降低成本。
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對於大量的連續數據可提供很好的傳輸率,但對於隨機數據,奇偶盤會成為寫操作的瓶頸。
RAID4 RAID4(帶奇偶校驗碼的獨立磁碟結構)。RAID4和RAID3很象,不同的是,它對數據的訪問是按數據塊進行的,也就是按磁碟進行的,每次是一個盤。在圖上可以這么看,RAID3是一次一橫條,而RAID4一次一豎條。它的特點和RAID3也挺象,不過在失敗恢復時,它的難度可要比RAID3大得多了,控制器的設計難度也要大許多,而且訪問數據的效率不怎么好。
RAID5 RAID5(分散式奇偶校驗的獨立磁碟結構)。從它的示意圖上可以看到,它的奇偶校驗碼存在於所有磁碟上,其中的p0代表第0帶區的奇偶校驗值,其它的意思也相同。RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。因為奇偶校驗碼在不同的磁碟上,所以提高了可靠性。但是它對數據傳輸的並行性解決不好,而且控制器的設計也相當困難。RAID 3 與RAID 5相比,重要的區別在於RAID 3每進行一次數據傳輸,需涉及到所有的陣列盤。而對於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 5 Enhancement) 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 計算。
(2)功能:軟體RAID 支持有限的RAID 級別。
(3)兼容性:軟體RAID 與主機作業系統綁定,因此,需要對軟體RAID或作業系統升級進行兼容性驗證,只有當RAID 軟體和作業系統兼容時,才能對其進行升級,這會降低數據處理環境的靈活性。
硬體RAID 包括基於主機的硬體RAID和基於陣列的硬體RAID。基於主機的硬體RAID通常是將專用RAID控制器安裝在主機上,並且所有磁碟驅動器都與主機相連,有的製造商還將RAID控制器集成到主機板上。但是基於主機的硬體RAID 控制器在包含大量主機的數據中心環境下卻不是高效的解決方案。而基於陣列的硬體RAID是使用外部硬體RAID控制器,它充當主機與磁碟之間的接口,將存儲卷呈現給主機,主機將這些卷作為物理驅動器進行管理。硬體RAID控制器具有如下主要特點:
(1)管理與控制磁碟聚合;
(2)轉換邏輯磁碟和物理磁碟之間的I/O 請求;
(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陣列特點進行開發並最佳化處理。