hyper-v虚拟化未知原因故障导致数据丢失解决过程

简介:

由于MD3200存储中虚拟机的数据文件丢失,导致整个Hyper-V服务瘫痪,虚拟机无法使用,故障环境为Windows Server 2012服务器,系统中部署了Hyper-V虚拟机环境,虚拟机的硬盘文件和配置文件放在朝阳区某托管中心托管的DELL MD3200存储中(注:硬盘600G4,4T1)。MD3200存储是由4块600G硬盘组成的阵列,用作存储虚拟机的数据文件。单块4T硬盘用作虚拟机数据文件的备份。

故障:

由于MD3200存储中虚拟机的数据文件丢失,导致整个Hyper-V服务瘫痪,虚拟机无法使用。以如下流程进行数据检测:

  1. 对MD3200存储服务器进行物理检测,发现存储并未出现物理故障,涉事硬盘均正常工作
  2. 检查操作系统:工作正常中,未发现出错进程,排除因操作系统BUG导致的数据丢失。
  3. 分析丢失数据硬盘的文件系统:打开正常,不符合病毒破坏的表现特征,同时经杀毒软件检测无病毒。再仔细分析硬盘的文件系统,发现此文件系统的元文件创建时间为11月28日,表明文件系统的创建时间为11月28日,与数据丢失的时间相吻合。通常这种故障表明:文件系统被人为重写了,即分区被格式化了。
  4. 检查系统日志:发现系统日志11月28号之前以及当天的系统日志已被清空,审核日志和服务日志却并未清空。通常情况下,此操作应该由人为导致。而格式化分区的操作只记录在系统日志中,这与上述人为破坏的表现相符。
  5. 尝试恢复系统日志:仔细分析硬盘底层数据,发现硬盘底层中需要恢复的系统日志已被新的日志记录覆盖,无法恢复。
  6. 分析操作系统中的所有分区:发现只有MD3200存储中的两个分区的文件系统被重新写入文件系统了。通常情况下,对两个分区的格式化需要有两个独立的过程,因此这种针对性的操作应该由人为导致。

解决方案

备份用户数据
由于数据全部都放Dell M3200存储中,因此只需要恢复Dell M3200存储中的数据即可。将Dell M3200存储中所有的硬盘标上编号,然后后从存储中拔下来交给硬件部门检测硬盘是否存在物理故障。经检测没问题后对每块硬盘做全盘镜像,使用专用工具(Winhex)将硬盘中所有扇区镜像到一块备份硬盘中。
如下图:使用专业工具备份所有硬盘数据

重组磁盘阵列
镜像完所RAID 5的相关信息,如:条带大小,条带走向等信息。根据这些信息即可重组有硬盘后,分析每块硬盘上的数据。分析后发现4块600G硬盘做了一个RAID5,另一块4T硬盘是做为数据备份使用。仔细分析4块600G硬盘中的数据结构,可以得出这个此RAID。
如下图:使用专业工具重组RAID


如下图:是用专业工具打开硬盘阵列的情况

扫描旧的文件索引项
仔细分析硬盘底层数据,发现硬盘底层中还残留着许多以前文件系统的目录项及文件索引。经过仔细核对发现这些文件索引指向的数据都是用户丢失的文件内容。但由于整个硬盘太大,人工去搜索文件索引会很慢,因此编写一个提取文件索引项的小程序,对整个硬盘中所有存在的文件索引项做扫描,提取所有文件的文件索引项。

分析扫描到文件索引项
对扫描到的所有文件索引项做详细的分析,发现其索引项都是不连续的,并且大多都是以16K或8K对齐的。正常情况下的文件索引项是连续的,大小为固定的1K,每个文件索引项对应一个文件或目录。而扫描出来的这些不连续,并且不完整的文件索引项是无法正常索引到文件的内容。因此需要对扫描出来的文件索引项做加工处理。在扫描出来的文件索引项中搜索” .VHD”,能找到一个” .VHD”的文件记录。然后将这个片连续的文件索引项提取出来。接着再查看这段提取出来的文件索引项中是否有指向下一段文件索引项的记录或者是H20属性。如果有则根据文件索引项中的特征去匹配下一段文件索引项,如果没有则跳过这段文件索引项。根据以上方法基本能查到大多数的文件索引项片段。而缺失的文件索引项片段有可能被破坏了,但是可以从数据备份盘中去查找缺失的文件索引项片段,因此基本可以搜索到大部分的文件索引项。
如下图:是文件索引项截图

