【虛擬機(jī)數(shù)據(jù)恢復(fù)】斷電導(dǎo)致XenServer下VPS不可用的數(shù)據(jù)恢復(fù)案例

虛擬機(jī)數(shù)據(jù)恢復(fù)環(huán)境:
一臺(tái)某品牌720服務(wù)器,4塊STAT硬盤(pán)通過(guò)RAID卡組建raid10磁盤(pán)陣列。部署的XenServer虛擬化平臺(tái)+Windows Server操作系統(tǒng),共兩個(gè)虛擬磁盤(pán):數(shù)據(jù)盤(pán)+系統(tǒng)盤(pán)。服務(wù)器作為Web服務(wù)器使用,上層部署ASP + SQL Server。
虛擬機(jī)故障&檢測(cè):
機(jī)房斷電導(dǎo)致XenServer中的一臺(tái)VPS不可用,XenServer虛擬機(jī)磁盤(pán)文件丟失。
將故障服務(wù)器中所有磁盤(pán)編號(hào)后取出,以只讀方式做全盤(pán)鏡像,鏡像完成后將磁盤(pán)按照編號(hào)還原到原服務(wù)器中,后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢復(fù)操作都基于鏡像文件進(jìn)行,避免對(duì)原始磁盤(pán)數(shù)據(jù)造成二次破壞。
基于鏡像文件分析故障服務(wù)器中的磁盤(pán)數(shù)據(jù),北亞企安數(shù)據(jù)恢復(fù)工程師發(fā)現(xiàn)故障服務(wù)器中的磁盤(pán)是通過(guò)LVM進(jìn)行管理,每一個(gè)虛擬磁盤(pán)為一個(gè)lv,虛擬磁盤(pán)為精簡(jiǎn)模式,XenServer記錄lvm的相關(guān)信息。
在/etc/lvm/backup/目錄下查找lvm相關(guān)信息,結(jié)果沒(méi)有發(fā)現(xiàn)損壞的虛擬磁盤(pán)信息,lvm信息應(yīng)該是被更新過(guò)。所以只能通過(guò)分析底層數(shù)據(jù)來(lái)嘗試查詢未被更新的lvm信息。查詢結(jié)果如下:

數(shù)據(jù)恢復(fù)工程師通過(guò)查詢到的未被更新的lvm信息找到虛擬磁盤(pán)的數(shù)據(jù)區(qū)域,結(jié)果發(fā)現(xiàn)數(shù)據(jù)已被破壞。確定虛擬機(jī)不可用的原因:虛擬磁盤(pán)被破壞,操作系統(tǒng)和數(shù)據(jù)丟失。
虛擬機(jī)數(shù)據(jù)恢復(fù)過(guò)程:
經(jīng)過(guò)北亞企安數(shù)據(jù)恢復(fù)工程師團(tuán)隊(duì)經(jīng)過(guò)會(huì)診后,敲定了2套數(shù)據(jù)恢復(fù)方案:
數(shù)據(jù)恢復(fù)方案一:
根據(jù)RAR壓縮包文件的存儲(chǔ)結(jié)構(gòu)規(guī)律提取數(shù)據(jù)的開(kāi)始位置,將備份數(shù)據(jù)庫(kù)壓縮包文件名和現(xiàn)有壓縮包開(kāi)始位置的文件名進(jìn)行匹配,定位數(shù)據(jù)庫(kù)壓縮包的起始位置,恢復(fù)這片壓縮包的區(qū)域即可。
數(shù)據(jù)恢復(fù)的過(guò)程十分順利,解壓恢復(fù)出來(lái)的RAR格式文件時(shí)卻報(bào)錯(cuò)“rar壓縮文件底層損壞”。使用RAR修復(fù)工具對(duì)部分?jǐn)?shù)據(jù)解壓后查詢,結(jié)果發(fā)現(xiàn)除部分網(wǎng)站代碼外沒(méi)有可用的數(shù)據(jù)庫(kù)備份文件。方案一失敗。


數(shù)據(jù)恢復(fù)方案二:
SQL Server數(shù)據(jù)庫(kù)通常會(huì)在第9頁(yè)記錄數(shù)據(jù)庫(kù)庫(kù)名,在每個(gè)頁(yè)中都會(huì)記錄數(shù)據(jù)庫(kù)頁(yè)編號(hào)&文件號(hào)??梢酝ㄟ^(guò)底層數(shù)據(jù)分析數(shù)據(jù)庫(kù)起始位置,在底層掃描出符合數(shù)據(jù)庫(kù)頁(yè)的數(shù)據(jù)碎片,利用數(shù)據(jù)碎片重組mdf文件,mdf文件重組后通過(guò)mdf校驗(yàn)程序檢測(cè)文件的完整性,整個(gè)過(guò)程沒(méi)有發(fā)現(xiàn)問(wèn)題。
搭建新的數(shù)據(jù)庫(kù)環(huán)境,將恢復(fù)出來(lái)的數(shù)據(jù)附加到環(huán)境中。實(shí)施過(guò)程截圖:


附加成功后經(jīng)過(guò)數(shù)據(jù)恢復(fù)工程師和用戶方工程師的反復(fù)檢測(cè),沒(méi)有發(fā)現(xiàn)問(wèn)題,確認(rèn)恢復(fù)出來(lái)的數(shù)據(jù)完成有效,本次數(shù)據(jù)恢復(fù)工作完成。