公司Xen server虚拟化中虚拟机磁盘文件丢失的处理办法

简介:
描述
  因服务器突然断电原因导致Xen Server服务器中一台VPS(即Xen Server虚拟机)不可用,虚拟磁盘文件丢失,通过电话联系北亚数据来进行恢复。硬件环境是Dell 720服务器配戴一张H710P的RAID卡,由4块希捷2T STAT硬盘组成的RAID 10,上层环境是Xen Server 6.2版本操作系统,虚拟机是Windows Server 2003系统,10G系统盘 + 5G数据盘两个虚拟机磁盘,上层是Web服务器(ASP + SQL 2005的网站架构)。

分析故障原因
  将客户的数据盘连接到北亚恢复环境服务器上,然后准备超过客户硬盘总容量的空间。将客户数据盘以磁盘底层扇区的方式镜像到备份空间上,以确保客户的数据安全。
  仔细分析底层数据发现Xen Server服务器中虚拟机的磁盘都是以LVM的结构存放的,即每个虚拟机的虚拟磁盘都是一个LV,并且虚拟磁盘的模式是精简模式的。LVM的相关信息在Xen Server中都有记载,查看“/etc/lvm/backup/frombtye.com “下LVM的相关信息发现并没有存在损坏的虚拟磁盘信息,因此可以断定LVM的信息已经被更新了。接着分析底层看能否找到未被更新的LVM信息,果不其然在底层发现了还未更新的LVM信息。如下图:
c01153cc602ca83bbded7841a9c027afaa087292 
  根据未被更新的LVM信息找到了虚拟磁盘的数据区域,发现该区域的数据已被破坏。分析后发现造成虚拟机不可用的最终原因是因为虚拟机的虚拟磁盘被破坏,从而导致虚拟机中的操作系统和数据丢失。而导致这种情况的发生很有可能是虚拟机遭遇网络攻击或hack入侵后留下恶意程序造成的。仔细核对这片区域后发现,虽然该区域有很多数据被破坏了,但还是发现了很多数据库的页碎片。因此可以尝试将许多数据库的页碎片拼成一个可用的数据库。
处理办法:
1、实施方案一
  按照方案一的思路进行底层分析,根据RAR压缩包的结构可以找到很多压缩包的数据开始位置,而RAR压缩包文件的第一个扇区中会记录此RAR的文件名。因此根据从客户那里得知备份数据库的压缩包文件名和目前找到的压缩包位置的文件名相匹配,即可找到备份数据库压缩包的开始位置。找到压缩包的位置后仔细分析这片区域的数据,然后将此区域的数据恢复出来重命名为一个RAR格式的压缩文件。然后尝试解压此压缩包,发现解压报错。
报错如下图所示:
  dc6b961a88fd91342d77fde4635abeef9ef3662b
  仔细分析恢复出来的压缩包发现中有部分数据被破坏了,因此解压的时候报错。尝试使用RAR的修复工具看能否忽略错误,解压部分数据。结果修复完成之后解压的数据库只有网站的部分代码,并没有数据库的备份文件。因此可以判断数据的备份文件在RAR压缩包中是损坏的。
如下是解压出来的部分网站代码。
d73ee6267ec2c69657284ab96e2a1c32602d182b 
2、实施方案二
  由于方案一并没有将数据库恢复出来,因此采用方案二来恢复数据。根据SQL Server数据库的结构去底层分析数据库的开始位置,在数据库的结构中,第9个页会记录本数据库的数据库名。因此在客户那里获取数据库的名称之后,再分析底层找到此数据库的开始位置。因为在数据库的每个页中都会记录数据库页编号以及文件号,所以可以根据这些特征编写程序去底层扫描符合数据库页的数据。
然后将扫描出来的碎片按顺序重组成一个完整MDF文件,再通过MDF校验程序检测整个MDF文件是否完整。重建的MDF文件如下:
  c659d3f43d33b9c461417f21741f46edbf57bebf
3、验证数据
  检测没问题之后再由我们的数据库工程师搭建数据库环境,将重组后的数据库附加到搭建好的数据库环境中。然后查询相关表数据是否正常,查询最新数据是否存在。截图如下:
 
b90fef0a538df222e3ed5adb26c3ee8890fa49cd
4、结论
  由于数据库需要结合网站代码才能更好的验证数据库的完整性。客户从开发商里拿到了网站代码搭建好了环境,然后将恢复好的数据库发给用户。经用户验证后,数据库没问题,通过拼数据库碎片的方式成功将数据库恢复完成,整个数据恢复成功。

