RAID數(shù)據(jù)恢復(fù)在數(shù)據(jù)恢復(fù)中可以是排頭兵,不但記錄著海量的數(shù)據(jù),而且數(shù)據(jù)的重要性不容小覷。RAID提供的存儲(chǔ)安全還有一些不太容易避免的漏洞,雖然可能性不大,但存儲(chǔ)在RAID上的數(shù)據(jù)價(jià)值可能無法評(píng)估,出絲毫的故障都可能會(huì)導(dǎo)致一場(chǎng)大的信息災(zāi)難。下面筆者來簡(jiǎn)單介紹一下RAID通常出現(xiàn)的故障可能性都有哪些方面,以饗數(shù)據(jù)恢復(fù)從業(yè)者或服務(wù)器機(jī)房管理維護(hù)員。
1、固件算法缺陷
RAID的創(chuàng)建、重建、降級(jí)、保護(hù)等工作在控制器的實(shí)現(xiàn)上是非常復(fù)雜的算法,當(dāng)然這里面的復(fù)雜更多地是提供盡可能萬無一失的無漏洞算法,盡管廠商不會(huì)輕易承認(rèn)控制器的BUG,但毫無疑問,這些問題在任何一款控制器上都無法避免。因?yàn)楣碳惴ㄉ螧UG,可能會(huì)產(chǎn)生很多無法解釋的故障。比如在部分服務(wù)器數(shù)據(jù)恢復(fù)案例中,有一些早期生產(chǎn)的DELL 2950服務(wù)器,會(huì)有RAID一塊盤OFFLINE后故障盤與報(bào)警燈不一致的情況,導(dǎo)致客戶在更換故障盤REBUILD時(shí)拔錯(cuò)盤,整個(gè)RAID組崩潰。
2、人為誤操作
涉及數(shù)據(jù)恢復(fù)的數(shù)據(jù)災(zāi)難有相當(dāng)一部分也是可以避免的,但總會(huì)有這樣的情況:無關(guān)人員誤拔RAID里的硬盤、沒準(zhǔn)備備件盤、不及時(shí)換盤、給RAID除塵時(shí)忘了原來的順序、不小心刪除了原RAID配置等。
3、控制器的穩(wěn)定性
RAID的控制器在ONLINE狀態(tài)下(無離線盤)工作是最穩(wěn)定的,相對(duì)而言,當(dāng)部分硬盤損壞(可能是邏輯故障)后離線,控制器便會(huì)工作在一個(gè)比較吃力的狀態(tài),這也是好多中低端的RAID控制器在一塊盤離線后讀寫性能急速下降的原因。控制器的負(fù)載太重便會(huì)極大地增加數(shù)據(jù)吞吐時(shí)出現(xiàn)IO滯留的可能性,從而導(dǎo)致如上面第4點(diǎn)提及的RAID離線。一個(gè)不具備高速硬件處理芯片,不具備高速緩沖的控制器發(fā)生這類故障的概率要高得多。為了避免出現(xiàn)故障后數(shù)據(jù)恢復(fù)帶來的業(yè)務(wù)停頓與額外開銷,還是盡量不要選擇這類磁盤陣列控制器。
4、處于降級(jí)狀態(tài)時(shí),未及時(shí)rebuild
RAID是通過多出來的部分存儲(chǔ)空間來提供算法上的數(shù)據(jù)安全冗余的,但當(dāng)某些盤出現(xiàn)故障下線后,RAID便不能再提供這種存儲(chǔ)冗余,如果管理員不及時(shí)更換盤,REBUILD整個(gè)卷,這時(shí)候其余工作中的硬盤再出現(xiàn)故障,RAID卷便無法正常工作了。這類故障在RAID數(shù)據(jù)恢復(fù)中比例相當(dāng)高,服務(wù)器維護(hù)管理跟不上很容易發(fā)生。
5、控制器故障
控制器是連接物理硬盤與操作系統(tǒng)之間的數(shù)據(jù)存儲(chǔ)紐帶,同時(shí)因RAID的組成方式并非自然約定(特定),硬盤容量的大小,硬盤數(shù)量的多少,RAID組成級(jí)別,邏輯磁盤分割方式,塊大小,校驗(yàn)方式等因素組合成不同的RAID信息(RAID元數(shù)據(jù)),這些RAID信息有時(shí)候會(huì)寫在陣列卡上,有時(shí)候會(huì)寫在硬盤上,還有的時(shí)候兩者皆有。如果控制器出現(xiàn)故障,很多情況下更換新的控制器并不能RAID信息還原,中低端的控制器出于成本考慮,這方面漏洞更會(huì)大得多。同時(shí)即使記得住原先的RAID結(jié)構(gòu),再次重建也都是錯(cuò)誤的數(shù)據(jù)恢復(fù)方法。
6、其他我暫時(shí)想不起來的原因
這些災(zāi)難原因除人為原因外,大多數(shù)很難直接避免,只能通過結(jié)合備份,構(gòu)建整體存儲(chǔ)安全方案來解決。其他文章會(huì)提到原因,以及拋開數(shù)據(jù)恢復(fù)話題的安全建議。
7、IO通道受阻導(dǎo)致RAID掉盤
RAID控制器在設(shè)計(jì)時(shí)為了數(shù)據(jù)的絕對(duì)安全,會(huì)盡可能避免寫數(shù)據(jù)到不穩(wěn)定的存儲(chǔ)介質(zhì)上,這樣,當(dāng)控制器與物理硬盤進(jìn)行IO時(shí),如果時(shí)間超過某個(gè)閥值,或不滿足校驗(yàn)關(guān)系,便會(huì)認(rèn)為對(duì)應(yīng)的存儲(chǔ)設(shè)備已不具備持續(xù)工作的能力,但會(huì)讓其強(qiáng)制下線,通知管理員盡快解決問題。這種設(shè)計(jì)的初衷很好,同時(shí)也是正確的設(shè)計(jì)方式,但對(duì)于如物理鏈接線路松動(dòng),或因硬盤機(jī)械工作時(shí)反應(yīng)超時(shí)(可能硬盤還是完好的)等隨機(jī)原因?qū)刂破鞫詿o法分辨設(shè)備是否具備和之前一樣的穩(wěn)定狀態(tài),所以很不在意的某些小環(huán)節(jié),便會(huì)導(dǎo)致RAID卷出現(xiàn)故障,此類故障的發(fā)生概率極大,而且無法避免。這也是大多數(shù)RAID出現(xiàn)故障后,硬盤并未有故障的原因,我們好多數(shù)據(jù)恢復(fù)服務(wù)的客戶會(huì)因此質(zhì)疑服務(wù)器廠商,實(shí)際上是有苦難言的,一定程度上,越是設(shè)計(jì)安全的控制器,越會(huì)發(fā)生此類現(xiàn)象。
8、壞硬盤
這類情況很有趣,好多人會(huì)認(rèn)為正常工作的RAID里不會(huì)有壞硬盤,因?yàn)橹灰脖P一壞,RAID就會(huì)讓他這塊壞硬盤脫機(jī),更換新硬盤后REBUILD就又是好硬盤了。但實(shí)際上,這類情況卻是不可避免的,原因是:一組RAID卷在工作很長(zhǎng)時(shí)間以后也很少會(huì)讀到物理硬盤的所有磁盤空間,同一時(shí)間更是不可能。部分情況下,硬盤會(huì)在沒有讀到的區(qū)域或者以前讀取是良好的區(qū)域產(chǎn)生壞道,這類壞道因?yàn)闆]有讀寫過,所以在控制器看來是好的。產(chǎn)生這種壞磁道的最直接危害是在REBUILD過程中。當(dāng)一塊物理硬盤離線后,通常所有的技術(shù)人員及官方資料都會(huì)寫盡快做REBUILD,但如果其他硬盤存在這類平常不知的壞磁道,REBUILD又都是對(duì)全盤做全面同步,就一定會(huì)讀寫到那些壞道,這時(shí)候REBUILD沒完成,新盤無法上線,因舊盤里又發(fā)現(xiàn)了壞道,便會(huì)導(dǎo)致RAID又多出一些下線的硬盤,這樣就可能會(huì)導(dǎo)致RAID出現(xiàn)故障,無法自行進(jìn)行數(shù)據(jù)恢復(fù)了。