服务器数据恢复故障描述

某公司的一台HP FC MSA2000服务器,服务器中搭建RAID5阵列,服务器正常使用过程中出现2块硬盘损坏并离线,而此时只有一块热备盘成功激活,因此导致RAID5阵列瘫痪,上层LUN无法正常使用,用户联系数据恢复中心进行服务器数据恢复。
由于服务器存储是因为RAID阵列中某些磁盘掉线,从而导致整个存储不可用。因此接收到磁盘以后先对所有磁盘做物理检测,检测完后发现没有物理故障。接着使用坏道检测工具检测磁盘坏道,发现也没有坏道。

服务器数据恢复过程:

1、备份服务器数据
考虑到数据的安全性以及可还原性,在做数据恢复之前需要对所有源数据做备份,以防万一其他原因导致数据无法再次恢复。使用dd命令或winhex工具将所有磁盘都镜像成文件。备份完部分数据如下图:
图一:

2、分析服务器故障原因
由于前两个步骤并没有检测到磁盘有物理故障或者是坏道,由此推断可能是由于某些磁盘读写不稳定导致故障发生。因为HP MSA2000控制器检查磁盘的策略很严格,一旦某些磁盘性能不稳定,HP MSA2000控制器就认为是坏盘,就将认为是坏盘的磁盘踢出RAID组。而一旦RAID组中掉线的盘到达到RAID级别允许掉盘的极限,那么这个RAID组将变的不可用,上层基于RAID组的LUN也将变的不可用。目前初步了解的情况为基于RAID组的LUN有6个,均分配给HP-Unix小机使用,上层做的LVM逻辑卷,重要数据为Oracle数据库及OA服务端。
3、分析服务器RAID组结构
HP MSA2000存储的LUN都是基于RAID组的,因此需要先分析底层RAID组的信息,然后根据分析的信息重构原始的RAID组。分析每一块数据盘,发现4号盘的数据同其它数据盘不太一样,初步认为可能是hot Spare盘。接着分析其他数据盘,分析Oracle数据库页在每个磁盘中分布的情况,并根据数据分布的情况得出RAID组的条带大小,磁盘顺序及数据走向等RAID组的重要信息。
4、分析RAID组掉线盘
根据上述分析的RAID信息,尝试通过北亚自主开发的RAID虚拟程序将原始的RAID组虚拟出来。但由于整个RAID组中一共掉线两块盘,因此需要分析这两块硬盘掉线的顺序。仔细分析每一块硬盘中的数据,发现有一块硬盘在同一个条带上的数据和其他硬盘明显不一样,因此初步判断此硬盘可能是最先掉线的,通过北亚自主开发的RAID校验程序对这个条带做校验,发现除掉刚才分析的那块硬盘得出的数据是最好的,因此可以明确最先掉线的硬盘了。
5、分析RAID组中的LUN信息
由于LUN是基于RAID组的,因此需要根据上述分析的信息将RAID组最新的状态虚拟出来。然后分析LUN在RAID组中的分配情况,以及LUN分配的数据块MAP。由于底层有6个LUN,因此只需要将每一个LUN的数据块分布MAP提取出来。然后针对这些信息编写相应的程序,对所有LUN的数据MAP做解析,然后根据数据MAP并导出所有LUN的数据。
图二:

