磁盤陣列(Redundant Arrays of Independent Disks恰响,RAID)
RAID 0
RAID 0是最早出現(xiàn)的RAID模式,即Data Stripping數(shù)據(jù)分條技術涌献。RAID 0是組建磁盤陣列中最簡單的一種形式胚宦,只需要2塊以上的硬盤即可,成本低燕垃,可以提高整個磁盤的性能和吞吐量枢劝。RAID 0沒有提供冗余或錯誤修復能力,但實現(xiàn)成本是最低的卜壕。
RAID 0最簡單的實現(xiàn)方式就是把N塊同樣的硬盤用硬件的形式通過智能磁盤控制器或用操作系統(tǒng)中的磁盤驅(qū)動程序以軟件的方式串聯(lián)在一起創(chuàng)建一個大的卷集您旁。在使用中電腦數(shù)據(jù)依次寫入到各塊硬盤中,它的最大優(yōu)點就是可以整倍的提高硬盤的容量轴捎。如使用了三塊80GB的硬盤組建成RAID 0模式鹤盒,那么磁盤容量就會是240GB。其速度方面侦副,各單獨一塊硬盤的速度完全相同侦锯。最大的缺點在于任何一塊硬盤出現(xiàn)故障,整個系統(tǒng)將會受到破壞秦驯,可靠性僅為單獨一塊硬盤的1/N尺碰。
為了解決這一問題,便出現(xiàn)了RAID 0的另一種模式。即在N塊硬盤上選擇合理的帶區(qū)來創(chuàng)建帶區(qū)集亲桥。其原理就是將原先順序?qū)懭氲臄?shù)據(jù)被分散到所有的四塊硬盤中同時進行讀寫洛心。四塊硬盤的并行操作使同一時間內(nèi)磁盤讀寫的速度提升了4倍。
在創(chuàng)建帶區(qū)集時题篷,合理的選擇帶區(qū)的大小非常重要词身。如果帶區(qū)過大,可能一塊磁盤上的帶區(qū)空間就可以滿足大部分的I/O操作番枚,使數(shù)據(jù)的讀寫仍然只局限在少數(shù)的一偿枕、兩塊硬盤上,不能充分的發(fā)揮出并行操作的優(yōu)勢户辫。另一方面渐夸,如果帶區(qū)過小,任何I/O指令都可能引發(fā)大量的讀寫操作渔欢,占用過多的控制器總線帶寬墓塌。因此,在創(chuàng)建帶區(qū)集時奥额,我們應當根據(jù)實際應用的需要苫幢,慎重的選擇帶區(qū)的大小。
帶區(qū)集雖然可以把數(shù)據(jù)均勻的分配到所有的磁盤上進行讀寫垫挨。但如果我們把所有的硬盤都連接到一個控制器上的話韩肝,可能會帶來潛在的危害。這是因為當我們頻繁進行讀寫操作時九榔,很容易使控制器或總線的負荷 超載哀峻。為了避免出現(xiàn)上述問題,建議用戶可以使用多個磁盤控制器哲泊。最好解決方法還是為每一塊硬盤都配備一個專門的磁盤控制器剩蟀。
雖然RAID 0可以提供更多的空間和更好的性能,但是整個系統(tǒng)是非常不可靠的切威,如果出現(xiàn)故障育特,無法進行任何補救。所以先朦,RAID 0一般只是在那些對數(shù)據(jù)安全性要求不高的情況下才被人們使用缰冤。
RAID1
RAID 1稱為磁盤鏡像,原理是把一個磁盤的數(shù)據(jù)鏡像到另一個磁盤上喳魏,也就是說數(shù)據(jù)在寫入一塊磁盤的同時棉浸,會在另一塊閑置的磁盤上生成鏡像文件,在不影響性能情況下最大限度的保證系統(tǒng)的可靠性和可修復性上截酷,只要系統(tǒng)中任何一對鏡像盤中至少有一塊磁盤可以使用涮拗,甚至可以在一半數(shù)量的硬盤出現(xiàn)問題時系統(tǒng)都可以正常運行,當一塊硬盤失效時乾戏,系統(tǒng)會忽略該硬盤迂苛,轉而使用剩余的鏡像盤讀寫數(shù)據(jù)三热,具備很好的磁盤冗余能力。雖然這樣對數(shù)據(jù)來講絕對安全三幻,但是成本也會明顯增加就漾,磁盤利用率為50%,以四塊80GB容量的硬盤來講念搬,可利用的磁盤空間僅為160GB抑堡。另外,出現(xiàn)硬盤故障的RAID系統(tǒng)不再可靠朗徊,應當及時的更換損壞的硬盤首妖,否則剩余的鏡像盤也出現(xiàn)問題,那么整個系統(tǒng)就會崩潰爷恳。更換新盤后原有數(shù)據(jù)會需要很長時間同步鏡像有缆,外界對數(shù)據(jù)的訪問不會受到影響,只是這時整個系統(tǒng)的性能有所下降温亲。因此棚壁,RAID 1多用在保存關鍵性的重要數(shù)據(jù)的場合。
RAID 1主要是通過二次讀寫實現(xiàn)磁盤鏡像栈虚,所以磁盤控制器的負載也相當大袖外,尤其是在需要頻繁寫入數(shù)據(jù)的環(huán)境中。為了避免出現(xiàn)性能瓶頸魂务,使用多個磁盤控制器就顯得很有必要曼验。
3、RAID0+1
從RAID 0+1名稱上我們便可以看出是RAID0與RAID1的結合體粘姜。在我們單獨使用RAID 1也會出現(xiàn)類似單獨使用RAID 0那樣的問題蚣驼,即在同一時間內(nèi)只能向一塊磁盤寫入數(shù)據(jù),不能充分利用所有的資源相艇。為了解決這一問題颖杏,我們可以在磁盤鏡像中建立帶區(qū)集。因為這種配置方式綜合了帶區(qū)集和鏡像的優(yōu)勢坛芽,所以被稱為RAID 0+1留储。把RAID0和RAID1技術結合起來,數(shù)據(jù)除分布在多個盤上外咙轩,每個盤都有其物理鏡像盤获讳,提供全冗余能力,允許一個以下磁盤故障活喊,而不影響數(shù)據(jù)可用性丐膝,并具有快速讀/寫能力。RAID0+1要在磁盤鏡像中建立帶區(qū)集至少4個硬盤。
RAID: LSI MegaRAID帅矗、Nytro和Syncro
MegaRAID偎肃、Nytro和Syncro都是LSI 針對RAID而推出的解決方案,并且一直在創(chuàng)造更新浑此。
LSI MegaRAID的主要定位是保護數(shù)據(jù)累颂,通過高性能、高可靠的RAID控制器功能凛俱,為數(shù)據(jù)提供高級別的保護紊馏。LSI MegaRAID在業(yè)界有口皆碑。
LSI Nytro的主要定位是數(shù)據(jù)加速蒲犬,它充分利用當今備受追捧的閃存技術朱监,極大地提高數(shù)據(jù)I/O速度。LSI Nytro包括三個系列:LSI Nytro WarpDrive加速卡原叮、LSI Nytro XD 應用加速存儲解決方案和LSI Nytro MegaRAID 應用加速卡赫编。Nytro MegaRAID主要用于DAS環(huán)境,Nytro WarpDrive加速卡主要用于SAN和NAS環(huán)境篇裁,Nytro XD解決方案由Nytro WarpDrive加速卡和Nytro XD 智能高速緩存軟件兩部分構成沛慢。
LSI Syncro的定位主要用于數(shù)據(jù)共享,提高系統(tǒng)的可用性达布、可擴展性团甲,降低成本。
LSI通過MegaRAID提供基本的可靠性保障;通過Nytro實現(xiàn)加速;通過Syncro突破容量瓶頸黍聂,讓價格低廉的存儲解決方案可以大規(guī)模擴展躺苦,并且進一步提高可靠性。
RAID2:帶海明碼校驗
從概念上講产还,RAID 2 同RAID 3類似匹厘, 兩者都是將數(shù)據(jù)條塊化分布于不同的硬盤上, 條塊單位為位或字節(jié)脐区。然而RAID 2 使用一定的編碼技術來提供錯誤檢查及恢復愈诚。這種編碼技術需要多個磁盤存放檢查及恢復信息,使得RAID 2技術實施更復雜牛隅。因此,在商業(yè)環(huán)境中很少使用炕柔。下圖左邊的各個磁盤上是數(shù)據(jù)的各個位,由一個數(shù)據(jù)不同的位運算得到的海明校驗碼可以保存另一組磁盤上媒佣。由于海明碼的特點匕累,它可以在數(shù)據(jù)發(fā)生錯誤的情況下將錯誤校正,以保證輸出的正確默伍。它的數(shù)據(jù)傳送速率相當高欢嘿,如果希望達到比較理想的速度衰琐,那最好提高保存校驗碼ECC碼的硬盤,對于控制器的設計來說炼蹦,它又比RAID3羡宙,4或5要簡單。沒有免費的午餐框弛,這里也一樣辛辨,要利用海明碼捕捂,必須要付出數(shù)據(jù)冗余的代價瑟枫。輸出數(shù)據(jù)的速率與驅(qū)動器組中速度最慢的相等。
RAID3:帶奇偶校驗碼的并行傳送
這種校驗碼與RAID2不同指攒,只能查錯不能糾錯慷妙。它訪問數(shù)據(jù)時一次處理一個帶區(qū),這樣可以提高讀取和寫入速度允悦。校驗碼在寫入數(shù)據(jù)時產(chǎn)生并保存在另一個磁盤上膝擂。需要實現(xiàn)時用戶必須要有三個以上的驅(qū)動器,寫入速率與讀出速率都很高隙弛,因為校驗位比較少架馋,因此計算時間相對而言比較少。用軟件實現(xiàn)RAID控制將是十分困難的全闷,控制器的實現(xiàn)也不是很容易叉寂。它主要用于圖形(包括動畫)等要求吞吐率比較高的場合。不同于RAID 2总珠,RAID 3使用單塊磁盤存放奇偶校驗信息屏鳍。如果一塊磁盤失效,奇偶盤及其他數(shù)據(jù)盤可以重新產(chǎn)生數(shù)據(jù)局服。 如果奇偶盤失效钓瞭,則不影響數(shù)據(jù)使用。RAID 3對于大量的連續(xù)數(shù)據(jù)可提供很好的傳輸率淫奔,但對于隨機數(shù)據(jù)山涡,奇偶盤會成為寫操作的瓶頸。
RAID4:帶奇偶校驗碼的獨立磁盤結構
RAID4和RAID3很象唆迁,不同的是鸭丛,它對數(shù)據(jù)的訪問是按數(shù)據(jù)塊進行的,也就是按磁盤進行的媒惕,每次是一個盤系吩。在圖上可以這么看,RAID3是一次一橫條妒蔚,而RAID4一次一豎條穿挨。它的特點和RAID3也挺象月弛,不過在失敗恢復時,它的難度可要比RAID3大得多了科盛,控制器的設計難度也要大許多帽衙,而且訪問數(shù)據(jù)的效率不怎么好。
RAID5:分布式奇偶校驗的獨立磁盤結構
從它的示意圖上可以看到贞绵,它的奇偶校驗碼存在于所有磁盤上厉萝,其中的p0代表第0帶區(qū)的奇偶校驗值,其它的意思也相同榨崩。RAID5的讀出效率很高谴垫,寫入效率一般,塊式的集體訪問效率不錯母蛛。因為奇偶校驗碼在不同的磁盤上翩剪,所以提高了可靠性。但是它對數(shù)據(jù)傳輸?shù)牟⑿行越鉀Q不好彩郊,而且控制器的設計也相當困難前弯。RAID 3 與RAID 5相比,重要的區(qū)別在于RAID 3每進行一次數(shù)據(jù)傳輸秫逝,需涉及到所有的陣列盤恕出。而對于RAID 5來說,大部分數(shù)據(jù)傳輸只對一塊磁盤操作违帆,可進行并行操作浙巫。在RAID 5中有"寫損失",即每一次寫操作前方,將產(chǎn)生四個實際的讀/寫操作狈醉,其中兩次讀舊的數(shù)據(jù)及奇偶信息,兩次寫新的數(shù)據(jù)及奇偶信息惠险。
RAID6:帶有兩種分布存儲的奇偶校驗碼的獨立磁盤結構
名字很長苗傅,但是如果看到圖,大家立刻會明白是為什么班巩,請注意p0代表第0帶區(qū)的奇偶校驗值渣慕,而pA代表數(shù)據(jù)塊A的奇偶校驗值。它是對RAID5的擴展抱慌,主要是用于要求數(shù)據(jù)絕對不能出錯的場合逊桦。當然了,由于引入了第二種奇偶校驗值抑进,所以需要N+2個磁盤强经,同時對控制器的設計變得十分復雜,寫入速度也不好寺渗,用于計算奇偶校驗值和驗證數(shù)據(jù)正確性所花費的時間比較多匿情,造成了不必須的負載兰迫。我想除了軍隊沒有人用得起這種東西。
RAID7:優(yōu)化的高速數(shù)據(jù)傳送磁盤結構
RAID7所有的I/O傳送均是同步進行的炬称,可以分別控制汁果,這樣提高了系統(tǒng)的并行性,提高系統(tǒng)訪問數(shù)據(jù)的速度;每個磁盤都帶有高速緩沖存儲器玲躯,實時操作系統(tǒng)可以使用任何實時操作芯片据德,達到不同實時系統(tǒng)的需要。允許使用SNMP協(xié)議進行管理和監(jiān)視跷车,可以對校驗區(qū)指定獨立的傳送信道以提高效率棘利。可以連接多臺主機姓赤,因為加入高速緩沖存儲器赡译,當多用戶訪問系統(tǒng)時仲吏,訪問時間幾乎接近于0不铆。由于采用并行結構,因此數(shù)據(jù)訪問效率大大提高裹唆。需要注意的是它引入了一個高速緩沖存儲器誓斥,這有利有弊,因為一旦系統(tǒng)斷電许帐,在高速緩沖存儲器內(nèi)的數(shù)據(jù)就會全部丟失劳坑,因此需要和UPS一起工作。當然了成畦,這么快的東西距芬,價格也非常昂貴。
RAID10:高可靠性與高效磁盤結構
這種結構無非是一個帶區(qū)結構加一個鏡象結構循帐,因為兩種結構各有優(yōu)缺點框仔,因此可以相互補充,達到既高效又高速的目的拄养。大家可以結合兩種結構的優(yōu)點和缺點來理解這種新結構离斩。這種新結構的價格高,可擴充性不好瘪匿。主要用于數(shù)據(jù)容量不大跛梗,但要求速度和差錯控制的數(shù)據(jù)庫中。
RAID53:高效數(shù)據(jù)傳送磁盤結構
越到后面的結構就是對前面結構的一種重復和再利用棋弥,這種結構就是RAID3和帶區(qū)結構的統(tǒng)一核偿,因此它速度比較快,也有容錯功能顽染。但價格十分高漾岳,不易于實現(xiàn)聂薪。這是因為所有的數(shù)據(jù)必須經(jīng)過帶區(qū)和按位存儲兩種方法,在考慮到效率的情況下蝗羊,要求這些磁盤同步真是不容易藏澳。