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