虛擬機維修 虛擬服務器恢復
虛擬化集成建議 虛擬機恢復 虛擬機維修 虛擬機數據恢復 虛擬機系統安裝 虛擬機維護
FreeNAS+ESXi5數據恢復+虛擬化數據恢復成功案例
一家公司使用一種廉價的存儲模式,用iSCSI方式來達到FC SAN的功能。物理存儲構架在一臺 DELL 服務器上,使用 FreeNAS 來做 iSCSI,然后使用兩臺 DELL 服務器做 ESXi5.0 的的虛擬化系統。
FreeNAS 層為UFS2文件系統,整個存儲建一個稀疏模式的文件,掛給ESXi5.0 系統。ESXi系統內跑有5臺虛擬機,其中有三臺最為重要。一臺windows2003系統虛擬機是此公司在當地的門戶網站。使用 ASP.net和 PHP 混合構架,使用數據庫為 SqlServer2005和 mysql 5.1 。一臺為FreeBSD 系統,跑有 Mysql數據庫,供其它多臺虛擬機使用。一臺為windows2003服務器,存儲此公司新開發的程序代碼。
故障現象:
在一次存儲突然斷電之后,ESXi系統連不上存儲,管理員在FreeNAS中發現UFS2文件系統出現問題,隨后管理員用fsck 修復好了文件系統。 此時ESXi 系統可以連上存儲,但發現ESXi系統未能識別到原來的數據存儲和VMFS文件系統,管理員格式化VMFS后發現里面空無一物。
數據恢復:
分析故障,最大化利用可用信息。開始抽絲剝繭:
應用構架層次:FreeNAS(UFS2文件系統–> 一個大的稀疏模式的文件) –> ESXi 5.0(VMFS文件系統層) -> 單臺虛擬機的虛擬磁盤 (windows-NTFS文件系統/FreeBSD-UFS2文件系統)。
第一步是鏡像 FreeNAS 層,然后分析整個存儲,發現就一個900多GB的大文件,文件名: iscsidata。通過UFS2文件系統的二進制結構,定位到 iscsidata 文件的Inode數據,發現此文件被重建過,inode指針指向的數據量很少。FreeNAS層無法解決,就無法進入到下一步的 VMFS層分析。
收集UFS2文件系統的重要結構:
塊大?。?6KB
Segment 大?。?KB
柱面組大?。?88176 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 文件,通過多次組合,最終這三臺重要的虛擬機的虛擬磁盤都已完全恢復。將恢復出的網頁數據和數據庫數據上傳到一新構建的系統中,拉起應用,數據完全無問題。
恢復結果:
最終數據恢復成功。