服务器数据恢复—OneFS文件系统下数据被删除的数据恢复案例

news2024/12/27 13:51:24

服务器数据恢复环境&故障:
EMC NAS(Isilon S200),共3个节点,每个节点配置12块STAT硬盘。数据分两部分:一部分数据为vmware虚拟机(WEB服务器),通过NFS协议共享到ESX主机;另一部分数据为视频教学文件,通过CIFS协议共享给虚拟机(WEB服务器)。
外部入侵导致视重要数据被删除,其中包括MSSQL数据库,MP4、ASF和TS类型的视频教学文件。主要是删除了NFS共享的所有数据(虚拟机),而CIFS共享的数据则没有影响。

服务器数据恢复过程:
1、在Isilon的web管理界面操作将设备关机,将所有硬盘编号后取出,以只读方式将所有磁盘进行扇区级全盘镜像,镜像完成后将所有磁盘按照原样还原到原存储中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。

Tips:Isilon使用的是分布式文件系统OneFS。在Isilon存储集群中,每个节点都是一个单一的OneFS文件系统,因此Isilon支持横向扩展,且不会影响正在使用的数据。在集群工作时,所有节点提供相同的功能,节点与节点之前没有主备之分。当用户往集群中存储文件时,OneFS层会将文件分成128K的片段分别存到不同的节点中,而在节点层又会将128K的片段分成8K的小片段分别存到该节点的不同硬盘中。而用户文件的Indoe信息、目录项及数据MAP则会分别存储在所有节点中,这样可以确保用户不管从那个节点都可以访问到所有数据。Isilon在初始化时会让用户选择相应的冗余模式,不同的冗余模式所提供的数据安全级别也不一样(默认3个节点采用N+2:1模式)。

2、由于数据是被删除的,因此不用过多考虑存储的冗余级别,重点需要分析文件删除后,文件Indoe及数据MAP是否发生变化。和用户方沟通后得知被删除的虚拟磁盘文件都在64G或以上,并且存储中不存在其他类型的大文件。北亚企安数据恢复工程师编写程序扫描所有文件Indoe,将大小等于或者大于64G的文件Indoe都扫描出来。分析扫描出来的Indoe后发现Indoe中记录的数据MAP位置,其index指向的内容已不再是正常数据,并且所有节点上的Indoe均是同样的情况。仔细分析Inode,发现大文件的数据MAP会有多层(树结构),并且数据MAP中会记录文件的唯一ID,因此可以尝试找到文件最底层的数据MAP。尝试对文件最底层的数据MAP做遍历跟踪操作,发现最低层的数据MAP果然还在。
3、编写程序从文件的Inode中取出文件的唯一ID,然后对所有符合该ID的数据MAP做聚合。根据数据MAP中的VCN号做排序,发现每个文件的前17088项数据MAP都不存在,也就意味着每个文件的前17088项数据无法恢复。
4、经过换算发现丢失的数据MAP项数据量很小,而删除的全部是虚拟机的vmdk文件(NTFS文件系统),而NTFS文件系统的MFT基本都在3G的位置,也就是说只需要在每个vmdk文件的头部手动伪造一个MBR和DBR就可以解释vmdk里面的数据。编写程序解释扫描到的数据MAP,并根据VCN号的顺序导出数据,没有MAP的情况保留为零。
5、编写好程序后尝试导出一个vmdk文件,发现导出的vmdk文件比实际要小,并且vmdk中MFT的位置也与自身描述不符。随机验证了几个MAP发现都能指向数据区,而程序解释MAP的方式也都没有问题。考虑到各种可能性后,根据数据MAP进行验证,发现文件是稀疏的。
6、修改代码,重新导出刚才的vmdk,这次vmdk大小符合实际大小,且MFT的位置也在相应位置。手工伪造一个MBR,分区表以及DBR,再用开发的文件系统解释工具成功解释文件系统,导出vmdk里面的数据库及视频文件。
在验证了此vmdk中的数据库及视频文件没问题后,批量导出所有重要的vmdk文件,再手工一个一个的去修改每个vmdk文件。

7、所有重要的数据恢复完成后,由用户方安排工程师对恢复的数据做完整性及准确性检测,经过仔细验证,确定数据完全没有问题。

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

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

相关文章

【数据库】MySQL表的基本查询

关于表的增删查改主要分为CRUD:Create(创建), Retrieve(读取),Update(更新),Delete(删除) 目录 1.Creat(增加内容) 1.1指定列插入 1.2全列插入 1.3多行插入 1.4插入冲突更新 1.5替换 2.R…

Springboot3.x.x使用SpringSecurity6(一文包搞定)

SpringSecurity6 什么是SpringSecurity? Spring Security 是一个强大的、高度可定制的身份验证(Authentication)和访问控制(Authorization)框架。它是 Spring 框架家族的一员,主要用于保护基于 Java 的应用程序&#…

鸿蒙开发有必要学吗

在科技飞速发展的今天,新的技术不断涌现,开发者们也面临着众多选择。其中,鸿蒙开发成为了一个备受关注的话题。那么,鸿蒙开发有必要学吗? 一、鸿蒙系统的崛起 鸿蒙操作系统是华为推出的一款面向全场景的分布式操作系统。它的出现…

CPU飙高排查步骤

