出于盡可能避免數(shù)據(jù)災(zāi)難的設(shè)計初衷,RAID解決了3個問題:容量問題、IO性能問題、存儲安全(冗余)問題。從數(shù)據(jù)恢復(fù)的角度討論RAID的存儲安全問題。
常見的起到存儲安全作用的RAID方案有RAID1、RAID5及其變形。基本設(shè)計思路是相似的:當部分數(shù)據(jù)異常時,可通過特定算法將數(shù)據(jù)還原出來。以RAID5為例:如果要記錄兩個數(shù)字,可以通過再多記錄這兩個數(shù)字的和來達到記錄冗余性的目的。例如記錄3和5,同時再記錄這2個數(shù)字的和8。在不記得到底是幾和5的情況下,只需要用8-5就可以算出這個丟失的數(shù)字了,其余情況依此類推。
在RAID里同樣是以某種算法來達到保全數(shù)據(jù)的目的,當一組RAID5陣列正常工作時,所有寫入RAID里的數(shù)據(jù)都正確地寫到特定磁盤地址,同時再生成一個特定的計算值(通常稱為校驗和)。當其中一塊盤出現(xiàn)故障時,存儲在這塊故障盤上的原有數(shù)據(jù)就要通過其他硬盤的數(shù)據(jù)恢復(fù)出來。由控制器(硬RAID為RAID卡,軟RAID實際上是個驅(qū)動)負責這個工作。為了不宕機,控制器也會保證存儲的正常化,不會讓操作系統(tǒng)認為硬盤系統(tǒng)出了問題。
RAID在存儲安全上還有一些不太容易避免的漏洞。雖然由于這些漏洞出現(xiàn)問題的可能性不大,但是存儲在RAID上的數(shù)據(jù)價值無法評估。
RAID常見故障:
1、處于降級狀態(tài)時,未及時rebuild。RAID是通過空余的部分存儲空間來提供算法上的數(shù)據(jù)安全冗余的。當某些盤出現(xiàn)故障下線后,RAID便不能再提供這種存儲冗余。如果不及時更換盤&REBUILD,如果其他硬盤再出現(xiàn)故障,RAID便無法正常工作了。
2、RAID控制器故障:控制器是連接物理硬盤與操作系統(tǒng)之間的紐帶。硬盤容量、硬盤數(shù)量,RAID級別、邏輯磁盤分割方式、塊大小、校驗方式等組合成不同的RAID信息(RAID元數(shù)據(jù)),這些RAID信息有時候會寫在陣列卡上,有時候會寫在硬盤上,還有的時候兩者皆有。如果RAID控制器出現(xiàn)故障,即使更換新的控制器一般也不能將RAID信息還原。中低端的RAID控制器出于成本考慮,漏洞更多。
3、固件算法缺陷:RAID的創(chuàng)建、重建、降級、保護等功能的實現(xiàn)需要非常復(fù)雜的算法。盡管廠商不會承認生產(chǎn)的RAID控制器的BUG,但算法漏洞在任何一款控制器上都無法避免。固件算法BUG可能會導致很多無法解釋的故障。
4、IO通道受阻導致RAID掉盤:RAID控制器在設(shè)計時為了數(shù)據(jù)的絕對安全,會盡可能避免寫數(shù)據(jù)到不穩(wěn)定的存儲介質(zhì)上。這樣,當控制器與物理硬盤進行IO時,如果時間超過某個閾值,或不滿足校驗關(guān)系,控制器便會認為對應(yīng)的存儲設(shè)備已不具備持續(xù)工作的能力,會讓其強制下線,通知管理員盡快解決問題。這種設(shè)計的初衷很好,但對于像物理鏈接線路松動、硬盤完好情況下機械工作時反應(yīng)超時等隨機因素,RAID控制器無法分辨設(shè)備是否具備和之前一樣的穩(wěn)定狀態(tài),通常會讓其強制下線,便會導致RAID卷出現(xiàn)故障,此類故障的發(fā)生概率極大且無法避免。
5、RAID控制器的穩(wěn)定性:RAID控制器在ONLINE狀態(tài)下(無離線盤)工作是最穩(wěn)定的。當部分硬盤損壞(可能是邏輯故障)后離線,RAID控制器便會工作在一個“亞健康”的狀態(tài)。這也是好多中低端的RAID控制器在一塊盤離線后讀寫性能急速下降的原因。控制器負載太重便會極大地增加數(shù)據(jù)吞吐時出現(xiàn)IO滯留的可能性,從而導致RAID離線。一個不具備高速硬件處理芯片,不具備高速緩沖的控制器發(fā)生這類故障的概率要高得多。
6、壞硬盤:很多人認為只要硬盤一壞,RAID就會讓這塊壞硬盤脫機,更換新硬盤后REBUILD就恢復(fù)如初了。實際情況是一組RAID在工作很長時間以后也很少會讀到物理硬盤的所有磁盤空間,同一時間更是不可能。部分情況下會在沒有讀到的區(qū)域或者以前讀取良好的區(qū)域出現(xiàn)壞道。這類壞道因為沒有讀寫過,所以控制器是沒有識別出來的。當一塊物理硬盤離線后,通常技術(shù)人員及官方資料都會建議盡快做REBUILD。如果其他硬盤存在這類壞道,當REBUILD(對全盤做全面同步)過程中讀到那些壞道,這時候REBUILD沒完成,新盤還無法上線,舊盤里又發(fā)現(xiàn)了壞道,然后又有硬盤下線,導致RAID出現(xiàn)故障,無法自行恢復(fù)數(shù)據(jù)。
7、人為誤操作:誤拔RAID硬盤、沒準備備件盤、不及時換盤、給RAID除塵時忘了原來的順序、不小心刪除了原RAID配置等。
8、其他原因。
上述的這些故障原因除人為因素外,大多數(shù)很難直接避免,只能結(jié)合備份,構(gòu)建整體存儲安全方案來解決。
-
服務(wù)器
+關(guān)注
關(guān)注
13文章
9688瀏覽量
87281 -
RAID
+關(guān)注
關(guān)注
0文章
280瀏覽量
35760 -
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
636瀏覽量
18011
發(fā)布評論請先 登錄
【服務(wù)器數(shù)據(jù)恢復(fù)】nas存儲服務(wù)器磁盤陣列崩潰的數(shù)據(jù)恢復(fù)案例
【服務(wù)器數(shù)據(jù)恢復(fù)】服務(wù)器誤刪除卷的raid5數(shù)據(jù)恢復(fù)案例

raid5磁盤陣列數(shù)據(jù)恢復(fù)案例
【服務(wù)器數(shù)據(jù)恢復(fù)】存儲設(shè)備中raid5磁盤陣列數(shù)據(jù)恢復(fù)案例
【服務(wù)器數(shù)據(jù)恢復(fù)】存儲中raid6磁盤陣列數(shù)據(jù)恢復(fù)案例

IBM服務(wù)器RAID5陣列數(shù)據(jù)恢復(fù)案例
IBM服務(wù)器RAID5磁盤陣列數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)-服務(wù)器RAID6三塊磁盤離線的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)-2盤raid0磁盤陣列數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—EMC存儲raid5故障的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—X3650服務(wù)器raid5磁盤陣列數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—磁盤不穩(wěn)定被踢導致raid5陣列崩潰的數(shù)據(jù)恢復(fù)案例

評論