【伺服器資料恢復】Unix環境zfs檔案系統下重組RAID5案例分享

北亞資料恢復發表於2022-09-21

伺服器RAID5資料恢復環境:

儲存中12塊SCSI硬碟組建RAID5,其中1塊熱備盤;

FreeBSD作業系統,zfs檔案系統。


伺服器RAID5故障:

第6塊資料硬碟出現故障。 


伺服器RAID5資料恢復過程:

一、分析伺服器RAID5。

1、初步判斷RAID5起始扇區。

RAID起始扇區是指RAID內的資料在每塊物理盤(建立RAID所用的每塊獨立的物理硬碟)上的起始位置。起始扇區只存在於一塊

物理盤,大多數情況是0扇區。找到起始扇區恢復raid5的第一步。

用WinHex將11塊沒有問題的硬碟去RAID化。



用WinHex的同步功能將11塊盤定位在0扇區,11塊盤中只有3塊盤(1、2、6號硬碟)的0扇區有“55 AA”標誌,這個標誌

意味著MBR磁碟結構。



分析哪個硬碟是起始扇區。先看第6塊硬碟發現第6塊硬碟的結尾顯示這是一個GPT頭備份並且只有128MB大小。


 

剩下的1號磁碟和2號磁碟中0扇區有起始扇區或校驗。

 

2、分析塊大小(條帶大小)。

本案例使用的zfs檔案系統,用WinHex同步顯示11塊物理盤的某個扇區,比如53654656扇區,發現只有1號盤的此扇區跟其

他盤顯示的不一樣,這是位於1號盤的校驗區。順著1號盤53654656扇區上下尋找,找到連續的128個扇區。這128個扇區就

是這個RAID5的條帶大小。


3、RAID5成員盤的盤序。

本案例說的1號盤不一定就是RAID5的第一個盤,也就是說物理盤順序並不一定就是是RAID的順序,需要進行人工校驗才能

確定。

用WinHex同步定位11塊硬碟的53654656扇區,發現1號盤的此扇區與其他盤顯示的不同,這個扇區是1號盤的校驗區。接

著分析1號盤的下一個條帶,即53654656+128=53654784扇區,得出2號盤的這個扇區和其他盤顯示的不同,所以2號盤從

53654784扇區開始的條帶是校驗區。以此方式繼續下去,接著是3號盤的校驗區,4號盤的校驗區……得出的校驗區如下圖所

示,“P”字母表示校驗區。我們按照校驗區的位置即可得到盤序,而本案例的盤序正好是從1號盤開始依次遞增的。

既然知道了盤序,從第一步分析知道了1號盤和2號盤的0扇區為起始扇區或為校驗區。對於左結構來說,0扇區是起始扇區的

物理盤一定是RAID5的1號盤;對於右結構來說,0扇區是起始扇區的物理盤一定是RAID5的2號盤。



4、校驗方向。

RAID5的基本結構有左同步、左非同步、右同步、右非同步。左和右是對校驗方向來說的,區別如下圖所示。本案例中的RAID5

很明顯是右走向的。



從校驗區的走向可以確定整個RAID5的校驗方向是右方向。

左同步、左非同步結構中的校驗塊都是從最後一塊物理盤開始;右同步、右非同步結構中的校驗塊都是從第一塊物理盤開始。

判斷校驗方向的方法有兩種:一種是先分析起始扇區,再分析條帶大小,然後是盤序,盤序分析後校驗方向很容易就看出來

了。另一種是如果盤序沒有確定下來,只確定了起始扇區和條帶大小,可以採用反推法。

使用反推法分析,在盤序還沒有確定下來的情況下,由這個校驗區可以算出某個盤中第一個校驗區是第幾個條帶。具體方法

如下:找到某個校驗區,比如3號盤的53654912扇區,用這個扇區對條帶大小與盤數的乘積取餘。即

53654912MOD(128*12)=256

