当前位置:网站首页>【虚拟机数据恢复】意外断电导致XenServer虚拟机不可用的数据恢复
【虚拟机数据恢复】意外断电导致XenServer虚拟机不可用的数据恢复
2022-07-26 20:16:00 【北亚数据恢复】
虚拟机数据恢复环境:
Dell某型号服务器用RAID卡+4块STAT硬盘组成RAID10;
XenServer虚拟化系统,虚拟机操作系统是Windows Server;
两个虚拟机磁盘(系统盘 + 数据盘);
Web服务器(ASP + SQL的网站架构)。
虚拟机故障&分析:
服务器突然断电导致XenServer服务器中一台XenServer虚拟机不可用,虚拟磁盘文件丢失。服务器管理员联系我们数据恢复中心进行虚拟机数据恢复。
服务器数据恢复工程师首先将故障服务器上的硬盘连接到数据恢复服务器上对数据进行镜像备份。
通过镜像文件分析底层数据发现故障服务器中每个XenServer虚拟机的虚拟磁盘都是一个LV,虚拟磁盘模式是精简模式。LVM的相关信息在XenServer中都有记载,查看LVM的相关信息发现并没有损坏的虚拟磁盘信息,初步判断LVM的信息已经被更新。再次对底层进行分析还是找到了未更新的LVM信息。
如下图:

根据未被更新的LVM信息找到虚拟磁盘的数据区域,但是该区域的数据已被破坏。最终可以确定虚拟机不可用的原因是虚拟机的虚拟磁盘被破坏,虚拟机中的操作系统和数据丢失,而出现这种情况很可能是虚拟机遭遇网络攻击或hack入侵后留下的恶意程序造成的。仔细核对这片区域后,服务器数据恢复工程师发现虽然该区域很多数据被破坏了,但发现了很多数据库的页碎片,可以尝试将数据库的页碎片拼接成可用的数据库。
虚拟机数据恢复过程:
1、恢复方案一
根据RAR压缩包的结构找到压缩包的数据开始位置,RAR压缩包文件的第一个扇区中会记录此RAR的文件名。服务器数据恢复工程师通过匹配备份数据库的压缩包文件名和目前找到的压缩包位置的文件名,即可找到备份数据库压缩包的开始位置。找到压缩包的位置后分析这片区域的数据,将此区域的数据恢复出来并重命名为一个RAR格式的压缩文件。尝试解压此压缩包,解压报错如下图所示:

分析恢复出来的压缩包,服务器数据恢复工程师发现其中有部分数据损坏。使用RAR修复工具修复后解压出部分数据,结果解压出来的数据只有网站的部分代码,并没有发现数据库的备份文件。初步判断RAR压缩包中数据库的备份文件是损坏的。下图是解压出来的部分网站代码:

2、恢复方案二
由于方案一并没有将数据库恢复出来,服务器数据恢复工程师采用方案二恢复数据库。
根据SQL Server数据库的结构去底层分析数据库的开始位置。在服务器管理员获取到数据库名称之后,数据恢复工程师分析底层找到此数据库的开始位置。SQL Server数据库的每个页都会记录数据库页编号以及文件号,北亚数据恢复工程师根据SQL Server数据库的这些特征编写程序去底层扫描符合数据库页的数据。
然后将扫描出来的碎片按顺序重组成一个完整MDF文件,再通过MDF校验程序检测这个MDF文件是否完整。重组的MDF文件:

验证数据:
MDF校验程序检测没问题后搭建数据库环境。将重组后的数据库附加到搭建好的数据库环境中并查询相关表数据是否正常,查询最新数据是否存在。

由于数据库需要结合网站代码才能更准确验证数据库的完整性。用网站代码搭建好环境,然后将恢复好的数据库配置好进行验证。经用户亲自验证后最终确认数据库没问题,本次数据恢复成功。
边栏推荐
- APP自动化测试框架搭建(八)--ATX Server2多设备集群环境搭建
- 易基因|宏病毒组测序技术介绍
- Buu brush inscription 3
- 和月薪3W的字节程序员聊过后,才知道自己一直在打杂...
- 详细图解b树及C语言实现
- 08_ue4进阶_开始结束暂停菜单等ui
- [英雄星球七月集训LeetCode解题日报] 第26日 并查集
- GOM跟GEE登陆器列表文件加密教程
- Kotlin - coroutinebuilder
- [must read new] Keya valuation analysis of University of technology, heating energy-saving products
猜你喜欢

APP自动化测试框架搭建(八)--ATX Server2多设备集群环境搭建

立即报名:7 月 29 日推荐系统峰会 2022

【打新必读】工大科雅估值分析,供热节能产品

How to configure the legendary SF lander to automatically read the list without a network

Centos7 about Oracle RAC 11gr2 deployment disk partition

Leetcode linked list problem -- 24. Exchange the nodes in the linked list in pairs (learn the linked list with one question and one article)

执行上下文与词法环境

JDBC connection

Redis interview questions

每日练习------有一组学员的成绩,将它们按降序排列,要增加一个学员的成绩,将它插入成绩序列,并保持降序
随机推荐
09_ UE4 advanced_ Enter the next level and reserve the blood volume
How to create a static object variable of its own class?
【打新必读】工大科雅估值分析,供热节能产品
Buu brush inscription 1
Chapter 2: encounter obstacles! Bypass WAF filtering! [SQL injection attack]
Explain the 190 secondary compiler (decoding table) module of SMR laminated hard disk of Western data in detail
执行上下文与词法环境
【微信小程序】零基础学 | 小程序语法
[英雄星球七月集训LeetCode解题日报] 第26日 并查集
Execution context and Lexical Environment
银河证券场内基金低佣金开户靠谱吗,可靠安全吗
培训软件测试能不能就业
Introduction of JDBC
消息队列——引入的问题:重复消费&顺序消费&分布式事务
South Korea plans to spend 1 trillion won a year on research and development of semiconductor materials and equipment
[Delphi] different platform descriptions of borderstyles of FMX form
Shell综合应用案例,归档文件
Svn uses fragmented ideas
Hello, how are you
[wechat applet] zero basics | applet syntax