【伺服器資料恢復】同友儲存無法啟動的資料恢復案例

北亞資料恢復發表於2023-05-05

伺服器資料恢復環境:

同友儲存,底層由數塊物理硬碟組建的raid5磁碟陣列,儲存池劃分若干lun,每個lun下有數臺虛擬機器。


伺服器故障:

未知原因導致儲存崩潰,無法啟動,虛擬機器全部丟失,其中一個lun中的3臺虛擬機器資料尤為重要,需要恢復其中的資料。


伺服器資料恢復過程:

1、將故障儲存中的所有磁碟以只讀方式進行全盤映象備份,後續的資料分析和資料恢復操作都基於映象檔案進行,避免對原

始資料造成二次破壞。


2、基於映象檔案分析raid5陣列,發現故障儲存中的raid5陣列缺失2塊磁碟,熱備盤已經啟用。透過實際情況可以推斷故障

發生的大致過程:第一塊硬碟掉線後raid5啟動熱備盤替換。第二塊硬碟掉線後raid5降級,第三塊硬碟掉線導致raid5陣列崩

潰。這種情況下一般是無法透過校驗直接獲取到缺失盤的資料,只能使用磁碟同等大小的全0的空映象進行raid重組(依賴空

映象組建的raid的檔案系統結構會嚴重損壞,相當於每個條帶都缺失兩個塊的資料,所以除特殊情況外不建議如此操作)。


重建raid:


3、透過重組出來的raid5陣列提取LUN。透過對儲存結構的進一步分析獲取到儲存劃分的MAP塊,對各個LUN的資料塊指標

進行解析並由北亞企安資料恢復工程師編寫程式提取LUN碎片。碎片提取完成後進行碎片拼接,組成完整的LUN。


提取LUN:


4、匯出LUN內所有虛擬機器並嘗試啟動,結果由於作業系統被破壞,虛擬機器無法啟動。

5、提取虛擬機器內的檔案,但虛擬機器內的檔案多數損壞嚴重,只有少數檔案可用,只能透過其他方案進行恢復。

6、本次需要進行資料恢復的虛擬機器內有mysql資料庫,可以根據mysql資料庫底層儲存的特殊性掃描資料頁並提取資料。


資料恢復過程截圖:


7、根據mysql資料頁特徵掃描資料頁並匯出資料(僅適用於innodb引擎資料庫,myisam引擎資料庫沒有“資料頁”概念 ),分析系統表獲取各使用者表資訊,根據各個表的id分割資料頁。

8、因為該資料庫的表結構變更過多次,儲存故障導致系統表的部分資料丟失,所以記錄提取過程非常痛苦(這裡不贅述)。

獲取最早版本資料庫各個表的表結構。由於合併快照前的父盤因為寫入較早,使用第一塊掉線盤進行校驗獲取到完整資料,

然後提取出其中資料庫各個表的表結構。使用者方提供了最新版本資料庫的建表指令碼。

分別使用兩組不同表結構提取資料記錄並匯入到搭建好的環境中的mysql資料庫內,剔除各個表中因為表結構變更所導致的

亂碼資料,最後將兩組資料分別匯出為.sql檔案。


資料驗證:

兩個版本的資料庫表結構不同,先聯絡使用者方工程師進行除錯,除錯完成後匯入平臺進行測試,平臺測試成功,本次資料

恢復工作完成。


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

相關文章