磁盘坏了? 数据丢了?教你轻松找回数据

简介:
故障描述
    HP FC MSA2000存储 整个存储空间由8块450GB SAS的硬盘组成,其中7块硬盘组成一个RAID5的阵列,剩余1块做成热备盘使用。由于RAID5阵列中出现2块硬盘损坏,而此时只有一块热备盘成功激活,因此导致RAID5阵列瘫痪,上层LUN无法正常使用。
    由于存储是因为RAID阵列中某些磁盘掉线,从而导致整个存储不可用。因此接收到磁盘以后先对所有磁盘做物理检测,检测完后发现没有物理故障。接着使用坏道检测工具检测磁盘坏道,发现也没有坏道。
    考虑到数据的安全性以及可还原性,在做数据恢复之前需要对所有源数据做备份,以防万一其他原因导致数据无法再次恢复。使用dd命令或winhex工具将所有磁盘都镜像成文件。备份完部分数据如下图:
  e8b0a03a1baaa093422e02e9f445587864ff94ae
1、分析故障原因
    由于前两个步骤并没有检测到磁盘有物理故障或者是坏道,由此推断可能是由于某些磁盘读写不稳定导致故障发生。因为HP MSA2000控制器检查磁盘的策略很严格,一旦某些磁盘性能不稳定,HP MSA2000控制器就认为是坏盘,就将认为是坏盘的磁盘踢出RAID组。而一旦RAID组中掉线的盘到达到RAID级别允许掉盘的极限,那么这个RAID组将变的不可用,上层基于RAID组的LUN也将变的不可用。目前初步了解的情况为基于RAID组的LUN有6个,均分配给HP-Unix小机使用,上层做的LVM逻辑卷,重要数据为Oracle数据库及OA服务端。
2、分析RAID组结构
    HP MSA2000存储的LUN都是基于RAID组的,因此需要先分析底层RAID组的信息,然后根据分析的信息重构原始的RAID组。分析每一块数据盘,发现4号盘的数据同其它数据盘不太一样,初步认为可能是hot Spare盘。接着分析其他数据盘,分析Oracle数据库页在每个磁盘中分布的情况,并根据数据分布的情况得出RAID组的条带大小,磁盘顺序及数据走向等RAID组的重要信息。
3、分析RAID组掉线盘
    根据上述分析的RAID信息,尝试通过北亚自主开发的RAID虚拟程序将原始的RAID组虚拟出来。但由于整个RAID组中一共掉线两块盘,因此需要分析这两块硬盘掉线的顺序。仔细分析每一块硬盘中的数据,发现有一块硬盘在同一个条带上的数据和其他硬盘明显不一样,因此初步判断此硬盘可能是最先掉线的,通过北亚自主开发的RAID校验程序对这个条带做校验,发现除掉刚才分析的那块硬盘得出的数据是最好的,因此可以明确最先掉线的硬盘了。
4、分析RAID组中的LUN信息
    由于LUN是基于RAID组的,因此需要根据上述分析的信息将RAID组最新的状态虚拟出来。然后分析LUN在RAID组中的分配情况,以及LUN分配的数据块MAP。由于底层有6个LUN,因此只需要将每一个LUN的数据块分布MAP提取出来。然后针对这些信息编写相应的程序,对所有LUN的数据MAP做解析,然后根据数据MAP并导出所有LUN的数据。
88a1c66da7313df7499fe44342cc301b0a8659e0 
LVM逻辑卷及VXFS文件系统修复
1、解析LVM逻辑卷
    分析生成出来的所有LUN,发现所有LUN中均包含HP-Unix的LVM逻辑卷信息。尝试解析每个LUN中的LVM信息,发现其中一共有三套LVM,其中45G的LVM中划分了一个LV,里面存放OA服务器端的数据,190G的LVM中划分了一个LV,里面存放临时备份数据。剩余4个LUN组成一个2.1T左右的LVM,也只划分了一个LV,里面存放Oracle数据库文件。编写解释LVM的程序,尝试将每套LVM中的LV卷都解释出来,但发现解释程序出错。
2、修复LVM逻辑卷
    仔细分析程序报错的原因,安排开发工程师debug程序出错的位置,并同时安排高级文件系统工程师对恢复的LUN做检测,检测LVM信息是否会因存储瘫痪导致LMV逻辑卷的信息损坏。经过仔细检测,发现确实因为存储瘫痪导致LVM信息损坏。尝试人工对损坏的区域进行修复,并同步修改程序,重新解析LVM逻辑卷。
3、解析VXFS文件系统
    搭建HP-Unix环境,将解释出来的LV卷映射到HP-Unix,并尝试Mount文件系统。结果Mount文件系统出错,尝试使用“fsck –F vxfs” 命令修复vxfs文件系统,但修复结果还是不能挂载,怀疑底层vxfs文件系统的部分元数据可能破坏,需要进行手工修复。
4、修复VXFS文件系统
    仔细分析解析出来的LV,并根据VXFS文件系统的底层结构校验此文件系统是否完整。分析发现底层VXFS文件系统果然有问题,原来当时存储瘫痪的同时此文件在系统正在执行IO操作,因此导致部分文件系统元文件没有更新以及损坏。人工对这些损坏的元文件进行手工修复,保证VXFS文件系统能够正常解析。再次将修复好的LV卷挂载到HP-Unix小机上,尝试Mount文件系统,文件系统没有报错,成功挂载。
检测Oracle数据库文件并启动数据库
1、恢复所有用户文件
    在HP-Unix机器上mount文件系统后,将所有用户数据均备份至指定磁盘空间。所有用户数据大小在1.2TB左右。部分文件目录截图如下:
  d83b02dedadb7b67206bf6908a273067fc094376
