服务器故障:
某医药公司服务器组建RAID5磁盘阵列,阵列内两块硬盘先后离线,直接造成服务器宕机。服务器操作系统为RedhatLinux,承载基于Oracle数据库搭建的OA业务系统,业务数据价值高、恢复时效要求紧急。由于该OA配套Oracle版本早已停止技术支持,客户需求为:完整恢复业务数据,同时尽可能复原原有操作系统环境。
阵列配置的热备盘未自动启用;所有硬盘未检出明显物理硬件故障,也不存在阵列同步动作,具备较高的数据恢复可行性。
服务器数据恢复方案:
1、保护原始故障环境:关闭服务器,禁止再次开机,防止二次破坏数据。
2、对故障硬盘逐一做好编号标记,保证硬盘拆卸后可以按原有槽位还原。
3、将硬盘接入只读设备,对全部故障磁盘执行全盘镜像备份。镜像完成后,原硬盘交还客户,后续所有恢复操作均基于镜像文件开展,直至数据验证无误,不再操作原始故障盘。
4、基于镜像文件解析RAID底层结构,确认原始RAID级别、条带规则、条带大小、校验方向、元数据(META)区域等关键参数。
5、根据解析得到的阵列参数搭建虚拟RAID5环境。
6、加载虚拟磁盘,解析底层文件系统。
7、校验虚拟RAID结构有效性;如果结构校验失败,重复第4~7步重新分析调整参数。
8、数据校验确认无误后,根据客户需求回迁数据。若继续使用原有硬盘,必须确认全盘镜像完成后再重建RAID,随后回迁数据。系统回迁可借助LinuxLiveCD;也可在故障服务器上额外挂载一块硬盘,先安装临时操作系统,再通过扇区级方式完成数据回迁。
9、数据交付完成后,北亚数据恢复中心将额外留存备份数据3天,用于兜底复核,规避遗漏问题。
服务器数据恢复时间:
磁盘镜像备份:约2小时
阵列解析、文件系统挂载与数据导出:约4小时
操作系统回迁与修复:约4小时
服务器数据恢复方案实施过程:
1、对所有故障硬盘完成全盘镜像,镜像检测结果显示:2号硬盘存在10~20个坏扇区,其余硬盘坏道检测正常。
2、开展RAID结构分析,最终确定有效阵列参数:盘序0、1、2、3,缺失3号盘,条带大小512扇区,校验模式为Adaptecbackwardparity(反向校验)。
3、按该参数搭建虚拟RAID并验证数据,200MB以上大型压缩包解压正常,无报错,判定阵列结构解析正确。将该虚拟RAID导出至一块独立硬盘,挂载文件系统,未发现明显异常。
4、在客户确认备份安全、同意后续操作后,使用全新硬盘替换存在坏扇区的2号盘,在原服务器上重建RAID。将存放恢复数据的硬盘通过USB接入故障服务器,使用LinuxSystemRescueCd引导服务器,北亚数据恢复工程师借助dd命令对根分区进行扇区级回写。
5、数据回写完成后尝试启动系统,但未能正常进入系统,后续针对系统故障开展专项排查修复。
6、系统复原详细过程:
a、dd扇区回写完毕后启动操作系统,启动流程报错。
初步判断该文件权限异常,使用SystemRescueCd重新引导检查,发现疑似出现问题的文件的访问时间、权限、文件大小信息全部异常,属于文件inode节点损坏,根源为2号盘坏道造成的数据损坏。
b、重新解析根分区结构,定位损坏的文件。利用0、1、3三块硬盘数据,对2号盘损坏区域做异或(XOR)运算补齐数据。补齐后校验文件系统,故障依旧存在;深入核查inode表,可见2号盘坏道区域内部分文件节点信息错乱。
虽然节点UID信息正常,但文件属性、大小、数据块指向全部错误。经过多轮底层分析,该损坏节点原始内容无法直接找回,北亚数据恢复工程师只能尝试修复节点或替换同版本正常文件。
c、结合文件系统日志,定位所有受影响文件,北亚数据恢复工程师修正对应节点信息。节点修复完成后,重新dd写入根分区,执行命令做只读检测,仍然报错。
底层分析发现:由于3号盘提前掉线,文件系统存在新旧inode信息冲突,多个节点指向同一数据块。
d、区分节点归属文件,清理无效错误节点,再次执行命令做只读检测,报错数量大幅减少。剩余报错文件集中在doc目录,不影响操作系统启动。执行命令强制修复文件系统。
7、修复完成重启服务器,操作系统正常启动。随后成功启动Oracle数据库以及OA应用程序,业务运行正常,无异常报错。本次RAID数据恢复与操作系统回迁复原工作全部完成。