計算的結果等於256,表示256號扇區是校驗。而位於此扇區的3號盤處於第3個條帶,並且是第3個條帶的開始扇區,包括

256號扇區在內的以後的128個扇區是3號盤的第一個校驗區。

接著判斷1號盤下一個條帶,1號盤下一個條帶顯示3號盤是校驗區。接著判斷3號盤下一個條帶,3號盤下一個條帶顯示3號

盤是校驗區。由此可以確定校驗方向。


5、資料走向。

同步非同步說的是資料的走向。非同步結構中,各條帶組內的資料塊均由低號盤向高號盤依次寫入。同步結構中,每個條帶組內

第一個資料塊寫在校驗塊所在物理盤的下一個物理盤,若後面還有物理盤,則順序往後寫,若校驗塊所在物理盤後沒有物理

盤,則從校驗塊所在物理盤前面的物理盤開始從低號盤向高號盤順序寫入。



以下是本案例RAID5的分析過程(已確定此RAID5是右結構)。


1.從“資料塊A”入手。



首先檢視“資料塊A”末尾扇區的資料,然後再檢視“資料塊B”和“資料塊C”開始扇區的資料。如果“資料塊A” 末尾扇

區的資料能夠與“資料塊B” 開始扇區的資料銜接,則該RAID5屬於非同步結構。如果“資料塊A” 末尾扇區的資料能夠與

“資料塊C” 開始扇區的資料銜接,則該RAID5屬於同步結構。

2.從“資料塊A”入手。



首先檢視“資料塊A”末尾扇區的資料,然後再檢視“資料塊B”和“資料塊C”開始扇區的資料。如果“資料塊A” 末尾扇

區的資料能夠與“資料塊B” 開始扇區的資料銜接,則該RAID5屬於非同步結構。如果“資料塊A” 末尾扇區的資料能夠與“

資料塊C” 開始扇區的資料銜接,則該RAID5屬於同步結構。

3.從“資料塊A”入手。

 


首先檢視“資料塊A”末尾扇區的資料,然後再檢視“資料塊B”和“資料塊C”開始扇區的資料。如果“資料塊A” 末尾扇

區的資料能夠與“資料塊B” 開始扇區的資料銜接,則該RAID5屬於同步結構。如果“資料塊A” 末尾扇區的資料能夠與“

資料塊C” 開始扇區的資料銜接,則該RAID5屬於非同步結構。

4.從“資料塊A”入手。



首先檢視“資料塊A”末尾扇區的資料,然後再檢視“資料塊B”和“資料塊C”開始扇區的資料。如果“資料塊A” 末尾扇

區的資料能夠與“資料塊B” 開始扇區的資料銜接,則該RAID5屬於非同步結構。如果“資料塊A” 末尾扇區的資料能夠與“

資料塊C” 開始扇區的資料銜接,則該RAID5屬於同步結構。


二、重組RAID5。


從上面的步驟中我們已經解析出RAID5的一些重要資訊,根據這些資訊,我們就可以重組RAID5了。


下面我們用UFS Explorer工具開啟並新增這11塊硬碟。



將1.dsk新增到了左側Connected storages裡。



把RAID5的10塊盤都新增進去。點選Build RAID選項,依照RAID5的盤序把10塊盤都新增進去,開始組建RAID5。



第6塊盤因為出現故障,所以要剔除,並在其位置新增時補一個空缺,並繼續順序新增完其它硬碟。點選標紅框位置處的按

鈕,新增空缺硬碟。 



接著選擇校驗方向和資料走向,本例項條帶大小為28個扇區,即65KB,右非同步結構。因此設定如下所示。



接著點選Build按鈕,出現如下所示。點選find查詢,選擇zfs檔案系統。



出現瞭如下圖所示的正在組建的RAID5。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31380569/viewspace-2915589/,如需轉載,請註明出處,否則將追究法律責任。

相關文章