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