1:top指令(查看进程信息) top指令:查看进程运行信息 此处1313占用90多CPU 2:ps指令(查看进程中每个线程信息,锁定问题线程) 查看进程里每个线程的详细占用 ps H -eo pid,tid,%cpu | grep 1313ps H:查看进…

信息学奥赛初赛天天练-83-NOIP2014普及组-基础题2-输入设备、输出设备、操作系统、二进制、整数除法、while、do while循环

1 NOIP 2014 普及组 基础题2 4 以下哪一种设备属于输出设备( ) A 扫描仪 B 键盘 C 鼠标 D 打印机 5 下列对操作系统功能的描述最为完整的是( ) A 负责外设与主机之间的信息交换 B 负责诊断机器的故障 C 控制和管理计算机系统的各种硬件和软件资源的使用 D 将没有程序编译成目…

解决微服务调用失败之 Name or service not known

在微服务启动之后,调用后台接口报错,如下: Name or service not known通过在Eureka控制台查看服务注册情况,发现服务已经注册上来,并且使用了主机名(非Ip)进行了注册。 如下图: 查阅资料得知,…

【时时三省】(C语言基础)指针进阶 例题2

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 第一个arr 数组名相当于首元素地址 因为他没有放到strlen内部 也没有取地址 strlen是找\0 找不到\0就不会停下来 所以它打印的就是随机值 第二个arr0 首元素地址加零还…

谁还不知道用ChatmoneyAI写短剧脚本,真能火

本文由 ChatMoney团队出品 现在大家打开抖音、小红书,琳琅满目,目光所能及的都是各种吸精剧情的小短剧,虽然这些短剧的制作成本低,但是作为编剧的要写脚本,可不认为这么容易啊......... 接下来我给大家推荐一下使用Ch…

2024年全国大学生数学建模竞赛(B题) 建模解析|生产过程中的决策问题|小鹿学长带队指引全代码文章与思路

我是鹿鹿学长,就读于上海交通大学,截至目前已经帮200人完成了建模与思路的构建的处理了~ 本篇文章是鹿鹿学长经过深度思考,独辟蹊径,实现综合建模。独创复杂系统视角,帮助你解决国赛的难关呀。 完整内容可以…

分布式系统漫谈:从一致到共识

0 前言 本文将以**分布式系统的基本组成为出发点,详细探讨分布式系统的发展历程;逐步展开到分布式系统构成的核心要素,分析这些核心要素会对系统造成怎样的影响、以及影响的不同表现形式;最后探讨如何构建基本可用的分布式系统**…

MySQL-35个DQL练手题(难)

第1题 取得每个部门最高薪水的人员名称 第一步:取得每个部门最高薪水 select max(sal) topsal, deptno from emp group by deptno;第二步:将上面第一步的查询结果当做一张临时表t,进行表连接,条件是:t.deptnoe.deptn…

【Python基础】条件控制语句

本文收录于 《Python编程入门》专栏,从零基础开始,分享一些Python编程基础知识,欢迎关注,谢谢! 文章目录 一、前言二、Python 条件控制语句2.1 if语句2.2 if-else语句2.3 if-elif-else语句2.4 if语句的嵌套2.5 match-c…

P3631 [APIO2011] 方格染色

~~~~~ P3631 [APIO2011] 方格染色 ~~~~~ 总题单链接 思路 ~~~~~ 用 1 1 1表示红色, 0 0 0 表示蓝色, c o l [ i ] [ j ] col[i][j] col[i][j] 表示第 i i i 行,第 j j j 列的颜色。发现 i ≥ 2 , j ≥ 2 i\geq 2,j\geq 2 i≥2,j≥2 时&…

机器人领域顶级期刊会议盘点

顶级会议 International Conference on Robotics and Automation (ICRA) IEEE International Conference on Intelligent Robots and Systems (IROS) Robotics: Science and Systems (RSS) IEEE/RSJ International Conference on Human-Robot Interaction (HRI) 顶级期刊 …

Spring Boot项目中集成JWT进行身份验证

什么是JWT? JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在网络应用环境中安全地传递信息。它主要用于在客户端和服务器之间传递经过签名的 JSON 数据,以确保数据的完整性和真实性。 1.JWT 的结构…

2024国赛数学建模C题思路模型

完整的思路模型请查看文末名片

java项目热部署

idea java项目热部署

实验三 数组和字符串的使用

实验目的及要求 目的: 了解多维数组的创建和使用,掌握一维数组和二维数组的创建和使用及String和StringBuffer类的创建方法,掌握String类中常用方法的使用,掌握String类中equals()方法和””的区别,区分数组的length…

learn C++ NO.12——vector

前言 不知何时开始产生了不更新博客的习惯,开始编程学习也过了两年多了。恍惚了一个阶段,我觉得是时候恢复博客产出了,我认为写博客是一种好的学习的方式,不仅可以让你对已经学习过的知识又一遍回顾,还记录了你编程学…

2024年全国大学生数学建模竞赛(A题) 建模解析|“板凳龙” 闹元宵|小鹿学长带队指引全代码文章与思路

我是鹿鹿学长,就读于上海交通大学,截至目前已经帮200人完成了建模与思路的构建的处理了~ 本篇文章是鹿鹿学长经过深度思考,独辟蹊径,实现综合建模。独创复杂系统视角,帮助你解决国赛的难关呀。 完整内容可以…