将文件索引项组成完整的目录结构
根据上述方法找到所有的文件索引项,然后根据文件索引项的编号将其拼接成整个目录项结构。以下是搜索到的部分文件索引项,由于有部分文件索引项被破坏,因此只能找到大部分文件索引项,但这些文件索引项已经足以拼接成整个目录结构了。
如下图:是扫描到的文件索引项碎片

修复文件系统
将重建好的目录结构和现有文件系统中的目录结构进行替换,然后使用专业工具修改部分校验值。再使用专业的工具解释这个目录结构即可看到原有丢失的数据了。
如下图:是用专业工具解释出来的目录结构

为了确定数据是否正确,将其中一个最新的VHD文件恢复出来。然后将其拷贝到一台支持附加VHD的服务器上,尝试附加此VHD。结果附加成功,检查VHD中最新的数据是否完整。一切检查完整后将所有数据恢复到一块硬盘中。

如下图:是恢复出来的所有虚拟机数据文件

验证所有数据
在一台测试服务器上搭建Hyper-V的环境,将恢复的虚拟机文件连接到这台服务器上。然后通过导入虚拟机的方式,将恢复的数据都迁移到新的Hyper-V环境。然后让客户来验证所有虚拟机是否完整。
如下图:是虚拟机导入的过程

迁移所有数据
在客户验证所有虚拟机没问题后,将所有数据拷贝至客户服务器中。然后利用导入的方式将虚拟机导入到客户的Hyper-V环境中,需要以下面的方式导入虚拟机,导入后没有报错,尝试启动所有虚拟机,所有虚拟机启动都没问题


原文地址:https://blog.51cto.com/sun510/2464772

时间: 2024-10-19 11:13:42

hyper-v虚拟化未知原因故障导致数据丢失解决过程的相关文章

服务器raid5磁盘阵列不同故障导致数据丢失的数据恢复方法(案例)

服务器Raid 5阵列算法 Raid5阵列使用的算法通常被称为"异或运算",这是一个数学运算符.它应用于逻辑运算.异或的数学符号为"⊕",计算机符号为"xor".其运算法则为:a⊕b = (?a ∧ b) ∨ (a ∧?b).如果a.b两个值不相同,则异或结果为1.如果a.b两个值相同,异或结果为0.异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1

服务器崩溃后硬盘再上线同步导致数据丢失恢复过程

