您好,登錄后才能下訂單哦!
小編給大家分享一下RAID磁盤陣列有什么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在單機時代,采用單塊磁盤進行數據存儲和讀寫的方式,由于尋址和讀寫的時間消耗,導致I/O性能非常低,且存儲容量還會受到限制。另外,單塊磁盤極其容易出現物理故障,經常導致數據的丟失。因此大家就在想,有沒有一種辦法將多塊獨立的磁盤結合在一起組成一個技術方案,來提高數據的可靠性和I/O性能呢,那就是RAID磁盤陣列。
簡介
RAID全稱為獨立磁盤冗余陣列(Rdeundant Array of Independent Disks),基本思想就是把 多個相對便宜的硬盤組合起來,成為一個硬盤陣列組,使性能達到甚至超過一個價格昂貴、 容量巨大的硬盤。RAID通常被用在服務器電腦上,使用完全相同的硬盤組成一個邏輯扇區, 因此操作系統只會把它當做一個硬盤。
RAID分為不同的等級,各個不同的等級均在數據可靠性及讀寫性能上做了不同的權衡。 在實際應用中,可以依據自己的實際需求選擇不同的RAID方案。
RAID0稱為條帶化(Striping)存儲,將數據分段存儲于 各個磁盤中,讀寫均可以并行處理。因此其讀寫速率為單個磁盤的N倍(N為組成RAID0的磁盤個數),但是卻沒有數 據冗余,單個磁盤的損壞會導致數據的不可修復。
大多數striping的實現允許管理者通過調節兩個關鍵的參數來定義數據分段及寫入磁盤的 方式,這兩個參數對RAID0的性能有很重要的影響。STRIPE WIDTHstripe width是指可被并行寫入的 stripe 的個數,即等于磁盤陣列中磁盤的個數。STRIPE SIZE也可稱為 block size(chunk size,stripe length,granularity),指寫入每個磁 盤的數據塊大小。以塊分段的RAID通常可允許選擇的塊大小從 2KB 到 512KB不等,也有更 高的,但一定要是2的指數倍。以字節分段的(比如RAID3)一般的stripe size為1字節或者 512字節,并且用戶不能調整。
stripe size對性能的影響是很難簡單估量的,最好在實際應用中依自己需求多多調整并 觀察其影響。通常來說,減少stripe size,文件會被分成更小的塊,傳輸數據會更快,但 是卻需要更多的磁盤來保存,增加positioning performance,反之則相反。應該說,沒有 一個理論上的最優的值。很多時候,也要考慮磁盤控制器的策略,比如有的磁盤控制器會等 等到一定數據量才開始往磁盤寫入。
鏡像存儲(mirroring),沒有數據校驗。數據被同等地寫入兩個或多個磁盤中,可想而知,寫入速度會比較 慢,但讀取速度會比較快。讀取速度可以接近所有磁盤吞吐量的總和,寫入速度受限于最慢 的磁盤。
RAID1也是磁盤利用率最低的一個。如果用兩個不同大小的磁盤建立RAID1,可以用空間較小的那一個,較大的磁盤多出來的部分可以作他用,不會浪費。
RAID 24
RAID0的改良版,加入了漢明碼(Hanmming Code)錯誤校驗。
漢明碼能夠檢測最多兩個同時發生的比特錯誤,并且能夠更正單一比特的錯誤。漢明碼的位 數與數據的位數有一個不等式關系,即:2^P ≥ P + D +1P代表漢明碼的個數,D代表數據位的個數,比如4位數據需要3位漢明碼,7位數據需要4位漢 明碼,64位數據時就需要7位漢明碼。RAID2是按1bit來分割數據寫入的,而P:D就代表了數據 盤與校驗盤的個數。所以如果數據位寬越大,用于校驗的盤的比例就越小。由于漢明碼能夠糾正單一比特的錯誤,所以當單個磁盤損壞時,漢明碼便能夠糾正數據。
RAID 2 因為每次讀寫都需要全組磁盤聯動,所以為了最大化其性能,最好保證每塊磁盤主軸同步,使同一時刻每塊磁盤磁頭所處的扇區邏輯編號都一致,并存并取,達到最佳性能。 如果不能同步,則會產生等待,影響速度。
與RAID0相比,RAID2的傳輸率更好。因為RAID0一般stripe size 相對于RAID2的1bit來說實在太大,并不能保證每次都是多磁盤并行。而RAID2每次IO都能保證是多磁盤并行,為了 發揮這個優勢,磁盤的尋道時間一定要減少(尋道時間比數據傳輸時間要大幾個數量級),所 以RAID2適合于連續IO,大塊IO(比如視頻流服務)的情況。
類似于RAID2,數據條帶化(stripe)存儲于不同的硬盤,數據以字節為單位,只是RAID3使用單塊磁盤存儲簡單的 奇偶校驗信息,所以最終磁盤數量為 N+1 。當這N+1個硬盤中的其中一個硬盤出現故障時,從其它N個硬盤中的數據也可以恢復原始數據,當更換一個新硬盤后,系統可以重新恢復完整 的校驗容錯信息。
由于在一個硬盤陣列中,多于一個硬盤同時出現故障率的幾率很小,所以一般情況下,使用 RAID3,安全性是可以得到保障的。RAID 3會把數據的寫入操作分散到多個磁盤上進行,不管是向哪一個數據盤寫入數據, 都需要同時重寫校驗盤中的相關信息。因此,對于那些經常需要執行大量寫入操作的應用來說,校驗盤的負載將會很大,無法滿足程序的運行速度,從而導致整個RAID系統性能的下降。 鑒于這種原因,RAID 3更加適合應用于那些寫入操作較少,讀取操作較多的應用環境,例如 數據庫和WEB服務器等。
與RAID3類似,但RAID4是按塊(扇區)存取。無須像RAID3那樣,哪怕每一次小I/O操作也要涉 及全組,只需涉及組中兩塊硬盤(一塊數據盤,一塊校驗盤)即可,從而提高了小量數據 I/O速度。
奇偶校驗(XOR),數據以塊分段條帶化存儲。校驗信息交叉地存儲在所有的數據盤上。RAID5把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,并且奇偶校驗信息和 相對應的數據分別存儲于不同的磁盤上,其中任意N-1塊磁盤上都存儲完整的數據,也就是 說有相當于一塊磁盤容量的空間用于存儲奇偶校驗信息。因此當RAID5的一個磁盤發生損壞 后,不會影響數據的完整性,從而保證了數據安全。當損壞的磁盤被替換后,RAID還會自動 利用剩下奇偶校驗信息去重建此磁盤上的數據,來保持RAID5的高可靠性。
RAID 5可以理解為是RAID 0和RAID 1的折衷方案。RAID 5可以為系統提供數據安全保障,但保障程度要比鏡像低而磁盤空間利用率要比鏡像高。RAID 5具有和RAID 0相近似的數據讀取 速度,只是因為多了一個奇偶校驗信息,寫入數據的速度相對單獨寫入一塊硬盤的速度略慢。
類似RAID5,但是增加了第二個獨立的奇偶校驗信息塊,兩個獨立的奇偶系統使用不同的算法,數據的可靠性非常高,即使兩塊磁盤同時失效也不會影響數據的使用。但RAID 6需要分配給 奇偶校驗信息更大的磁盤空間,相對于RAID 5有更大的“寫損失”,因此“寫性能”非常差。
由圖所知,每個硬盤上除了都有同級數據XOR校驗區外,還有一個針對每個數據 塊的XOR校驗區。當然,當前盤數據塊的校驗數據不可能存在當前盤而是交錯存儲的。從數學角度來說,RAID 5使用一個方程式解出一個未知變量,而RAID 6則能通過兩個獨立的線性方程構成方程組,從而恢復兩個未知數據。
伴隨著硬盤容量的增長,RAID6已經變得越來越重要。TB級別的硬盤上更容易造成數據丟失,數據重建過程(比如RAID5,只允許一塊硬盤損壞)也越來越長,甚至到數周,這是完全不可接受的。而RAID6允許兩塊硬盤同時發生故障,所以漸漸受到人們的青睞。
伴隨CD,DVD和藍光光盤的問世,存儲介質出現了擦除碼技術,即使媒介表面出現劃痕,仍 然可以播放,大多數常見的擦除碼算法已經演變為上世紀60年代麻省理工學院林肯實驗室開發的Reed-Solomon碼。實際情況中,多數RAID6實現都采用了標準的RAID5教校驗比特和Reed-Solomon碼 。而純擦除碼算法的使用使得RAID6陣列可以失效兩塊以上的硬盤,保護力度更強,有些實現方法提供了多種級別的保護,甚至允許用戶(或存儲管理員)指定保護級別。
顧名思義,是RAID0和RAID1的結合。先做條帶(0),再做鏡像(1)。
同上,但是先做鏡像(1),再做條帶(0)
RAID01和RAID10非常相似,二者在讀寫性能上沒有什么差別。但是在安全性上RAID10要好于 RAID01。如圖中所示,假設DISK0損壞,在RAID10中,在剩下的3塊盤中,只有當DISK1故障, 整個RAID才會失效。但在RAID01中,DISK0損壞后,左邊的條帶將無法讀取,在剩下的3快盤 中,只要DISK2或DISK3兩個盤中任何一個損壞,都會導致RAID失效。
RAID10和RAID5也是經常用來比較的兩種方案,二者都在生產實踐中得到了廣泛的應用。 RAID10安全性更高,但是空間利用率低。至于讀寫性能,與cache有很大關聯,最好根據實 際情況測試比較選擇。
DRFS,即DistributedRaidFileSystem,是一種嘗試將RAID與Hadoop的DFS結合起來的技術。 通常的HDFS在實踐中需要將replication factor設為3以保證數據完整性,而如果利用 RAID的stripe和partity(奇偶校驗)技術,將數據分為多個塊,并且存儲各個塊的校驗信 息(XOR或擦除碼)。有了這些措施,塊的副本數就可以降低并且保證同樣的數據可靠性,就能節省相當一部分的存儲空間。
DRFS包含以下幾個組件:
軟件實現
現在很都操作系統都提供了RAID的軟件實現,主要由以下幾個方面:
固件/驅動實現
軟件實現并總是與系統的啟動進程兼容,硬件實現(RAID控制器)總是太貴并且都是廠商專有的技術,所以 有了一中混合的實現:系統啟動時,由固件(firmware)來實現RAID,系統啟動的差不多了,由驅動來管 理RAID。當然,這需要操作系統對這種驅動提供支持。
以上是“RAID磁盤陣列有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。