Was this page helpful?

Raid 陣列恢復與救援

內容表格
  1. 1.

 作者:OSSLab thx

在Raid 損壞,並且人為或其他因素損毀故障後.由於Raid 特性多顆併起.因此資料上有一定程度可以救出

Raid 軟恢復(Raw recovery)

要做救援前不要對硬碟做任何寫入動作 包含Rebuild等

如果擔心 請動手disk dump成 image (注意散熱跟電源), dump to file 是無損的.
之後自己搞不定的話 再找專業公司

在windows 2003下用Winhex or Diskgenius做image file 方法
http://zhangyu.blog.51cto.com/197148/36358


有了單顆 raid  image, 最重要的是 如何合併成原來 Raid disk  image file
再來慢慢恢復 分區表,文件系統,特定文件 檔案

先來瞭解 Raid 5 架構
這是演算法
D0 Xor D1 Xor D2 =P0
P0 為D0 D1 D2 演算成果

若D0  ( 或D1 D2 其中之一 )損壞
可用  P0 Xor D1 Xor D2= D0
求得D0 數據


以下以四顆HDD ,Raid 5會有穿插一顆為P碟(校驗硬碟)
 


硬碟0
硬碟1
硬碟2
硬碟3
條帶0
D0
D1
D2
P0
條帶1
D3
D4
P1
D5
條帶2
D6
P2
D7
D8
條帶3
P3
D9
D10
D11
條帶4
D12
D13
D14
P4
 
 
 
 
 
 
 
 
 
 





第一要先抓出是左循環或是右循環
假設disk 0,1,2,3  把raid disk 的分區可叫條帶 (Strip)
左循環就是  0條帶  校驗碼P區從disk 3開始 然後往左
               1條帶  校驗碼P區就會在disk 2 
                P區(校驗區) 是往左趨勢
        請參考圖 為左循環 backward
 


硬碟0
硬碟1
硬碟2
硬碟3
條帶0
D0
D1
D2
P0
條帶1
D3
D4
P1
D5
條帶2
D6
P2
D7
D8
條帶3
P3
D9
D10
D11
條帶4
D12
D13
D14
P4
 
 
 
 
 
 
 
 
 
 

 




右則反之 forward

 

硬碟0
硬碟1
硬碟2
硬碟3
條帶0
P0

 

 

 

條帶1

 

P1

 

 

條帶2

 

 

P2

 

條帶3

 

 

 

P3
條帶4
P4

 

 

 

條帶

 

P5

 

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 

.

 



另外一個是要判斷同步 異步
同步 parity :是資料寫入時一定會放在校驗碼disk後
異步 dynamic :則不管校驗碼換條帶時就直接照序寫入disk

 

左循環同步
<o> </o>
硬碟0
硬碟1
硬碟2
硬碟3
條帶0
D0
D1
D2
P0
條帶1
D4
D5
P1
D3
條帶2
D8
P2
D6
D7
條帶3
P3
D9
D10
D11
條帶4
D12
D13
D14
P4
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>



右循環異步
<o> </o>
硬碟0
硬碟1
硬碟2
硬碟3
條帶0
P0
D0
D1
D2
條帶1
D3
P1
D4
D5
條帶2
D6
D7
P2
D8
條帶3
D9
D10
D11
P3
條帶4
P4
D12
D13
D14
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>


右循環同步
<o> </o>
硬碟0
硬碟1
硬碟2
硬碟3
條帶0
P0
D0
D1
D2
條帶1
D5
P1
D3
D4
條帶2
D7
D8
P2
D6
條帶3
D9
D10
D11
P3
條帶4
P4
D12
D13
D14
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.<o/>
.



要能瞭解 上面P區走法,磁碟條帶分區狀況
所以分別會有    (以下用Win image 說法,目前來講每家說法略有點不同 )


左循環同步 backward parity
左循環異步 backward dynamic
右循環同步 forward partity
右循環異步 forward dynamic


判斷方法

1.瞭解那顆硬碟為 資料起始區.可以分析MBR

2.瞭解那顆為第一校驗區

3.以文件系統或是其它手段判定硬碟順序.(或是有記起來)


這邊說個白癡傻瓜方法. 一般廠商 backward parity  64Kbytes Stripe Size 最多.
如果能確認disk 0,1,2,3 順序的話
把image file 用win hex 跟Rstudio 直接做raid 5 recovery
四樣都做看看....(會有上面四個選項)

 還原方法原理

1.真正資料 0,1,3正常時 就恢復該段條帶 不管校驗碼區塊
2.當真正 其中 data 資料區塊 丟失時 以校驗塊還原
3.因為校驗碼和資料同時寫入錯誤丟失資料 或某段有2個以上壞軌  可能會有無法還原的條帶 不過不會每個條帶都會丟失

自己再慢慢研究看那個disk image file是正確的吧.做imgage file慢 請用強一點的電腦
然後再針對各種分區做file system recovery

另外還有其他自動軟體

http://www.z-a-recovery.com/raid-recovery-tutorial.htm
http://www.runtime.org/raid.htm
http://www.diskinternals.com/raid-recovery/
http://www.getwayrecovery.com/purchase.html (support raid 6)
http://www.unformat-unerase.com/Articles/RAID_Recovery_Presentation/index.shtml  (raird 5,raid6)

看損壞程度與原本的filesystem ,Raid 卡演算不同,80%還是需要人工處理 ..

最大忌諱是.當raid 5 同時掛一顆 以上 raid 6 掛二顆以上
整組請立刻停掉 否則又寫入一堆與舊資料不同步校驗碼.會把整個raid disk 架構毀掉. 增加recovery難度

Was this page helpful?
標籤 (Edit tags)
  • No tags
您必須 登入 才能發佈評論。
Powered by MindTouch Core