面对HP MSA存储中硬盘掉线的情况,学会这种解决方式至关紧要

一、HP MSA存储设备信息
1、存储空间由8块450GB SAS的硬盘组成。
2、7块硬盘组成一个RAID5的阵列,1块作为热备盘。
二、HP MSA存储设备故障描述
1、RAID5阵列中出现2块硬盘损坏,而此时只有一块热备盘成功激活,因此导致RAID5阵列瘫痪,上层LUN无法正常使用。
2、RAID阵列中某些磁盘掉线,导致整个存储不可用。因此需要先对所有磁盘做物理检测,检测完后确认硬盘无物理故障。接着使用坏道检测工具检测磁盘坏道,发现也无坏道。
三、HP MSA存储备份数据
考虑到数据的安全性以及可还原性,在做数据恢复之前需要对所有源数据做备份,以防万一其他原因导致数据无法再次恢复。使用dd命令或winhex工具将所有磁盘都镜像成文件。备份完部分数据如下图:

四、HP MSA存储故障分析
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组中的分配情况,以及LUN分配的数据块MAP。由于底层有6个LUN,因此只需要将每一个LUN的数据块分布MAP提取出来。然后针对这些信息编写相应的程序,对所有LUN的数据MAP做解析,然后根据数据MAP并导出所有LUN的数据。

五、HP MSA存储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、恢复Oracle数据库文件

在HP-Unix机器上mount文件系统后,将所有用户数据均备份至指定磁盘空间。所有用户数据大小在1.2TB左右。部分文件目录截图如下:

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

七、HP MSA存储数据验证
由用户方的积极配合,启动Oracle数据库,启动OA服务端,在本地笔记本安装OA客户端。通过OA客户端对最新的数据记录以及历史数据记录进行验证,并且有用户安排远程不同部门人员进行远程验证。最终数据验证无误,数据完整,至此数据恢复工作结束。

原文地址:https://blog.51cto.com/sun510/2461214

时间: 2024-08-29 19:58:54

面对HP MSA存储中硬盘掉线的情况,学会这种解决方式至关紧要的相关文章

mysql中limit与in不能同时使用的解决方式.

mysql中limit与in不能同时使用的解决方式. 分类: MySQL2011-10-31 13:53 1277人阅读 评论(0) 收藏 举报 mysqlsubquery MySQL5.1中子查询是不能使用LIMIT的,报错: "This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' " 这样的语句是不能正确执行的.select * from message where id i

MySQL安装过程中出现“APPLY security settings错误”的解决方式

***********************************************声明****************************************************** 原创作品,出自 "晓风残月xj" 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/xiaofengcanyuexj). 因为各种原因.可能存在诸多不足,欢迎斧正. *******************************************

nios软核cpu中架构类shell的一种解决方式

在nios中要实现一个类shell的交互系统,用户在终端可以通过命令调用系统函数. 想到linus当年在写下系统函数调用时,其实基于的思想是一样的,就是查表,每一种系统函数都对应一种中断服务号,然后通过0x80系统调用进入内核,然后查表,这里就可以找到对应的内核系统函数,回顾一下linus是怎么做到的. 就以系统函数open为例子 int open(const char * filename, int flag, ...) { register int res; va_list arg; va_

IDEA 上 Thymeleaf 页面中的变量有下划线的解决方式

问题 在 idea 中创建 Thymeleaf 页面,代码如下: <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p th:text="'Hello '

easyui中datagrid空数据集不刷新的解决方式

datagrid空间可以异步请求json数据,并将新数据覆盖原有数据,重绘数据表. 但是当回来空数据集的时候,js会产生这样一条错误: TypeError: rows is null for(var i=0;i<rows.length;i++){ ^ 问题出在哪呢? 可以看到当空数据集时返回的内容是: {"total":"0","rows":null} 可以注意到rows对应的值是null,而需要的是一个集合才能保证js不出错,也就是空集

Java Web 中get,post请求乱码的解决方式,以及两者区别

1.post解决乱码的方法 在被请求的页面输入request.setCharacterEncoding("utf-8"); 2.get解决乱码的方式 找到tomcat的安装目录---->conf---->server.xml--->在端口加上"URIEncoding="UTF-8"" 找到tomcat的安装目录 找到conf文件夹 找到server.xml 加上<Connector port="8080"

又成功解决了一个光纤存储硬盘掉线的故障

raid5磁盘阵列相比较其他阵列具有更好的安全性,当阵列中有硬盘出现故障时,只需要对离线的硬盘进行替换即可,但是一旦阵列中同时出现两块或者多块硬盘离线的情况,那么阵列就会崩溃,本案例详细介绍了阵列2块硬盘掉线数据恢复的过程.· 数据恢复背景: 某企业的光纤存储上一共16块硬盘,管理员发现存储的卷无法挂载,检查存储设备发现有2块硬盘离线,需要对存储进行数据恢复.· 开始工作: 管理员对当前的存储状态进行检查,通过storage manager把存储目前现有的日至状态进行备份,以备后期数据恢复时进行

服务器数据恢复方法之存储raid硬盘离线数据恢复案例

[故障描述]某法院的一台HP-P4500的存储系统,底层是12块1TB的硬盘组的RAID.其中每6个1TB的盘一组,第一组的前面一部分组了一个RAID0+1,是存放HP-P4500嵌入式系统,接着组了一个RAID5存放数据,第二组组了一个RAID5.在存储系统上层一共分了两个卷,卷大小一个为3TB,一个为5TB.后来因磁盘故障导致存储不可用,客户先请HP的工程做更换磁盘,强制上线,但存储还是不可用.最后才联系我们做数据恢复. [硬件检测]我们的硬件工程师先对客户的12块硬盘做了硬件检测,发现客户

HP P2000两块硬盘物理故障修复过程+raid条带分析方法

1.服务器数据恢复故障描述 服务器型号:HP P2000服务器操作系统:VMWARE ESX服务器文件系统:VMFS磁盘阵列级别:RAID-5需要进行数据恢复的服务器挂载了8块硬盘组成RAID-5磁盘阵列,其中4号盘是热备盘,服务器在正常运行中两块硬盘亮×××故障灯,经用户方维护人员检测,故障硬盘应为物理故障,表现为:序列号无法读取,在SAS扩展卡上硬盘无法识别.需要对raid磁盘阵列进行数据恢复 2.硬盘物理故障修复 由于服务器故障情况严重,需要首先确定该组raid阵列的磁盘掉线原因,工程师在