Netapp数据恢复—Netapp存储误删除lun的数据恢复

简介: Netapp数据恢复数据恢复环境&故障:一台Netapp存储中有72块SAS硬盘,管理员误操作删除了12个lun。Netapp数据恢复过程:1、将故障Netapp存储中所有磁盘编号后取出。硬件工程师检测后没有发现有硬盘存在硬件故障,都可以正常读取。将所有硬盘以只读方式进行扇区级全盘镜像。镜像完成后将所有磁盘按照标记原样还原到原存储中。后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。2、基于镜像文件对分析所有磁盘底层数据,找到了盘头位置的超级块,分析超级块信息获取到磁盘组的起始块信息、磁盘组名称、逻辑组起始块号、raid编号等基本信息。

Netapp数据恢复数据恢复环境&故障:
一台Netapp存储中有72块SAS硬盘,管理员误操作删除了12个lun。

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

分析后得知:每个数据块占8个扇区,数据块后附加64字节数据块描述信息。根据数据块描述信息找到校验盘。
校验块描述信息样例:
2副本.jpg

3、依据每块磁盘8号扇区的磁盘信息以及磁盘末尾的RAID盘序表确定盘序。
分析盘序表:
3副本.jpg

Tips:Netapp的节点分布在数量众多的数据块内,在数据块内被统一组织为节点组。每个节点组的前64字节记录系统数据,后面的192字节作为一项来记录各个文件节点。
点样例图:
4副本.jpg

4、根据更新序列值获取到最新节点。解析节点中节点类型、逻辑块号、文件数量、文件大小、所占块数量和数据指针。获取节点在节点文件中的逻辑块号,从0开始计数。
5、获取目录项,并根据目录项节点编号找到对应节点。
节点截图:
5副本.jpg

6、北亚企安数据恢复工程师编写工具扫描节点信息。
扫描服务器节点信息:
6副本.jpg

节点扫描类:
7副本.jpg

节点扫描流程:
8副本.jpg

循环扫描完毕之后将所有扫描到的MBFP(元文件的节点标志)、MBFI(用户文件的节点标志)和DOC数据块分别写入到三个文件内,用于后续处理。
MBFI导入数据库流程:
9副本.jpg

函数执行完毕后查看数据库得到如下信息。
节点导入信息:
10副本.jpg

Tips:Netapp在更改inode节点时不是直接覆盖而是重新分配inode写入。单个文件的节点node_uid唯一不变,mbfi_usn会随着节点的变化而增大。存储划分的单个节点会作为LUN映射到服务器使用。根据file_size确定文件的大小。按照文件大小分组后再选取usn最大值的节点,然后跳转到MBFI文件的offset值偏移位置,取出节点。
节点样例:
11副本.jpg

7、获取到要提取的文件的Node之后,开始提取块设备文件。
提取块设备文件:
12副本.jpg

初始化完毕后,开始提取文件的各级MAP。本案例中提取的文件大小均大于1T,MAP层级为4,所以需要提取4次。第一级MAP默认只占用1个块,可以在程序内直接提取;后三级MAP在GetAllMap函数内提取。
8、由于NetApp使用JBOD组织LVM,用块号除以每块磁盘上的块数就可得到当前块所在的磁盘序号;块号取余块数得到数据块在此磁盘上的物理块号;物理块号乘以块大小得到数据块偏移位置。
9、由于本案例中块设备lun采用的是jfs2文件系统。因此需要通过解析jfs2文件系统来提取其中的数据库备份文件。
解析文件系统块信息:
13副本.jpg

LV类型及LV挂载信息区域:
14副本.jpg

10、解析由数个lun组成的oralce ASM文件系统,提取其中的数据库文件。
添加lun:
15副本.jpg

解析asm文件系统,提取出数据库文件:
16副本.jpg


Netapp数据验证及数据移交:

北亚企安数据恢复工程师对恢复出来的数据进行检测后没有发现异常。让用户方验证恢复出来的数据,经过用户方验证,确认恢复出来的数据完整有效,认可数据恢复结果。

