1. 程式人生 > >KVM虛擬機誤刪除數據恢復案例分享

KVM虛擬機誤刪除數據恢復案例分享

信息 alt roc mac 一定的 inux 取數 描述 type

KVM虛擬機時Kernel-based Virtual Machine的簡稱,是一個開源的系統虛擬化模塊,自Linux 2.6.20之後集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理。

一、虛擬機故障環境描述

客戶的物理機器操作系統為Linux系統,文件系統為EXT4文件系統。其上的KVM虛擬機被刪除,每臺虛擬機包含一個qcow2格式的磁盤文件,和一個大小約為1.2T的raw格式的磁盤文件,主要需恢復raw格式的磁盤文件。用戶需要的是三臺虛擬化服務器,裏面存放的是數據庫,程序代碼等數據。

二、虛擬機數據恢復過程

1、分析EXT4文件系統,定位被刪除虛擬機磁盤文件的節點位置;

2、獲取磁盤文件殘留的索引信息;
3、校驗殘留索引信息的正確性,修復破壞不嚴重的索引;
圖為獲取的索引等信息:
技術分享圖片
圖 1
4、修復完成後,解析殘留的各級索引,從虛擬機所在的卷中提取虛擬磁盤文件;
5、根據虛擬磁盤文件的提取情況,獲取卷中未被索引到的自由空間;
6、校驗提取出的磁盤文件的正確性與完整性;
7、從自由空間中獲取有效信息,嘗試對虛擬磁盤文件進行修補(如節點,目錄項,數據庫頁等信息)。
圖為提取出的自由空間:
技術分享圖片
圖 2

三、數據恢復結果

1、由於索引丟失,提取出的虛擬磁盤文件並不完整,針對數據庫服務器,數據庫文件有丟失的情況,可以從自由空間中獲取數據庫頁去對數據庫文件進行修補,但由於部分頁所在區域被覆蓋占用,只能盡量多的去補頁;

2、對於存放程序代碼的服務器中的節點和目錄項丟失的情況,若節點或目錄項有殘留,可以嘗試去補齊節點和目錄項。但發現部分文件的節點和目錄項同時丟失,根據節點和目錄項之間相關聯的特性,這種情況下無法補齊。另根據程序代碼文件的特性,不具備一定的規律性,若其數據區丟失,無法補齊。
圖為恢復出的部分目錄結構:
技術分享圖片
圖 3
技術分享圖片
圖 4

四、數據驗證

在盡可能的嘗試對虛擬磁盤文件及其中的數據庫文件修補之後,由客戶對數據進行驗證。數據有小部分丟失,整體還可以接受,數據恢復有效。

KVM虛擬機誤刪除數據恢復案例分享