【北亚企安数据恢复】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.mzph.cn/news/631511.shtml

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

相关文章

Dubbo分层设计之Exchange层

前言 Dubbo 框架采用分层设计,自上而下共分为十层。Exchange 层位于倒数第三层,它在 协议层 的下方、数据传输层的上方。 第一次看源码的时候,大家应该都会有一个疑问:都已经有 Transport 层了,为啥还要定义 Exchange…

JAVA调试webservice接口

java程序调试webservice接口可以使用调用工具进行调试,对应的调试工具 可在这个目录下面下载 SoapUI 下载地址:https://www,soapui.org/ 一、webservice项目可以使用soapUi 可以使用工具进行调试的前提是这个接口地址必须在前端的浏览器能够正常的打…

uniapp 获取外设键盘输入(扫码器/扫码枪/读卡器等)

前言 在使用uniapp开发收银机等设备时,常常会用到使用键盘输入的外设,如使用扫码器/扫码枪读取条形码/二维码等,及使用读卡器读取卡ID(需要读卡器支持键盘输入卡ID,此种方式只支持读取未加密的卡ID信息,读…

通过OpenIddict设计一个授权服务器03-客户凭证流程

在本部分中,我们将把 OpenIddict 添加到项目中,并实施第一个授权流程:客户端凭证流。 添加 OpenIddict 软件包 首先,我们需要安装 OpenIddict NuGet 软件包 dotnet add package OpenIddict dotnet add package OpenIddict.AspN…

uniapp+vue3打包问题记录

**背景:**打包app出现问题,只显示底部导航的文字,其他一片空白 1. pages.json文件:tabBar中的iconPath图标格式不支持svg,只支持:png, jpg, jpeg的格式,当图片改为.png的时候可以正常显示 2. …

【数学建模】2024年华数杯国际赛B题-光伏发电Photovoltaic Power 思路、代码、参考论文

1 问题背景 中国电力构成包括传统能源(如煤炭、石油、天然气)、可再生能源(如水电、风能、太阳能、核能)和其他形式的电力。这些发电模式在满足中国巨大的电力需求方面发挥着至关重要的作用。据最新数据显示,中国总发电量超过20万亿千瓦时,居世界第一。…

idea社区版 MybatisCodeHelperPro插件使用介绍

文章目录 一、插件介绍二、idea社区版安装MybatisCodeHelperPro插件三、问题记录1. DatabaseHelper插件 加载不了部分数据库链接的列信息2. DatabaseHelper插件 数据库列显示顺序错乱3. MybatisCodeHelperPro插件 数据库字段不提示4. MybatisCodeHelperPro插件 特殊字段增加反引…

Skywalking链路追踪

目录 一、简介1.1、APM系统1.2、SkyWalking 简介 二、快速入门2.1、下载、启动2.2、界面认识 三、持久化存储四、告警通知五、自定义追踪-细粒度追踪service方法 一、简介 1.1、APM系统 APM(Application Performance Monitoring)系统是一种用于监控和管…

VR风景园林虚拟仿真系统编辑工具支持可视化预览成本低

为了帮助更多人快速、高效地构建虚拟现实应用系统,提高开发效率,降低成本投入,VR虚拟现实交互系统编辑器作为一种用于创建和编辑虚拟现实应用程序的工具,采用可视化界面提示和简单操作就能快速制作VR虚拟现实交互系统。 VR虚拟现实…

使用jackson对java类中包含泛型属性的bean进行序列化和反序列化

最近在做项目时,需要对java的bean对象进行序列化转换为string字符串后,存入redis,然后再从redis中读取该string对象,反序列化为bean对象。正常的简单类型的对象使用jackson可以非常方便进行互为转换操作,但我们操作的对…

Qt OpenGL - 网格式的直角坐标系

Qt OpenGL - 网格式的直角坐标系 引言一、绘制3D网格1.1 绘制平行于y轴的线段1.2 绘制平行于三个轴的线段1.3 绘制不同的3D网格 二、网格式的直角坐标系三、参考链接 引言 在OpenGL进行3D可视化,只绘制三条坐标轴略显单薄,而绘制网格形式的坐标系则能更清…

leedcode刷题笔记day1

题目大意: 暴力解法 两个for循环(也是我一看到题目想到的方法) 枚举在数组中所有的不同的两个下标的组合逐个检查它们所对应的数的和是否等于 target 复杂度分析 时间复杂度:O(n2),这里 n 为数组的长度 空间复杂度:O(1)&#x…

canvas绘制不同样式的五角星(图文示例)

查看专栏目录 canvas实例应用100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

Windows无法格式化U盘怎么办?

U盘通常用于保存数据。有时,您可能需要格式化以擦除硬盘或修复错误等。通常,格式化过程可以通过Windows文件资源管理器、磁盘管理或Diskpart命令顺利进行,但有时会遇到Windows无法格式化U盘的情况。那么,Windows无法格式化U盘怎么…

uni-app的数据缓存

数据缓存uni.setStorage 将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。 参数名类型必填说明keyString是本地缓存中的指定的 keydataAny是需要存储的内容,只支持原生类型、及能够通过 JSON.string…

程序员第一次接私活需要注意什么?

终于有一篇只说大白话的程序员接私活指南文章了!程序员接私活,首先要关注合法和合理性 先来说合法性,这是程序员接私活的基本原则。不合规的产品不要做,不合法的需求不要做,原以为自己在赚钱,结果搞了半天啥…

1.2 虚拟环境

1.2 虚拟环境 创建好应用目录之后,接下来该安装Flask了。安装Flask最便捷的方法是使用虚拟环境。 虚拟环境是Python解释器的一个私有副本,在这个环境中你可以安装私有包,而且不会影响系统中安装的全局Python解释器。 虚拟环境非常有用&…

Docker registry镜像仓库,私有仓库及harbor管理详解

目录 registry镜像仓库概述 Docker 镜像仓库(Docker Registry): registry 容器: 私有仓库概述 搭建本地私有仓库示例 Harbor概述 harbor架构 详解构成 Harbor由容器构成 Harbor部署示例 环境准备 部署Docker-Compose服…

(2023版)斯坦福CS231n学习笔记:DL与CV教程 (4) | 神经网络与反向传播

前言 📚 笔记专栏:斯坦福CS231N:面向视觉识别的卷积神经网络(23)🔗 课程链接:https://www.bilibili.com/video/BV1xV411R7i5💻 CS231n: 深度学习计算机视觉(2017&#xf…

1月18日代码随想录二叉树搜索、验证二叉搜索树

700.二叉搜索树中的搜索 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。 示例 1: 输入:root [4,2,7,1,3], val …