服務器數據恢復案例:FreeNAS數據恢復過程記錄

【服務器數據恢復背景】

本次數據恢復的設備是一臺服務器,使用的是FreeNAS做iSCSI,再藉助於兩臺服務器做虛擬化系統。FreeNAS層面是UFS2文件系統,整個服務器建一個文件然後掛在給ESXi5.0 系統。這個虛擬化系統中一共有5臺虛擬機,其中一臺虛擬機採用了ASP.net和 PHP 混合構架,SqlServer2005和 mysql 5.1兩個數據庫。還有另一臺是FreeBSD系統,MySQL數據庫,還有一臺服務器存儲的是代碼數據,這三臺虛擬機是該服務器上數據恢復的重點數據,必須要進行完美數據恢復。

【服務器數據恢復故障】

需要數據恢復的服務器在正常運行過程中意外斷電,重啓後虛擬化系統無法鏈接服務器,FreeNAS中發現UFS2文件系統出現問題,該公司管理員對文件系統進行了修復,但是ESXI系統不能識別原有數據和文件系統。管理員聯繫到數據恢復中心進行服務器數據恢復。

【服務器數據恢復過程】

分析故障,最大化利用可用信息。開始抽絲剝繭:
應用構架層次:FreeNAS(UFS2文件系統–> 一個大的稀疏模式的文件) –> ESXi 5.0(VMFS文件系統層) -> 單臺虛擬機的虛擬磁盤 (windows-NTFS文件系統/FreeBSD-UFS2文件系統)。

第一步是鏡像 FreeNAS 層,然後分析整個存儲,發現就一個900多GB的大文件,文件名: iscsidata。通過UFS2文件系統的二進制結構,定位到 iscsidata 文件的Inode數據,發現此文件被重建過,inode指針指向的數據量很少。FreeNAS層無法解決,就無法進入到下一步的 VMFS層分析。
收集UFS2文件系統的重要結構:
塊大小:16KB
Segment 大小:2KB
柱面組大小:188176 KB
UFS2一個數據指針佔 8字節,一個塊可存儲 2048個數據指針。那麼一個二級指針塊則可存儲:2048*2048*16KB= 64GB 數據。一個三級指針塊則可存儲 64GB*2048= 128TB 數據。如果能找到 iscsidata 文件的三級指針塊就能解決 FreeNAS層問題。但iscsidata文件重建過,過程和大小都和原始的一樣,估計有部分指針塊已被覆蓋。原始 iscsidata 文件的 inode和新建的 iscsidata 文件的 inode 就在一個位置,嘗試進行搜索,無其它有用的inode出現。只得現場寫程序收集有用的指針塊:
圖一:

由於iscsidata文件是使用稀疏模式,收集條件只能放寬,收集到了大量三級指針塊和二級指針塊。對收集到的所有三級指針塊進行分析,都是無效的,無iscsidata文件使用的三級指針塊,估計在新建iscsidata文件時被新的覆蓋(新的iscsidata文件在掛載到ESXi5.0後有個VMFS格式化過程,而 ESXi5.0 使用GPT分區,GPT分區會在磁盤最後寫入冗餘的GPT頭和分區表信息數據,這樣會使用iscsidata文件的三級指針塊)。
現只能分析收集到的二級指針塊,對有大量的二級指針塊的指向數據進行DUMP,然後再從磁盤中的數據定位到二級指針。這樣得到大量DUMP的數據。
開始分析 VMFS 層:
重格式化過VMFS,和原始UFS2的指針已丟失,造成VMFS元文件已基本上不可用,無重要的參考信息,所幸虛擬機都無快照,仍可恢復。通過單臺虛擬機層(windows(NTFS)和 FreeBSD(UFS2)系統的文件系統結構),向上定位到VMFS層,在通過VMFS層定位到DUMP出的單個64GB 文件,通過多次組合,最終這三臺重要的虛擬機的虛擬磁盤都已完全恢復。將恢復出的網頁數據和數據庫數據上傳到一新構建的系統中,拉起應用,數據完全無問題。
圖二:(圖片來源於數據恢復)

【服務器數據恢復結果】

耗時3天,該服務器內的所有數據成功恢復。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章