RAID 10
帶條帶化的鏡像。從技術(shù)上來說,RAID 10是復(fù)合RAID,結(jié)合了無校驗碼條帶(RAID 0)和RAID 1。
在陣列中只有兩塊驅(qū)動器的情況下,許多廠商也使用RAID 10(或RAID 1+0)這個術(shù)語,不過實際上這種陣列只是RAID 1,因為只有陣列中擁有四塊以上驅(qū)動器條帶化才會開始運作。通過RAID 10,驅(qū)動器必須是一對一對地添加,因此陣列中驅(qū)動器的數(shù)量只可能是偶數(shù)。
RAID 10可以承受占驅(qū)動器總數(shù)一半的驅(qū)動器故障和損失,同時最多只能承受每對驅(qū)動器中一個驅(qū)動器的故障和損失。RAID 10沒有校驗碼計算,這使得它相對于RAID 5或RAID 6有性能上的優(yōu)勢,對陣列驅(qū)動器計算性能的要求也更低。在所有常見的RAID類型中,RAID 10提供了最高的讀取性能,因為在讀取操作中,陣列中的所有驅(qū)動器都可以同時使用。但是它的寫入性能要更低。RAID 10的容量計算和RAID 1相同,即(n*s/2)。
在如今的企業(yè)中,無論RAID軟件或硬件是否已經(jīng)實施,很少有IT部門需要考慮上述四種基本設(shè)置以外的驅(qū)動器設(shè)置。以前,RAID陣列決策中最主要的考量就是可用容量。這是因為當年驅(qū)動器比較貴而且容量比較小。
如今,驅(qū)動器都很大,存儲容量基本上不是問題,至少不像幾年前那樣。驅(qū)動器的成本也下降了許多,因此購買更多的驅(qū)動器以實現(xiàn)更高的冗余度也基本上不成問題。當容量是主要顧慮的時候,RAID 5是比較受歡迎的選擇,因為和其他陣列類型相比,RAID 5損失的容量比例最小。
如今,我們有其他方面的顧慮,主要是數(shù)據(jù)安全性和性能。花稍微更多一點錢來確保數(shù)據(jù)保護是比較明智的選擇。RAID 5只能承受一塊驅(qū)動器的故障和損失。對于擁有三塊驅(qū)動器的陣列,RAID 5的安全性只比RAID 1差一些。
我們可能可以接受三塊驅(qū)動器中損失一塊。三塊驅(qū)動器損失一塊和兩塊驅(qū)動器損失一塊相比好像沒那么讓人害怕。但是如果是更大的陣列呢,比如說16塊驅(qū)動器?如果我們只能承受16塊驅(qū)動器中損失一塊,那我們有理由懷疑系統(tǒng)的可靠性。
RAID 6可以填補這個安全性空白。RAID 6在用于大型陣列的時候,不會犧牲多少存儲容量和性能,同時還提供可以承受任意兩塊驅(qū)動器故障/損失的保護能力。帶校驗碼的條帶化RAID的支持者經(jīng)常引用這些數(shù)字來安撫客戶的管理層,稱RAID 5/6可以提供足夠"物廉價美"的存儲子系統(tǒng)。但是用戶還有其他因素需要考慮。
對RAID 10的分析
在RAID的可靠性--這個也是很少被討論的話題--討論中,幾乎完全被忽視的一個問題就是校驗碼計算的可靠性。
在RAID 1或RAID 10的情況下,系統(tǒng)不需要"計算"來創(chuàng)建帶校驗碼的條帶。系統(tǒng)以穩(wěn)定的方式簡單地寫入數(shù)據(jù)。當一塊驅(qū)動器發(fā)生故障的時候,它的伙伴會接過工作負荷,在替換 驅(qū)動器之前,驅(qū)動器性能會有一些下滑。系統(tǒng)沒有會影響現(xiàn)有驅(qū)動器成員的重建流程,也沒有校驗條帶重建流程。
帶校驗碼的RAID陣列需要有一定的計算操作來算出操作的數(shù)據(jù)是什么以及應(yīng)該將哪些數(shù)據(jù)放到驅(qū)動器。雖然這種計算非常簡單,但是有出錯的可能性。
如果RAID 1或RAID 10陣列控制發(fā)生故障,從理論上來說,系統(tǒng)有可能在驅(qū)動器的內(nèi)容中寫入壞數(shù)據(jù)。但是由于控制器本身沒有進行驅(qū)動器變動的進程,因此這種情況發(fā)生的可能性非常小,因為除了創(chuàng)建鏡像外,系統(tǒng)沒有"重建"流程。
當帶校驗碼的陣列執(zhí)行重建操作時,它們會執(zhí)行復(fù)雜的進程來逐步審視陣列的整個內(nèi)容,然后將丟失的數(shù)據(jù)寫回到被替代的驅(qū)動器。就其本身來說是個簡單的步驟,應(yīng)該不需要擔心。
我和其他一些人首先注意到的是稍微不同的情境,即由于與陣列的連接器松動所導(dǎo)致的磁盤連接性的丟失。隨著時間的流逝,服務(wù)器中的驅(qū)動器有可能會松動,尤其是持續(xù)服務(wù)好幾年以后。
在極端的情況下,如果陣列控制器認為一個或更多的驅(qū)動器相繼發(fā)生故障,驅(qū)動器中的好數(shù)據(jù)會被壞校驗數(shù)據(jù)所覆蓋,然后返回在線并進行重建。在這種情況下,驅(qū)動器本身其實沒有發(fā)生故障,也沒有數(shù)據(jù)丟失。理論上來說其實只要重新調(diào)整一下驅(qū)動器的位置就可以了。
在 熱插拔系統(tǒng)中,在故障磁盤移除和替換的基礎(chǔ)上,驅(qū)動器重建的管理經(jīng)常是自動的。因此,在沒有人工干預(yù)的情況下,這種丟失和替換驅(qū)動器的流程可能會發(fā)生-- 而重建流程會開始。在這種流程下,驅(qū)動器系統(tǒng)會蒙受風險,如果驅(qū)動器陣列再發(fā)生這種情況,根據(jù)驅(qū)動器的狀況,系統(tǒng)可能會開始條帶化壞數(shù)據(jù),并覆蓋正常的文 件系統(tǒng)。
對于服務(wù)器管理員來說,最痛苦的莫過于看到?jīng)]有驅(qū)動器故障的系統(tǒng)僅僅因為不必要的重建操作而丟失整個陣列。
理論上來說,這種情況不應(yīng)該發(fā)生,而管理員應(yīng)采取措施來防止這類事件發(fā)生。但是判斷底層驅(qū)動器控制器的情況,判定驅(qū)動器當前和過去的情況,以及判斷驅(qū)動器所承載的數(shù)據(jù)的質(zhì)量并不是那么容易,還是有可能發(fā)生錯誤。
雖然這種事情發(fā)生的概率不高,但是它還是有發(fā)生的可能,并使得RAID 5和RAID 6系統(tǒng)的風險計算幾乎變得不可能。除了陣列可以容許的驅(qū)動器故障/損失數(shù)量外,我們必須考慮校驗碼錯誤的風險。隨著驅(qū)動器變得更加可靠,校驗碼錯誤風險顯得更加醒目。
此外,RAID 5和RAID 6校驗碼需要計算,帶來了系統(tǒng)負擔。校驗碼的計算通常是由專門的RAID硬件來執(zhí)行的。這種計算帶來了驅(qū)動器子系統(tǒng)的延遲性,不過延遲性的大小很大程度上 取決于硬件與軟件的設(shè)置。這使得我們幾乎無法比較RAID之間的性能水平,因為每種設(shè)置都是獨一無二的。
如今,RAID決策中最大的問題就是我們可以方便地獲得有關(guān)存儲效率和驅(qū)動器容錯的指標,但是有關(guān)可靠性和性能的指標卻幾乎無法獲得。這里面隱藏的危險是人們經(jīng)常關(guān)注那些可以方便衡量的因素而忽視那些無法方便衡量的因素,盡管這些無法方便衡量的因素有可能帶來重大影響。
所有類型的RAID都有自己的立足之地,關(guān)鍵是考慮使用背景并對風險有完整的理解。我們應(yīng)該爭取從現(xiàn)在行業(yè)中廣泛使用的RAID 5轉(zhuǎn)變到RAID 10。驅(qū)動器現(xiàn)在很便宜,而數(shù)據(jù)損失所帶來的成本很昂貴。
from:
http://tech.watchstor.com/storage-module-121402.htm