6、解析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卷都解释出来,但发现解释程序出错。
7、修复LVM逻辑卷
仔细分析程序报错的原因,安排开发工程师debug程序出错的位置,并同时安排高级文件系统工程师对恢复的LUN做检测,检测LVM信息是否会因存储瘫痪导致LMV逻辑卷的信息损坏。经过仔细检测,发现确实因为存储瘫痪导致LVM信息损坏。尝试人工对损坏的区域进行修复,并同步修改程序,重新解析LVM逻辑卷。
8、解析VXFS文件系统
搭建HP-Unix环境,将解释出来的LV卷映射到HP-Unix,并尝试Mount文件系统。结果Mount文件系统出错,尝试使用“fsck –F vxfs” 命令修复vxfs文件系统,但修复结果还是不能挂载,怀疑底层vxfs文件系统的部分元数据可能破坏,需要进行手工修复。
9、修复VXFS文件系统
仔细分析解析出来的LV,并根据VXFS文件系统的底层结构校验此文件系统是否完整。分析发现底层VXFS文件系统果然有问题,原来当时存储瘫痪的同时此文件在系统正在执行IO操作,因此导致部分文件系统元文件没有更新以及损坏。人工对这些损坏的元文件进行手工修复,保证VXFS文件系统能够正常解析。再次将修复好的LV卷挂载到HP-Unix小机上,尝试Mount文件系统,文件系统没有报错,成功挂载。
10、恢复所有用户文件
在HP-Unix机器上mount文件系统后,将所有用户数据均备份至指定磁盘空间。所有用户数据大小在1.2TB左右。部分文件目录截图如下:
图三:

11、检测数据库文件是否完整
使用Oracle数据库文件检测工具“dbv”检测每个数据库文件是否完整,发现并没有错误。再使用北亚自主研发的Oracle数据库检测工具(检验更严格),发现有部分数据库文件和日志文件校验不一致,安排高级数据库工程师对此类文件进行修复,并在次校验,直到所有文件校验均完全通过。
12、启动Oracle数据库
由于我们提供的HP-Unix环境没有此版本的Oracle数据,因此和用户协调将原始生成环境带至数据恢复中心,然后将恢复的Oracle数据库附加到原始生产环境的HP-Unix服务器中,尝试启动Oracle数据库,Oracle数据库启动成功。部分截图如下:
图四:

13、服务器数据验证
由用户方配合,启动Oracle数据库,启动OA服务端,在本地笔记本安装OA客户端。通过OA客户端对最新的数据记录以及历史数据记录进行验证,并且有用户安排远程不同部门人员进行远程验证。最终数据验证无误,数据完整,数据恢复成功。
由于故障发生后保存现场环境良好,没用做相关危险的操作,对后期的数据恢复有很大的帮助。整个数据恢复过程中虽然遇到好多技术瓶颈,但也都一一解决。最终在预期的时间内完成整个服务器数据恢复,恢复的数据用户方也相当满意,Oracle数据库服务,OA服务端等所有服务能够正常启动。

转载于:https://blog.51cto.com/sun510/2136124