相关文章
|
23天前
|
存储 监控 固态存储
【vSAN分布式存储服务器数据恢复】VMware vSphere vSAN 分布式存储虚拟化平台VMDK文件1KB问题数据恢复案例
在一例vSAN分布式存储故障中,因替换故障闪存盘后磁盘组失效,一台采用RAID0策略且未使用置备的虚拟机VMDK文件受损,仅余1KB大小。经分析发现,该VMDK文件与内部虚拟对象关联失效导致。恢复方案包括定位虚拟对象及组件的具体物理位置,解析分配空间,并手动重组RAID0结构以恢复数据。此案例强调了深入理解vSAN分布式存储机制的重要性,以及定制化数据恢复方案的有效性。
48 5
|
5天前
|
存储 虚拟化
使用DiskGenius工具来实现物理机迁移虚拟机,实现虚拟化
【9月更文挑战第1天】使用 DiskGenius 工具可将物理机迁移到虚拟机,实现系统与数据的虚拟化。此过程包括:安装 DiskGenius 和准备虚拟化平台;备份物理机数据;使用 DiskGenius 备份磁盘;在虚拟化软件中创建新虚拟机并导入磁盘备份;配置及调整虚拟机设置;测试性能并优化资源分配。这有助于测试、开发及系统管理。
|
23天前
|
关系型数据库 MySQL Linux
成功解决:2003 -Can‘t connect toMySQL server on ‘10.1.46.42(10060 “Unknown error“) 使用navicate连接虚拟机出错
这篇文章记录了在CentOS 7系统上安装并配置MySQL后,使用Navicat尝试进行远程连接但失败的问题。问题的主要原因是虚拟机的防火墙没有关闭。文章详细介绍了如何检查防火墙的状态,如何临时关闭它,以及如何禁止防火墙在系统启动时自动启动。当防火墙处于开启状态时,远程连接无法成功;关闭或禁用防火墙后,远程连接便能成功建立。
成功解决:2003 -Can‘t connect toMySQL server on ‘10.1.46.42(10060 “Unknown error“) 使用navicate连接虚拟机出错
|
15天前
|
存储 API 开发工具
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
|
2月前
|
存储 安全 虚拟化
虚拟化数据恢复—虚拟机数据丢失导致Hyper-V服务瘫痪数据恢复
虚拟化数据恢复环境: 一台服务器上部署的Hyper-V虚拟化平台,虚拟机的硬盘文件和配置文件放在一台某品牌MD3200存储中。该存储中有一组由4块硬盘组建的raid5磁盘阵列,还有一块大容量硬盘存放虚拟机数据文件的备份。 虚拟化故障: MD3200存储中虚拟机数据文件丢失,导致Hyper-V服务瘫痪,虚拟机无法使用。
虚拟化数据恢复—虚拟机数据丢失导致Hyper-V服务瘫痪数据恢复
|
2月前
|
SQL 存储 数据库
虚拟化数据恢复—XenServer虚拟机磁盘文件丢失的数据恢复案例
虚拟化数据恢复环境: 某品牌R720服务器,4块STAT硬盘通过H710P阵列卡组建了一组raid10磁盘阵列。服务器上部署XenServer虚拟化平台,虚拟机安装Windows Server系统,作为Web服务器使用,运行SQL Server数据库。共有2个虚拟磁盘:数据盘+系统盘。 虚拟化故障: 机房断电导致XenServer虚拟化平台中一台VPS不可用,XenServer虚拟机磁盘文件丢失。
虚拟化数据恢复—XenServer虚拟机磁盘文件丢失的数据恢复案例
|
4月前
|
存储 SQL 数据挖掘
服务器数据恢复—误删除VMware虚拟机vmdk文件的数据恢复案例
服务器数据恢复环境: 某大厂PS4000服务器,服务器上部署VMware ESXi虚拟化平台。 服务器故障: 机房断电,重启后服务器中的某台虚拟机不能正常启动。管理员查看虚拟机配置文件,发现无法启动的虚拟机的配置文件除了磁盘文件以外其他配置文件全部丢失,xxx-flat.vmdk磁盘文件和xxx-000001-delta.vmdk快照文件还存在。联系VMware原厂工程师进行诊断,VMware原厂工程师尝试新建一个虚拟机,但发现存储空间不足,于是将故障虚拟机下的xxx-flat.vmdk磁盘文件删除了。VMware工程师重新建了一个虚拟机,分配了固定大小的虚拟磁盘,为虚拟机安装了Window
服务器数据恢复—误删除VMware虚拟机vmdk文件的数据恢复案例
|
3月前
|
存储 IDE 开发工具
【读书笔记】 玩转虚拟机基于Vmware+Windows 虚拟化技术
【读书笔记】 玩转虚拟机基于Vmware+Windows 虚拟化技术
|
3月前
|
存储 开发框架 安全
虚拟机磁盘&UAC&服务和注册表&int文件
虚拟机磁盘&UAC&服务和注册表&int文件
|
4月前
|
程序员 Linux KVM
【qemu虚拟化】将img镜像文件转换为VMware虚拟机
QEMU是一个开源的硬件虚拟化器,能在多种平台如x86、ARM、PowerPC上运行,支持虚拟化不同体系结构的操作系统。它具有硬件仿真、虚拟化支持、磁盘和网络仿真、快照回滚及可扩展性等特点。要使用QEMU,首先从[官网](https://www.qemu.org/download/)下载,然后通过命令行运行进行转换。转换后的vMDK文件可在VMware中导入,创建新的虚拟机进行使用。
1429 1
【qemu虚拟化】将img镜像文件转换为VMware虚拟机
下一篇
DDNS