相关文章
vscode中使用/deep/报错解决方案
vscode中使用/deep/报错解决方案
1171 0
|
6月前
|
弹性计算 运维 大数据
阿里云 ECS vs 轻量应用服务器:区别在哪?如何选择?
阿里云 ECS 是面向企业级用户和专业开发者的 IaaS 级弹性计算服务,资源灵活、性能强、扩展性高,适合高并发、大数据等复杂场景,但运维成本高;轻量应用服务器主打简单易用、一键部署,提供套餐化配置,成本低,适合个人开发者、中小企业搭建轻量级应用。选择时,技术强、业务复杂选 ECS;追求简单、低成本、业务轻量选轻量应用服务器,且业务增长可平滑迁移至 ECS。
789 6
|
9月前
|
机器学习/深度学习 安全 定位技术
2026美赛MCM/ICM A题之智能手机电池的连续时间数学模型附思路和Matlab参考代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。 🔥 内容介绍 图片 任务是构建一个连续时间数学模型,用于描述智能手机电池在实际使用场景下的荷电状态随时间的变化规律。该模型将被用于预测不同条件下电池的剩余使用时间,建模过程中默认手机搭载锂离子电池。 1 连续时间模型构建 构建通过连续时间方程或方程组表征电池荷电状态的模型。你可先从对电池耗
534 4
|
算法 数据库 数据安全/隐私保护
摘要认证,使用HttpClient实现HTTP digest authentication
这篇文章提供了使用HttpClient实现HTTP摘要认证(digest authentication)的详细步骤和示例代码。
1421 2
|
数据采集 API
京东:调用用户行为API分析购买路径,优化页面跳转逻辑
京东通过整合用户行为API,构建购买路径分析体系,运用马尔可夫链模型识别高损耗、断裂与冗余路径,优化页面跳转逻辑。实施流程合并、预加载及实时干预策略,转化率提升30.2%,路径缩短34.9%,跳转失败率下降78.7%,实现数据驱动的精细化运营。
|
机器学习/深度学习 人工智能 自然语言处理
探索AI驱动的个性化学习平台构建###
【10月更文挑战第29天】 本文将深入探讨如何利用人工智能技术,特别是机器学习与大数据分析,构建一个能够提供高度个性化学习体验的在线平台。我们将分析当前在线教育的挑战,提出通过智能算法实现内容定制、学习路径优化及实时反馈机制的技术方案,以期为不同背景和需求的学习者创造更加高效、互动的学习环境。 ###
891 3
|
算法 Java 测试技术
mybatis-plus雪花算法生成Id使用详解
mybatis-plus雪花算法生成Id使用详解
6400 0
mybatis-plus雪花算法生成Id使用详解
|
机器学习/深度学习 测试技术 计算机视觉
YOLOv11改进策略【Conv和Transformer】| ICCV-2023 iRMB 倒置残差移动块 轻量化的注意力模块
YOLOv11改进策略【Conv和Transformer】| ICCV-2023 iRMB 倒置残差移动块 轻量化的注意力模块
461 7
YOLOv11改进策略【Conv和Transformer】| ICCV-2023 iRMB 倒置残差移动块 轻量化的注意力模块
|
消息中间件 存储 监控
RabbitMQ如何保证消息可靠性?
RabbitMQ通过多种机制确保消息的可靠性,包括消息持久化、确认机制、消息重试与死信队列、消息去重、高可用性配置以及监控与告警机制。这些措施共同构成了RabbitMQ可靠消息传递的基础,帮助开发者在构建分布式系统时有效避免消息丢失和重复处理问题。理解并正确实施这些技术,将显著提高应用系统的稳定性和用户体验。
1040 14
|
Java 网络安全 Maven
Exception in thread "main" java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.sslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/X509TrustManager;)Lokhttp3/OkHttpClient$Builder; 问题处理
【10月更文挑战第26天】Exception in thread "main" java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.sslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/X509TrustManager;)Lokhttp3/OkHttpClient$Builder; 问题处理
924 2

热门文章

最新文章