我的编程空间,编程开发者的网络收藏夹
学习永远不晚

HP MSA存储中硬盘掉线的解决方式是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

HP MSA存储中硬盘掉线的解决方式是什么

这篇文章给大家介绍HP MSA存储中硬盘掉线的解决方式是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一、HP MSA存储设备信息

存储空间由8块450GB SAS的硬盘组成。

7块硬盘组成一个RAID5的阵列,1块作为热备盘。

二、HP MSA存储设备故障描述

RAID5阵列中出现2块硬盘损坏,而此时只有一块热备盘成功激活,因此导致RAID5阵列瘫痪,上层LUN无法正常使用。

RAID阵列中某些磁盘掉线,导致整个存储不可用。因此需要先对所有磁盘做物理检测,检测完后确认硬盘无物理故障。接着使用坏道检测工具检测磁盘坏道,发现也无坏道。

HP MSA存储备份数据

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

HP MSA存储中硬盘掉线的解决方式是什么

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校验程序对这个条带做校验,发现除掉刚才分析的那块硬盘得出的数据是最好的,因此可以明确最先掉线的硬盘了。

分析RAID组中的LUN信息

首先分析LUN在RAID组中的分配情况,以及LUN分配的数据块MAP。由于底层有6个LUN,因此只需要将每一个LUN的数据块分布MAP提取出来。然后针对这些信息编写相应的程序,对所有LUN的数据MAP做解析,然后根据数据MAP并导出所有LUN的数据。

HP MSA存储中硬盘掉线的解决方式是什么

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左右。部分文件目录截图如下:

HP MSA存储中硬盘掉线的解决方式是什么

2、检测Oracle数据库文件是否完整

使用Oracle数据库文件检测工具“dbv”检测每个数据库文件是否完整,发现并没有错误。再使用北亚自主研发的Oracle数据库检测工具(检验更严格),发现有部分数据库文件和日志文件校验不一致,安排高级数据库工程师对此类文件进行修复,并在次校验,直到所有文件校验均完全通过。

3、启动Oracle数据库

由于我们提供的HP-Unix环境没有此版本的Oracle数据,因此需要用户的原始环境,将恢复的Oracle数据库附加到原始生产环境的HP-Unix服务器中,尝试启动Oracle数据库,Oracle数据库启动成功。部分截图如下:

HP MSA存储中硬盘掉线的解决方式是什么

HP MSA存储数据验证

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

关于HP MSA存储中硬盘掉线的解决方式是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

HP MSA存储中硬盘掉线的解决方式是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

HP MSA存储中硬盘掉线的解决方式是什么

这篇文章给大家介绍HP MSA存储中硬盘掉线的解决方式是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、HP MSA存储设备信息1、存储空间由8块450GB SAS的硬盘组成。2、7块硬盘组成一个RAID5的阵列
2023-06-04

Spring中使用自定义ThreadLocal存储导致的坑及解决方法是什么

本篇文章为大家展示了Spring中使用自定义ThreadLocal存储导致的坑及解决方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Spring自定义ThreadLocal存储导致的坑Spr
2023-06-21

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录