服务器数据恢复环境:
同友存储,底层由数块物理硬盘组建的raid5磁盘阵列,存储池划分若干lun,每个lun下有数台虚拟机。
服务器故障:
未知原因导致存储崩溃,无法启动,虚拟机全部丢失,其中一个lun中的3台虚拟机数据尤为重要,需要恢复其中的数据。
服务器数据恢复过程:
1、将故障存储中的所有磁盘以只读方式进行全盘镜像备份,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始数据造成二次破坏。
2、基于镜像文件分析raid5阵列,发现故障存储中的raid5阵列缺失2块磁盘,热备盘已经启用。通过实际情况可以推断故障发生的大致过程:第一块硬盘掉线后raid5启动热备盘替换。第二块硬盘掉线后raid5降级,第三块硬盘掉线导致raid5阵列崩溃。这种情况下一般是无法通过校验直接获取到缺失盘的数据,只能使用磁盘同等大小的全0的空镜像进行raid重组(依赖空镜像组建的raid的文件系统结构会严重损坏,相当于每个条带都缺失两个块的数据,所以除特殊情况外不建议如此操作)。
重建raid:
北亚企安数据恢复——raid5数据恢复
3、通过重组出来的raid5阵列提取lun。通过对存储结构的进一步分析获取到存储划分的map块,对各个lun的数据块指针进行解析并由北亚企安数据恢复工程师编写程序提取lun碎片。碎片提取完成后进行碎片拼接,组成完整的lun。
提取lun:
北亚企安数据恢复——raid5数据恢复
4、导出lun内所有虚拟机并尝试启动,结果由于操作系统被破坏,虚拟机无法启动。
5、提取虚拟机内的文件,但虚拟机内的文件多数损坏严重,只有少数文件可用,只能通过其他方案进行恢复。
6、本次需要进行数据恢复的虚拟机内有mysql数据库,可以根据mysql数据库底层存储的特殊性扫描数据页并提取数据。
数据恢复过程截图:
北亚企安数据恢复——raid5数据恢复
7、根据mysql数据页特征扫描数据页并导出数据(仅适用于innodb引擎数据库,myisam引擎数据库没有“数据页”概念),分析系统表获取各用户表信息,根据各个表的id分割数据页。
8、因为该数据库的表结构变更过多次,存储故障导致系统表的部分数据丢失,所以记录提取过程非常痛苦(这里不赘述)。
获取最早版本数据库各个表的表结构。由于合并快照前的父盘因为写入较早,使用第一块掉线盘进行校验获取到完整数据,然后提取出其中数据库各个表的表结构。用户方提供了最新版本数据库的建表脚本。
分别使用两组不同表结构提取数据记录并导入到搭建好的环境中的mysql数据库内,剔除各个表中因为表结构变更所导致的乱码数据,最后将两组数据分别导出为.sql文件。
数据验证:
两个版本的数据库表结构不同,先联系用户方工程师进行调试,调试完成后导入平台进行测试,平台测试成功,本次数据恢复工作完成。
硅谷VR手势感知公司Leap Motion卖身 估值跌去九成
什么是传导干扰,什么是辐射干扰
全球制造业高端化竞争趋势日益明显
曼胡默尔拟收购博世持有Purolator公司一半股权
DP4301—SUB-1G高集成度无线收发芯片
同友存储raid5崩溃的数据恢复案例
本田经典跑车复活 移植思域动力
研究人员展示FeverPhone软件,利用手机温度传感器测量人体温度
lcd液晶面板全解析
decaNLP——同时处理十项自然语言任务的通用模型
HTC U Ultra开售两天销量却惨不忍睹,看来情怀也不是那么好卖
激光雷达让自动驾驶汽车成为现实的技术
一个DCN模型从嵌入和堆积层开始
蓄力向上!Longsys RDIMM企业级内存条迎来重大突破
HTTPS如何保证数据安全?讲得很细!
C++内存管理operator new和placement new
恩智浦与Amazon Web Services (AWS)携手合作,拓展互联汽车商机
iPhone xr到底有没有必要升级系统
基于MODBUS通信协议的低压交流配电柜智能监控系统
5G领先的唯一标志是商业模式领先