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

服务器数据恢复环境:
同友存储;
5台以上的虚拟机,其中3台linux虚拟机存储重要数据。

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

服务器数据恢复流程:
1、制定恢复方案。
与服务器管理员沟通之后,数据恢复工程师查看存储底层数据,分析存储层次结构,分析结果如下:

存储结构

 

2、重组raid。
重组raid过程中数据恢复工程师发现此存储中的raid5缺失2块盘(第一掉线盘掉线后热备盘顶替,第二块盘掉线导致RAID5处于降级状态,最后第三块盘盘片划伤掉线,最终RAID崩溃),无法通过校验直接获取丢失盘的数据,所以只能使用和磁盘同等大小的全0镜像进行重组(此方法只可用于紧急情况,因为通过空镜像组成的raid文件系统结构会严重破坏,每个条带都会缺失两个块的数据)。



重建raid

 

3、提取LUN。
分析存储结构,获取存储划分的MAP块。在找到MAP块之后解析获取各个LUN的数据块指针,数据恢复工程师编写数据提取程序提取LUN碎片。提取完成后进行碎片拼接,组成完整LUN。



提取LUN

 

4、导出LUN内所有虚拟机,尝试启动不成功,提取虚拟机内文件。
导出虚拟机后尝试启动,但是由于操作系统被破坏虚拟机无法启动。在虚拟机无法启动的情况下只能先提取虚拟机内文件,取出文件后进行测试,发现大多数文件都被破坏,只有部分小文件可以打开。

5、与服务器管理员沟通,分析后期恢复可能性,制定后期恢复方案。
在与服务器管理员沟通后得知虚拟机内有mysql数据库,因为数据库底层存储的特殊性,可以通过扫描数据页进行数据提取。在找到此虚拟机后发现虚拟机启用快照,父盘和快照文件都被损坏的情况下常规合并操作无法完成,使用自主研发VMFS快照合并程序进行快照合并。

6、获取mysql数据页并分析。
根据mysql数据页特征进行数据页扫描并导出(innodb引擎可以使用此方案,myisam因为没有“数据页”这个概念,所以此方法不可用),分析系统表获取各用户表信息,根据各个表的id进行数据页分割。

7、提取表结构。
因为数据库使用时间已久,表结构也曾多次变更,加上系统表在存储损坏后有部分数据丢失,记录提取过程不顺利。首先获取最初版本数据库各个表的表结构:合并快照前的父盘因为写入较早,使用第一块掉线盘进行校验获取到这个文件的完整数据,然后提取出其中数据库各个表的表结构,服务器管理员提供了最新版的数据库建表脚本。

8、提取记录。
分别使用两组不同表结构对数据记录进行提取,导入到恢复环境中的mysql数据库内,然后剔除各个表中因为表结构变更造成的乱码数据,最后将两组数据分别导出为.sql文件。

9、验证数据。
因为两个版本的数据库表结构不同,所以联系了客户方的应用工程师进行调试,调试完成后导入平台,平台调试成功,数据恢复完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值