4块硬盘做raid几_HP-P4500存储RAID硬盘离线数据恢复案例

在这里北亚小编分享一篇关于HP-P4500存储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的存储原理以后,关于它的所有数据灾难都可以进行恢复。经客户验证数据没有问题,本次数据恢复成功。
相关文章:

十个利用矩阵乘法解决的经典题目
出自matrix67.com 好像目前还没有这方面题目的总结。这几天连续看到四个问这类题目的人,今天在这里简单写一下。这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质。 不要以为数学中的矩阵也是黑色屏幕上不断变化的绿色字符。在数学中&…

maven生命周期理解
你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。 知道了每套生命周期的大概用途和相互关系以后,来逐个详细看一下每套生命周期,Clean和Site相对比较简单&…

安装envi出现cannot find lincese_Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)
0. 前言直接用 cuda安装文件同时安装 NVIDIA 驱动和 CUDA,没有单独安装更高版本的 NVIDIA 驱动;为避免浪费显存,图形化界面显示是在Intel 集显环境下,NVIDIA 独显做计算;循环登陆问题是因为安装时没有加 --no-opengl-l…

POJ1067_取石子游戏_威佐夫博弈
/* *State: 1067 Accepted 176K 16MS C 435B *题目大意: * 威佐夫博弈 *解题思路: * 略。 */ #include <iostream> #include <stdio.h> #include <cmath> using namespace std;int main(void) {int big,…

cuda cudnn pytorch版本对应关系
1. cuda和cudnn版本对应关系 https://developer.nvidia.com/rdp/cudnn-archive#a-collapse742-10 转载于:https://www.cnblogs.com/yeran/p/11345990.html

【转载】WinCE OAL架构分析
转载自:http://blog.csdn.net/nanjianhui/article/details/3830452 我个人认为OAL应该是WinCE BSP中最为重要的一个模块了,简单回顾一下,WinCE BSP由Bootloader,Drivers,OAL和配置文件组成。Bootloader一般指EBOOT&…

centos7 中搭建gitlab
1、在virtual box中新建一个虚拟机 2、gitlab ce(community版本)地址:https://about.gitlab.com/installation/#centos-7?versionce 如果在执行如下安装命令提示无法连接, sudo EXTERNAL_URL"http://gitlab.example.com&quo…

androidstudio jni开发_初识NDK开发(一)
“ 前言:初学逆向 请多多指教 昨天在看雪论坛发了篇文章,被标记了优秀,不由得感叹 这一个月没有白学! 剩下还有11个月 冲了”学习到的内容—1、了解了什么是NDK,以及在android studio中的环境搭建中注意的事项2、pthre…

