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

全部博文(586)

文章存档

2024年(151)

2023年(218)

2022年(181)

2020年(12)

2019年(24)

我的朋友

分类: 服务器与存储

2023-02-02 12:00:47

服务器数据恢复环境&故障:
某单位同友存储设备,该存储有大于5台的虚拟机,其中有3台linux系统虚拟机存储重要数据。存储设备中组建的raid5由于未知原因崩溃导致存储无法启动。


存储结构:



服务器数据恢复过程:
1、对故障存储raid5磁盘阵列中所有磁盘数据以只读方式做镜像备份,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始数据造成二次破坏。
2、通过底层数据分析故障raid5结构相关信息,根据分析获取到的raid信息重组raid。重组raid过程中发现该raid5有2块磁盘缺失(第1块掉线盘掉线后由热备盘顶替,第二块磁盘掉线导致RAID5处于降级状态,第三块磁盘盘片划伤掉线{BANNED}最佳终导致RAID5崩溃),无法通过校验直接获取缺失磁盘的数据,只能使用磁盘同等大小的全0镜像进行重组(此方法只可用于紧急情况,因为依赖空镜像组建的raid文件系统结构会严重损坏,即每个条带都会缺失两个块的数据)。


重建raid:



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


提取LUN:



4、导出LUN内所有虚拟机并尝试启动,但是由于操作系统被严重破坏,虚拟机无法启动。
5、提取虚拟机内文件。提取完所有文件后对提取出来的文件进行测试,测试后发现大多数文件有不同程度的损坏,只有部分小文件可以正常打开。
6、与用户沟通后得知虚拟机内有mysql数据库,由于mysql数据库底层存储的特殊性,可以通过扫描数据页进行数据提取。在找到有mysql数据库的虚拟机后发现此虚拟机已经启用快照,父盘和快照文件都破坏的情况下无法进行常规合并操作,只能使用北亚企安自主研发的VMFS快照合并程序进行快照合并。





7、根据mysql数据页特征进行数据页扫描并导出(仅innodb引擎可使用此方案),分析系统表获取各用户表信息并根据各个表的id进行数据页分割。
8、由于该mysql数据库已经使用很长一段时间了,表结构也经过多次变更,在存储损坏后系统表也有部分数据丢失,在提取记录的过程碰到很多问题。
首先获取{BANNED}最佳初版本数据库各个表的表结构:合并快照前的父盘因为写入较早,使用{BANNED}中国第一块掉线盘进行校验获取到这个文件的完整数据,然后提取出其中数据库各个表的表结构,之后用户方提供了{BANNED}最佳新版的数据库建表脚本。
9、分别使用两组不同表结构提取数据记录并导入到搭建好的mysql数据库内,剔除各个表中因为表结构变更造成的乱码数据,然后将两组数据分别导出为.sql文件。
10、联系用户方应用工程师进行调试,把恢复出来的数据导入平台后调试成功,数据恢复完成。
阅读(267) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~