raid5磁盘阵列有3块硬盘掉线的解决方案-raid数据恢复案例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了raid5磁盘阵列有3块硬盘掉线的解决方案-raid数据恢复案例相关的知识,希望对你有一定的参考价值。

某公司使用了同友存储,采用raid5磁盘阵列,由于未知的原因导致存储忽然崩溃无法启动,raid5阵列中的虚拟机全部丢失,其中3台虚拟机为重要数据,需要主要针对该3台虚拟机进行数据恢复。

一、分析存储底层次结构,制定数据恢复方案。

通过与客户的沟通及对raid阵列的分析得出故障存储的底层结构为若干物理磁盘组成一个存储池,划分了多个lun,需要进行数据恢复的为lun1,其中包含重点恢复的3台虚拟机。如下图所示:
技术分享图片

二、尝试重组raid恢复raid阵列数据。

在对阵列进行分析重组时发现用户原存储中的raid5阵列共缺失2块硬盘,热备盘已经启用。(还原故障过程为:第一块硬盘掉线后系统启动热备盘进行替换,第二块硬盘掉线时raid5处于降级状态,第三块硬盘掉线导致raid阵列崩溃。)这种情况下通常无法通过校验直接获取丢失盘的数据,所以只能使用磁盘同等大小的全0镜像进行重组(由于依赖空镜像组成的raid文件系统结构会被严重破坏,相当于每个条带都会缺失两个块的数据,所以除非常情况下不建议如此)。
技术分享图片

三、通过重组的raid阵列提取LUN。

通过对存储结构的进一步分析我们可以获取到存储划分的MAP块,进而对各个LUN的数据块指针进行解析,通过编写数据提取程序(也可借助北亚数据恢复工具)提取LUN碎片。提取完成后进行碎片拼接,组成完整LUN。
技术分享图片

四、导出LUN内所有虚拟机,尝试启动。

因虚拟机名称涉及客户隐私且导出过程较为简单,此处不再赘述。导出虚拟机后尝试启动,同预想相同,操作系统被破坏虚拟机无法启动。

五、提取虚拟机内文件。

由于虚拟机无法启动,只能对虚拟机内的文件进行提取,但多数文件破坏严重,只有少数文件可用,只好继续制定其他数据恢复方案。

六、通过分析数据库页提取数据。

本次数据恢复的虚拟机内有mysql数据库,可以利用数据库底层存储的特殊性进行数据页扫描,提取数据。(注,虚拟机启用快照,父盘和快照文件都被损坏的情况下常规合并操作无法完成,使用本公司自主研发VMFS快照合并程序进行快照合并。)数据恢复过程截图如下
技术分享图片

七、获取mysql数据页并分析。

根据mysql数据页特征进行数据页扫描并导出(innodb引擎可以使用此方案,myisam因为没有“数据页”概念所以不可用),分析系统表获取各用户表信息,根据各个表的id进行数据页分割。因为表内容涉及用户隐私,此处未配图

八、提取表结构、提取记录。

因为数据库使用时间已久,表结构也曾多次变更,加上系统表在存储损坏后也有部分数据丢失,记录提取过程遇到很大阻力。首先获取最初版本数据库各个表的表结构:合并快照前的父盘因为写入较早,使用第一块掉线盘进行校验获取到这个文件的完整数据,然后提取出其中数据库各个表的表结构,之后客户方提供了最新版的数据库建表脚本。
分别使用两组不同表结构对数据记录进行提取并导入恢复环境中的mysql数据库内,然后剔除各个表中因为表结构变更造成的乱码数据,最后将两组数据分别导出为.sql文件。

九、数据验证,raid数据恢复成功。

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

以上是关于raid5磁盘阵列有3块硬盘掉线的解决方案-raid数据恢复案例的主要内容,如果未能解决你的问题,请参考以下文章

磁盘阵列3块有硬盘掉线使用第二种校验方式恢复数据

raid5两块硬盘掉线,里面是数据库如何恢复数据

阵列有2块硬盘掉线了怎么解决

服务器1块硬盘掉线后重建raid5并同步数据

面对HP MSA存储中硬盘掉线的情况,学会这种解决方式至关紧要

北亚服务器数据恢复3个磁盘组成的raid5中1个硬盘掉线,阵列出现故障,分区不能识别的数据恢复案例