好久没出来写博客了。过春节来了一直非常忙。尤其是近期,忙着做了好几个大单子。先是一个医院50TB的HP-EVA4400,接着是一个法院12TB的HP-P4500,前几天还有做了一个某游乐城12TB的VMware
VMFS虚拟机恢复。尽管忙点,但是学会了好多新的知识,一直想抽点时间把近期的工作整理成文章发表一下。但是家里没有联网。在公司又得忙工作。

还好近期工作不是非常忙。能够在公司抽点时间写写。好了,言归正传,进入主题吧!

【故障描写叙述】

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

【硬件检測】

我们的硬件project师先对客户的12块硬盘做了硬件检測。发现客户的硬盘都正常。

既排除硬盘硬件故障。既然都正常,我们就对12块硬盘做了全盘镜像。

【故障分析】

我们使用专业的工具对备份出来的镜像做了具体的分析,发现底层的RAID是一个HP双循环RAID5。

而且第一组RAID是好的。也就是第二组RAID的损坏导致存储上层的卷不可用。第二RAID也是一个RAID5,假设是当中一个硬盘掉线那么以RAID5的存储原理应该不会导致存储不可用。因此能够推断第二组RAID中至少是掉了两块磁盘,当中一块是早就掉线的,里面的数据都是旧的,我们需找出早就掉线的那块磁盘。但是我们通过硬件检測发现全部的硬盘都没有硬件故障。那么我们该怎样推断掉线的盘是那一个呢?

【解决方式】

因为并不知道RAID中那一块硬盘是早掉线的。所以没办法重组RAID。经过认真思考后确定有两种可行方案。

方案一:穷举法,即如果当中某一块磁盘是早就掉线的。踢掉此盘,重组RAID然后生成所有数据。最后将数据挂载到HP-P4500上,看数据是否正确。如果数据不对,那么再如果还有一块盘是掉线的,以此循环。尽管这样的方案可行,可是因为每次重组RAID生成数据的数据时间太长。而且准确性非常低。

方案二:穷举加校验,还是和穷举法一样。如果某个磁盘是掉线的。踢掉磁盘后重组RAID,但不是生成所有的数据,而是仅仅生成前面5G的数据,由于HP-P4500内部存储的数据的索引表位图位于RAID的前几个G之内(由于在这之前我们已经研究过HP-P4500的内部存储原理)。我们仅仅须要查看这个索引表的位图的信息是否正确就能够推断此RAID是否正确。如果正确那么生成此RAID的数据就可以完毕RAID的重组。

【实施方案】

採用另外一种解决方式,经过几次測试非常快就推断出正确的RAID。

连夜生成此RAID的数据。

生成完数据后,将生成的数据和第一组完善的RAID一同挂载到HP-P4500上。然后启动存储,上层的卷由不可用变的可用了。查看了最新的文件发现一切都正常。

【数据恢复成功】

因为上层的卷直接能够用了。所以数据也都可见了,可是考虑到安全问题。我们还是将卷里的文件都拷贝出来,然后移交给客户。经过漫长的底层分析,加上不断的測试。

最终在用户要求的时间内将数据恢复完毕。

整个恢复过程一共历时两天。之所以能这么快恢复,还是在于我们之前研究过HP-P4500的存储原理。知道了HP-P4500的存储原理以后。关于它的全部数据灾难都能够进行恢复。

本文全部数据恢复流程及数据恢复技术均来自北亚数据恢复中心。

作者:邓奇

联系方式:18911808630

本文出自 “邓奇的Blog” 博客,请务必保留此出处http://dengqi.blog.51cto.com/5685776/1408841

