目前已有的RAID(Redundant Array of Independent Disks,獨立冗余磁盤陣列)技術有很多種,但是RAID0、RAID1、RAID5是最常見的幾種方案。
1 RAID0
RAID0技術把多塊(至少兩塊)物理硬盤設備通過軟件或硬件的方式串聯在一起,組成一個大的卷組,並將數據依次寫入到各個物理硬盤中。這樣,在最理想的情況下,硬盤設備的讀寫性能會提升數倍,但是若任意一塊硬盤發生故障將導致整個系統的數據都受到破壞。雖然,RAID0技術能夠有效的提升硬盤數據的吞吐速度,但是不具備數據備份和錯誤修復能力。如下圖,數據被分別寫入到不同的硬盤設備中,即disk1和disk2硬盤設備會被分別保存數據資料,最終實現提升讀取、寫入速度的效果。
2 RAID1
盡管RAID0技術提升了硬盤設備的讀寫速度,但是它將數據一次寫入各個物理硬盤中,也就是說,它的數據是分開存放的,其中任何一塊硬盤發生故障都會損壞整個系統的數據。因此,如果生產環境對硬盤設備的讀寫速度沒有要求,而是希望增加數據的安全性時,就需要用到RAID1技術了。
RAID1技術示意圖如下圖,它是把兩塊以上的硬盤設備進行綁定,在寫入數據時,是將數據同時寫入到多塊硬盤設備上(可以將其視為數據的鏡像或備份)。當其中某一塊硬盤發生故障后,一般會立即自動以熱交換的方式來恢復數據的正常使用。
RAID1技術雖然十分注重數據的安全性,但是因為是在多塊硬盤設備中寫入了相同的數據,因此硬盤設備的利用率下降了一半。從理論上說,如下圖所示空間的真實可用率只有50%,由三塊硬盤設備組成的RAID1磁盤陣列的可用率只有33%左右,以此類推。由於需要把數據同時寫入兩塊以上的硬盤設備,這無疑也在一定程度上增大了系統計算功能的負載。
3 RAID5
RAID5技術是把硬盤設備的數據奇偶校驗信息保存到其他硬盤設備中。RAID5磁盤陣列組中數據的奇偶校驗信息並不是單獨保存到某一塊磁盤設備中,而是存儲到除自身以外的其他每一塊設備上,這樣的好處是其中任何一個設備損壞后不至於出現致命缺陷。下圖“parity”部分存放的就是數據的奇偶校驗信息,換句話說,就是RAID5技術實際上沒有備份磁盤中的真實數據信息,而是當硬盤設備出現問題后通過奇偶校驗信息來嘗試重建損壞的數據。RAID5這樣的技術特性“妥協”的兼顧了硬盤設備的讀寫速度、數據安全性與存儲成本問題。
注:
奇偶校驗的底層運算基礎就是異或運算,但是在通俗的人類理解,應該是奇偶校驗更好理解
100000110
100000010
這兩個數據在人類看來,就是在倒數第三位一個是0一個是1的區別。假設現在存儲這一數據的硬盤壞了,數據就會變成:
100000X10
100000X10
那么,怎么通過奇偶校驗還原這個數據呢?
人類的思維就是通過這個數據加起來一共有多少個1或者多少個0,然后補回去就是了,但是這樣的話,校驗的數據就分別變成3跟2(數據中1的個數),但這樣是無法通過二進制不增加數據長度的辦法實現的。所以奇偶校驗就提供了一個更好的方法,3是奇數,所以校驗數據是1,2是偶數,校驗數據就是0,通過這樣,在原數據只丟一位數據的前提下,完全可以運算得出原數據。
4 RAID10
鑒於RAID5技術是因為磁盤設備的成本問題對讀寫速度和數據的安全性能而有了一定的妥協,但是在企業里更在乎的還是數據本身的價值而非硬盤的價格,因此在生產環境中推薦使用RAID10技術。
RAID10即RAID0+RAID1的一個組合體。如下圖所示,RAID10技術需要至少4塊硬盤來組建,其中先分別兩兩制作成RAID1磁盤陣列,以保證數據的安全性;然后再對兩個RAID1次哦按陣列實施RAID0技術,進一步提高硬盤設備的讀寫速度。這樣從理論上講,只要壞的不是同一組中的所有磁盤,那么最多可以損壞50%的硬盤設備而不丟失數據。由於RAID10技術繼承了RAID0的高速寫速度和RAID1的數據安全性,在不考慮成本的情況下RAID10的性能都超過了RAID5,因此當前成為廣泛使用的一種存儲技術。
附:讀寫速度數據對比
威鐵馬硬盤盒 + 2塊7200轉 HGST 4T 硬盤,win10系統+usb進行讀寫測試
1)single模式(不做raid):
2)raid0
3)raid1
參考原文:https://blog.csdn.net/Mr_Yang__/article/details/85228465