[服务器数据恢复故障介绍] ··数据恢复中心近期接到客户服务器数据恢复案例并成功恢复,经客户许可后现将数据恢复过程分享给大家,下面简单介绍一下本次服务器数据恢复的故障情况.··客户使用的是某品牌的服务器,搭配了多块硬盘组成一组raid5磁盘阵列,作为公司的共享存储池使用,服务器上包含公司数据库文件和普通文件.由于硬盘掉线导致服务器内的D分区识别不到,服务器管理员查看设备后对服务器进行重启操作,导致服务器掉线硬盘重新上线并同步数据,同步进度到36%时服务器被管理员强制关机.· [服务器数据恢复检测

一次导致数据丢失的小变更

前言 不知不觉,技术人生系列·我和数据中心的故事来到了第十期,小y又和大家见面了! 前期我们分享了不少Oracle数据库故障和优化的实战案例,有朋友问,小y是否可以分享一些无备份时数据恢复方面的实战案例呢? 答案自然是--当然可以了.小y从来就不是一个藏着掖着的人嘛 ^_^ 这些年,小y所在的Oracle服务团队,该遇到的和不该遇到的问题,基本都碰到了. 所以在无备份的数据恢复这方面做的案例还是很多的,有时一周甚至要做三四个这样的CASE,问题类型不尽相同,例如: >> 某电信运营商文件系统满

存储互斥失败导致数据丢失的数据恢复成功案例

数据恢复故障描述 需要恢复的数据是某公司的一个信息管理平台,客户使用了3台虚拟机为企业共享一台存储设备,供企业内部使用,存储了公司大量的重要数据文件.管理员在在正常工作时为该存储网络又连接了一台Windows2003服务器,结果这台存储突然无法使用了,管理员对存储进行故障排查时发现存储虚拟磁盘丢失,分区表丢失.重启该存储后故障依然没有解决.由于存储中的数据十分重要且没有备份,管理员不敢擅自进行尝试修复,只好通过数据恢复手段进行数据恢复.图片来源于网络,侵删 存储数据恢复分析 由于存储崩溃的原因并

win8/win10 自带Hyper V虚拟机

为什么是hyperV而不是vmware workstation或者virturalBox? 萝卜白菜,各有所爱.这里不比较数据,不深究技术,我选择的理由很简单:系统自带,不用安装额外的软件,而且性能也还可以. hyperV最早集成于win8中,win7及更老版本是没有此功能的.打开"任务管理器",在"性能"选项卡"虚拟化"中可到启用状态.可在BIOS设备.安全或CPU选项卡中找到虚拟化选项. BIOS中开启硬件支持后,可在"添加删除程序

Hyper v 单网卡 外部网络

先说一下环境: WIN 8.1 单网卡(有 无线 和 有线网卡, 但是没有多余的网络接口可插,还是等于单网卡) Hyper V 有3种虚拟交换机类型: 专用 / 内部 / 外部 各有各的用处, 我理解也不多,不多嘴误导大家. 今天说这个,是因为要做CSS和JS兼容调试, 开发用的都是IE11,用IE11的调试工具将文档模式调为 IE8 ,发现 jQuery.Validation 不能常运行. 但是用虚拟机装的 XP上直接用IE8 ,却没有任何问题,真的很蛋疼. 工作用的有两台电脑,一台装的是WI

SPComm的一点小诀窍 spcomm的问题导致数据丢失 0x11与0x13错误

最近几天完成了BiasDAC的程序编写.调试的过程还算比较顺利,除了几个有点bt的小问题.其中一个困扰了我两三天的时间,今天上午终于将其解决. 由于BiasDAC是用RS232 Serial Port通信的,延用之前的程序,使用了Delphi的SPComm控件.在之前的使用中,SPComm控件一直工作正常,使用的是一般的string进行消息的传递. 而BiasDAC由于通信协议的限制,消息的发送使用的是hex方式,会用到从0x00到0xFF所有的这些字符.在调试中发现,发送0x11和0x13之后

记一次存储故障导致数据库坏块处理过程

记一次存储故障导致数据库坏块处理过程 线上架构说明:     IBM DS4800存储一套     P560小机HA架构一套     两个数据库资源组平时run在HA架构中的任意一台中,资源组全部使用共享存储 问题描述: 由于存储在数据库运行过程中发生了异常宕机,导致两个库存在不同程度的坏块 错误信息及解决过程 数据库A: A:root:/db2dumph/istclhis > 2016-04-09-04.26.10.787138   Instance:istclhis   Node:000 P

raid出现故障导致文件丢失如何恢复

RAID磁盘阵列设备,在使用过程中,经常会遇到一些常见故障,这也使得RAID在给我们带来海量存储空间的应用之外,也带来了很多难以估计的数据风险.本文将重点介绍RAID常见故障及raid文件恢复的相关处理方式. RAID的目的就是利用磁盘空间的冗余实现数据容错,不过这是在所有的磁盘或卷没有任何问题的前提下实现的.当RAID卷中的单个磁盘出现故障后,尽管数据可能暂时不会受到威胁,但是磁盘 冗余已经没有了,此时任何不当的操作都可能毁掉已经存放的数据.因此,在充分享受RAID所带来的安全好处时,还应该想