2022-10-04 分類: 網(wǎng)站建設(shè)
獨立磁盤冗余陣列(RAID)是將多個機械硬盤(HDD)或固態(tài)硬盤(SSD)組合為一個邏輯卷的過程,從而使其陣列避免或減少硬盤故障帶來的損失。RAID陣列有很多種類型,以下將討論企業(yè)應(yīng)該選擇哪一種RAID陣列。
什么是RAID陣列?
假設(shè)在一臺服務(wù)器中接入兩塊1TB的硬盤,這樣具有2TB的可用空間。但是,在服務(wù)器環(huán)境中,最好將第二塊硬盤作為備份,構(gòu)建成一個RAID陣列。這可以使用RAID控制器實時完成,該RAID控制器連接到硬盤并管理RAID陣列。還有軟件RAID陣列,但是大多數(shù)服務(wù)器都將配備專用的RAID控制器。
如果沒有RAID陣列,就不會有冗余。但是這并不是主要問題。而一個良好的備份策略永遠不會真正丟失數(shù)據(jù),但是如果硬盤出現(xiàn)故障,則這臺服務(wù)器在還原時可能會經(jīng)歷嚴重的停機問題。這在服務(wù)器環(huán)境中是不可接受的,并且比暫時的數(shù)據(jù)丟失要嚴重得多。
RAID陣列可以在仍然可用的情況下重建,當一塊硬盤出現(xiàn)故障時,不必從備份中恢復(fù)。這是RAID陣列的主要優(yōu)勢。服務(wù)器被設(shè)計為即使在許多意外情況下也不會停機。工作人員可以從網(wǎng)絡(luò)服務(wù)器上拔出硬盤,盡管性能較低,但它仍會繼續(xù)運轉(zhuǎn)。
在許多方面,配置RAID陣列比配置一塊容量更大的硬盤要好得多。一塊8TB大容量硬盤的彈性不如RAID 5陣列中配置的五塊2TB驅(qū)動器。而現(xiàn)在很難找到只安裝一塊硬盤的服務(wù)器。
RAID陣列采用容量和品牌相同的硬盤效果好。它可以與各種硬盤一起使用,但通常會受到速度最慢和容量最小的限制,使其性能欠佳。
這實際上只適用于用戶自己管理服務(wù)器的情況,如家用網(wǎng)絡(luò)附屬存儲(NAS)采用了許多硬盤;在這種情況下,選擇的RAID陣列類型非常重要。如果是從AWS公司或者其他云計算供應(yīng)商那里租用虛擬服務(wù)器,RAID陣列通常由托管服務(wù)商為用戶配置,因為這個級別的控制是從企業(yè)那里抽象出來的。
在開始采用RAID陣列之前需要注意:用于指定不同RAID級別的數(shù)字實際上沒有任何意義。RAID 5的性能不是RAID 1的5倍。此外還有其他幾個RAID級別,例如RAID 2、3和4,但它們在實踐中并未使用,因此不用解釋。
JBOD
從技術(shù)上講,這不是RAID陣列配置,但是在這里需要進行解釋。從技術(shù)上講,JBOD意思是“硬盤的聯(lián)合批處理”,但是可以將其理解為“只是一堆硬盤”,因為基本上就是這樣。JBOD只是將硬盤連接在一起成為一個大容量硬盤。這不會帶來任何性能上的改進,也沒有提供任何冗余,而用戶并不關(guān)心其中接入了哪些硬盤。
許多RAID控制器將提供JBOD模式。除非擁有許多容量不同的硬盤并將它們連接在一起,否則不應(yīng)該使用它。
RAID 0陣列
RAID 0陣列中的數(shù)據(jù)分散在多個硬盤上;例如,如果想從RAID陣列讀取文件,則將并行讀取多個硬盤,這使RAID 0陣列的讀取速度比任何一塊硬盤快得多。
但是,由于沒有鏡像、奇偶校驗或其他冗余機制,因此,如果某塊硬盤發(fā)生故障,則會丟失整個陣列上的所有數(shù)據(jù)。因此,可以在速度至關(guān)重要時使用RAID 0陣列,并且不需要冗余。
在某種程度上,RAID 0陣列與根本沒有采用RAID陣列非常相似。它可以將所有硬盤放在一個大容量硬盤中,并獲得更高的訪問速度。但是,單塊硬盤故障可能會對陣列上的數(shù)據(jù)造成災(zāi)難性的影響,因此,除非是臨時數(shù)據(jù),否則在沒有備份解決方案的情況下切勿運行RAID 0陣列。
RAID 0陣列還可以大化存儲容量,因為沒有用于冗余的存儲空間。如果有兩個1 TB硬盤,則其陣列的容量為2TB。但是,RAID 0陣列被限制為陣列中容量最小的硬盤,如果嘗試將2TB硬盤與1TB硬盤一起構(gòu)建成RAID 0陣列,則只有2TB的空間,而另一個1TB硬盤的空間則會完全浪費。
采用SSD硬盤的RAID 0陣列很常見,考慮到SSD硬盤的故障率較低,因此更合理。這是高端服務(wù)器系統(tǒng)中的常見設(shè)置,因為速度比冗余更重要。
RAID 1陣列
RAID 1陣列是RAID陣列的另一種基本類型。與RAID 0陣列類似,它使用兩塊或多塊硬盤,但不是將數(shù)據(jù)實現(xiàn)條帶化,而是將數(shù)據(jù)從第一塊硬盤鏡像到第二塊硬盤(以及陣列中的其他硬盤)。如果有兩塊硬盤,則其中一塊硬盤將完全用作一種實時備份硬盤,從而在此過程中將總存儲容量減半。如果一塊硬盤發(fā)生故障,可以繼續(xù)從另一塊硬盤讀取數(shù)據(jù),并通過更換故障的硬盤來重建陣列。
由于可以使用兩塊硬盤,因此確實具有一些讀取性能上的好處,但是由于它從每塊硬盤中讀取相同的數(shù)據(jù),因此通常不如RAID 0陣列好。其寫入性能將受限于讀寫速度最慢的硬盤的速度。
如果擁有兩個硬盤并且無法承受硬盤故障而無法取出數(shù)據(jù)帶來的損失,則RAID 1陣列則是唯一可行的選擇。不過,這并不是最有效的,因為將存儲容量減少了一半,因此其成本是單塊硬盤的兩倍。
但是,服務(wù)器設(shè)置中的冗余陣列比單塊硬盤的價格要有價值得多。如果只需要基本的硬盤設(shè)置,可以使用簡單的RAID 1陣列。當接入兩塊硬盤時,大多數(shù)RAID控制器將默認為RAI??D 1陣列。
RAID 5陣列
RAID 5陣列讓事情開始變得有趣起來。RAID 5陣列不會像RAID 1陣列那樣復(fù)制數(shù)據(jù),而是使用奇偶校驗這種效率更高的方法。
奇偶校驗是錯誤檢查的一種形式,就像哈希校驗一樣,但是要簡單得多。通常用于確保網(wǎng)絡(luò)流量不會混淆?;旧希僭O(shè)有7位數(shù)據(jù)要發(fā)送給某人,并且想確保它完整無缺地傳輸。如果傳輸過程有些混亂,他們將無從得知。解決方案是對所有正數(shù)位進行計數(shù)。如果有偶數(shù),則奇偶校驗將為0。如果有奇數(shù),則奇偶校驗將為1。將其添加到要發(fā)送的數(shù)據(jù)中,另一端的人在收到該數(shù)據(jù)時將會自動計算奇偶校驗。如果發(fā)生錯誤,并且發(fā)生了位翻轉(zhuǎn)(甚至是奇偶校驗位本身),對方也會知道并請求重新發(fā)送數(shù)據(jù)。當然,如果單次傳輸中有兩個錯誤,則該系統(tǒng)會中斷,但這并不常見。
RAID 5陣列不需要存儲數(shù)據(jù)的副本(就像發(fā)送兩次消息一樣),而只是存儲奇偶校驗位??梢韵胂笏窬哂腥哂喙δ艿腞AID 0陣列一樣,它至少需要三塊硬盤。除一塊硬盤之外,所有硬盤均像常規(guī)RAID 0陣列一樣使用,但最后一塊硬盤用于奇偶校驗。如果其中一塊硬盤出現(xiàn)故障,則可以反向執(zhí)行奇偶校驗計算以恢復(fù)任何硬盤上的所有數(shù)據(jù)(盡管這是一個漫長而費力的操作)。
實際上,RAID 5陣列不使用專用硬盤進行奇偶校驗,因為在所有硬盤上剝離奇偶校驗位的速度更快,但是在計算RAID 5陣列將提供多少存儲空間時,可以這樣考慮。本質(zhì)上,除了一塊硬盤之外,將所有硬盤加起來,這就是將擁有的存儲空間。RAID 5陣列可以通過增加硬盤來提高空間效率,采用三塊硬盤的效率為66%,但是10塊硬盤的效率為90%。與RAID 1陣列相比,這顯著降低了成本。
但是,RAID 5陣列并非沒有缺點。由于每次寫入硬盤時都必須計算奇偶校驗,因此會降低寫入性能。考慮到以下事實,其問題就更加嚴重:在一塊硬盤中翻轉(zhuǎn)一個位需要讀取所有的硬盤,以便重新計算該塊的奇偶校驗。實際上,如果RAID 0陣列可以擴展n塊硬盤的性能,則RAID 5陣列可以為n-1塊硬盤提供寫入操作的性能。但是,如果陣列足夠大,問題并沒有那么嚴重。
另外,無論擁有多少塊硬盤,都只能承受一塊硬盤故障的損失。這似乎不是一個主要問題,因為故障很少見,而且不太可能同時遇到兩個故障,但是陣列重建在硬盤上可能會非常密集,基本上是在每個故障最易受攻擊的時候從每個故障中讀取每一位數(shù)據(jù)。因此,如果其中一塊硬盤發(fā)生故障,則另一塊硬盤也很有可能也會發(fā)生故障。
如果有3塊硬盤,則應(yīng)該選擇RAID 5陣列,因為RAID 1陣列會浪費空間。如果有4塊硬盤,那么它可能仍然是好選擇,但是此列表上的其他兩個選項也可以使用。
RAID 6陣列
RAID 6陣列與RAID 5陣列相似,只是對“奇偶校驗磁盤”進行了鏡像。這使其陣列能夠避免發(fā)生兩次的硬盤故障。但是,n-2塊硬盤的寫入性能更差,并且擁有更少的空間。
如果有大量的硬盤(6塊、8塊或更多),則可能要考慮RAID 6陣列的額外冗余。僅RAID 6陣列即可實現(xiàn)3-2-1備份策略:至少存儲三個數(shù)據(jù)副本,兩個備份位于不同的介質(zhì)上,其中至少一個位于異地。RAID 6陣列可以承受兩個硬盤故障,使其功能與具有三塊磁盤的RAID 1陣列相同(減去重建時間)。
在實踐中,RAID 6陣列幾乎永遠不會經(jīng)歷整個陣列故障,尤其是如果在公式中添加了更多的奇偶校驗磁盤的話。結(jié)合其他數(shù)據(jù)中心中的備份和副本,這就是AWS Glacier和Backblaze等存檔服務(wù)如何實現(xiàn)99.999999999%持久性的原因。
RAID 10(1+0)陣列
RAID 10陣列從技術(shù)上講是嵌套RAID陣列的一種形式,這本身就是另一種復(fù)雜的事情。如果擁有四塊硬盤,并且不想使用RAID 5陣列或RAID 6陣列,則唯一的其他選擇是RAID 0陣列和RAID 1陣列,這兩個都有問題。相反,如果將這些硬盤分成兩部分,構(gòu)成兩個RAID 1陣列,然后將這些陣列用于構(gòu)建一個大的RAID 0陣列。RAID 10陣列至少需要四塊硬盤并且還需要偶數(shù)總數(shù)的硬盤。
這提供了RAID 1陣列和RAID 0陣列的所有優(yōu)點,并且沒有很多缺點,其具有快速的讀取和寫入速度,高冗余性和易于重建的功能,同時仍然可以使用所有硬盤總空間的一半。RAID 10陣列實際上比RAID 1陣列更具彈性。在上圖中,硬盤1和硬盤3可能會發(fā)生故障,并且陣列仍可以完全重建(盡管如果硬盤0和硬盤1都發(fā)生故障,則該陣列將無法恢復(fù))。
RAID 10陣列是服務(wù)器非常常見的RAID級別。它的速度非???,并且可以承受一塊硬盤故障。唯一真正的問題是價格,因為仍然要為保留所有數(shù)據(jù)的副本付出雙倍的代價,但是對于一般的工作負載來說,RAID 10陣列在速度上超越了所有其他RAID配置,而在吞吐量方面僅輸給RAID 0陣列。
RAID 50/60陣列
RAID 50/60陣列基本上是RAID 0陣列中的兩個RAID 5陣列或RAID 56陣列。這與RAID 10陣列一樣提高了性能,最重要的是提高了寫入性能,因為在計算奇偶校驗時從其他硬盤讀取數(shù)據(jù)更快。
它至少需要6塊硬盤(在RAID 60的情況下為8塊硬盤),并且由于有單獨的RAID 5陣列,因此需要附加的奇偶校驗硬盤,從而降低了空間效率,但彈性更大。總體而言,RAID 50陣列本質(zhì)上是RAID 5陣列性能更高的版本。
網(wǎng)站名稱:服務(wù)器應(yīng)該使用哪種類型的RAID陣列?
分享網(wǎng)址:http://jinyejixie.com/news33/201433.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站內(nèi)鏈、商城網(wǎng)站、外貿(mào)建站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容