【ESXi5虛擬化系統情景概述】
用戶使用的存儲模式是經過iSCSI方式來實現FC SAN的功能。同時利用DELL服務器作的物理存儲架構,利用FreeNAS來實現iSCSI。並另外經過兩臺 DELL 服務器作 ESXi5.0 的虛擬化系統。
一、FreeNAS 層爲UFS2文件系統,整個存儲建一個稀疏模式的文件,掛載在ESXi5.0 系統上。
二、ESXi系統內運行6臺虛擬機,其中有三臺最爲重要。
三、第一臺windows2003系統虛擬機是此公司在當地的門戶網站。
混合構架類型:ASP.net和 PHP
數據庫類型: SqlServer2005和 Mysql 5.1 。
四、第二臺FreeBSD 系統,運行Mysql數據庫,供其它多臺虛擬機使用。
五、第三臺windows2003服務器,存儲新開發的程序代碼。
【ESXi5虛擬化系統故障描述】
工做人員在檢查時發現ESXi系統沒法鏈接存儲,經過後續的排查在FreeNAS中發現UFS2文件系統出現故障,以後用fsck對文件系統進行修復。 修復後ESXi 系統能夠連上存儲,但ESXi系統未能識別到原來的數據存儲和VMFS文件系統,工做人員格式化VMFS後發現沒有任何數據。
【ESXi5虛擬化系統數據恢復步驟】
一、FreeNAS文件系統---應用構架層次:
FreeNAS(UFS2文件系統–> 一個大的稀疏模式的文件) –> ESXi 5.0(VMFS文件系統層) -> 單臺虛擬機的虛擬磁盤 (windows-NTFS文件系統/FreeBSD-UFS2文件系統)。
二、FreeNAS文件系統--分析存儲:
鏡像 FreeNAS 層,分析存儲,咱們能夠發現一個900多GB的大文件,文件名: iscsidata1。經過UFS2文件系統的二進制結構,定位到 iscsidata1 文件的Inode數據,發現此文件有被重建的跡象,inode指針指向的數據量不多。FreeNAS層沒法解決,就沒法進入到的 VMFS層分析階段。
收集UFS2文件系統的重要結構:
塊大小:16KB
Segment 大小:2KB
柱面組大小:188176 KB
UFS2一個數據指針佔 8字節,一個塊可存儲 2048個數據指針。那麼一個二級指針塊則可存儲:2048204816KB= 64GB 數據。一個三級指針塊則可存儲 64GB*2048= 128TB 數據。若是能找到 iscsidata1 文件的三級指針塊就能解決 FreeNAS層問題。但iscsidata1文件重建過,過程和大小都和原始的同樣,估計有部分指針塊已被覆蓋。原始 iscsidata1 文件的 inode和新建的 iscsidata1 文件的 inode 就在一個位置,嘗試進行搜索,無其它有用的inode出現。只得現場寫程序收集有用的指針塊:
因爲iscsidata1文件是使用稀疏模式,收集條件只能放寬,收集到了大量三級指針塊和二級指針塊。對收集到的全部三級指針塊進行分析,都是無效的,無iscsidata1文件使用的三級指針塊,估計在新建iscsidata1文件時被新的覆蓋(新的iscsidata1文件在掛載到ESXi5.0後有個VMFS格式化過程,而 ESXi5.0 使用GPT分區,GPT分區會在磁盤最後寫入冗餘的GPT頭和分區表信息數據,這樣會使用iscsidata1文件的三級指針塊)。
現只能分析收集到的二級指針塊,對有大量的二級指針塊的指向數據進行DUMP,而後再從磁盤中的數據定位到二級指針。這樣獲得大量DUMP的數據。
三、FreeNAS文件系統--開始分析 VMFS 層:
重格式化過VMFS,和原始UFS2的指針已丟失,形成VMFS元文件已基本上不可用,無重要的參考信息,所幸虛擬機都無快照,仍可恢復。經過單臺虛擬機層(windows(NTFS)和 FreeBSD(UFS2)系統的文件系統結構),向上定位到VMFS層,在經過VMFS層定位到DUMP出的單個64GB 文件,經過屢次組合,最終這三臺重要的虛擬機的虛擬磁盤都已恢復。將恢復出的網頁數據和數據庫數據上傳到一新構建的系統中,拉起應用,數據無問題。
【ESXi5虛擬化系統恢復結果】
經用戶驗收,數據無誤,至此數據恢復工做結束。node