作者:OSSLab thx (在修訂中)
在Raid 損壞,並且人為或其他因素損毀故障後.由於Raid 特性多顆併起.因此資料上有一定程度可以救出
Raid 軟恢復(Raw recovery)
要做救援前不要對硬碟做任何寫入動作
請動手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 架構
假設四顆HDD ,Raid 來講會有穿插一顆為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<o/> |
條帶1 | D4 | D5 | P1<o/> | D3 |
條帶2 | D8 | P2<o/> | D6 | D7 |
條帶3 | P3<o/> | D9 | D10 | D11 |
條帶4 | D12 | D13 | D14 | P4<o/> |
.<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<o/> | D5 |
條帶2 | D6 | D7<o/> | 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<o/> | D4 |
條帶2 | D7 | D8<o/> | P2 | D6 |
條帶3 | D9 | D10 | D11 | P3 |
條帶4 | P4 | D12 | D13 | D14 |
.<o/> | .<o/> | .<o/> | .<o/> | .<o/> |
.<o/> | .<o/> | .<o/> | .<o/> | . |
所以分別會有 以下用Win image 說法,目前來講每家說法略有點不同
但是要能瞭解 上面P區走法,磁碟條帶分區狀況
左循環同步 backward parity
左循環異步 backward dynamic
右循環同步 forward partity
右循環異步 forward dynamic
判斷方法有點麻煩,因為要做一點運算..有機會下次講
這邊說個白癡傻瓜方法. 一般廠商 backward parity 最多.
如果能確認disk 0,1,2,3,4順序的話
把image file 用win hex直接做raid 5 recovery
四樣都做看看....(會有上面四個選項)
還原方法原理
1.真正資料 0,1,3正常時 就恢復該段條帶 不管校驗碼區塊
2.當真正 其中 data 資料區塊 丟失時 以校驗塊還原
3.因為校驗碼 和資料 同時寫入錯誤丟失資料 可能會有無法還原的條帶 不過不會每個條帶都會丟失
自己再慢慢研究看那個disk image file是正確的吧.做imgage file慢 請用強一點的電腦
然後再針對各種分區做file system recovery
另外還有其他自動軟體
Zar support raid 5
http://www.z-a-recovery.com/raid-recovery-tutorial.htm
大體上是給他塞入image file就好 會自動判定raid disk 格式 才us 29
其他軟體
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)
看損壞程度,Raid 卡演算不同,還是需要人工處理 ..
最大忌諱是.當raid 5 同時掛一顆 以上 raid 6 掛二顆以上
整組請立刻停掉 否則又寫入一堆與舊資料不同步校驗碼.會把整個raid disk 架構毀掉. 增加recovery難度