【Netapp数据恢复】Netapp存储lun被删除如何恢复数据?

Netapp存储数据恢复环境&故障情况:
某单位一台Netapp存储,该Netapp存储内共有数十块SAS硬盘。
工作人员误操作删除了Netapp存储中12个lun,删除的数据包括客户信息和其他重要数据。

Netapp存储数据恢复过程:
1、将故障存储中所有磁盘编号后取出,硬件工程师经过检测没有发现存在硬件故障。以只读方式将所有磁盘进行扇区级全盘镜像。镜像完成后将所有磁盘按照编号还原到原存储中,后续的数据分析和数据恢复操作都基于镜像文件进行。避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析底层数据,找到盘头位置的超级块。
3、通过分析超级块获取磁盘组的起始块信息、磁盘组名称、逻辑组起始块号、raid编号等信息。
分析超级块:

校验块描述信息样例:

分析盘序表:

Netapp的节点分布在数量众多的数据块内,在数据块内又被统一组织为节点组。每个节点组的前64字节记录一些系统数据,用192字节为一项来记录各个文件节点。根据用户级别分为两类:“MBFP”系统文件节点和“MBFI”用户文件节点。
节点样例图:

4、根据更新序列值获取到最新节点。解析节点中节点类型、逻辑块号、文件数量、文件大小、所占块数量、数据指针,获取节点在节点文件中的逻辑块号。
5、获取目录项,并根据节点编号找到对应节点。
获取Netapp内对应节点:

6、使用北亚企安自主研发程序扫描节点信息。
扫描服务器节点信息:

节点扫描类:
                               
节点扫描程序完整流程:

在循环扫描完毕之后将所有扫描到的MBFP、MBFI和DOC数据块分别写入到三个文件内。
7、将ScanNode扫描得到的MBFI和MBFP、Dir存入数据库。
MBFI导入数据库整体流程:

函数执行完毕后,查看数据库。
节点导入信息:

Netapp在更改inode节点时不会直接覆盖而是重新分配inode进行写入。单个文件的节点node_uid唯一不变,mbfi_usn会随着节点的变化而增大(正常情况下提取某个文件时使用usn值最大的节点)。一般情况下存储划分出的单个节点会作为LUN映射到服务器使用,根据file_size可以确定这个文件的大小,按照文件大小分组后再选取usn值最大的节点,跳转到MBFI文件的offset值偏移位置,取出节点。
节点样例图示:

8、在获取到要提取的文件的Node之后,开始提取块设备文件。
提取块设备文件:

初始化完毕后,开始提取文件的各级MAP。由于本次提取的文件大小均大于1T且MAP层级为4,所以需要提取4次。第一级MAP默认只占用1个块,所以在程序内直接提取,后三级MAP在GetAllMap函数内进行提取。通过块号计算数据块位置时,由于NetApp使用JBOD组织LVM,直接用块号除以每块磁盘上的块数可得到当前块所在的磁盘序号;再使用块号取余块数,得到数据块在此磁盘上的物理块号,物理块号乘以块大小,得到数据块偏移位置。
9、块设备lun使用的是aix小机的jfs2文件系统,解析jfs2文件系统并提取里面的数据库备份文件。
10、解析lvm。找到记录lvm描述信息的扇区,获取pv大小和pv序号;找到vg描述区,获取lv数和pv数;找到pv描述区,解析pp序号和pp数。
解析文件系统块信息:

LV类型及LV挂载信息区域:

11、解析8个1Tlun组成oralce ASM文件系统,提取其中的数据库文件。
添加8个lTlun:

解析asm文件系统,提取出数据库文件。

 
Netapp存储数据验证及数据移交:
北亚企安数据恢复工程师对恢复出来的数据进行检测后没有发现异常情况。用户方对恢复出来的数据进行验证后,确认恢复出来的数据完整有效。本次Netapp存储数据恢复工作完成。

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

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

相关文章

JS的异步与程序性能相关问题

1、现在与将来 1.1、分块的程序 可以把 JavaScript 程序写在单个 .js 文件中,但是这个程序几乎一定是由多个块构成的。这些块中只有一个是现在执行,其余的则会在将来执行。最常见的块单位是函数 从现在到将来的“等待”,最简单的方法&…

C#利用openvino部署PP-TinyPose人体姿态识别

【官方框架地址】 github.com/PaddlePaddle/PaddleDetection 【算法介绍】 关键点检测算法往往需要部署在轻量化、边缘端设备上,因此长期以来都存在一个难题:精度高、速度则慢、算法体积也随之增加。而PP-TinyPose的出世彻底打破了这个僵局&#xff0c…

43 tmpfs/devtmpfs 文件系统

前言 在 linux 中常见的文件系统 有很多, 如下 基于磁盘的文件系统, ext2, ext3, ext4, xfs, btrfs, jfs, ntfs 内存文件系统, procfs, sysfs, tmpfs, squashfs, debugfs 闪存文件系统, ubifs, jffs2, yaffs 文件系统这一套体系在 linux 有一层 vfs 抽象, 用户程序不用…

neo4j查询语言Cypher详解(五)--apoc

APOC (Awesome Procedures on Cypher)是一个Neo4j库,它提供了对其他过程和函数的访问,扩展了Cypher查询语言的使用。 apoc MATCH (n:Movie) CALL apoc.create.addLabels( n, [ n.genre ] ) YIELD node REMOVE node.genre RETURN node;附录 参考 apoc…

Selenium库和ChromeDriver谷歌驱动最新版安装

