服务器数据恢复—EMC Isilon存储中被误删的虚拟机数据恢复案例

服务器存储数据恢复环境:
EMC Isilon S200集群存储,共三个节点,每节点配置12块SATA硬盘。

服务器存储故障:
工作人员误操作删除虚拟机,虚拟机中数据包括数据库、MP4、AS、TS类型的视频文件等。需要恢复数据的虚拟机通过NFS协议共享到ESX主机,视频文件通过CIFS协议共享给虚拟机(WEB服务器)。
通过NFS协议共享的所有数据(虚拟机)被删除,而通过CIFS协议共享的数据没有被删除。

服务器存储数据恢复过程:
1、将所有节点中硬盘编号后取出,硬件工程师检测后没有发现有硬盘存在硬件故障和明显坏道。将所有磁盘以只读方式进行扇区级全盘镜像,镜像完成后将所有磁盘按照编号还原到原节点中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。

2、所有数据备份完成后,在Isilon的web管理界面中将Isilon正常关机。

基于镜像文件对底层数据进行分析。由于是误删除数据,所以需要分析数据删除后Indoe及数据MAP是否发生变化。由于被删除的虚拟磁盘文件大小都在64G或以上,而且存储中无其他大文件。北亚企安数据恢复工程师编写程序扫描所有文件Indoe,将大小不小于64G的文件indoe全部扫描出来。通过扫描Indoe找出数据MAP位置,发现其index指向的内容已不再是正常数据,并且所有节点上的Indoe均是同样的情况。
3、分析Inode,发现大文件的数据MAP会有多层(树结构),并且数据MAP中会记录文件的唯一ID,因此可以尝试找到文件最底层的数据MAP。北亚企安数据恢复工程师尝试对文件底层数据MAP做遍历跟踪操作,发现底层的数据MAP还在。

4、通过文件的Inode提取唯一ID,然后将所有符合该ID的数据MAP做聚合。根据数据MAP中的VCN号排序,北亚企安数据恢复工程师分析发现每个文件的前17088项数据MAP都不存在,理论上这些数据是无法恢复了。
5、通过数据换算得知丢失的数据MAP项的大小不到1GB,删除的文件是虚拟机的vmdk文件,里面都是NTFS文件系统,而NTFS文件系统的MFT一般都在3GB的位置,只需要在每个vmdk文件的头部伪造一个MBR和DBR就可以解释vmdk里面的数据。解释扫描到的数据MAP并根据VCN号的顺序导出数据,没有MAP的情况保留为零。
6、将其中一个vmdk文件导出,但导出的文件比实际情况要小,vmdk中MFT的位置也与自身描述不符。随机验证了几个MPA发现都能指向数据区,程序解释MAP的方式也都没有问题,出现这种情况的原因可能为文件稀疏!
7、重新调整部分代码再次导出vmdk,这次导出的数据正常且MFT的位置也在相应位置。手工伪造一个MBR,分区表以及DBR,再用北亚企安自主开发的文件系统解释工具解释文件系统,导出vmdk里面的数据库及视频文件。

8、经过验证,此vmdk中的数据库及视频文件没有发现问题,批量导出所有vmdk文件,再手动修改每个vmdk文件。
9、将所有数据恢复完成后,用户方工程师对所有恢复出来的数据做完整性及准确性检测,经过检测没有发现问题,本次数据恢复工作完成。

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

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

相关文章

力扣第200题“岛屿数量”

关注微信公众号 数据分析螺丝钉 免费领取价值万元的python/java/商业分析/数据结构与算法学习资料 在本篇文章中,我们将详细解读力扣第200题“岛屿数量”。通过学习本篇文章,读者将掌握如何使用深度优先搜索(DFS)和广度优先搜索&…

使用nodejs/exceljs读取、操作、写入excel文件

现在edge已经不支持activexobject了,如果想用javascript操作excel文件,基本上只能用nodejs了。下面的代码就是用nodejs操作excel文件的可用方法,读取每个cell,设置颜色。 // save this content as excel.js file // # npm i exce…

芯片环氧胶可以提供一定的耐盐雾耐腐蚀效果!

芯片环氧胶(或称为环氧树脂胶)在电子封装和保护应用中确实能提供一定的耐盐雾和耐腐蚀效果。 环氧树脂因为其出色的粘接性能、机械强度以及良好的化学稳定性,被广泛用于电子封装领域,尤其是芯片固定和保护。在面对盐雾腐蚀或恶劣…

使用RV1126交叉编译工具链交叉编译opencv,c++代码直接调用VideoCapture 读取摄像头数据

使用RV1126交叉编译工具链交叉编译opencv,rv1126直接调用VideoCapture 读取摄像头数据 前言环境一、ubantu安装二、交叉编译工具安装三、cmake升级四、ffmpeg安装五、opencv安装六、c代码测试(上板运行) 前言 交叉编译是一种将软件在操作系统…

从零开始利用树莓派+扬声器,实现简单的蓝牙音箱,手机连接放歌

背景 树莓派4B自带蓝牙和Wifi, 无需外接 USB dongle; 蓝牙最常见的应用是近距离传输数据,比如蓝牙传文件,蓝牙音箱等。正好家里有个普通的usb供电的便携音箱; 本文用树莓派蓝牙+普通音箱,实现简单的蓝牙音箱。 大致分为三个部分: kernel/driver层的ALSA驱动框架蓝牙音…

