raid5阵列硬盘读写性能不稳定离线导致阵列崩溃的数据恢复案例
最新动态来源:本站原创点击数:33更新时间:2024/11/25
服务器存储数据恢复环境:
某品牌MSA2000FC存储中有一组由7块盘组建的RAID5阵列,另外还有1块硬盘作为热备盘使用。
基于RAID5阵列划分的几个LUN分配给小机使用,存储空间通过LVM管理,重要数据为Oracle数据库及OA服务端。
服务器存储故障:
RAID5阵列中2块硬盘离线,唯一的热备盘成功激活,RAID5阵列还是变得不可用,上层LUN无法使用。
服务器存储数据恢复过程:
1、将故障存储中所有磁盘标记后取出,由硬件工程师对所有磁盘做物理故障检测,检测后没有发现有磁盘存在物理故障,都可以正常读取。以只读方式将所有磁盘进行扇区级全盘镜像,镜像过程中没有发现有磁盘存在坏道。
2、由于所有磁盘经过检测都不存在物理故障或者坏道,基本上可以判断磁盘掉线的是磁盘读写不稳定造成的。故障存储的控制器通常会将某些性能不稳定的磁盘识别为坏盘,并踢出RAID。而一旦RAID中掉线的盘数达到该RAID级别允许掉盘的极限,这个RAID将变的不可用,上层基于RAID的LUN也无法正常使用。
基于镜像文件分析所有磁盘底层数据,获取到重组raid所需信息(RAID级别,条带规则,条带大小,校验方向,META区域等)并找到热备盘和2块掉线硬盘的掉线顺序,然后根据这些信息重组RAID。
3、raid重组完成后分析LUN在RAID中的分配情况,以及LUN分配的数据块MAP,将每一个LUN的数据块分布MAP提取出来。北亚企安数据恢复工程师编写程序解析所有LUN的数据MAP,然后根据数据MAP导出所有LUN的数据。
4、分析所有LUN,发现所有LUN中均包含LVM逻辑卷信息。尝试解析每个LUN中的LVM信息,一共发现三套LVM:第一个LVM中划分了一个LV,存放OA服务器端的数据;第二个LVM中也划分了一个LV,里面存放临时备份数据;剩下几个LUN组成一个LVM,也划分了一个LV,里面存放Oracle数据库文件。北亚企安数据恢复工程师编写解释LVM的程序,将每套LVM中的LV卷都解释出来,但是解释过程中出现错误。
5、分析程序报错的原因,由开发工程师debug程序出错的位置。文件系统工程师检测恢复出来的LUN,检测LVM逻辑卷的信息是否损坏。经过检测,发现LVM信息确实因为存储瘫痪而损坏。尝试人工修复损坏的区域,并同步修改程序,然后重新解析LVM逻辑卷。
6、搭建环境,将解释出来的逻辑卷映射到小机,并尝试挂载文件系统,结果文件系统挂载出错。尝试使用“fsck –F vxfs” 命令修复vxfs文件系统,修复后还是无法挂载。数据恢复工程师怀疑vxfs文件系统的元数据被破坏,需要修复。
7、分析解析出来的LV,根据VXFS文件系统的底层结构校验此文件系统的完整性。经过分析发现底层VXFS文件系统果然有问题,部分文件系统元文件损坏。人工修复这些损坏的元文件,保证VXFS文件系统能够正常解析。将修复好的逻辑卷挂载到小机上,并尝试挂载文件系统。这回没有报错,成功挂载。
8、在小机上挂载上文件系统后,将所有用户数据备份至指定空间。
9、使用Oracle数据库文件检测工具“dbv”检测每个数据库文件的完整性,没有发现错误。使用北亚企安自主开发的Oracle数据库检测工具检测,发现部分数据库文件和日志文件校验不一致。修复此类文件并再校验,直到所有文件校验均通过。
10、将恢复出来的Oracle数据库附加到原始生产环境的小机中,尝试启动Oracle数据库,Oracle数据库启动成功。
11、在用户方的配合下,启动Oracle数据库和OA服务端。在本地电脑上安装OA客户端,通过OA客户端验证最新的数据记录以及历史数据记录,并且安排不同部门工作人员进行远程验证。经过仔细验证,用户方确认数据完整可用,认可数据恢复结果。