【服务器数据恢复】EMC NAS中的虚拟机数据恢复案例

news2025/1/19 17:22:59


服务器数据恢复环境:
北京某公司的EMC NAS,总共有3个节点,每个节点配置12块STAT硬盘。
NAS中存放有vmware虚拟机(WEB 服务器)和视频文件。
虚拟机通过NFS协议共享到ESX主机,视频文件通过CIFS协议共享给虚拟机(WEB服务器)。

 

服务器故障:
由于工作人员误操作将包括MSSQL数据库,大量MP4、ASF和TS格式的视频文件删除。NFS共享的所有数据(虚拟机)被删除而CIFS共享的数据则没有被删除。

服务器数据恢复过程:
1、对故障存储中所有硬盘以只读方式进行全盘镜像。后续的数据分析和数据恢复操作都基于镜像进行,避免对原始数据造成二次破坏。
2、基于镜像文件分析所有硬盘中的数据。由于数据是被人为删除的,需要分析文件被删除后,文件的Indoe及数据MAP是否发生变化。
3、由于被删除的虚拟磁盘文件大小都在64G或者以上,而且存储中没有其他类型的、文件大小超过64G的大文件。北亚企安数据恢复工程师编写Indoe扫描程序,将大小符合64G或以上的文件的Indoe都扫描出来。
4、分析扫描出来的Indoe,找出数据MAP位置,其index指向的内容不是正常数据,并且所有节点上的Indoe均是同样的情况。
5、分析Inode,发现大文件的数据MAP会有多层(树结构),并且数据MAP中会记录文件的唯一ID,因此可以尝试找到文件最底层的数据MAP。

6、对文件最底层的数据MAP做遍历跟踪操作后发现最底层的数据MAP果然还在。
7、从文件的Inode取出文件的唯一ID,聚合所有符合该ID的数据MAP。根据数据MAP中的VCN号排序,发现每个文件的前17088项数据MAP都不存在,这意味着每个文件的前17088项数据没法恢复。
8、经过换算发现丢失的数据MAP项总共包含不到1G的数据,而删除的文件全是虚拟机的vmdk文件,内部采用的NTFS文件系统,而NTFS文件系统的MFT基本都在3G的位置,也就是只需要在每个vmdk文件的头部手动伪造一个MBR和DBR就可以解释vmdk里面的数据。
9、解释扫描到的数据MAP,根据VCN号的顺序导出数据,没有MAP的情况就保留为零。经过不断的测试,尝试导出一个vmdk文件,发现导出的vmdk文件比实际情况要小,并且vmdk中MFT的位置也与自身描述不符。
10、随机验证几个MAP发现都能指向数据区,程序解释MAP的方式也都没有发现问题。所以初步判断出现这种情况的原因可能是文件稀疏。
11、调整代码后重新导出刚才的vmdk文件,这次vmdk文件大小符合实际,且MFT的位置正确。手工伪造一个MBR、分区表以及DBR,使用北亚企安自主开发的文件系统解释程序成功解释其文件系统,导出该vmdk文件里的数据库及视频文件。
12、验证此vmdk中的数据库及视频文件没有问题后,批量导出所有的vmdk文件,再手工修改每个vmdk文件。直至恢复出所有用户需要的数据。

 

服务器数据验证:
将所有重要数据恢复完成后,由用户方安排工程师对恢复出来的数据做完整性及准确性验证。经过反复验证测试,用户方确认数据完整有效。本次数据恢复工作完成。

 

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

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

相关文章

Scala字符串常用函数

Scala字符串常用函数 1. 子字符串-substring2. 字符串切分-split3. 去掉首尾空格-trim4. 与数值之间的转换完整代码参考链接 Scala中的字符串为String类型,其实就是Java中的java.lang.String。其常用函数如下: 1. 子字符串-substring substring()方法返…

AUTOSAR NvM 同步机制

一、部分 NvM API 解释 (1)Std_ReturnType NvM_ReadBlock(NvM_BlockIdType BlockId,void* NvM_DstPtr) 把Nv Block中的数据copy到NvM_DstPtr指向的RAM中,NvM_DstPtr可以是临时RAM,也可以是永久RAM(永久RAM即配置工具…

自动化、智能、机器人-2023-

文明:农业、工业、信息、智能,以目前认知的四个阶段。 农业文明到工业文明:机械自动化 工业文明到信息文明:电气自动化 信息文明到智能文明:数据自动化 这些时代典型的机器人: 机械自动化 电气自动化 数…

Mini_Web开发

文章目录 服务器开发回顾面向对象服务端客户端(浏览器)请求数据处理判断不同的请求路径,返回不同的数据给前端 单独封装方法不同请求路径处理的方法再次拆分业务封装JSON数据处理 Mini_Web开发导入数据使用Python操作数据库使用pymysql模块日…

瑞吉外卖 - 编辑员工信息功能(9)

某马瑞吉外卖单体架构项目完整开发文档,基于 Spring Boot 2.7.11 JDK 11。预计 5 月 20 日前更新完成,有需要的胖友记得一键三连,关注主页 “瑞吉外卖” 专栏获取最新文章。 相关资料:https://pan.baidu.com/s/1rO1Vytcp67mcw-PD…

238:vue+openlayers绘制扩展,弓形、曲线、扇形、双箭头、进攻方向...

第238个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中利用ol-plot插件进行绘制图形扩展,可以绘制弓形、弧形、标志旗、战斗进攻图形等等。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其他…

win11 下部署Vicuna-7B,Vicuna-13B模型,

运行Vicuna-7B需要RAM>30GB或者14GB的显存 运行Vicuna-13B需要RAM>60GB或者28GB的显存 如果没有上面的硬件配置请绕行了,我笔记本有64G内存,两个都跑跑看,使用python3.9,当时转换13b时一直崩溃后来发现是没有设定虚拟内存&…

Linux指令 快捷键

热键 上一次我们说到了linux的基本指令,这次我们先说一下热键 TAB TAB键在linux中有什么作用呢?? 在Linux中,假设我们想要输入的指令忘记了,我们可以TAB两下,帮我们补全命令或者假如命令太多&#xff0…

C++基础STL-set容器

set容器介绍: set译为集合,集合是按照特定顺序存储唯一元素的容器。在集合中,元素的值也标识它(值本身就是键,类型为T),并且每个值必须是唯一的。集合中元素的值在容器中一次就不能修改(元素总是const),但可…

python学习环境准备

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言本专栏文章旨在记录《Python编程从入门到实践》一书的学习笔记。 一、编程环境二、使用步骤1.修改默认python版本2.终端退出python解释器3.编写.py文件4.运行.p…

【Linux是如何发送网络包的?】

网络模型 为了使得多种设备能通过网络相互通信,和为了解决各种不同设备在网络互联中的兼容性问题,国际标准化组织制定了开放式系统互联通信参考模型(Open System Interconnection Reference Model),也就是 OSI 网络模…

【工作中掌握10个就够了!!!】Linux中的10个最常见命令+vim三个基本操作

欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示:重难点★✔ 蓝色文字表示&#…

【macOS自带VNC远程】——Windows在外远程桌面控制macOS

文章目录 前言1.测试局域网内远程控制1.1 macOS打开屏幕共享1.2 测试局域网内VNC远程控制 2. 测试公网远程控制2.1 macOS安装配置cpolar内网穿透2.2 创建tcp隧道,指向5900端口 3. 测试公网远程控制4. 配置公网固定TCP地址4.1 保留固定TCP地址4.2 配置固定TCP端口地址…

Java | 一分钟掌握定时任务 | 4 - 多线程的Timer

作者:Mars酱 声明:本文章由Mars酱原创,部分内容来源于网络,如有疑问请联系本人。 转载:欢迎转载,转载前先请联系我! 前言 JDK自带的Timer是无法做到多任务并发的,那么我们怎么处理多…

如何编写一份优质软件测试工程师简历的范文【建议收臧】

很多刚转行软件测试的小伙伴是不是不知道怎么写好一份优质的软件测试工程师的简历。今天呢,就给大家分享一下一个优质软件测试工程师简历的范文。记得收藏起来哦。 下面的案例:2-3年的软件测试工程的简历 姓 名:XXX 学历&#xff1a…

Zabbix“专家坐诊”第191期问答汇总

问题一 Q:snmp监控服务器风扇、温度等硬件信息需要要mib库吗? A:官网有相关的mib库可查,一般同大型号通用,直接去官方下就行。 问题二 Q:zabbix用的postgresqltimescaledb备份这个数据库的时候不想包含历…

【Linux】-Linux的权限

💖作者:小树苗渴望变成参天大树 ❤️‍🩹作者宣言:认真写好每一篇博客 💨作者gitee:gitee 💞作者专栏:C语言,数据结构初阶,Linux,C 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 …

【C++】入门必备小知识

C入门 1. 域2. 命名空间2.1命名空间的定义2.2 命名空间的使用 3. C输入和输出4. 缺省参数5. 函数重载6. 引用7. auto8. 范围for9.nullptr空指针10.内联函数 1. 域 域就是作用域,同一个域不可以用同名的变量,不同域可以用同名变量,遵循局部优…

案例11:Java超市管理系统设计与实现开题报告

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

5年时间里,自动化测试于我带来的意义,希望你也能早点知道

摘要:在我有限的软件测试经历里,曾有一段专职的自动化测试经历。 接触自动化 那时第一次上手自动化测试,团队里用的是Python,接口自动化测试的框架是requestsExcelJenkins,APP自动化测试的框架是Appium。 整个公司当…