ITPub博客

首页 > IT基础架构 > 服务器/存储 > 【服务器数据恢复】同友存储无法启动的数据恢复案例

【服务器数据恢复】同友存储无法启动的数据恢复案例

原创 服务器/存储 作者:北亚数据恢复 时间:2023-05-05 14:02:24 0 删除 编辑

服务器数据恢复环境:

同友存储,底层由数块物理硬盘组建的raid5磁盘阵列,存储池划分若干lun,每个lun下有数台虚拟机。


服务器故障:

未知原因导致存储崩溃,无法启动,虚拟机全部丢失,其中一个lun中的3台虚拟机数据尤为重要,需要恢复其中的数据。


服务器数据恢复过程:

1、将故障存储中的所有磁盘以只读方式进行全盘镜像备份,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原

始数据造成二次破坏。


2、基于镜像文件分析raid5阵列,发现故障存储中的raid5阵列缺失2块磁盘,热备盘已经启用。通过实际情况可以推断故障

发生的大致过程:第一块硬盘掉线后raid5启动热备盘替换。第二块硬盘掉线后raid5降级,第三块硬盘掉线导致raid5阵列崩

溃。这种情况下一般是无法通过校验直接获取到缺失盘的数据,只能使用磁盘同等大小的全0的空镜像进行raid重组(依赖空

镜像组建的raid的文件系统结构会严重损坏,相当于每个条带都缺失两个块的数据,所以除特殊情况外不建议如此操作)。


重建raid:


3、通过重组出来的raid5阵列提取LUN。通过对存储结构的进一步分析获取到存储划分的MAP块,对各个LUN的数据块指针

进行解析并由北亚企安数据恢复工程师编写程序提取LUN碎片。碎片提取完成后进行碎片拼接,组成完整的LUN。


提取LUN:


4、导出LUN内所有虚拟机并尝试启动,结果由于操作系统被破坏,虚拟机无法启动。

5、提取虚拟机内的文件,但虚拟机内的文件多数损坏严重,只有少数文件可用,只能通过其他方案进行恢复。

6、本次需要进行数据恢复的虚拟机内有mysql数据库,可以根据mysql数据库底层存储的特殊性扫描数据页并提取数据。


数据恢复过程截图:


7、根据mysql数据页特征扫描数据页并导出数据(仅适用于innodb引擎数据库,myisam引擎数据库没有“数据页”概念 ),分析系统表获取各用户表信息,根据各个表的id分割数据页。

8、因为该数据库的表结构变更过多次,存储故障导致系统表的部分数据丢失,所以记录提取过程非常痛苦(这里不赘述)。

获取最早版本数据库各个表的表结构。由于合并快照前的父盘因为写入较早,使用第一块掉线盘进行校验获取到完整数据,

然后提取出其中数据库各个表的表结构。用户方提供了最新版本数据库的建表脚本。

分别使用两组不同表结构提取数据记录并导入到搭建好的环境中的mysql数据库内,剔除各个表中因为表结构变更所导致的

乱码数据,最后将两组数据分别导出为.sql文件。


数据验证:

两个版本的数据库表结构不同,先联系用户方工程师进行调试,调试完成后导入平台进行测试,平台测试成功,本次数据

恢复工作完成。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31380569/viewspace-2950119/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
从事服务器数据恢复、磁盘阵列数据恢(DEll、HP、IBM、华为、NetApp等),虚拟化数据恢复(VSAN、VMware、Kvm等),数据库数据恢复(Oracle、Sql Server、MySql、Mongodb等),小型机数据恢复等方面的。24h数据救援13439392933

注册时间:2016-08-02

  • 博文量
    1134
  • 访问量
    893918