您所在的位置:首页 > 成功案例 > RAID数据恢复

raid硬盘坏道导致文件系统节点信息错误的数据恢复案例

最新动态来源:本站原创点击数:134更新时间:2024/8/15

服务器数据恢复环境&故障:
一台ibm x3850服务器,有一组由5块硬盘组建的raid5磁盘阵列,上层是Redhat Linux操作系统,部署了一个oracle数据库。
raid5阵列中2块硬盘离线,阵列崩溃。经过检测发现该raid中的热备盘未激活,硬盘无物理故障,无明显同步表现。
 
服务器数据恢复方案:
1、关闭服务器,将所有磁盘标记后取出槽位。由硬件工程师检测是否有硬盘存在硬件故障,对存在硬件故障的硬盘进行处理。将所有磁盘以只读方式进行扇区级全盘镜像,镜像完成后将所有磁盘按照标记还原到原服务器中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析故障raid结构,得到原阵列中的盘序、条带大小、校验方向、条带规则以及meta区域等重组raid所必需的信息。
3、根据分析获取到的raid信息重组raid5阵列,并进行文件系统解释,对重组raid的结构做正确性检测,确认数据无误后回迁数据。
 
服务器数据恢复方案实施过程:
1、硬件工程师检测后发现所有硬盘均不存在硬件故障,读写正常。在对所有硬盘做镜像过程中,发现只有一块硬盘有10-20个坏扇区,其他硬盘均正常。
2、基于镜像文件分析原raid结构。
3、根据分析获取到的raid结构相关信息重组raid。重组raid后验证数据,发现200M以上的压缩包解压无报错。按照这一结构将raid生成到一块硬盘上,通过USB将该硬盘接到原服务器,通过linux SystemRescueCd启动故障服务器后使用dd命令进行全盘回写。
4、数据回写完成后无法进入操作系统,报错信息为:/etc/rc.d/rc.sysinit:Line 1:/sbin/pidof:Permission denied。工程师使用SystemRescueCd重启后检查发现文件的权限、时间、大小都有明显错误,对根分区再次分析,定位出错的/sbin/pidof/,发现报错原因是其中一块硬盘存在坏道。
5、通过其他盘针对存在坏道硬盘的损坏区域进行xor补齐并重新校验文件系统,依然有错误。工程师再次检查inode表,发现存在坏道硬盘的损坏区域有部分节点表现为下图中的55 55 55部分。
虽然节点中描述的uid正常存在,但大小、属性、最初的分配块全部是错误的。
6、通过日志确定原节点块的节点信息后进行修正,重新dd根分区,执行fsck -fn /dev/sda5/检测,报错情况如下图。
7、经过分析发现,节点信息新旧交集导致有多个节点共用数据块。工程师按节点所属的文件进行区别,清除错误节点后,再次执行fsck -fn /dev/sda5,依然有部分位于doc目录下的节点报错。由于不影响启动所以强行修复后重启系统,系统正常,启动数据库正常。
8、经过用户方仔细检测,确认恢复数据完整可用,认可数据恢复结果。