【廣告】
RAID都有哪些類型
知道了RAID是什么之后,我們就來看看RAID都有哪些類型吧。根據(jù)RAID算法的不同,有RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6、RAID7、RAID01/10、RAID50等等很多種,然而由于他們其中有一些的算法過于麻煩,日常使用中很少涉及。因此,我們這次的科普只涉及幾種廣泛使用的RAID類型:包含RAID0、RAID1、RAID5、RAID01/10四種。除此之外,我們還將順帶提及RAID6以及RAID50這兩種稍麻煩點,但至少還有人用的陣列類型。
磁盤陣列優(yōu)點
提高傳輸速率。RAID通過在多個磁盤上同時存儲和讀取數(shù)據(jù)來大幅提高存儲系統(tǒng)的數(shù)據(jù)吞吐量(Throughput)。在RAID中,可以讓很多磁盤驅(qū)動器同時傳輸數(shù)據(jù),而這些磁盤驅(qū)動器在邏輯上又是一個磁盤驅(qū)動器,所以使用RAID可以達到單個磁盤驅(qū)動器幾倍、幾十倍甚至上百倍的速率。這也是RAID起初想要解決的問題。因為當時CPU的速度增長很快,而磁盤驅(qū)動器的數(shù)據(jù)傳輸速率無法大幅提高,所以需要有一種方案解決二者之間的矛盾。RAID成功了。 [2] 通過數(shù)據(jù)校驗提供容錯功能。普通磁盤驅(qū)動器無法提供容錯功能,如果不包括寫在磁盤上的CRC(循環(huán)冗余校驗)碼的話。RAID容錯是建立在每個磁盤驅(qū)動器的硬件容錯功能之上的,所以它提供更高的安全性。在很多RAID模式中都有較為完備的相互校驗/恢復(fù)的措施,甚至是直接相互的鏡像備份,從而大大提高了RAID系統(tǒng)的容錯度,提高了系統(tǒng)的穩(wěn)定冗余性。
那么服務(wù)器為啥要做磁盤陣列呢?
主要有兩個作用:
提供容錯功能
普通的磁盤驅(qū)動器是無法提供容錯功能的,而磁盤陣列可以通過數(shù)據(jù)校驗提供容錯功能,服務(wù)器會將數(shù)據(jù)寫入多個磁盤,如果某個磁盤發(fā)生故障時,此時仍能保證信息的可用性,重要數(shù)據(jù)不會丟失,也不會耽誤服務(wù)器的正常運轉(zhuǎn)。
提高傳輸速率
磁盤陣列將多個磁盤組成一個陣列,當做一個單一的磁盤使用,把數(shù)據(jù)已分段的形式存儲到不同的硬盤之中,發(fā)生數(shù)據(jù)存取變動時,陣列中的相關(guān)磁盤一起工作,這就可以大幅的降低數(shù)據(jù)存儲的時間,同時還能擁有更佳的空間和使用率。
RAID 中主要有三個關(guān)鍵概念和技術(shù)
鏡像( Mirroring )、數(shù)據(jù)條帶( Data Stripping )和數(shù)據(jù)校驗( Data parity )。鏡像,將數(shù)據(jù)copy到多個磁盤,一方面可以提高可靠性,另一方面可并發(fā)從兩個或多個副本讀取數(shù)據(jù)來提高讀性能。顯而易見,鏡像的寫性能要稍低, 確保數(shù)據(jù)正確地寫到多個磁盤需要更多的時間消耗。數(shù)據(jù)條帶,將數(shù)據(jù)分片保存在多個不同的磁盤,多個數(shù)據(jù)分片共同組成一個完整數(shù)據(jù)副本,這與鏡像的多個副本是不同的,它通常用于性能考慮。數(shù)據(jù)條帶具有更高的并發(fā)粒度,當訪問數(shù)據(jù)時,可以同時對位于不同磁盤上數(shù)據(jù)進行讀寫操作, 從而獲得非常可觀的 I/O 性能提升 。數(shù)據(jù)校驗,利用冗余數(shù)據(jù)進行數(shù)據(jù)錯誤檢測和修復(fù),冗余數(shù)據(jù)通常采用海明碼、異或操作等算法來計算獲得。利用校驗功能,可以很大程度上提高磁盤陣列的可靠性、魯棒性和容錯能力。不過,數(shù)據(jù)校驗需要從多處讀取數(shù)據(jù)并進行計算和對比,會影響系統(tǒng)性能。 不同等級的 RAID 采用一個或多個以上的三種技術(shù),來獲得不同的數(shù)據(jù)可靠性、可用性和 I/O 性能。至于設(shè)計何種 RAID (甚至新的等級或類型)或采用何種模式的 RAID ,需要在深入理解系統(tǒng)需求的前提下進行合理選擇,綜合評估可靠性、性能和成本來進行折中的選擇。