http编程学习(C#)
《HTTP Programming Recipes for C# Bots》 第一章 选择GET还是POST取决于传送到服务器的数据的多少。GET传送的数据少,POST几乎对传送的数据无限制。 It is important to note that only one physical file is transferred per HTTP request. 每次HTTP请求只传送了…

服务器远程免密登录
1. 生成本地密钥 ssh-keygen2. 将密钥上传到服务器 ssh-copy-id -p port username192.128.128.128 3. 创建登录脚本 ssh -p port username192.128.128.128 转载于:https://www.cnblogs.com/yeran/p/11348045.html

如何触发AspxGridview的PageIndexChanged 客户端事件
?最近在使用AspxGridview控件时,遇到一个问题,就是在触发AspxGridview分页事件之后,需要在执行js事件,找了好久,在官网上找到处理的办法。 就是在cs页面设置变量在触发PageIndexChanged事件后,改…

Mysql 多表使用 Case when then 遇到的坑
前言: 在做一个订单导出时,遇到多表都含有state这个字段,含有多个状态首先想到的是: case colume when condition then result when condition then result when condition then result else result end 当正常试着写代码时会发现…

nginx反向代理原理及配置详解
nginx概述nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。 这里主要通过三个方面简…

小鱼易连电脑版_生活多么美好 篇十六:我的桌面改造,有绿植,有小鱼,有大音箱...
原标题:生活多么美好 篇十六:我的桌面改造,有绿植,有小鱼,有大音箱生活多么美好 篇十六:我的桌面改造,有绿植,有小鱼,有大音箱 2020-11-06 22:13:312点赞1收藏1评论想攒一…

菜鸟初涉SQL Server的总结
看完了一遍耿建玲老师的视频,讲的很多,一些细节的东西还是很难去把控。准备总结自己觉得无从下手,觉得很难去把控这个宏观和细节的平衡。但如果不去做这个工作的话,我可能永远都不能学会怎样去做好总结。总之,先这样去…

extjs4.0视频教程下载
发现www.uspcat.com 学习extjs4.0不错的论坛啊 http://www.uspcat.com/portal.php 视频教程下载 http://www.uspcat.com/forum.php?modviewthread&tid197&extra 转载于:https://blog.51cto.com/3450037/687004

开源依旧:再次分享一个进销存系统
开篇 我之前发过一篇博文《两天完成一个小型工程报价系统(三层架构)》,不少朋友向我要源码学习,后来久而久之忘记回复了。今天我再分享一个进销存系统,只为学习,没有复杂的框架和设计模式,有的是我个人的理解ÿ…

kotlin + springboot启用elasticsearch搜索
参考自: http://how2j.cn/k/search-engine/search-engine-springboot/1791.html?p78908 工具版本: elasticsearch 6.2.2、 kibana 6.2.2, 下载地址: elasticsearch、kibana 下载demo 1、kotlin版springboot项目创建 访问https:/…

insert 语句的选择列表包含的项多于插入列表中的项_如何定义和使用Python列表(Lists)
Python中最简单的数据集合是一个列表(list)。列表是方括号内用逗号分隔的任何数据项列表。通常,就像使用变量一样,使用符号为Python列表分配名称。 如果列表中包含数字,则不要在其周围使用引号。 例如,这是测试成绩的列表…

数据结构之主席树
这里讲静态的主席树,关于静态区间第k小。(有兴趣的朋友还可以去看看我写的整体二分,代码实现略优于主席树我觉得,当然静态主席树是很好写的) 题目描述: 题目描述 如题,给定N个正整数构成的序列&…

k-d tree算法的研究
By RaySaint 2011/10/12 动机 先前写了一篇文章《SIFT算法研究》讲了讲SIFT特征具体是如何检测和描述的,其中也提到了SIFT常见的一个用途就是物体识别,物体识别的过程如下图所示: 如上图(a),我们先对待识别的物体的图像进行SIFT特…

Unicode,UTF-32,UTF-16,UTF-8到底是啥关系?
编码的目的,就是给抽象的字符赋予一个数值,好在计算机里面表示。常见的ASCII使用8bit给字符编码,但是实际只使用了7bit,最高位没有使用,因此,只能表示128个字符;ISO-8859-1(也叫Latin-1…

HDU 4407 sum 容斥原理
算法: 利用数据1...N的性质,求与P的互质的个数,位运算,容斥定理。。 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<iostream> #include<vector> #include<string> #include<ma…

uniapp中qrcode生成二维码后传的参数不见了_阿虚教你制作动态二维码,超详细教程!
这篇教程很早之前就答应几个粉丝要写,拖的有点久了。内容比较多,先上个目录阿虚的教程会迟到,但永远不会缺席。hahahahhaha...一、 先说一下今天要教的内容ʕ•̫͡•ོʔ•̫͡•ཻʕ•̫͡•ʔ•͓͡•ʔ 1.不准备教的类似这种二维码&#…

得到最后的自增长列的最后一个值
declare Table_name varchar(60) set Table_name aa; Select so.name Table_name, --表名字 sc.name Iden_Column_name, --自增字段名字 ident_current(so.name) curr_value, --自增字段当前值 ident_incr(so.name) incr_value, --自增字段增长值 ident_seed(so.name) s…

关于C语言中 字符串常量的问题
昨天晚上我编写了一段简短的C语言程序(Linux环境下),编译能够通过,但是运行的时候老是报段错误。我当时非常郁闷,因为代码不长。其中主函数中有这样一句话: char *str"epmzm bpmzm qa eqtt bpmzm qa i…

WPF布局(2) 使用的DockPanel面板进行简单的布局
DockPanel 面板是根据外边缘进行控件的拉伸,DockPanel的LastChildFill属性设置为True 时,最后一个添加的控件将占满剩余空间。 <DockPanel LastChildFill"True"><Button DockPanel.Dock"Top">Top Button</Button>…

合并两个有序数组(重新开始)
在看分治算法的时候,想先自己写写合并的代码,还是不熟练啊! 为了保持对代码的敏感度,要保持练习。加油! public class JustDoIt0803 {/*** 分治算法学习前准备*/public static void main(String[] args) {int[] x new…

miui通知栏要点两下_MIUI免费主题分享,半透明通知栏很好看,另附壁纸!
最近很少分享主题,主要原因是没发现太好的,甚至主题连一处漂亮的点都没有,不过还是有一款状态栏很精致的主题,这里分享大家,可用作混搭使用!主题名:Blur首先主题是免费的,也之所以免…

C#中的委托和事件(续)
引言 如果你看过了 C#中的委托和事件 一文,我想你对委托和事件已经有了一个基本的认识。但那些远不是委托和事件的全部内容,还有很多的地方没有涉及。本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访…