服务器数据恢复-RAID5上层Hyper-V虚拟机数据恢复案例

服务器数据恢复环境:
一台Windows Server服务器,部署Hyper-V虚拟化环境,虚拟机的硬盘文件和配置文件存放在一台DELL存储中。该存储中有一组由4块硬盘组建的RAID5阵列,用来存放虚拟机的数据文件,另外还有一块大容量硬盘用来存放虚拟机数据文件的备份。

服务器故障&检测分析:
存储中虚拟机的数据文件丢失,Hyper-V服务瘫痪,虚拟机无法使用。
1、对存储进行物理故障检测,未发现存储存在物理故障,存储中所有硬盘均可以正常识别。
2、服务器操作系统工作正常,未发现有出错进程。
3、丢失数据硬盘的文件系统打开正常,杀毒软件检测无病毒。经过分析发现丢失数据硬盘的文件系统元文件创建时间与数据丢失的时间吻合,这种情况表明文件系统被人为重写了,即分区被格式化了。
4、检查系统日志发现数据丢失之前和数据丢失当天的系统日志被清空,审核日志和服务日志却还在。此操作一般是人为的。因为格式化分区操作只记录在系统日志中,这与人为破坏的特征相符。
5、仔细分析硬盘底层数据,发现底层中需要恢复的系统日志已被新的日志记录覆盖,无法恢复。
6、分析操作系统中的所有分区,发现只有存储中的两个分区被重新写入文件系统。因为格式化两个分区需要两个独立的过程,进一步表明数据丢失是人为造成的。

服务器数据恢复方案:
根据前面的的故障分析结果,北亚企安数据恢复工程师敲定了数据恢复方案:
备份用户数据→重组RAID5阵列→查找原文件索引项及对应的数据区→将扫描到的文件索引项碎片拼接成完整的目录结构→根据拼接好的目录项去底层恢复对应的数据→核对数据没问题后恢复所有数据。

服务器数据恢复过程:
1、将故障存储中所有的硬盘编号取出后检测物理故障。经过检测没有发现有物理硬盘存在硬件故障。将每块硬盘以只读方式做全盘镜像备份,备份完成后将磁盘按照编号还原到原存储中。后续的数据分析和数据恢复都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
备份所有硬盘数据:

 

2、基于镜像文件分析条带大小、条带走向等RAID相关信息。根据这些RAID相关信息重组RAID5阵列。
重组RAID:

 
硬盘阵列:

 
3、基于镜像文件分析硬盘底层数据,发现了许多原文件系统的目录项及文件索引残留。经过核对发现这些文件索引指向的数据都是用户丢失的文件内容。北亚企安数据恢复工程师编写提取文件索引项的小程序扫描查找所有存在的文件索引项,提取所有找到的文件索引项。

4、分析扫描到的所有文件索引项,发现索引项都是不连续的,大多是以16K或8K对齐的。正常情况下,文件索引项是连续的且大小为固定的1K,每个文件索引项对应一个文件或目录。而扫描出来的这些不连续且不完整的文件索引项是无法正常索引到文件的内容。经过北亚企安数据恢复工程师的处理后已经能查到大多数的文件索引项片段。缺失的文件索引项片段可能被破坏,可以从数据备份盘中查找缺失的文件索引项片段。
文件索引项截图:

 

5、根据文件索引项的编号将找到的所有的文件索引项拼接成一个完整的目录项结构。
扫描到的文件索引项碎片:

 

6、将拼接好的目录结构替换现有文件系统中的目录结构并修改部分校验值,解释这个目录结构后就可以看到丢失的数据。
解释出来的目录结构:

 

 

7、为了验证数据是否正确,将其中一个较新的VHD文件恢复出来,将其拷贝到一台支持附加VHD的服务器上,尝试附加此VHD,结果附加成功。经过检查确认该VHD数据完整,然后将所有数据恢复到一块硬盘中。
恢复出来的所有虚拟机数据文件:

 

8、在一台测试服务器上搭建Hyper-V的环境。通过导入虚拟机的方式将恢复的数据迁移到Hyper-V环境。然后交由用户验证所有虚拟机是否完整。
导入虚拟机:

 

 

9、用户验证完所有虚拟机没有发现问题。将所有数据拷贝至用户准备好的服务器中,将虚拟机导入到用户准备好的Hyper-V环境中,导入后无报错。尝试启动所有虚拟机都没有问题。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/34366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【TypeScript】进阶之路语法细节,类型和函数

进阶之路 类型别名(type)的使用接口(interface)的声明的使用二者区别: 联合类型和交叉类型联合类型交叉类型 类型断言获取DOM元素 非空类型断言字面量类型的使用类型缩小(类型收窄)TypeScript 函数类型函数类型表达式内部规则检测函数的调用签…

keil下载程序具体过程:概述

一、前言 keil下载程序具体过程将由一系列的博客组成,将深入探讨keil这种IDE下载镜像文件时具体做了哪些事情。我们平常下载镜像的时候,只是点击了一下Download按钮,剩下的都由keil替代我们完成了。本系列博客将揭示这一过程,keil…

【云原生】kubernetes控制器deployment的使用

目录 ​编辑 1 Controller 控制器 1.1 什么是 Controller 1.2 常见的 Controller 控制器 1.3 Controller 如何管理 Pod 2 Deployment 2.1 创建 deployment 2.2 查看 deployment 2.3 扩缩 deployment 2.4 回滚 deployment 2.5 删除 deployment 1 Controller 控制器 …

