您好,登錄后才能下訂單哦!
問:
數(shù)據(jù)恢復(fù)既然是數(shù)據(jù)災(zāi)難的一種補救措施,那設(shè)計安全的RAID磁盤陣列系統(tǒng)也會出現(xiàn)數(shù)據(jù)災(zāi)難嗎?
答:
RAID設(shè)計的初衷大約有3個原因:解決容量問題、解決IO性能問題與解決存儲安全(冗余)問題。從數(shù)據(jù)恢復(fù)的角度看,我們暫不討論容量與IO性能方面,僅討論存儲安全。
`
RAID中可以起到存儲安全的組織方案常見的為RAID1、RAID5及其變形,基本設(shè)計思路是相似的,都是能過一定的算法,用多塊硬盤之間的算法維護來保證當部分數(shù)據(jù)異常時,可通過特定算法還原出來。拿RAID5的設(shè)計方式來看,舉個簡單的例子說明一下,如果我們要記錄兩個數(shù)字,那么可以通過再多記錄他們的和來達到記錄的冗余性,就像我們記錄3和5,同時再記錄一下8(為3+5的和),那么如果我們不記得到底是幾和5,只需要用8-5就可以算出這個丟失的數(shù)字了,其余情況依此。在磁盤陣列里同樣是以某種算法來達到保全數(shù)據(jù)的目的,當一組3塊盤的RAID5正常工作時,所有寫入RAID里的數(shù)據(jù)都正確地寫到特定磁盤地址,同時再生成一個特定的計算值(通常稱為校驗和),這個時候的讀寫效率是最好的。但當其中一塊盤出現(xiàn)故障時,存儲在這塊故障盤上的原有數(shù)據(jù)就要通過其他硬盤的數(shù)據(jù)恢復(fù)出來,當然這個過程中控制器(硬RAID為RAID卡,軟RAID實際上是個驅(qū)動)會負責這個工作,同時為了保證不宕機,控制器也會保證存儲的正常化,不會讓操作系統(tǒng)認為硬盤系統(tǒng)出了問題。
從上面的原理來看,RAID提供的存儲安全還有一些不太容易避免的漏洞,雖然可能性不大,但存儲在RAID上的數(shù)據(jù)價值可能無法評估,出絲毫的故障都可能會導(dǎo)致一場大的信息災(zāi)難。
轉(zhuǎn)入正題,RAID通常出現(xiàn)的故障可能性有:
1、處于降級狀態(tài)時,未及時rebuild:RAID是通過多出來的部分存儲空間來提供算法上的數(shù)據(jù)安全冗余的,但當某些盤出現(xiàn)故障下線后,RAID便不能再提供這種存儲冗余,如果管理員不及時更換盤,REBUILD整個卷,這時候其余工作中的硬盤再出現(xiàn)故障,RAID卷便無法正常工作了。這類故障在RAID數(shù)據(jù)恢復(fù)中比例相當高,服務(wù)器維護管理跟不上很容易發(fā)生。
`
2、控制器故障:控制器是連接物理硬盤與操作系統(tǒng)之間的數(shù)據(jù)存儲紐帶,同時因RAID的組成方式并非自然約定(特定),硬盤容量的大小,硬盤數(shù)量的多少,RAID組成級別,邏輯磁盤分割方式,塊大小,校驗方式等因素組合成不同的RAID信息(RAID元數(shù)據(jù)),這些RAID信息有時候會寫在陣列卡上,有時候會寫在硬盤上,還有的時候兩者皆有。如果控制器出現(xiàn)故障,很多情況下更換新的控制器并不能RAID信息還原,中低端的控制器出于成本考慮,這方面漏洞更會大得多。同時即使記得住原先的RAID結(jié)構(gòu),再次重建也都是錯誤的數(shù)據(jù)恢復(fù)方法(見相關(guān)文章)。
`
3、固件算法缺陷:RAID的創(chuàng)建、重建、降級、保護等工作在控制器的實現(xiàn)上是非常復(fù)雜的算法,當然這里面的復(fù)雜更多地是提供盡可能萬無一失的無漏洞算法,盡管廠商不會輕易承認控制器的BUG,但毫無疑問,這些問題在任何一款控制器上都無法避免。因為固件算法上BUG,可能會產(chǎn)生很多無法解釋的故障。比如在部分服務(wù)器數(shù)據(jù)恢復(fù)案例中,有一些早期生產(chǎn)的DELL 2950服務(wù)器,會有RAID一塊盤OFFLINE后故障盤與報警燈不一致的情況,導(dǎo)致客戶在更換故障盤REBUILD時拔錯盤,整個RAID組崩潰。
`
4、IO通道受阻導(dǎo)致RAID掉盤:RAID控制器在設(shè)計時為了數(shù)據(jù)的絕對安全,會盡可能避免寫數(shù)據(jù)到不穩(wěn)定的存儲介質(zhì)上,這樣,當控制器與物理硬盤進行IO時,如果時間超過某個閥值,或不滿足校驗關(guān)系,便會認為對應(yīng)的存儲設(shè)備已不具備持續(xù)工作的能力,但會讓其強制下線,通知管理員盡快解決問題。這種設(shè)計的初衷很好,同時也是正確的設(shè)計方式,但對于如物理鏈接線路松動,或因硬盤機械工作時反應(yīng)超時(可能硬盤還是完好的)等隨機原因?qū)刂破鞫詿o法分辨設(shè)備是否具備和之前一樣的穩(wěn)定狀態(tài),所以很不在意的某些小環(huán)節(jié),便會導(dǎo)致RAID卷出現(xiàn)故障,此類故障的發(fā)生概率極大,而且無法避免。這也是大多數(shù)RAID出現(xiàn)故障后,硬盤并未有故障的原因,我們好多數(shù)據(jù)恢復(fù)服務(wù)的客戶會因此質(zhì)疑服務(wù)器廠商,實際上是有苦難言的,一定程度上,越是設(shè)計安全的控制器,越會發(fā)生此類現(xiàn)象。
`
5、控制器的穩(wěn)定性:RAID的控制器在ONLINE狀態(tài)下(無離線盤)工作是最穩(wěn)定的,相對而言,當部分硬盤損壞(可能是邏輯故障)后離線,控制器便會工作在一個比較吃力的狀態(tài),這也是好多中低端的RAID控制器在一塊盤離線后讀寫性能急速下降的原因??刂破鞯呢撦d太重便會極大地增加數(shù)據(jù)吞吐時出現(xiàn)IO滯留的可能性,從而導(dǎo)致如上面第4點提及的RAID離線。一個不具備高速硬件處理芯片,不具備高速緩沖的控制器發(fā)生這類故障的概率要高得多。為了避免出現(xiàn)故障后數(shù)據(jù)恢復(fù)帶來的業(yè)務(wù)停頓與額外開銷,還是盡量不要選擇這類磁盤陣列控制器。
6、壞硬盤:這類情況很有趣,好多人會認為正常工作的RAID里不會有壞硬盤,因為只要硬盤一壞,RAID就會讓他這塊壞硬盤脫機,更換新硬盤后REBUILD就又是好硬盤了。但實際上,這類情況卻是不可避免的,原因是:一組RAID卷在工作很長時間以后也很少會讀到物理硬盤的所有磁盤空間,同一時間更是不可能。部分情況下,硬盤會在沒有讀到的區(qū)域或者以前讀取是良好的區(qū)域產(chǎn)生壞道,這類壞道因為沒有讀寫過,所以在控制器看來是好的。產(chǎn)生這種壞磁道的最直接危害是在REBUILD過程中。當一塊物理硬盤離線后,通常所有的技術(shù)人員及官方資料都會寫盡快做REBUILD,但如果其他硬盤存在這類平常不知的壞磁道,REBUILD又都是對全盤做全面同步,就一定會讀寫到那些壞道,這時候REBUILD沒完成,新盤無法上線,因舊盤里又發(fā)現(xiàn)了壞道,便會導(dǎo)致RAID又多出一些下線的硬盤,這樣就可能會導(dǎo)致RAID出現(xiàn)故障,無法自行進行數(shù)據(jù)恢復(fù)了。
`
7、人為誤操作:涉及數(shù)據(jù)恢復(fù)的數(shù)據(jù)災(zāi)難有相當一部分也是可以避免的,但總會有這樣的情況:無關(guān)人員誤拔RAID里的硬盤、沒準備備件盤、不及時換盤、給RAID除塵時忘了原來的順序、不小心刪除了原RAID配置等。
`
8、其他我暫時想不起來的原因。
這些災(zāi)難原因除人為原因外,大多數(shù)很難直接避免,只能通過結(jié)合備份,構(gòu)建整體存儲安全方案來解決。其他文章會提到原因,以及拋開數(shù)據(jù)恢復(fù)話題的安全建議。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。