RAID及熱備盤詳解


 

RAID,為Redundant Arrays of Independent Disks的簡稱,中文為廉價冗余磁盤陣列。 

一.出現的原因(RAID的優點):

  1. 它的用途主要是面向服務器,但現在的個人電腦由於需求變大,需要幾塊硬盤,而計算機默認的是對第一塊硬盤有緩存,而其它的則沒有,這樣就導致計算機訪問其它的硬盤的速度特別的慢,這時磁盤陣列技術出現了,組合小的廉價磁盤來代替大的昂貴磁盤,用於協調幾塊硬盤的訪問。
  2. 在很多RAID模式中都有較為完備的相互校驗/恢復的措施,甚至是直接相互的鏡像備份,從而大大提高了RAID系統的容錯度,提高了系統的穩定冗余性。

二.不足之處(RAID的缺點)

      做不同的RAID,有RAID模式硬盤利用率低,價格昂貴。

 

三.RAID的分類

 

   1.RAID0 (又稱為StripeStriping)數據分條技術,即文件要寫入RAID時,文件會被切割成大小相同的數據條,然后數據條被依次按順序存放到不同的磁盤中去。

                                                                                                  

  如圖1所示:系統向三個磁盤組成的邏輯硬盤(RADI 0 磁盤組)發出的I/O數據請求被轉化為3項操作,其中的每一項操作都對應於一塊物理硬盤。我們從圖中可以清楚的看到通過建立RAID 0,原先順序的數據請求被分散到所有的三塊硬盤中同時執行。
  從理論上講,三塊硬盤的並行操作使同一時間內磁盤讀寫速度提升了3倍。硬盤越多,傳輸速度越塊,但由於總線帶寬等多種因素的影響,實際的提升速率肯定會低於理論值,但是,大量數據並行傳輸與串行傳輸比較,提速效果顯著顯然毋庸置疑。 
  RAID 0的缺點是不提供數據冗余,因為數據被分條儲存,所以只要有一個硬盤掛了,文件的一部分數據條就丟失了,整個文件也損壞。所以一旦用戶任意一個硬盤損壞,損壞的數據將無法得到恢復。 
  RAID 0具有的特點,使其特別適用於對性能要求較高,而對數據安全不太在乎的領域,如圖形工作站或其他對硬盤性能要求較高的應用等。感覺RAID 0適用的情況比較極端,企業應用服務器極少會用到,另外,由於同品牌同型號、大小的硬盤在一起用才會更能體現,且效果不如SSD,因此RAID 0對家用電腦來說也略顯不實。

 

硬盤需求數量:2或者2個以上

硬盤利用率:利用率最高,所有磁盤容量之和,100%

容錯性:容錯性最低,0

 

 

  2.RAID 1 (又稱為MirrorMirroring)鏡像技術

 一份數據被傳入RAID 1中會被分為兩股,並分別寫入到各個磁盤里去,由於同一份數據會被分別寫入到其他不同磁碟,因此如果要寫入 100MB 時,數據傳送到 I/O 匯流排后會被復制多份到各個磁碟, 結果就是數據量感覺變大了!因此在大量寫入 RAID-1 的情況下,寫入的效能可能會變的非常差 (因為我們只有一個南橋啊!)。 好在如果你使用的是硬件 RAID (磁盤陣列卡) 時,磁盤陣列卡會主動的復制一份而不使用系統的 I/O 匯流排,效能方面則還可以。 如果使用軟件磁盤陣列,可能效能就不好了。

 

由於兩顆硬盤內的數據一模一樣,所以任何一顆硬盤損毀時,你的數據還是可以完整的保留下來的! 所以我們可以說, RAID 1 最大的優點大概就在於數據的備份吧!不過由於磁碟容量有一半用在備份, 因此總容量會是全部磁碟容量的一半而已。雖然 RAID-1 的寫入效能不佳,不過讀取的效能則還可以啦!這是因為數據有兩份在不同的磁碟上面,如果多個 processes 在讀取同一筆數據時, RAID 會自行取得最佳的讀取平衡。

                                                                

 如圖2所示:當讀取數據時,系統先從RAID1的源盤讀取數據,如果讀取數據成功,則系統不去管備份盤上的數據;如果讀取源盤數據失敗,則系統自動轉而讀取備份盤上的數據,不會造成用戶工作任務的中斷。當然,我們應當及時地更換損壞的硬盤並利用備份數據重新建立Mirror,避免備份盤在發生損壞時,造成不可挽回的數據損失。

 

硬盤需求數量:2 + 2*N(N ≥0) (大部分控制器只支持2塊盤純RAID 1)

硬盤利用率:利用率最低分,所有磁盤容量的一半50%

容錯性:容錯性最高,容許壞一半的硬盤。

 