2、检测数据库文件是否完整
    使用Oracle数据库文件检测工具“dbv”检测每个数据库文件是否完整,发现并没有错误。再使用北亚自主研发的Oracle数据库检测工具(检验更严格),发现有部分数据库文件和日志文件校验不一致,安排高级数据库工程师对此类文件进行修复,并在次校验,直到所有文件校验均完全通过。
3、启动Oracle数据库
    由于我们提供的HP-Unix环境没有此版本的Oracle数据,因此和用户协调将原始生成环境带至北亚数据恢复中心,然后将恢复的Oracle数据库附加到原始生产环境的HP-Unix服务器中,尝试启动Oracle数据库,Oracle数据库启动成功。部分截图如下:
  175ceb75fe6f883da483966f7b32a02b6088730b
    由用户方配合,启动Oracle数据库,启动OA服务端,在本地笔记本安装OA客户端。通过OA客户端对最新的数据记录以及历史数据记录进行验证,并且有用户安排远程不同部门人员进行远程验证。最终数据验证无误,数据完整,数据恢复成功。

    由于故障发生后保存现场环境良好,没用做相关危险的操作,对后期的数据恢复有很大的帮助。整个数据恢复过程中虽然遇到好多技术瓶颈,但也都一一解决。最终在预期的时间内完成整个数据恢复,恢复的数据用户方也相当满意,Oracle数据库服务,OA服务端等所有服务能够正常启动。

相关文章
|
6月前
|
存储 运维 数据挖掘
服务器数据恢复-服务器硬盘掉线导致银行业务模块崩溃的数据恢复案例
某银行的某一业务模块崩溃,无法正常使用。排查服务器故障,发现运行该业务模块的服务器中多块硬盘离线,导致上层应用崩溃。 故障服务器内多块硬盘掉线,硬盘掉线数量超过服务器raid阵列冗余级别所允许的硬盘掉线数量,导致服务器瘫痪。可以通过修复硬盘物理故障,提取故障盘数据后重组raid的方案来恢复服务器数据。
|
6月前
|
运维 Windows
服务器数据恢复-服务器硬盘亮黄灯被踢,raid崩溃的数据恢复案例
服务器数据恢复环境: 一台3U的某品牌机架式服务器,Windows server操作系统,100块SAS硬盘组建RAID5阵列。 服务器故障: 服务器有一块硬盘盘的指示灯亮黄灯,这块盘被raid卡踢出后,raid阵列崩溃。
|
1月前
|
存储 数据挖掘 Windows
服务器数据恢复—异常断电导致raid信息丢失的数据恢复案例
由于机房多次断电导致一台服务器中raid阵列信息丢失。该阵列中存放的是文档,上层安装的是Windows server操作系统,没有配置ups。 因为服务器异常断电重启后,raid阵列可以正常使用,所以未引起管理员的注意。后续出现的多次异常断电导致raid报错,服务器无法找到存储设备,进入raid管理模块进行任何操作都会导致操作系统死机。管理员尝试多次重启服务器,故障依旧。
|
3月前
|
存储 运维 数据挖掘
服务器数据恢复—服务器进水,磁盘损坏的数据恢复案例
服务器数据恢复环境: 数台服务器+数台存储阵列柜,共上百块硬盘,划分了数十组lun。 服务器故障&检测: 外部因素导致服务器进水,进水服务器中一组阵列内的所有硬盘同时掉线。 北亚数据恢复工程师到达现场后发现机房内有一台存储柜中的机器都没有开机。和用户方沟通后得知:机房天花板渗水导致这台存储柜中最上方的两台服务器进水,其中一台服务器经过检修后可以正常工作,但是最上方的那台服务器则完全损坏。
服务器数据恢复—服务器进水,磁盘损坏的数据恢复案例
|
3月前
【服务器数据恢复】服务器硬盘磁头损坏的数据恢复案例
一台服务器上raid阵列上有两块硬盘出现故障,用户方已经将故障硬盘送到其他机构检测过,其中一块硬盘已经开盘,检测结果是盘片损伤严重;另一块硬盘尚未开盘,初步判断也存在硬件故障,这两块磁盘的数据没有成功恢复。用户抱着试一试的想法将2块故障磁盘送到北亚企安数据恢复中心进行检测和数据恢复。
|
4月前
|
数据挖掘
北亚服务器数据恢复-服务器断电导致raid5数据丢失的数据恢复案例
服务器数据恢复环境: 服务器有一组由12块硬盘组建的raid5阵列。 服务器故障&分析: 机房供电不稳导致服务器意外断电,工作人员重启服务器后发现服务器无法正常使用。 根据故障情况,北亚企安数据恢复工程师初步判断服务器故障原因是意外断电导致的raid模块损坏,经过详细检测发现是异常断电导致的raid信息丢失。raid信息丢失实际上是raid模块损坏的一种情况。
|
7月前
|
C++
从堆里找回“丢失”的代码
从堆里找回“丢失”的代码
|
8月前
|
安全 C++
61【磁盘损坏】C盘空间不足导致VS崩溃,项目损坏
【磁盘损坏】C盘空间不足导致VS崩溃,项目损坏
56 0
|
存储 监控 固态存储
EasyRecovery数据恢复可以轻松恢复删除和丢失的任何数据
Ontrack EasyRecovery易恢复是由全球著名数据厂商Kroll Ontrack出品的一款专业级数据文件恢复软件,号称最好的数据恢复软件!
181 0