1.安装selenium库 使用pip安装第三方库selenium,速度较慢。 pip install selenium 使用国内清华源安装第三方库selenium,速度较快。 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple 2.安装谷歌浏览器驱动 驱动下载链接&#x…

【生成人工智能】Ray如何解决生成人工智能基础设施的常见生产挑战

这是我们生成人工智能博客系列的第一部分。在这篇文章中,我们讨论了如何使用Ray来生产常见的生成模型工作负载。即将发布的一篇博客将深入探讨Alpa等项目为什么要使用Ray来扩展大型模型。 生成的图像和语言模型有望改变企业的设计、支持、开发等方式。本博客重点关…

Android ValueAnimator属性动画ObjectAnimator使View颜色渐变,Kotlin

Android ValueAnimator属性动画ObjectAnimator使View颜色渐变,Kotlin 设置背景颜色渐变: private var iv: ImageView? nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activit…

如何使用 Python、Node.js 和 Go 创建基于 YOLOv8 的对象检测 Web 服务

1. 介绍 这是有关 YOLOv8 系列文章的第二篇。在上一篇文章中我们介绍了YOLOv8以及如何使用它,然后展示了如何使用 Python 和基于 PyTorch 的官方 YOLOv8 库创建一个 Web 服务来检测图像上的对象。 在本文中,将展示如何在不需要PyTorch和官方API的情况下…

IDEA 2023快捷键

1、main | sout | psvm 2、CTALD 复制当前行 3、ALT SHIFT ↕ 可以把当前行代码进行移动 4、CTRLH 类的继承继承结构 5、CTRLF12 类的成员 6、 SHIFTF6 统一修改变量 7、CTRLATLH 方法调用层级 8、ALT1 是否展示左侧菜单 9、ALTinsert 生成一些代码 10、CTRLP 提示参数…

【React系列】Redux(二)中间件

本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 中间件的使用 1.1. 组件中异步请求 在之前简单的案例中,redux中保存的counter是一个本地定义的数据…

给新手的25个建议

前言 最近知乎上,有一位大佬邀请我回答下面这个问题,看到这个问题我百感交集,感触颇多。 在我是新人时,如果有前辈能够指导方向一下,分享一些踩坑经历,或许会让我少走很多弯路,节省更多的学习的…

2024最新阿里云服务器地域(城市)对照表

2024年阿里云服务器地域分布表,地域指数据中心所在的地理区域,通常按照数据中心所在的城市划分,例如华北2(北京)地域表示数据中心所在的城市是北京。阿里云地域分为四部分即中国、亚太其他国家、欧洲与美洲和中东&…

【Python机器学习】k近邻的优缺点

neighbors分类器有两个重要参数:邻居个数和数据点之间距离的度量方法。实践中使用较小的邻居个数(3、5个)往往可以取到比较好的结果。 k-NN的优点是易于理解,通常不需要过多调节就可以得到不错的性能,构建模型的速度通…

Nginx 的 gzip 压缩

目录 1. 为什么要开启gzip 压缩 2.对网站配置文件进行修改 1. 为什么要开启gzip 压缩 nginx使用gzip压缩主要是为了降低网站的带宽消耗和提升访问速度。通过对页面进行压缩,可以减少传输的数据量,从而减少网络传输的时间和带宽消耗。 当浏览器接收到压…

Java常用API

一、实体JavaBean 接下来,我们学习一个面向对象编程中,经常写的一种类——叫实体JavaBean类。我们先来看什么是实体类? 1. 什么是实体类? 实体类就是一种特殊的类,它需要满足下面的要求: 接下来我们按照…

burpsuite 爆破

靶场搭建:phpstudy的安装与靶场搭建 - junlin623 - 博客园 (cnblogs.com) 账号字典:XXTK: 一些弱口令、fuzz字典 (gitee.com) 网盘链接:https://pan.baidu.com/s/1v5pAwaTwoeCnJgkUXf3iLQ?pwd=mllm 提取码:mllm --来自百度网盘超级会员V2的分享 一、暴力破解 - 基于…

将Django项目从本地上传至宝塔服务器(踩坑记录)

文章目录 写在前面配置本地文件配置宝塔面板解决遇到问题展示运行结果热门文章 自我介绍 ⭐2022年度CSDN 社区之星 Top6 ⭐2023年度CSDN 博客之星 Top16 ⭐2023年度CSDN 城市之星 Top2(苏州) ⭐CSDN Python领域 优质创作者 ⭐CSDN 内容合伙人 推荐热门…

jmeter下载及安装配置

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢软件测试面试题分享: 1000道软件测试面试题及答案📢软件测试实战项目分享: 纯接口项目-完…

lvs+keepalived+nginx实现四层负载+七层负载

目录 一、lvs配置 二、nginx配置 三、测试 3.1 keepalived负载均衡 3.2 lvskeepalived高可用 3.3 nginx高可用 主机IPlvs01-33 11.0.1.33 lvs02-3411.0.1.34nginx0111.0.1.31nginx0211.0.1.32VIP11.0.1.30 4台主机主机添加host [rootnginx01 sbin]# cat /etc/hosts 127.0.0.…

【力扣每日一题】力扣2478从链表中移除节点

题目来源 2478.从链表中移除节点 题目描述 给你一个链表的头节点 head 。 移除每个右侧有一个更大数值的节点。 返回修改后链表的头节点 head 。 示例 示例1: 输入:head [5,2,13,3,8] 输出:[13,8] 解释:需要移除的节点是 5 …