天天看點

【虛拟機資料恢複】FreeNAS+ESXi資料恢複案例

虛拟機資料恢複環境:

架構在一台DELL伺服器上的存儲使用FreeNAS來做iSCSI;

另外兩台DELL伺服器做ESXi虛拟化系統(共5台虛拟機);

FreeNAS是UFS2檔案系統,整個存儲建一個稀疏模式的檔案,挂載到ESXi系統。

ESXi虛拟化系統中最重要的3台虛拟機基本情況:

一台windows server系統,内部資料為該公司的門戶網站,ASP.net+PHP混合構架,資料庫:SqlServer+mysql。

一台為FreeBSD系統,存儲Mysql資料庫,供其它多台虛拟機使用。

一台為windows server系統,存儲此公司新開發的程式代碼。

虛拟機故障情況:

一次意外斷電後,ESXi系統連接配接不上存儲。經過檢查後發現FreeNAS中的UFS2檔案系統出現問題。管理者用fsck修複檔案系統。修複完成後ESXi系統可以連上存儲,但ESXi系統不能識别到原來的資料存儲和VMFS檔案系統。管理者聯系我們資料恢複中心進行資料恢複。

【虛拟機資料恢複】FreeNAS+ESXi資料恢複案例

虛拟機資料恢複過程:

本案例的應用構架層次:FreeNAS(UFS2檔案系統–> 一個稀疏模式的檔案) –> ESXi(VMFS檔案系統層) -> 單台虛拟機的虛拟磁盤 (windows-NTFS檔案系統/FreeBSD-UFS2檔案系統)。

1、鏡像FreeNAS層。整個存儲的檔案就是一個名稱為iscsidata的900+GB的檔案。

2、通過UFS2檔案系統的二進制結構,定位到iscsidata檔案的Inode資料,資料恢複工程師發現此檔案被重建過,inode指針指向的資料量很少。FreeNAS層的問題無法解決,就無法進入到下一步的VMFS層分析。

收集UFS2檔案系統的重要結構:

塊大小:16KB

Segment大小:2KB

柱面組大小:188176KB

UFS2一個資料指針占8位元組,一個塊可存儲2048個資料指針,一個二級指針塊可存儲:2048*2048*16KB= 64GB資料,一個三級指針塊可存儲64GB*2048= 128TB資料。如果能找到iscsidata檔案的三級指針塊就能解決FreeNAS層的問題。iscsidata檔案重建過,推斷有部分指針塊已被覆寫。原始iscsidata檔案的inode和建立iscsidata檔案的 inode就在一個位置,資料恢複工程師嘗試搜尋沒有發現其它有用的inode,隻能編寫程式收集有用的指針塊:

【虛拟機資料恢複】FreeNAS+ESXi資料恢複案例

3、由于iscsidata檔案是使用稀疏模式,放寬程式的收集條件,收集到大量三級指針塊和二級指針塊。

4、對所有收集到的三級指針塊進行分析,資料恢複工程師發現這些指針塊都是無效的,沒有發現iscsidata檔案使用的三級指針塊。資料恢複工程師推斷出現這種情況是因為在建立iscsidata檔案時被覆寫(新的iscsidata檔案在挂載到ESXi後有個VMFS格式化過程,而本案例中的ESXi版本 使用的是GPT分區,GPT分區會在磁盤最後寫入備援的GPT頭和分區表資訊資料,這樣會使用iscsidata檔案的三級指針塊)。

5、資料恢複工程師分析收集到的二級指針塊,對有大量的二級指針塊的指向資料進行DUMP,然後再從磁盤中的資料定位到二級指針。通過這種方式獲得大量DUMP的資料。

繼續閱讀