【长文+图片】HP FC MSA2000服务器瘫痪数据恢复过程相关推荐

  1. HP EVA8400删除VDISK后数据恢复过程分步整理

    [故障描述] 某地法院一台HP EVA8400存储,2组扩展柜,物理磁盘由12个1T FATA磁盘(AG691A 454414-001)和10个300G 15K FC磁盘(AG690A 454411- ...

  2. 【服务器raid数据恢复】RAID5两块盘离线的数据恢复案例

    服务器数据恢复环境: raid5磁盘阵列: 10块磁盘,单盘容量1TB: 6号盘是热备盘. 服务器故障: 阵列中2块磁盘离线,黄色警报灯亮起.管理员对服务器初步检测,发现阵列磁盘序列号不能读取/无法通 ...

  3. Hp DL380服务器瘫痪如何恢复服务器数据(多图)

    服务器数据恢复故障简介: 需要进行数据恢复的是一台HP DL380服务器 三块300GSAS硬盘组成raid阵列,磁盘故障导致整个RAID组瘫痪,其中一块硬盘状态灯为红色.数据库存储在D分区,备份存储 ...

  4. 恢复服务器安装信息被破坏了,服务器存储瘫痪数据恢复成功案例-服务器数据恢复...

    一.服务器数据恢复故障描述 机房突然断电导致整个存储瘫痪,加电后存储依然无法使用.经过用户方工程师诊断后认为是断电导致存储阵列损坏. 整个存储是由12块日立硬盘(3T SAS硬盘)组成的RAID-6磁 ...

  5. 【服务器数据恢复】DELL PowerEdge服务器RAID5数据恢复案例

    服务器数据恢复环境: DELL PowerEdge服务器: 6块SCSI硬盘组成RAID5: LINUX REDHAT操作系统:  EXT3文件系统. 服务器故障情况: 服务器运行过程中有一块硬盘离线 ...

  6. 服务器系统坏了 其它盘数据恢复,服务器raid数据恢复,raid坏一般什么原因

    服务器raid数据恢复,raid坏一般什么原因 浏览量: 0 次  来源:未知  发布日期:2018-11-03 22:21:37 兆柏数据恢复为所有RAID设备和配置提供专业的数据恢复和数字取证服务 ...

  7. 【服务器数据恢复】华为某型号服务器raid6数据恢复案例

    服务器数据恢复环境: 华为某品牌服务器: 10块硬盘组成raid6: EXT3文件系统,划分2个lun. 服务器故障&分析: 服务器在工作过程中raid6瘫痪不可用,管理员对故障服务器的rai ...

  8. 【服务器存储数据恢复】华为OceanStor某型号存储raid5数据恢复案例

    服务器存储raid数据恢复环境: 华为OceanStor某型号存储,16块FC硬盘(包含一块热备盘)组成RAID5. 服务器存储raid故障: 该存储RAID5中的一块硬盘由于未知原因离线,热备盘上线 ...

  9. raid5数据恢复方法,服务器磁盘阵列数据恢复成功案例

    [物理服务器与逻辑存储介绍] 客户使用一台IBM 3850服务器,4块300GB SAS磁盘做的RAID5磁盘阵列.服务器操作系统为 windows2003 x64,跑有一个单节点Oracle,版本为 ...

最新文章

  1. LCS最大公共子序列【转载】
  2. Python高级编程:类和实例属性的查找顺序—mro查找
  3. 他读博期间连发3篇Science,28岁任武大教授后再发Nature!
  4. Linux 字符设备驱动开发基础(二)—— 编写简单 PWM 设备驱动
  5. SpringCloud介绍(一)
  6. Vue | 实现页面跳转刷新,在Vue页面中调用其他页面的方法
  7. Mr.J--JS学习(继承模式发展史)
  8. 红橙Darren视频笔记setContentView源码分析 xml加载的过程
  9. GO_00:Mac之Item2的配置安装
  10. ValidateAntiForgeryToken的用途,解释和示例
  11. 在非MVC环境下使用 Razor引擎
  12. 空气质量等级c语言编程,编程小白如何快速处理空气质量数据
  13. 网站seo淘宝客不能做了?我是怎么用网站做淘客月入过万的
  14. Unity图片优化神器 - Dither算法进阶方案
  15. 程序包com.wonhyoo.common.entity不存在, 找不到符号
  16. vue项目使用预渲染 进行seo优化
  17. Ajax介绍和基本使用
  18. 谷歌将发布全新搜索引擎,你期待吗?
  19. 计算机对人类发展历史的影响,【信息技术对人类社会发展有什么影响?】_人类 发展史_全球新能源网...
  20. 读书笔记《产品经理必懂的技术那些事儿》03-04

热门文章

  1. select count(1) 、select count(*) 、select count(字段)的区别、及性能
  2. 基本ROP之ret2libc2
  3. 微信小程序入门解读-③
  4. 学区摇号软件设计_上名校摇号的套路你懂得多少?
  5. 可靠性测试设备技术含量_智能降噪耳机可靠性测试标准
  6. matlab line怎么,matlab使用教程:matlab line命令怎么用
  7. python实现excel搜索_从几百个Excel中查找数据,用Python一分钟搞定
  8. Django admin操作
  9. 2013年专利代理人考试复习规划
  10. mt管理器c语言编译器,mt管理器下载_mt管理器免费正式版v2.4.2下载_czszjz游戏网