服务器数据恢复方法_存储raid硬盘离线数据恢复案例
【故障描述】
某法院的一台HP-P4500的存储系统,底层是12块1TB的硬盘组的RAID。其中每6个1TB的盘一组,第一组的前面一部分组了一个RAID0+1,是存放HP-P4500嵌入式系统,接着组了一个RAID5存放数据,第二组组了一个RAID5。在存储系统上层一共分了两个卷,卷大小一个为3TB,一个为5TB。后来因磁盘故障导致存储不可用,客户先请HP的工程做更换磁盘,强制上线,但存储还是不可用。最后才联系我们做数据恢复。
【硬件检测】
我们的硬件工程师先对客户的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的存储原理以后,关于它的所有数据灾难都可以进行恢复。
服务器数据恢复方法_存储raid硬盘离线数据恢复案例的更多相关文章
- raid5 阵列硬盘离线数据恢复成功案例
数据恢复故障描述: 某研究院 DELL 磁盘阵列崩溃,内置15块1TB硬盘搭建的RAID5阵列.一开始有一块硬盘离线,在更换新硬盘进行同步的过程中,第二块磁盘指示灯报警,同步失败,阵列无法正常工作. ...
- 服务器磁盘阵列数据恢复,raid5两块硬盘掉线数据恢复方法
[用户单位信息] 农业科学研究院某研究所 [磁盘阵列故障发生过程描述]客户的DELL MD1000服务器内置15块1TB硬盘搭建为RAID5磁盘阵列阵列,服务器在正常工作中有一块硬盘离线,管理员对磁盘 ...
- V7000存储数据恢复_底层结构原理拆解及Mdisk磁盘掉线数据恢复方法
Storwize V7000(也就是我们常说的V7000)是新推出的一款中端存储系统,这款系统的定位虽然在中端,但是Storwize V7000提供有存储管理功能,这一功能以前只有高端存储才拥有(例如 ...
- HP DL380服务器RAID信息丢失数据恢复方法和数据恢复过程分享
[数据恢复故障描述] 客户服务器属于HP品牌DL380系列,存储是由6块73GB SAS硬盘组成的RAID5,操作系统是WINDOWS 2003 SERVER,主要作为企业部门内部的文件服务器来 ...
- DELL EqualLogic PS存储硬盘故障数据恢复成功案例分享
DELL EqualLogic PS4000采用虚拟ISCSI SAN阵列,为远程或分支办公室.部门和中小企业存储部署带来企业级功能.智能化.自动化和可靠性.以简化的管理.快速的部署及合理的价格满足了 ...
- raid5两块硬盘离线怎么办? 强制上线失败如何恢复数据
服务器故障描述: 客户使用Dell 2850服务器组建了raid5磁盘阵列,阵列中包含有6块硬盘(SCSI硬盘,单盘容量300G),服务器操作系统为linux Redhat4:文件系统为ext3文件系 ...
- RAID6三块硬盘离线导致的数据丢失恢复过程
小编我最近参与了一例非常成功的数据恢复的案例,在这里分享给大家.用户是一组6块750G磁盘的 RAID6,先后有两块磁盘离线,但维护人员在此情况下依然没有更换磁盘,所以在第三块硬盘离线后raid直接崩 ...
- 刀片服务器和磁盘阵列卡(RAID)技术---永和维护
近期客户需要更换服务器,客户把买好的服务器送来了,原本感觉很小的一个服务器,可当我看到的时候是一个大个的又长又宽,类似机房服务器的那种,后来米老师给大致讲解一番:这个是刀片服务器. 刀片服务器是指在标 ...
- 刀片服务器和磁盘阵列卡(RAID)技术---永和维护(转)
近期客户需要更换服务器,客户把买好的服务器送来了,原本感觉很小的一个服务器,可当我看到的时候是一个大个的又长又宽,类似机房服务器的那种,后来米老师给大致讲解一番:这个是刀片服务器. 刀片服务器是指在标 ...
随机推荐
- SPOJ:To the moon
题面 vjudge Sol 主席树模板 # include <bits/stdc++.h> # define RG register # define IL inline # define ...
- [APIO2015]巴邻旁之桥
Bzoj权限题 luogu题面 先去掉同边的 首先k==1,即求一个点j 使\(\sum_{i\in A} |D_i - D_j| + \sum_{i\in B} |D_i - D_j|\)最小 因为 ...
- linux & mac环境python多版本切换与选择
linux和mac很多地方是相似的,只不过在切换python版本时权限有差异. ====图已补上,O(∩_∩)O~ 1.linux 首先linux内核自带版本是python2.6,但是一般linux ...
- 如何配置VS使得可以通过域名或IP访问
一.前言: 在平时使用Visio Studio进行网站开发,经常会遇到一个问题.既要可以使用VS的Debug一步步跟进项目的走向,又必须是外界可以访问的.这个问题会在微信开发中非常常见,就拿微信开发中 ...
- 设计模式——抽象工厂模式(C++实现)
#include <iostream> #include <string> using namespace std; class STAbstractProductA { pu ...
- 客户端用TortoiseSVN检出代码
在桌面空白处右键选择SVN检出,如图: 在弹出的对话框中填写服务端版本库的URL (URL获取方式在前面一章中介绍过)选择检出目录点击确定,如图: 开始检出项目,如图: 检出完成之后打开副本,即可看到 ...
- Java设计模式-单例模式及线程安全问题
单例模式是非常常用的设计模式,他确保了一个类只有一个对象,并且这个对象是自己创建的,外界可以获取使用到这个对象. 单例模式一般有两种:懒汉式,饿汉式(其实还有一种登记式,把创建的对象放在map集合中, ...
- [POJ 3764] The xor-longest Path
Description 多组数据 给你一颗树, 然后求一条最长异或路径, 异或路径长度定义为两点间简单路径上所有边权的异或和. Solution 首先 dfs 一遍,求出所有的点到根节点(随便选一个) ...
- Mycat 分片规则详解--枚举分片
实现方式:切分规则根据文件(partition-hash-int.txt)配置的可能的枚举来进行分片,此种分片规则理解为枚举分区,会比较适合于取值固定的场合,比如说省份(固定值) 优点:适用于按照省份 ...
- C++基于范围循环(range-based for loop)的陷阱
C++的基于范围的循环是C++11出现的新特性,很方便,一定程度上替代了使用迭代器的for循环用法.不过基于范围的for循环有一个隐藏的陷阱,如果不注意可能会出现严重的内存错误. 举例说明 看下面这个 ...