markdown命令模板

markdown快速入门(typora) 1、代码块 //代码块语 public static void main(String[] args){}//linux下spring项目的启动命令 # java -jar blog start ## 2、标题:java # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题3、字体 …

Webpack 的 sass-loader 在生产模式下最小化 CSS 问题

学习webpack时候我发现一个问题: 将mode 改为production模式后,生成的css会被压缩了,但是我并没有引入CssMinimizerPlugin插件,然后我试着将optimization.minimize 设置为false,测试是否为webpack自带的压缩&#xff0…

【计算机网络】——数据链路层

二、组帧 1、字符计数法 帧头部使用一个字符来表示帧的大小(包括第一个计数字符) (此处一字符一个字节) 2、字符填充收尾定界法 特定字符来定界帧的首和尾。若帧中数据段出现等同于特定字符的字符内容,前置一个转义字符。(类似于正则表达…

Postman 的简单使用

什么是Postman 在程序开发中用于调试网络程序或者跟踪网页请求。可以对网页进行简单的基本信息调试。Postman最早是作用chrome浏览器插件存在的,但是2018年初Chrome停止对Chrome应用程序的支持。所以现在Postman提供了独立的安装包,不再依赖于Chrome浏览…

flutter 初识(开发体验,优缺点)

前言 最近有个跨平台桌面应用的需求,需要支持 windows/linux/mac 系统,要做个更新应用的小界面,主要功能就是下载更新文件并在本地进行替换,很简单的小功能。 花了几分钟构建没做 UI 优化的示例界面: 由于我们的客…

腾讯云香港服务器租用_2核2G20M_2核4G30M

腾讯云香港服务器租用费用表,目前中国香港地域轻量应用服务器可选配置2核2G20M、2核2G30M、2核4G30M,操作系统可选Windows和Linux,不只是香港云服务器,新加坡、硅谷、法兰克福和东京服务器均有活动,腾讯云服务器网分享…

项目一:基于stm32的阿里云智慧消防监控系统

若该文为原创文章,转载请注明原文出处。 Hi,大家好,我是忆枫,今天向大家介绍一个单片机项目。 一、简介 智慧消防监控系统,是用于检测火灾,温度,烟雾的监控系统。以 stm32单片机为核心外加 MQ…

ApiPost的使用

1. 设计接口 请求参数的介绍 Query:相当于get请求,写的参数在地址栏中可以看到 Body: 相当于 post请求,请求参数不在地址栏中显示。 请求表单类型,用form-data json文件类型,用row 2. 预期响应期望 设置完每一项点一下生成响应…

MySql011——检索数据:过滤数据(使用正则表达式)

前提:使用《MySql006——检索数据:基础select语句》中创建的products表 一、正则表达式介绍 关于正则表达式的介绍大家可以看我的这一篇博客《Java038——正则表达式》,这里就不再累赘。 二、使用MySQL正则表达式 2.1、基本字符匹配 检索…

阿里云账号注册流程_多种注册方法_图文详解

阿里云账号怎么注册?阿里云账号支持手机号注册、阿里云APP注册、支付宝和钉钉多种注册方式,账号注册后需要通过实名认证才可以购买或使用云产品,阿里云百科来详细说下不同途径注册阿里云账号图文流程: 目录 阿里云账号注册流程 …

微服务02-docker

1、Docker架构 1.1 镜像和容器 Docker中有几个重要的概念: 镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。Docker镜像是用于创建 Docker 容器的模板 。就像面向对象编程中的类。 容器(Container):镜像中的应用程序运…

基于最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇系统性实践技能提升

查看原文>>>基于最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇系统性实践技能提升 目录 专题一、生态环评报告编制规范 专题二、土地利用图 专题三、植被类型及植被覆盖度图 专题四、物种适宜生境分布图 专题五、生物多样性测定 专题六…

SQL | 过滤数据

4-过滤数据 4.1-使用WHERE子句 数据根据 WHERE 子句中指定的搜索条件进行过滤。WHERE 子句在表名( FROM 子句)之后给出。 select prod_name,prod_price from products where prod_price 3.49; 上述语句查询价格为3.49的行,然后输出名字和…

微服务07-分布式缓存

前提: 单机的Redis存在四大问题: 解决办法:基于Redis集群解决单机Redis存在的问题 1、Redis持久化 Redis有两种持久化方案: RDB持久化AOF持久化1.1 RDB持久化 RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所…

力扣 518. 零钱兑换 II

题目来源:https://leetcode.cn/problems/coin-change-ii/description/ C题解(来源代码随想录): 这是一道典型的背包问题,一看到钱币数量不限,就知道这是一个完全背包。但本题和纯完全背包不一样&#xff0c…

ICMP协议报文

1、CMP协议简介 ICMP(Internet Control Message Protocol)是一种网络协议,它用于在IP网络中传递控制信息和错误消息。它通常与IP协议一起使用,IP协议负责发送和路由数据包,而ICMP协议负责检查网络是否可达、路由是否正…

【设计模式——学习笔记】23种设计模式——备忘录模式Memento(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入 游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,可以从备忘录对象恢复到大战前的状态 传统设计方案 针对每一种角色,设计一个类来存储该角色的状态 【分析】…