【服务器数据恢复】OneFS文件系统下误删除文件的数据恢复案例

news2024/11/19 19:24:56

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

 

服务器数据恢复环境:
EMC Isilon S系列群集存储系统,3个节点,每个节点配置12块STAT硬盘。该存储系统存放的数据是vmware虚拟机(WEB服务器)和视频文件。vmware虚拟机通过NFS协议共享到ESX主机,视频文件通过CIFS协议共享给vmware虚拟机(WEB服务器)。

 

服务器故障:
管理员由于误操作将该存储系统中NFS协议共享的vmware虚拟机、MSSQL数据库以及大量的MP4、ASF和TS类型的视频文件删除。

服务器数据恢复过程:
1、通过Isilon的web管理界面的集群关闭功能将存储设备正常关机,将存储系统中所有硬盘编号取出。由硬件工程师对所有磁盘进行硬件故障检测,经过检测所有磁盘均可正常读取,无物理故障。以只读方式将所有磁盘做全盘镜像,后续数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。镜像完成后将所有磁盘按照编号还原到存储设备中。

 

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

 

11、将所有数据恢复出来之后,交由用户方工程师对数据做完整性及准确性检测,经过反复检测,确认恢复出来的数据完整有效。本次数据恢复工作完成。

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

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

相关文章

js数组高阶函数——map()方法

js数组高阶函数——map方法 map()语法map()的基本使用map()的优缺点map()的使用场景去重双重for循环配合splie去重map循环配合Array.from去重set()去重filter…

es中索引那些事

0、前言 在了解倒排索引之前先理解下索引的作用: 查询数据的时候,最耗时的操作并不是CPU计算,也不是内存聚合,而是去磁盘将文档查到并拉取回来的过程。我们都知道在磁盘IO的过程中,顺序读写效率高于随机读写&#xf…

JavaWeb学习路线(4)——请求响应与分层解耦

一、概述 二、请求 (一)概念: 全名为HttpServletRequest,其目标是获取请求数据。 (二)简单请求: web端发送基本数据类型数据到服务器进行处理。 1、获取方式 (1)原…

ESP32学习之JSON,和接入心知天气

注意:手机热点或者网络不能开5.0GHz频段和WIFI6,不然ESP32连不上 心知天气账号(免费版即可),网站:心知天气 - 高精度气象数据 - 天气数据API接口 - 行业气象解决方案 (seniverse.com) V3的用户手册-天气实…

【业务功能篇29】Assert断言

业务场景: 当我们需要对一个接口方法验证是,在单元测试中,主要用于程序代码的调试或测试阶段 基本的使用就是assert condition,当 condition 为 true,就继续往下运行;当 condition 为 false,就抛…

MySQL - 第2节 - MySQL库的操作

1.创建数据库 创建数据库的SQL如下: CREATE DATABASE [IF NOT EXISTS] db_name [[DEFAULT] CHARSETcharset_name] [[DEFAULT] COLLATEcollation_name];说明: • SQL中大写的表示关键字,[ ]中代表的是可选项。 • CHARSET用于指定数据库所采用…

「实在RPA·证券数字员工」革新证券数字化现状

2022年1月《金融科技发展规划(2022——2025年)》提出“十四五”时期金融科技发展愿景,明确了金融科技发展的指导思想和4个基本原则、6个发展目标,确定了8项重点任务和5项保障措施,进一步明确金融科技发展方向。近年来&…

ADB WIFI 链接

ADB WiFi链接手机 必须在同一网络下(本人用的台式机网线手机连路由器WIFI) 1.先确认USB数据线是否成功链接了手机 adb devices不管前面设备是什么名字,但是后面必须为device状态才算链接成功了,offline状态是不行的 有些没开启…

Linux Debian Jenkins快速搭建配置并运行

Jenkins安装 参考Debian Jenkins Packageshttps://pkg.origin.jenkins.io/debian-stable/ 加Key curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \/usr/share/keyrings/jenkins-keyring.asc > /dev/null 加仓库 echo deb [signed-by/u…

什么是远程工具,远程工具推荐

在当今数字化时代,远程工作正在变得越来越普遍。这种趋势不仅使企业管理更加便利,节省了时间和资源,同时也使员工更加自由和灵活。许多远程工作都需要使用到远程工具。本文将对远程工具进行简介和阐述。 什么是远程工具 远程工具是一种数字…

类与对象知识总结+封闭类+const+this指针 C++程序设计与算法笔记总结(三) 北京大学 郭炜

//C程序到C程序的翻译 class CCar { public: int price; void SetPrice(int p); }; void CCar::SetPrice(int p) { price p; } int main() { CCar car; car.SetPrice(20000); return 0; }struct CCar { int price; }; void SetPrice(struct CCar * this, int p) { this-&g…

【ROS】URDF:统一机器人描述格式(XML)

1、简述 统一机器人描述格式(URDF)是描述机器人模型的 XML 文件,支持Xacro(XML宏),使用Xacro来引用已经存在的XML块,创建更短且可读的XML文件。 2、初始URDF描述文件 URDF描述文件为XML格式&…

测试左移-快速玩转Debug

目录 背 景 学习的意义 玩 转 Debug 一、基本介绍 二、断点设置 三、启动调试 四、调试技巧 定 位 问 题 总 结 背 景 一段代码的问题产生阶段可以分为:编译期和运行时 编译期的代码可以由工具(idea、eclipse)在程序编码过程中提示错误…

面对对象。

1.类: 类:是对象共同特征的描述。 对象:是真实存在的具体实例。 先设计类,才能创建对象并使用。 pulic class 类名{1.成员变量(代表属性,一般是名词)2.成员方法(代表行为&#x…

达梦主备守护集群相关概念和基本原理介绍

DM数据守护一主一备或一主多备是一种集成化的高可用、高性能数据库解决方案,是数据库异地容灾的首选方案。通过部署 DM 数据守护,可以在硬件故障(如磁盘损坏)、自然灾害(地震、火灾)等极端情况下&#xff0…

思科交换机与路由器基础命令(一)

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、Cisco交换机的命令行模式: 1、用户模式 2、 特权模式 3、 全局配置模式 4、 接口模式 5、退回命令 二、帮助机制 …

20. 算法之回溯算法

1. 概念 回溯算法实际上一个类似枚举的深度优先搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回(也就是递归返回),尝试别的路径。 回溯的处理思想&#xff0c…

必备:音乐的魅力,一边听歌一边练习英语!

音乐是一种跨越语言和文化的艺术形式,能够带给我们无限的感动和快乐。下面是我推荐的一些好听的英文歌曲,希望大家喜欢。 这首歌是英国歌手Ed Sheeran的代表作之一,曲调轻快,旋律优美,歌词简单易懂,非常容…

搞懂mysql事物隔离级别

事物是为交易而生 事物的英文单词 TRANSACTION,就是交易的意思. 交易和事物是一个东西. mysql的事物的4种隔离级别 mysql的事物隔离级设计的一点也不高级 隔离级别只是一个很烧脑的概念,并不是什么高大上的技术. RU,全称read-uncommitted, 中文翻译:读未提交,能够读到未提交…

static关键字在C语言中的作用

static关键字有三个主要作用: 1.修饰全局变量 2.修饰函数 3.修饰局部变量 (1)首先是修饰全局变量,就是变量只能在本文件中使用,不能在其他文件中使用 代码示例:vi 1.c vi 2.c 编译:gcc 1.c 2.c -o main ./main …