P.S. 有次跟Dell的工程師溝通過,dell的工程師說如果如果4塊盤考慮純RAID 1,那么只有一塊盤的容量能用,別的盤都是鏡像盤,那么容錯是同時容許N-1塊盤壞,可是實際上Dell及惠普的陣列卡在選擇RAID 1的模式下是只能選擇2塊,不容許選再多了(╯' - ')╯︵ ┻━┻

 

 

 

  3.RAID 1+0 RAID 0+1

RAID-0 的效能佳但是數據不安全,RAID-1 的數據安全但是效能不佳,那么能不能將這兩者整合起來配置 RAID 呢? 可以啊!那就是 RAID 0+1 或 RAID 1+0。所謂的 RAID 0+1 就是: (1)先讓兩顆磁碟組成 RAID 0,並且這樣的配置共有兩組; (2)將這兩組 RAID 0 再組成一組 RAID 1。這就是 RAID 0+1 羅!反過來說,RAID 1+0 就是先組成 RAID-1 再組成 RAID-0 的意思。

硬盤需求數量:4 + 2*N(N ≥0)

硬盤利用率:利用率低,所有磁盤容量一半,50%

容錯性:容錯性尚可,允許同時損壞一半的盤片,但是至於如何損壞會對RAID有影響取決於是用RAID1+0 還是用RAID 0+1 。

 

  4.RAID5 、Raid 6

                                                             

如上圖所示,每個循環寫入時,都會有部分的同位檢查碼 (parity) 被記錄起來,並且記錄的同位檢查碼每次都記錄在不同的磁碟, 因此,任何一個磁碟損毀時都能夠藉由其他磁碟的檢查碼來重建原本磁碟內的數據喔!不過需要注意的是, 由於有同位檢查碼,因此 RAID 5 的總容量會是整體磁碟數量減一顆。以上圖為例, 原本的 3 顆磁碟只會剩下 (3-1)=2 顆磁碟的容量。而且當損毀的磁碟數量大於等於兩顆時,這整組 RAID 5 的數據就損毀了。 因為 RAID 5 默認僅能支持一顆磁碟的損毀情況。

 

在讀寫效能的比較上,讀取的效能還不賴!與 RAID 0 有的比!不過寫的效能就不見得能夠添加很多! 這是因為要寫入 RAID 5 的數據還得要經過計算同位檢查碼 (parity) 的關系。由於加上這個計算的動作, 所以寫入的效能與系統的硬件關系較大!尤其當使用軟件磁盤陣列時,同位檢查碼是透過 CPU 去計算而非專職的磁盤陣列卡, 因此效能方面還需要評估。

 

另外,由於 RAID 5 僅能支持一顆磁碟的損毀,因此近來還有發展出另外一種等級,就是 RAID 6 ,這個 RAID 6 則使用兩顆磁碟的容量作為 parity 的儲存,因此整體的磁碟容量就會少兩顆,但是允許出錯的磁碟數量就可以達到兩顆了! 也就是在 RAID 6 的情況下,同時兩顆磁碟損毀時,數據還是可以救回來!

 

硬盤需求數量: N(N ≥3)

硬盤利用率:利用率尚可,利用率為N-1塊盤的容量

容錯性:容錯性尚可,所有磁盤磁盤壞一個,如果RAID6,容許所有磁盤壞兩個,但同時利用率也為N-2

 

四 熱備盤

 

當壞盤出現后,服務器會報警,人工可以手動將壞盤替換出來,當插入好盤的時候,RAID控制器會根據XOR,將的三塊盤的信息在后台算出來,然后寫入新的硬盤。有些RAID控制系統會用NVRAM來存放陣列信息,因此和整列相關的條帶化數據也會重新分配到新盤上,這些工作都對用戶和應用程序來說都是透明的,用戶可能會感受到的就是系統會因為在后台底層進行條帶數據的重新分配而帶來的服務器響應延遲。

當然,如果條件允許,用戶也可以強制作重新分配,當然是在維護停機時間內操作。

好,看了上面的基礎知識,大家可以知道,如果RAID 5的盤陣中即便出現一個壞盤,里的數據也不會丟失,甚至你可以不用去理睬他(當然系統性能會有比較大的下降)。

但是由於XOR的限制和RAID 5這個級別的限制,如果連續兩個盤出現了問題,呢么整個盤陣中的數據就完蛋了,系統也會不可用。

特別是那些無人值守的機房,RAID 5中死掉一個盤,沒有關系,如果他們比較倒霉,在管理人員沒有更換壞盤的時候,第二個硬盤也死掉了,那麽就都完蛋了。

Hot-Spare盤就是一個不參與盤陣的,但是加電上線的盤,一點RAID 中的盤出現問題,它都可以自動的替換進入盤陣,你可以把它想象成一個"自動換盤"的概念。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM