服务器数据恢复—同友存储raid5阵列上层虚拟机数据恢复案例

服务器数据恢复环境:
某市教育局同友存储,存储中有一组由数块磁盘组建的raid5阵列,存储空间划分若干lun。每个lun中有若干台虚拟机,其中有数台linux操作系统的虚拟机为重要数据。
存储结构:

服务器故障:
raid崩溃导致存储无法启动。

服务器数据恢复流程:
1、将存储中所有磁盘编号后取出,由硬件工程师检测后没有发现有硬盘存在明显的硬件故障。以只读方式将所有磁盘进行扇区级全盘镜像,镜像完成后将所有磁盘按照编号还原到原存储中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析所有磁盘底层数据,获取重组raid所需要的相关信息,利用获取到的raid信息重组raid。在重组raid过程中发现该raid5缺失2块盘(还原存储raid崩溃的过程:第一块盘掉线后热备盘顶替,第二块盘掉线让RAID5处于降级状态,第三块盘掉线RAID崩溃),无法通过校验直接获取掉线盘的数据,只能使用与缺失磁盘同等大小的全0镜像进行重组(此方法只可用于紧急情况,通过全0镜像组建的raid结构会被严重破坏,相当于每个条带都会缺失两个块的数据)。
重建raid:

3、基于组建完成的raid分析存储结构,获取存储划分的MAP块。找到MAP块之后通过解析获取到各个LUN的数据块指针,北亚企安数据恢复工程师编写数据提取程序提取LUN碎片。碎片提取完成后通过拼接碎片组成完整LUN。
提取LUN:

4、导出LUN内所有虚拟机后尝试启动,由于操作系统被破坏,虚拟机无法成功启动。
5、由于虚拟机无法启动,数据恢复工程师只能对虚拟机内文件进行提取,对提取出的文件进行测试后发现大多数文件被破坏,只有少量的小文件可以打开。
虚拟机内取出的图片:

6、与用户方沟通后得知有虚拟机内有mysql数据库,基于数据库存储的特殊性,可以尝试通过扫描数据页来提取数据。找到这台有数据库的虚拟机后发现此虚拟机启用快照。在父盘和快照文件都被损坏的情况下,常规合并操作无法完成,尝试使用北亚企安自主研发VMFS快照合并程序进行快照合并。

7、根据mysql数据页特征扫描&导出数据页。分析系统表获取各用户表信息,根据各个表的id分割数据页。
8、由于数据库使表结构曾多次变更,系统表也有部分数据丢失,记录提取过程充满坎坷。首先获取最初版本数据库各个表的表结构:合并快照前的父盘因为写入较早,使用第一块掉线盘进行校验获取到这个文件的完整数据,然后提取出其中数据库各个表的表结构。用户方提供了最新版的数据库建表脚本。
9、分别使用两组不同表结构提取数据记录并导入恢复环境中的mysql数据库内,剔除各个表中因为表结构变更导致的乱码数据,最后将两组数据分别导出为.sql文件。
10、因为两个版本的数据库表结构不同,所以联系了用户方的应用工程师进行调试。调试完成后导入平台,经过用户方检测后确认绝大部分数据已经恢复出来,认可数据恢复结果。本次数据恢复工作完成。

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

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

相关文章

前端面试个人技能总结

1.html5新特性 语义化标签:header footer nav section artical aside媒体标签:qudio video (control autoplay loop ) source标签表单新增属性:输入类型type:email url data month week color;新增属性&…

slam14讲(第9,10讲 后端)

slam14讲(第9,10讲 后端) 后端分类基于滤波器的后端线性系统和卡尔曼滤波非线性系统和扩展卡尔曼滤波 BA优化H矩阵的稀疏性和边缘化H矩阵求解的总结 位姿图优化公式推导 基于滑动窗口的后端个人见解旧关键帧的边缘化 后端分类 基于滤波器的后…

AtCoder Beginner Contest 355 A~F

A.Who Ate the Cake?(思维) 题意 已知有三个嫌疑人,有两个证人,每个证人可以指出其中一个嫌疑人不是罪犯,如果可以排除两个嫌疑人来确定犯人,输出犯人的身份,如果无法确定,输出"-1"。 分析 …

AT_abc351_c [ABC351C] Merge the balls 题解

题目传送门 题目大意 你有一个空序列和 N N N 个球。第 i i i 个球 ( 1 ≤ i ≤ N ) (1 \leq i \leq N) (1≤i≤N) 的大小是 2 A i 2^{A_i} 2Ai​。 计算 N N N 操作后序列中剩余的球的个数。 你将进行 N N N 次运算。 在第 i i i 次操作中,你将第 i i…

springboot + Vue前后端项目(第十一记)