43、Flink 自定义窗口触发器代码示例

1、方法说明 1)onElement() 方法在每个元素被加入窗口时调用。 返回 TriggerResult 来决定 trigger 如何应对到达窗口的事件 CONTINUE: 什么也不做 FIRE: 触发计算 PURGE: 清空窗口内的元素 FIRE_AND_PURGE: 触发计算,计算结束后清空窗口内的元素 2&a…

关于docker无法正常下载镜像的问题

文章目录 之前还可以正常下载镜像,但是一段时间之后就无法下载了,猜测可能是政治原因,无法连接到国外服务器,所以我设置了阿里云的镜像加速器。 配置方法如下: 前往阿里云(https://help.aliyun.com/zh/acr/…

ATA-3040C功率放大器的正确使用方法

功率放大器是一种用于增强电信号功率的重要设备。正确使用功率放大器可以确保信号的稳定放大,并避免设备损坏。下面将介绍功率放大器的正确使用方法。 确定输入信号的功率范围:在使用功率放大器之前,需要确定输入信号的功率范围。过大的输入功…

Python 最强的5个高级函数,你会几个?

Python是一门灵活而强大的编程语言,具有丰富的内置函数和库。今天,我们将深入探讨五个非常有用的Python高级函数。这些函数不仅能够简化代码,还能提高代码的可读性和可维护性。 首先,了解下什么是高级函数? 高级函数…

C# —— 字符串拼接

字符串拼接的方式一 之前的算术运算符 只是用来数值类型的相加 主要做的是数学的运算 // 而string 不存在算数运算 但是可以通过加号 进行拼接 string str "123" 字符串拼接 str str "456"; Console.WriteLine(str); // "123456&q…

博客摘录「 YOLOv5模型剪枝压缩」2024年5月11日

添加L1正则来约束BN层系数 语义边缘检测和语义分割的关系调研结果为,语义信息可以用来增强语义分割的效果,也有一定的优点和采用理由,但此类论文的数量并不是很多,语义分割的多数方法还是使用深度学习直接做像素分类。在对比两者…

【Unity】如何做一个很平滑的行人动画,且可以根据行人速度动态调整动画速度?

首先我们定一下不同速度对应的行人动作状态,设计为四种状态: 静止站立Stand:0~maxStandSpeed走路Walk:minWalkSpeed~maxWalkSpeed慢跑Jog:minJogSpeed~maxJogSpeed快跑Run:大于MinRunSpeed 我们可以使用A…

FISCO BCOS x GitLink,为国产开源技术生态注入新活力

作为中国领先的区块链底层平台之一,FISCO BCOS 自成立以来始终致力于推动国产开源区块链技术的应用和普及。近期,FISCO BCOS 将开源代码托管到CCF官方代码托管平台 GitLink (确实开源),为国产开源技术生态注入新活力。…

C++类型转换深度解析:从基础数据类型到字符串,再到基础数据类型的完美转换指南

前言 在 C 编程中,我们经常需要在基础数据类型(如 int、double、float、long、unsigned int 等)与 string 类型之间进行转换。这种转换对于处理用户输入、格式化输出、数据存储等场景至关重要。 本文将详细介绍如何在 C 中实现这些转换。 文…

刚实习的大学生如何避免招聘骗局?

大学生在求职过程中,常常成为招聘骗局的受害者。为了避免这种情况,大学生需要提高警惕,采取一系列措施来防范招聘骗局。以下是一些建议: 首先,大学生应当保持警惕,不轻信招聘信息。在求职时,务…

使用 Elasticsearch 设计大规模向量搜索

作者:Jim Ferenczi 第 1 部分:高保真密集向量搜索 简介 在设计向量搜索体验时,可用选项的数量之多可能会让人感到不知所措。最初,管理少量向量很简单,但随着应用程序的扩展,这很快就会成为瓶颈。 在本系列…

Linux下的/etc/resolv.conf

Linux下的/etc/resolv.conf 文件用于配置域名解析器的设置,告诉系统在解析域名时要查询哪些DNS服务器。nameserver:指定DNS服务器的IP地址。你可以列出多个nameserver,系统将按顺序尝试它们,直到找到可用的DNS服务器。 nameserve…

ip地址公和内有什么区别

在数字化世界中,IP地址扮演着至关重要的角色。它不仅是网络设备的身份标识,更是信息传输的桥梁。然而,并非所有IP地址都拥有相同的属性和功能。公有IP地址和私有IP地址,作为IP地址的两大类别,它们存在着显著的差异。虎…

C#A类调用B类的方法,在方法中更新B类的控件

1.首先在B类中定义静态成员 public static B bnull; 其次,在B类构造函数中给静态成员初始化 public B(){B this;InitializeComponent();} 在A类中,调用更新B类控件的方法 B.b.Method("已通过"); 2.如果当前方法所在的线程不是UI线程&…

成都百洲文化传媒有限公司电商服务的领航者

在当今数字化浪潮席卷全球的时代,电商行业以其独特的魅力和无穷的潜力,正成为推动经济发展的重要引擎。在这一领域,成都百洲文化传媒有限公司以其专业的电商服务和创新的营销理念,成为了行业的佼佼者,引领着电商服务的…