虚拟机数据恢复环境:
一台某品牌720服务器,4块STAT硬盘通过RAID卡组建raid10磁盘阵列。部署的XenServer虚拟化平台+Windows Server操作系统,共两个虚拟磁盘:数据盘+系统盘。服务器作为Web服务器使用,上层部署ASP + SQL Server。
虚拟机故障&检测:
机房断电导致XenServer中的一台VPS不可用,XenServer虚拟机磁盘文件丢失。
将故障服务器中所有磁盘编号后取出,以只读方式做全盘镜像,镜像完成后将磁盘按照编号还原到原服务器中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
基于镜像文件分析故障服务器中的磁盘数据,北亚企安数据恢复工程师发现故障服务器中的磁盘是通过LVM进行管理,每一个虚拟磁盘为一个lv,虚拟磁盘为精简模式,XenServer记录lvm的相关信息。
在/etc/lvm/backup/目录下查找lvm相关信息,结果没有发现损坏的虚拟磁盘信息,lvm信息应该是被更新过。所以只能通过分析底层数据来尝试查询未被更新的lvm信息。查询结果如下:
数据恢复工程师通过查询到的未被更新的lvm信息找到虚拟磁盘的数据区域,结果发现数据已被破坏。确定虚拟机不可用的原因:虚拟磁盘被破坏,操作系统和数据丢失。
虚拟机数据恢复过程:
经过北亚企安数据恢复工程师团队经过会诊后,敲定了2套数据恢复方案:
数据恢复方案一:
根据RAR压缩包文件的存储结构规律提取数据的开始位置,将备份数据库压缩包文件名和现有压缩包开始位置的文件名进行匹配,定位数据库压缩包的起始位置,恢复这片压缩包的区域即可。
数据恢复的过程十分顺利,解压恢复出来的RAR格式文件时却报错“rar压缩文件底层损坏”。使用RAR修复工具对部分数据解压后查询,结果发现除部分网站代码外没有可用的数据库备份文件。方案一失败。
数据恢复方案二:
SQL Server数据库通常会在第9页记录数据库库名,在每个页中都会记录数据库页编号&文件号。可以通过底层数据分析数据库起始位置,在底层扫描出符合数据库页的数据碎片,利用数据碎片重组mdf文件,mdf文件重组后通过mdf校验程序检测文件的完整性,整个过程没有发现问题。
搭建新的数据库环境,将恢复出来的数据附加到环境中。实施过程截图:
附加成功后经过数据恢复工程师和用户方工程师的反复检测,没有发现问题,确认恢复出来的数据完成有效,本次数据恢复工作完成。