服务器存储故障:
同友存储中组建的 raid5 磁盘阵列因为未知起因解体且无奈启动,raid5 中的虚拟机全副失落,其中 3 台虚拟机中的数据尤为重要,管理员分割咱们数据恢复核心要求对这 3 台虚拟机进行数据恢复。
服务器存储数据恢复过程:
1、剖析存储底层构造。
通过与管理员的沟通和对 raid 的剖析,搞清楚了故障存储的底层构造:多块物理磁盘组成一个存储池并划分多个 lun,须要进行数据恢复的为 lun1,lun1 蕴含了那 3 台虚拟机。如下图所示:
存储构造
2、重组 raid。
在对阵列进行剖析重组时,数据恢复工程师发现原存储中的 raid5 缺失 2 块硬盘,热备盘曾经启用。(还原故障产生的过程:第一块硬盘掉线后系统启动热备盘进行替换,第二块硬盘掉线时 raid5 处于降级状态,第三块硬盘掉线导致 raid 阵列解体。)这种状况下无奈通过校验间接获取失落盘的数据,只能应用和磁盘等同大小的全 0 镜像进行重组(因为依赖空镜像组成的 raid 文件系统构造会毁坏重大,相当于每个条带都会缺失两个块的数据,所以除非非凡状况不倡议如此操作)。
重建 raid
3、通过重组进去的 raid 阵列提取 LUN。通过对存储构造的进一步剖析获取到存储划分的 MAP 块,对各个 LUN 的数据块指针进行解析。北亚数据恢复工程师编写数据提取程序提取 LUN 碎片。提取实现后进行碎片拼接,组成残缺 LUN。
提取 LUN
4、导出 LUN 内所有的虚拟机并尝试启动,因为操作系统被毁坏,虚拟机无奈启动。
5、提取虚拟机内文件。因为虚拟机无奈启动,只能对虚拟机内的文件进行提取,但少数文件毁坏重大,只有多数文件可用,只好持续制订其余数据恢复计划。
6、通过剖析数据库页提取数据。本案例中的虚拟机内有 mysql 数据库,能够利用数据库底层存储的特殊性进行数据页扫描,提取数据。(因为父盘和快照文件都被损坏,惯例合并操作无奈实现快照合并,应用北亚自主研发的 VMFS 快照合并程序进行快照合并。)。
7、获取 mysql 数据页并剖析。依据 mysql 数据页特色进行数据页扫描并导出(innodb 引擎能够应用此计划;myisam 因为没有“数据页”这个概念,所以这个计划不可用),剖析零碎表获取各用户表信息,依据各个表的 id 进行数据页宰割。
8、提取表构造、提取记录。因为数据库应用工夫已久,表构造也曾多次变更,加上零碎表在存储损坏后有局部数据失落,记录提取过程遇到很大阻力。首先获取最后版本数据库各个表的表构造:合并快照前的父盘因为写入较早,应用第一块掉线盘进行校验获取到这个文件的残缺数据,而后提取出其中数据库各个表的表构造,之后管理员提供了最新版的数据库建表脚本。别离应用两组不同的表构造对数据记录进行提取并导入复原环境中的 mysql 数据库内,而后剔除各个表中因为表构造变更造成的乱码数据,最初将两组数据别离导出为.sql 文件。
9、数据验证。因为两个版本的数据库表构造不同,所以管理员分割利用工程师进行调试。调试实现后导入平台,平台调试胜利,本次数据恢复实现。