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