某法院HP-P4500存储数据恢复案例的更多相关文章

  1. 完美解决某法院HP EVA8400删除VDISK问题

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

  2. V7000存储数据恢复_底层结构原理拆解及Mdisk磁盘掉线数据恢复方法

    Storwize V7000(也就是我们常说的V7000)是新推出的一款中端存储系统,这款系统的定位虽然在中端,但是Storwize V7000提供有存储管理功能,这一功能以前只有高端存储才拥有(例如 ...

  3. MySQL 数据库增量数据恢复案例

    MySQL 数据库增量数据恢复案例 一.场景概述 MySQL数据库每日零点自动全备 某天上午10点,小明莫名其妙地drop了一个数据库 我们需要通过全备的数据文件,以及增量的binlog文件进行数据恢 ...

  4. EMC Isilon(OneFS)误删文件数据恢复过程<存储数据恢复>

    [科普Isilon的存储结构] Isilon内部使用的是分布式文件系统OneFS.在Isilon存储集群里面每个节点均为单一OneFS文件系统,所以Isilon在支持横向扩展的同时并不会影响数据正常使 ...

  5. MySQL 之数据库增量数据恢复案例

    MySQL 数据库增量数据恢复案例 一.场景概述 MySQL数据库每日零点自动全备 某天上午10点,小明莫名其妙地drop了一个数据库 我们需要通过全备的数据文件,以及增量的binlog文件进行数据恢 ...

  6. mysql数据安全一之数据恢复案例

    mysql数据安全一之数据恢复案例 --chenjianwen 应用场景:适宜开启binlog 日志功能,定时备份并使用--master-data参数备份,在某个时间点丢失数据,用于数据恢复 开篇总结 ...

  7. MySQL中truncate误操作后的数据恢复案例

    MySQL中truncate误操作后的数据恢复案例 这篇文章主要介绍了MySQL中truncate误操作后的数据恢复案例,主要是要从日志中定位到truncate操作的地方然后备份之前丢失的数据,需要的 ...

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

    [故障描述]某法院的一台HP-P4500的存储系统,底层是12块1TB的硬盘组的RAID.其中每6个1TB的盘一组,第一组的前面一部分组了一个RAID0+1,是存放HP-P4500嵌入式系统,接着组了 ...

  9. Raid5两块硬盘掉线可以恢复数据吗_raid数据恢复案例分享

    本案例中发生故障的存储类型是HP P2000,虚拟化平台为vmware exsi,共有10块硬盘组成raid5(硬盘容量为1t,其中6号盘是热备盘),由于某些故障导致阵列中两块硬盘亮黄灯掉线,硬盘无法 ...

随机推荐

  1. OpenMP入门教程(三)

    承接前面两篇,这里直接逐一介绍和使用有关OpenMP的指令和函数 Directives 1.for 作用:for指令指定紧随其后的程序的循环的迭代必须由团队并行执行,只是假设已经建立了并行区域,否则它 ...

  2. AttributeError: 'list' object has no attribute 'extends' && list详解

    拼写错误 是extend  而不是extends 出错demo: In [27]: c = [2,3] In [28]: c.extends([5]) ------------------------ ...

  3. java中属性命名get字母大小写问题

    java文件 company.java private int sTime; public void setSTime (int sTime) {        this.sTime = sTime; ...

  4. VC++线程函数内怎么调用外部函数

    VC++线程函数内怎么调用外部函数 1.把外部函数做成静态函数,就可以直接调用了.2.把外部函数所在的对象通过线程函数参数传到线程里面来,这样线程里可以使用此对象及其函数了.

  5. Jupyter IPython dead kernel and do not restart

    本人遇到的情况:dead kernel & try to restart failed 查看CMD发现这个库安装有问题 解决办法 1.pip uninstall backports.shuti ...

  6. ajax中的json和jsonp详解

    出现的问题: 花了点时间研究ajax中的json和jsonp的原理,这里记录一下.以前一直在使用ajax调用数据,但是从来没有遇到跨域问题,也从来没有注意过json和jsonp的区别,总是一通乱用.但 ...

  7. DTD DOCTYPE

    总结: DOCTYPE是什么 ? 文档类型声明,告诉解析器用什么样的文档类型定义来解析此文档.DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现.   标准模式与兼容模式各有什么区别? 如果页面 ...

  8. python 项目部署virtualenv

    安装virtualenv---------------------------------------- mac: pip3 install virtualenv ubuntu: apt instal ...

  9. python中基于tcp协议的通信(数据传输)

    tcp协议:流式协议(以数据流的形式通信传输).安全协议(收发信息都需收到确认信息才能完成收发,是一种双向通道的通信) tcp协议在OSI七层协议中属于传输层,它上承用户层的数据收发,下启网络层.数据 ...

  10. 如何判断CPU、内存、磁盘的性能瓶颈?

    1.如何判断CPU.内存.磁盘的瓶颈? CPU瓶颈1) 查看CPU利用率.建议CPU指标如下 a) User Time:65%-70% b) System Time:30%-35% c) Idle:0 ...