【伺服器資料恢復】同友儲存raid5崩潰後上層虛擬機器資料恢復案例

北亞資料恢復發表於2024-01-02

伺服器資料恢復環境:

一臺同友儲存,儲存上有一組raid5磁碟陣列,儲存上層有若干臺虛擬機器,其中有3臺linux作業系統虛擬機器上存放重要資料。


伺服器故障:

同友儲存上的raid5陣列崩潰導致儲存無法啟動。


伺服器資料恢復過程:

1、將故障儲存中所有磁碟編號後取出,由硬體工程師檢測硬體故障,發現有一塊盤碟片劃傷,其他磁碟沒有發現明顯的硬體故障。將完好磁碟以只讀方式做扇區級的全盤映象,映象完成後將所有磁碟按照編號還原到原儲存中,後續的資料分析和資料恢復操作都基於映象檔案進行,避免對原始磁碟資料造成二次破壞。

2、與使用者方進行溝通後,北亞企安資料恢復工程師基於映象檔案檢視所有磁碟底層情況,分析本案例中儲存結構。

儲存結構:

3、根據分析底層資料獲取到的raid5相關資訊重組raid5陣列。重組過程中發現本案例中的raid5缺失2塊盤(第一掉線盤掉線後由熱備盤頂替,之後第二塊盤掉線導致RAID5處於降級狀態,第三塊盤碟片劃傷掉線導致RAID崩潰),無法直接獲透過校驗獲取到丟失盤的資料,只能使用與磁碟同等大小的全0映象進行重組(此方法除了緊急情況慎用。依賴空映象組建raid,檔案系統結構會嚴重破壞,相當於每個條帶都會缺失兩個塊的資料)。

重建raid:

4、分析儲存結構,獲取儲存劃分的MAP塊。解析MAP塊得到各個LUN的資料塊指標。北亞企安資料恢復工程師編寫資料提取程式提取LUN碎片,提取完成後拼接碎片&組成完整LUN。

提取LUN:

5、匯出虛擬機器後嘗試啟動,和預計的情況一樣:由於作業系統被破壞,虛擬機器無法啟動。

6、在虛擬機器無法啟動的情況下提取虛擬機器內檔案。提取虛擬機器內的檔案後進行測試,發現大多數檔案都被破壞,只有少部分小檔案可以開啟。

7、與使用者方進行溝通後得知有一臺虛擬機器內有mysql資料庫,可以利用mysql資料庫儲存特殊性,透過掃描資料頁提取資料。找到這臺有mysql資料庫的虛擬機器,發現該虛擬機器啟用了快照。在父盤和快照檔案都損壞的情況下,常規合併無法完成,使用北亞企安自主研發VMFS快照合併程式進行快照合併。

8、根據mysql資料頁特徵掃描&匯出資料頁(僅採用innodb引擎的mysql資料庫可以使用此方案),分析系統表獲取各使用者表資訊,根據各個表的id分割資料頁。

9、該mysql資料庫在長時間的使用過程中曾多次變更表結構,而且儲存損壞後系統表有部分資料丟失,導致記錄提取困難。首先獲取最初版本mysql資料庫各個表的表結構:合併快照前的父盤因為寫入較早,透過使用第一塊掉線盤進行校驗來獲取到這個檔案的完整資料,然後提取出資料庫各個表的表結構。和使用者溝通後,使用者方提供了最新版本資料庫的建表指令碼。

10、分別使用最初版本mysql資料庫的表結構和最新版本mysql資料庫的表結構提取資料記錄,並匯入到恢復環境中的mysql資料庫內。剔除各個表中因為表結構變更而出現的亂碼資料,將兩組資料分別匯出為.sql檔案。

11、因為兩個版本的mysql資料庫表結構不同,由使用者方應用工程師進行除錯後匯入平臺,平臺除錯成功。本次伺服器資料恢復工作完成。


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

相關文章