虚拟机环境描述 虚拟机硬件环境为一台某品牌720型号服务器,4块2T STAT硬盘配戴一张H710P的RAID卡组成raid10磁盘阵列。操作系统为Xen Server 6.2版本,Windows Server 2003系统。上层是Web服务器,网站架构是ASP + SQL 2005。虚拟磁盘有两个,一个是数据盘5G空间,另一个是系统盘10G空间。机房断电导致Xen Server服务器中一台VPS不可用,Xen Server虚拟机磁盘文件丢失。
虚拟机故障检测过程
准备足够的数据空间并将客户数据全盘备份至北亚数据恢复环境服务器,分析该服务器中的磁盘发现该服务器中的磁盘以LVM的结构进行存放,这种形式中每一虚拟磁盘均为一个lv,虚拟磁盘为精简模式,Xen Server有记载lvm的相关信息。
找到/etc/lvm/backup/frombtye.com 目录,查询lvm相关信息结果并没有存在损坏的虚拟磁盘信息,lvm信息肯定已经被更新,只能通过对底层进行分析尝试查询未被更新的lvm信息。查询结果如下(在底层找到了未被更新的lvm信息)
工程师顺藤摸瓜找到了虚拟磁盘的数据区域,但数据已被破坏。所以导致虚拟机不可用的最终原因是虚拟磁盘被破坏引起了操作系统和数据丢失。
数据恢复方案一:
由于RAR压缩包文件的存储规律为文件第一扇区为该文件的名称,所以通常情况下可以根据RAR压缩包的结构提取数据的开始位置,然后根据备份数据库压缩包文件名和现有压缩包位置文件名进行匹配就可以定位到数据库压缩包的起始位置,对这片压缩包的区域进行数据恢复即可。
数据恢复过程十分顺利,工程师将恢复出来的RAR格式文件进行解压时却报错“rar压缩文件底层损坏”。使用RAR的修复工具忽略错误对部分数据进行解压后查询文件,除部分网站代码外并没有可用的数据库备份文件。planA失败。
数据恢复方案二:
在数据库结构中,通常会在第9页记录该数据库的库名,每个页中都会记录数据库页编号以及文件号。所以可以通过数据库结构到底层分析数据库起始位置,然后在底层扫描出符合数据库页的数据碎片重组mdf文件,(mdf文件重建后需要通过mdf校验程序检测文件是否完整)。最后由数据库工程师搭建新的数据库环境,将数据附加到该环境中。实施过程截图如下:
数据恢复结果 通过拼数据库碎片的方式成功将数据库恢复完成,经客户验证后没有问题,整个数据恢复成功。