【北亚企安数据恢复】RAIDZ多块磁盘离线导致服务器崩溃的数据恢复案例

服务器数据恢复环境:
ORACLE SUN ZFS某型号存储,共40块磁盘组建存储池,其中的36块磁盘分为三组,每组12块,单个组使用ZFS特有的RAIDZ管理所有磁盘,RAIDZ级别为2;另外的4块磁盘作为全局热备。存储池内划分出若干空间映射到服务器使用。

服务器故障:
服务器正常运行过程中崩溃,服务器管理员重启设备后无法进入系统。通过对服务器和存储的初步检测以及和管理人员的沟通,排除了断电、进水、异常操作等外部因素。

服务器数据恢复过程:
1、将存储中所有磁盘编号后取出,硬件工程师检测后没有发现有硬盘存在硬件故障。以只读方式将所有磁盘进行扇区级全盘镜像,镜像完成后按照编号将所有磁盘还原到原存储中。后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于磁盘镜像文件分析底层数据,发现全局热备盘全部启用。
在ZFS文件系统中,ZPOOL(池)的子设备有很多种类:块设备、文件、磁盘等,本案例中三组RAIDZ作为子设备。
分析底层数据发现,三组RAIDZ中的两组RAIDZ分别启用的热备盘个数为1和3。北亚企安数据恢复工程师基于获取到的信息推断故障过程:热备盘启用后,在热备盘无冗余状态下,第一组RAIDZ中又有一块磁盘离线,第二组RAIDZ中则又有两块磁盘离线,ZPOOL进入高负荷状态;直到第二组RAIDZ中第三块盘离线,RAIDZ崩溃,ZPOOL下线,服务器崩溃。
ZFS管理的存储池中所有磁盘都由ZFS进行管理。常规RAID按照特定的规则组建池,并不关心文件在子设备上的位置;而ZFS会为每次写入的数据分配适当大小的空间,并计算得到指向子设备的数据指针。RAIDZ这种特性导致RAIDZ缺盘时无法直接通过校验得到数据,而必须将整个ZPOOL作为一个整体进行解析。
3、手工截取事务块数据,北亚企安数据恢复工程师编写程序获取最大事务号入口。
获取文件系统入口:

获取到文件系统入口后,北亚企安数据恢复工程师编写数据指针解析程序解析地址。
解析数据指针:

4、获取到文件系统入口点在各磁盘分布情况后,北亚企安数据恢复工程师手动截取&分析文件系统内部结构。由于入口分布所在的磁盘组无缺失盘,可直接提取信息。根据ZFS的数据存储结构顺利找到映射的LUN名称,然后找到其节点。
5、北亚企安数据恢复工程师编写解析程序解析ZFS&提取数据。
编辑配置文件,提取ZVOL卷:

6、由于磁盘组内缺盘数目较多,每个IO流都需要通过校验得到,提取进度极为缓慢。通过和用户沟通后得知用户需要恢复的数据在一个vhd内,经过分析发现这个vhd在ZVOL卷的尾部,计算其起始位置后从此位置开始提取数据。
7、Vhd提取完毕后,验证其内部的压缩包、图片、视频等文件,均可正常打开。
8、用户方对数据进行验证,经过验证发现恢复出来的文件数量与系统自动记录的文件数量基本一致,文件全部可以正常打开。本次服务器数据恢复工作完成。

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

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

相关文章

微信小程序之组件和API

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

使用arcgis pro是类似的控件样式 WPF

1.资源加载 <controls:ProWindow.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><extensions:DesignOnlyResourceDictionary Source"pack://application:,,,/ArcGIS.Desktop.Framework;component\Themes\Default.xaml&quo…

073:vue+mapbox 加载here地图(影像瓦片图 v3版)

第073个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载here地图的影像瓦片图。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共77行)相关API参考:专栏目标示例效果

Flink窗口(2)—— Window API

目录 窗口分配器 时间窗口 计数窗口 全局窗口 窗口函数 增量聚合函数 全窗口函数&#xff08;full window functions&#xff09; 增量聚合和全窗口函数的结合使用 Window API 主要由两部分构成&#xff1a;窗口分配器&#xff08;Window Assigners&#xff09;和窗口函…

[Error]连接iPhone调试时提示Failed to prepare the device for development.

环境&#xff1a; iPhone 7 Plus iOS 15.8 Xcode14.2 问题&#xff1a; 连接iPhone设备运行时&#xff0c;设备旁提示如下文案。 Failed to prepare the device for development. 这时强行点击运行按钮&#xff0c;会弹窗提示如下文案。 The run destination ZDMiPhone is n…

Java实现海南旅游景点推荐系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…

pytorch学习(一)线性模型

文章目录 线性模型 pytorch是一个基础的python的科学计算库&#xff0c;它有以下特点&#xff1a; 类似于numpy&#xff0c;但是它可以使用GPU可以用它来定义深度学习模型&#xff0c;可以灵活的进行深度学习模型的训练和使用 线性模型 线性模型的基本形式为&#xff1a; f ( x…

开发实践6_project

要求&#xff1a; ① 页面写入超链接&#xff0c;获取所有数据item&#xff0c;显示在另一个页面&#xff0c;1min内&#xff0c;即使数据有变化&#xff0c;页面内容不变&#xff0c;1min后点击超链接可获取最新信息&#xff1b; ② 使用middleware完成用户请求路径判断 &am…

机器学习之常用激活函数

人工神经网络中最基本的单元叫神经元,又叫感知器,它是模拟人脑神经系统的神经元(分析和记忆)、树突(感知)、轴突(传导)的工作原理,借助计算机的快速计算和存储来实现。它的主体结构如下: 激活函数常用类型有:线性激活函数、符号激活函数、Sigmoid激活函数、tanh激活…

rabbitmq基础教程(ui,java,springamqp)

概述&#xff1a;安装看我上篇文章Docker安装rabbitmq-CSDN博客 任务一 创建一个队列 这样创建两个队列 在amq.fanout交换机里面发送数据 模拟发送数据 发送消息&#xff0c;发现一下信息&#xff1a; 所以得出理论&#xff0c;消息发送是先到交换机&#xff0c;然后由交换机…

云边协同的 RTC 如何助力即构全球实时互动业务实践

作者&#xff1a;即构科技 由 51 CTO 主办的“WOT 全球技术创新大会 2023深圳站”于 11 月 24 日 - 25 日召开&#xff0c;即构科技后台技术总监肖潇以“边缘容器在全球音视频场景的探索与实践”为主题进行分享。 边缘计算作为中心云计算的补充&#xff0c;通过边缘容器架构和…

【SpringCloud】之Sentinel--服务容错的应用

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《SpringCloud开发之Sentinel--服务容错的应用》。…