项目实战第十一记 1.写在前面2. 文件上传和下载后端2.1 数据库编写2.2 工具类CodeGenerator生成代码2.2.1 FileController2.2.2 application.yml2.2.3 拦截器InterceptorConfig 放行 3 文件上传和下载前端3.1 File.vue页面编写3.2 路由配置3.3 Aside.vue 最终效果图总结写在最后…

TabAttention:基于表格数据的条件注意力学习

文章目录 TabAttention: Learning Attention Conditionally on Tabular Data摘要方法实验结果 TabAttention: Learning Attention Conditionally on Tabular Data 摘要 医疗数据分析通常结合成像数据和表格数据处理,使用机器学习算法。尽管先前的研究探讨了注意力…

Hudi 多表摄取工具 HoodieMultiTableStreamer 配置方法与示例

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…

vue3添加收藏网站页面

结构与样式 <template><div class"web_view"><ul><li v-for"web in webList" :key"web.title"><a :href"web.src" :title"web.title" target"_blank"><img :src"web.img&…

微信小程序基础 -- 小程序UI组件(5)

小程序UI组件 1.小程序UI组件概述 开发文档&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/framework/view/component.html 什么是组件&#xff1a; 组件是视图层的基本组成单元。 组件自带一些功能与微信风格一致的样式。 一个组件通常包括 开始标签 和 结…

Cyber Weekly #8

赛博新闻 1、微软召开年度发布会Microsoft Build 2024 本周&#xff08;5.22&#xff09;微软召开了年度发布会&#xff0c;Microsoft Build 2024&#xff0c;发布了包括大杀器 Copilot Studio 在内的 50 项更新。主要包括&#xff1a; 硬件层面&#xff1a;与英伟达 & A…

3D牙科网格分割使用基于语义的特征学习与图变换器

文章目录 3D Dental Mesh Segmentation Using Semantics-Based Feature Learning with Graph-Transformer摘要方法实验结果 3D Dental Mesh Segmentation Using Semantics-Based Feature Learning with Graph-Transformer 摘要 本文提出了一种新颖的基于语义的牙科网格分割方…

民国漫画杂志《时代漫画》第16期.PDF

时代漫画16.PDF: https://url03.ctfile.com/f/1779803-1248612470-6a05f0?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络&#xff01;

代码随想录训练营总结

历经60天的训练营终于结束啦&#xff0c;感觉自己两个月前做的这个决定非常正确&#xff0c;非常感谢卡哥和卡哥助手&#xff0c;从一个代码没有系统刷题没有体系的小白到现在已经有了一些基础&#xff0c;也具备一些刷题的习惯和手感&#xff0c;如果是我自己没有规划的刷可能…

【C++】二分查找:在排序数组中查找元素的第一个和最后一个位置

1.题目 难点&#xff1a;要求时间复杂度度为O(logn)。 2.算法思路 需要找到左边界和右边界就可以解决问题。 题目中的数组具有“二段性”&#xff0c;所以可以通过二分查找的思想进行解题。 代码&#xff1a; class Solution { public:vector<int> searchRange(vect…

Camunda BPM主要组件

Camunda BPM是使用java开发的,核心流程引擎运行在JVM里,纯java库,不依赖其他库或者底层操作系统。可以完美地与其他java框架融合,比如Spring。除了核心流程引擎外,还提供了一系列的管理,操作和监控工具。 1,工作流引擎 既适用于服务或者微服务编排,也适用于人工任务管…

Leetcode42题:接雨水

1.题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,…

hadoop节点添加与删除测试

hadoop节点上下线 docker run -d --name hd1 -p 8888:8888 -p 2222:22 centos:basic init docker run -d --name hd2 -p 8889:8889 centos:basic init docker run -d --name hd3 centos:basic init# hosts echo "172.17.0.2 hadoop1 172.17.0.3 hadoop2 172.17.0.4 hadoo…

网络协议:CSMA/CD 和 CSMA/CA

当多台设备共享同一通信信道时&#xff0c;避免数据传输冲突至关重要。本文将探讨两种广泛使用的协议&#xff1a;CSMA/CD&#xff08;Carrier Sense Multiple Access with Collision Detection&#xff09;和CSMA/CA&#xff08;Carrier Sense Multiple Access with Collision…

【C语言】二叉树的实现

文章目录 前言⭐一、二叉树的定义&#x1f6b2;二、创建二叉树&#x1f3a1;三、二叉树的销毁&#x1f389;四、遍历二叉树1. 前序遍历2. 中序遍历3. 后序遍历4. 层序遍历 &#x1f332;五、二叉树的计算1. 计算二叉树结点个数2. 计算二叉树叶子结点的个数3. 计算二叉树的深度4…