RAID系統(tǒng)可靠性分析

字號:

每一個RAID級別都有不同的分布模式,其系統(tǒng)的可靠性也有所不同,并影響系統(tǒng)的性能和冗余度。因此,準(zhǔn)確分析RAID系統(tǒng)的可靠性或容錯能力,有助于建設(shè)投資少、可靠性高的存儲系統(tǒng)。
    何謂可靠性?
    可靠性在理論上講是概率問題。
    一套系統(tǒng)從投入使用開始,連續(xù)運(yùn)行一段時間后會出現(xiàn)故障,通過維修或更換部件后再投入運(yùn)行;第二次連續(xù)運(yùn)行一段時間后,可能又出現(xiàn)故障……設(shè)Ti為運(yùn)行時間,ti為停運(yùn)時間,∑T表示平均運(yùn)行時間,它是T1、T2……Tn的代數(shù)平均值,∑t表示平均停運(yùn)時間,它是t1、t2……tn的代數(shù)平均值。如果令R為可靠性,則R=∑T/(∑T+∑t)。設(shè)F為故障率,則F=∑t/(∑T+∑t),且R+F=1。 來源:www.examda.com
    為分析方便,本文僅討論由相同的RAID級和相同容量的硬盤驅(qū)動器組成的磁盤陣列,并且假設(shè)硬盤驅(qū)動器在100%運(yùn)行情況下,3年內(nèi)的可靠性r為0.95。
    RAID及其可靠性
    RAID是利用若干硬盤驅(qū)動器加上控制器按一定的組合方式組成的一個大容量、快速響應(yīng)和高可靠的存儲子系統(tǒng)。硬盤驅(qū)動器的不同組合方式形成了不同級別的RAID陣列。
    1.RAID 0——數(shù)據(jù)分割
    RAID 0通過2個以上的硬盤驅(qū)動器組成一個磁盤陣列,讀入和寫出的數(shù)據(jù)流被分割為大小相同的塊或條,然后平均分配給各硬盤驅(qū)動器來完成傳輸。雖然組成RAID的磁盤條(Stripe Block)被顯示為同一邏輯磁盤,但實(shí)際卻由幾個硬盤驅(qū)動器并行處理,使整個系統(tǒng)的性能大大提高。RAID 0陣列的實(shí)際容量為M×n(M為硬盤驅(qū)動器的容量,n為硬盤驅(qū)動器的數(shù)量,下同),磁盤利用率為100%。
    RAID 0在所有RAID級別中效率,但卻是惟一不具有容錯性的。由于它將數(shù)據(jù)分成塊存儲在不同的硬盤驅(qū)動器內(nèi),從而極大地增加了數(shù)據(jù)的安全隱患,且這種隱患隨著系統(tǒng)中硬盤驅(qū)動器總數(shù)量的增多而加大,因?yàn)槿绻渲杏幸粋€硬盤驅(qū)動器中的數(shù)據(jù)被破壞,整個數(shù)據(jù)就不能被正確讀出了。顯然,系統(tǒng)的可靠性值就是每一個單獨(dú)硬盤驅(qū)動器可靠性的乘積,即R=rn,對于12塊相同硬盤驅(qū)動器組成的RAID 0陣列,有R=0.9512=54%。
    2.RAID 1——磁盤鏡像
    如果說RAID 0是追求性能而放棄可靠性的話,那么,RAID 1正好相反,它是追求可靠性而放棄性能的一種解決方案。其做法就是通過磁盤鏡像使所有在給定硬盤驅(qū)動器上寫入的數(shù)據(jù)都被復(fù)制到另一個硬盤驅(qū)動器上。RAID 1至少由2個硬盤驅(qū)動器組成,其實(shí)際容量為M×n/2,磁盤利用率為50%。
    在RAID 1中,2個硬盤驅(qū)動器組成一個鏡像對,在一對鏡像盤中,如果1個發(fā)生錯誤不會損失任何數(shù)據(jù),因?yàn)閿?shù)據(jù)可以從鏡像盤中恢復(fù)。但如果2個硬盤驅(qū)動器都發(fā)生了錯誤,數(shù)據(jù)則將丟失。
    2個硬盤驅(qū)動器組成的RAID 1陣列其可靠性計(jì)算如下:
    1個硬盤驅(qū)動器出現(xiàn)錯誤的概率為1-r,2個同時出現(xiàn)錯誤的概率為(1-r)×(1-r),則有R=1-(1-r)×(1-r)=r(2-r)。
    對于n(n為2的倍數(shù))個硬盤驅(qū)動器組成的RAID 1陣列,每2個硬盤驅(qū)動器組成一組,共有n/2組,則R=(r(2-r))n/2 。
    12塊相同硬盤驅(qū)動器組成的RAID 1陣列,其可靠性為R=(0.95×(2-0.95))12/2= 99%。