Chinaunix首页 | 论坛 | 博客
  • 博客访问: 247869
  • 博文数量: 497
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-02 14:16
文章分类

全部博文(497)

文章存档

2024年(62)

2023年(218)

2022年(181)

2020年(12)

2019年(24)

我的朋友

分类: 服务器与存储

2024-05-23 13:19:20

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



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


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

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

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

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

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